Invoicing Developer Guide

This section describes how to use this guide and where to find further information.
Audience and Purpose
This guide is written for merchants who want to use the invoicing services. It describes tasks that a merchant must complete in order to create, send, and manage invoices using the invoicing API or Microsoft Outlook add-in. It also describes how to include extra security to your invoices with payer authentication and how to set up automated webhook notifications when an invoice is updated. It is intended to help the merchant provide a seamless customer payment experience.
Convention
This special statement is used in this document:
IMPORTANT
An
Important
statement contains information essential to successfully completing a task or learning a concept.
Customer Support
For support information about any service, visit the Support Center:

Recent Revisions to This Document

25.06.02

Updated the list of webhook event types that you can subscribe to receive notifications. See Webhook Notifications for Invoicing.

25.06.01

This revision contains only editorial changes and no technical updates.

25.04.01

This revision contains only editorial changes and no technical updates.

25.03.01

Added information about how to approve and reject invoice payments that are flagged for fraud using the
Business Center
. See Approving Payment Flagged for Fraud and Rejecting Payment Flagged for Fraud.
Added information about how to create a custom message and select menu on your invoice checkout page using the
Business Center
. See Create a Custom Text Field for an Invoice.

25.02.01

Updated the supported events for Invoicing Webhooks. For more information, see Webhook Notifications for Invoicing.
Added support for filtering invoice transaction using transaction management in the
Business Center
. See Filtering Invoice Transactions in Transaction Management.
Added support for generating a custom report with invoice transaction data using the
Business Center
. See Generating a Report with Invoice Data.

24.10.01

Added these new sections for drafting an invoice:

24.07.01

This guide has been reorganized.
Added support for the Visa Invoicing Add-In for Microsoft Outlook. For more information, see Add Invoicing Add-In to Outlook.
Added support for Invoicing Webhooks. For more information, see Webhook Notifications for Invoicing.
Added information about using the invoicing service in the
Business Center
. See Manage Invoices Using the Business Center.

24.05.01

Initial release.

VISA Platform Connect: Specifications and Conditions for Resellers/Partners

The following are specifications and conditions that apply to a Reseller/Partner enabling its merchants through
Visa Acceptance platform
. Failure to meet any of the specifications and conditions below is subject to the liability provisions and indemnification obligations under Reseller/Partner’s contract with Visa/Cybersource.
  1. Before boarding merchants for payment processing on a VPC acquirer’s connection, Reseller/Partner and the VPC acquirer must have a contract or other legal agreement that permits Reseller/Partner to enable its merchants to process payments with the acquirer through the dedicated VPC connection and/or traditional connection with such VPC acquirer.
  2. Reseller/Partner is responsible for boarding and enabling its merchants in accordance with the terms of the contract or other legal agreement with the relevant VPC acquirer.
  3. Reseller/Partner acknowledges and agrees that all considerations and fees associated with chargebacks, interchange downgrades, settlement issues, funding delays, and other processing related activities are strictly between Reseller and the relevant VPC acquirer.
  4. Reseller/Partner acknowledges and agrees that the relevant VPC acquirer is responsible for payment processing issues, including but not limited to, transaction declines by network/issuer, decline rates, and interchange qualification, as may be agreed to or outlined in the contract or other legal agreement between Reseller/Partner and such VPC acquirer.
DISCLAIMER: NEITHER VISA NOR CYBERSOURCE WILL BE RESPONSIBLE OR LIABLE FOR ANY ERRORS OR OMISSIONS BY THE
Visa Platform Connect
ACQUIRER IN PROCESSING TRANSACTIONS. NEITHER VISA NOR CYBERSOURCE WILL BE RESPONSIBLE OR LIABLE FOR RESELLER/PARTNER BOARDING MERCHANTS OR ENABLING MERCHANT PROCESSING IN VIOLATION OF THE TERMS AND CONDITIONS IMPOSED BY THE RELEVANT
Visa Platform Connect
ACQUIRER.

Introduction to Invoicing

The Invoicing API enables you to create and send invoices as well as track outstanding invoices. Your customers can pay using their preferred payment method from any device on a secure
Visa Acceptance Solutions
hosted website. Automated reminders are available to help you remind customers of upcoming due dates or overdue invoices. For more information, see Invoicing API Requests.
You can also customize your invoice payment page to display your brand logo and color, as well as add custom messages to your invoice emails. Shipping information and phone numbers can also be collected at the time of payment. For more information, see Invoice Settings API Requests.
The Invoicing API uses
Visa Acceptance Solutions
's
Unified Checkout
to securely process payments so that you do not have to handle confidential payment data. Fraud and risk management tools are incorporated into
Unified Checkout
to prevent fraud and reduce chargebacks. For additional security, you can add payer authentication to your invoice payment processing. For more information, see Add Payer Authentication to Invoicing.
To quickly and easily create, send, and manage invoices from your Microsoft Outlook desktop application,
Visa Acceptance Solutions
offers the Visa Invoicing Add-In. The add-in can be downloaded and installed from Microsoft's AppSource. For more information, see Add Invoicing Add-In to Outlook.
To receive notifications when an invoice is paid, sent, or cancelled, you can create a subscription to receive invoicing webhook notifications. For more information, see Webhook Notifications for Invoicing.
IMPORTANT
The merchant is responsible for complying with any legal and tax requirements when issuing invoices to clients.
Visa Acceptance Solutions
does not certify that the invoicing tool meets any such client requirements.

Use the
Business Center

You can also create, process, and manage invoices using the
Business Center
. For information about how to access and use invoicing in the
Business Center
, see Manage Invoices Using the Business Center.

Configure
Unified Checkout

Invoicing supports
Unified Checkout
, which enables you to accept numerous types of digital payments, such as Apple Pay,
Click to Pay
, and Google Pay.
For more information about enabling these digital payments using
Unified Checkout
, see the Enable Digital Payments section in the
Digital Accept Secure Integration Developer Guide
.

Tokenization for Merchant-Initiated Transactions

You can create
Token Management Service
(
TMS
) tokens from invoice transactions using Transaction Management in the
Business Center
.
IMPORTANT
If you create and use
TMS
tokens for merchant-initiated transactions (MITs), you must comply with the
Consent Agreement Provisions
as stated in the
Improving Authorization Management for Transactions with Stored Credentials
guide.

Invoicing API Requests

When creating an invoice, you can choose to create a draft or published invoice. If you create a published invoice, you can specify whether the invoice is immediately emailed to the customer or not. This table describes the different methods for creating an invoice.
Invoice Creation Methods
Invoice Method
Description
Field Values Specific to this Method
Create a Draft Invoice
Create an invoice draft that is only viewable by you. When you are ready to share the invoice with the customer, you must publish it by sending a
send invoice
request.
To create a draft invoice that is
not
sent as an email to the customer when you publish it, see Create a Draft Invoice.
To create a draft invoice that is sent as an email to the customer when you publish it, see Create a Deliverable Draft Invoice.
invoiceInformation.deliveryMode
Possible values:
  • email
  • none
invoiceInformation.sendImmediately
Set to
false
.
Create and Send an Invoice Immediately
Create a published invoice that is immediately emailed to the customer by
Visa Acceptance Solutions
. The customer can view and pay the invoice when they receive the invoice email. For more information, see Create and Send an Invoice Immediately.
invoiceInformation.deliveryMode
Set to
email
.
invoiceInformation.sendImmediately
Set to
true
.
Create an Invoice without Sending it
Create a published invoice that you can share with the customer by sending the customer the generated URL. This method gives you control over the distribution of the invoices. For more information, see Create an Invoice without Sending it.
invoiceInformation.deliveryMode
Set to
none
.
invoiceInformation.sendImmediately
Set to
true
.
The invoicing API also enables you to perform these follow-on services after creating an invoice:
You can also customize your invoices to align with your brand. For more information, see Invoice Settings API Requests.

Create a Draft Invoice

Drafting an invoice creates an unpublished invoice that is viewable only by you. When sending the draft invoice request, set the
invoiceInformation.deliveryMode
field to
none
to ensure that the invoice draft is not automatically sent in an email message to the customer when the invoice is published. When you are ready to publish the draft invoice, you can send a
send invoice
request. After publishing the drafted invoice, the invoice's status updates from
DRAFT
to
CREATED
.
Itemized Invoices
An invoice can display a single billed amount or list up to 30 billed items. To list the billed items in the invoice, include the items in the request using the line item array fields. An invoice with line items is known as an
itemized
invoice. For more information about how to include line items in your request, see Including Line Items in an Invoice.
Invoice Numbers
You can assign a unique invoice number in the
invoiceInformation.invoiceNumber
request field. The invoice number is required for follow-on API requests and tracking. You should store the invoice number in your system so that you can optimally perform the follow-on requests. If you do not include a unique invoice number when creating an invoice,
Visa Acceptance Solutions
generates a unique invoice number for you in the
invoiceInformation.invoiceNumber
response field.
IMPORTANT
You cannot update the invoice number after it is generated.
Installment Payments
Invoices can be paid in installment payments when these fields and values are included in the request. If an invoice is payable in installments, multiple customers can make payments towards the same invoice.
invoiceInformation.allowPartialPayments
Set to
true
.
orderInformation.amountDetails.minimumPartialAmount
Set to the minimum amount allowed for a partial payment.
Partner Information
If your merchant account is associated with a
Visa Acceptance Solutions
partner, you can include your partner solution ID (PSID) in the request message for tracking and reporting purposes. To include your PSID, use the
clientReferenceInformation.partner.solutionId
request field and set its field value to your PSID.
Alternative Methods to Create an Invoice
To create a
draft
invoice that is sent in an email message to the customer when you publish it, see Create a Draft Invoice.
To create a new invoice that is
not
immediately sent in an email to the customer, see Create an Invoice without Sending it.
To create
and send
a new invoice at the same time, see Create and Send an Invoice Immediately.

Endpoint

Send an API POST request message to one of these endpoints:
Test:
POST
https://apitest.visaacceptance.com
/invoicing/v2/invoices
Production:
POST
https://api.visaacceptance.com
/invoicing/v2/invoices

Response to a Successful Request

A successfully drafted invoice is indicated by the
DRAFT
status in the
status
response field.
The redirect URL generated in the
invoiceInformation.paymentLink
response field is usable only by you and not the customer.
Additional invoice details are included in the response message for you to review.

Follow-On API Requests

After successfully drafting an invoice, you can send these follow-on API requests.
Send an Invoice
After drafting an invoice, you can publish and send an invoice using the send invoice request. For more information, see Send an Invoice.
Update an Invoice
To update customer information or item details in an already drafted invoice, send an update invoice request. For more information, see Update an Invoice.
Cancel an Invoice
To cancel a drafted invoice, send the a cancel invoice request. For more information, see Cancel an Invoice.
Get Invoice Details
To retrieve a drafted invoice's details, send a get invoice details request. For more information, see Get Invoice Details.

Required Fields for Drafting an Invoice

This section lists the required fields necessary to create these types of invoices:
  • In-person draft invoice
  • Email draft invoice
  • Itemized email draft invoice
The invoice created using these fields and specified values is not immediately sent to the customer.

Required Fields for Drafting an In-Person Invoice

invoiceInformation.deliveryMode
Set to one of these possible values to determine whether or not the invoice is emailed to the customer when you send a send invoice request:
  • email
    : An invoice email is sent to the customer when you send the follow-on send invoice request for this invoice draft. The invoice status updates to
    SENT
    .
  • none
    : When you process a follow-on send invoice request to publish the drafted invoice, the invoice is not sent in an email to the customer. To share the invoice with the customer, send the customer the redirect URL in the
    invoiceInformation.paymentLink
    response field. The invoice updates change to
    CREATED
    .
invoiceInformation.description
invoiceInformation.dueDate
invoiceInformation.sendImmediately
Set to
false
.
orderInformation.amountDetails.currency
orderInformation.amountDetails.totalAmount

Required Fields for Drafting an Email Invoice

customerInformation.email
customerInformation.name
invoiceInformation.deliveryMode
Set to
email
.
invoiceInformation.dueDate
invoiceInformation.sendImmediately
Set to
false
.
orderInformation.amountDetails.currency
orderInformation.amountDetails.totalAmount

Required Fields for Drafting an Invoice with Line Items

customerInformation.email
customerInformation.name
invoiceInformation.deliveryMode
Set to one of these possible values to determine whether or not the invoice will be emailed to the customer when you send a send invoice request:
  • email
    : An invoice email is sent to the customer when you send the follow-on send invoice request for this invoice draft. The invoice status will change to
    SENT
    .
  • none
    : When you process a follow-on send invoice request to publish the drafted invoice, the invoice is not sent in an email to the customer. To share the invoice with the customer, send the customer the redirect URL in the
    invoiceInformation.paymentLink
    response field. The invoice status will change to
    CREATED
    .
invoiceInformation.dueDate
invoiceInformation.sendImmediately
Set to
false
.
orderInformation.amountDetails.currency
orderInformation.amountDetails.totalAmount
orderInformation.lineItems[].productName
orderInformation.lineItems[].productSku
orderInformation.lineItems[].quantity
orderInformation.lineItems[].totalAmount
orderInformation.lineItems[].unitPrice

Optional Fields for Invoice Creation

You can include these optional fields when sending create invoice requests:
clientReferenceInformation.partner.developerId
Set to your developer ID.
clientReferenceInformation.partner.solutionId
Set to your partner solution ID (PSID).
customerInformation.company.name
customerInformation.email
customerInformation.merchantCustomerId
customerInformation.name
invoiceInformation.allowPartialPayments
Set to one of these possible values:
  • false
    : The invoice must be paid in a single payment.
  • true
    : The invoice is payable in installments.
invoiceInformation.deliveryMode
invoiceInformation.description
This field becomes optional when either one of these conditions is met:
  • The line item fields are present in the request message.
  • When drafting a deliverable invoice, the
    invoiceInformation.deliveryMode
    request field is set to
    email
    .
invoiceInformation.invoiceNumber
Set to a unique number to create an invoice number.
If you do not include this field and a unique value, the invoicing API automatically generates an invoice number for the new invoice.
IMPORTANT
You cannot update this invoice number after sending the API request.
merchantDefinedFieldValues.definition.id[].value
orderInformation.amountDetails.freight.amount
orderInformation.amountDetails.freight.taxable
orderInformation.amountDetails.freight.taxRate
orderInformation.amountDetails.minimumPartialAmount
orderInformation.amountDetails.subAmount

Optional Fields for Discounts and Taxes

You can include discounts and taxes to either the total billed amount or to billed line items in an invoice.
IMPORTANT
You cannot include discounts or taxes to both the total billed amount and line items in the same request.
IMPORTANT
The merchant is responsible for complying with any legal and tax requirements when issuing invoices to clients.
Visa Acceptance Solutions
does not certify that the invoicing tool meets any such client requirements.

Discount Fields for the Invoice Total

orderInformation.amountDetails.discountAmount
orderInformation.amountDetails.discountPercent

Discount Fields for Line Items

orderInformation.lineItems[].discountAmount
orderInformation.lineItems[].discountRate

Tax Fields for the Invoice Total

orderInformation.amountDetails.taxDetails.amount
orderInformation.amountDetails.taxDetails.rate
orderInformation.amountDetails.taxDetails.type

Tax Fields for Line Items

orderInformation.lineItems[].taxAmount
orderInformation.lineItems[].taxRate

Example: Drafting an Invoice

Request
{ "invoiceInformation": { "description": "Food", "dueDate": "2019-07-11", "sendImmediately": false, "deliveryMode": "none" }, "orderInformation": { "amountDetails": { "totalAmount": "2623.64", "currency": "USD" } } }
Response to a Successful Request
{ "_links": { "self": { "href": "/v2/invoices/98762", "method": "GET" }, "update": { "href": "/v2/invoices/98762", "method": "PUT" }, "deliver": { "href": "/v2/invoices/98762/delivery", "method": "POST" }, "cancel": { "href": "/v2/invoices/98762/cancelation", "method": "POST" } }, "id": "98762", "submitTimeUtc": "2024-08-02T19:24:06.184293960Z", "status": "CREATED", "processingInformation": { "requestPhone": false, "requestShipping": false }, "invoiceInformation": { "invoiceNumber": "98762", "description": "Food", "dueDate": "2019-07-11", "allowPartialPayments": false, "paymentLink": "
https://businesscenter.visaacceptance.com
/ebc2/invoicing/payInvoice/NyvghJCpsrrZAjkvZNxelqUrI7iyOdLXFXWS8e5MLXyLYbifinsuYfBk6kaYo3co?version=v2.1", "deliveryMode": "None" }, "orderInformation": { "amountDetails": { "totalAmount": 2623.64, "currency": "USD", "balanceAmount": 2623.64 } } }
Request
{ "customerInformation": { "name": "Tanya Lee", "email": "[email protected]" }, "invoiceInformation": { "dueDate": "2019-07-11", "sendImmediately": false, "deliveryMode": "none" }, "orderInformation": { "amountDetails": { "totalAmount": "293.50", "currency": "USD" }, "lineItems": [ { "productSku": "P653727383", "productName": "First line item's name", "quantity": "20", "unitPrice": "12.05", "totalAmount": "241.00" }, { "productSku": "P653727383", "productName": "First line item's name", "quantity": "10", "unitPrice": "5.25", "totalAmount": "52.50" } ] } }
Response to a Successful Request
{ "_links": { "self": { "href": "/v2/invoices/98764", "method": "GET" }, "update": { "href": "/v2/invoices/98764", "method": "PUT" }, "deliver": { "href": "/v2/invoices/98764/delivery", "method": "POST" }, "cancel": { "href": "/v2/invoices/98764/cancelation", "method": "POST" } }, "id": "98764", "submitTimeUtc": "2024-08-02T22:14:13.000671718Z", "status": "DRAFT", "customerInformation": { "name": "Tanya Lee", "email": "[email protected]" }, "processingInformation": { "requestPhone": false, "requestShipping": false }, "invoiceInformation": { "invoiceNumber": "98764", "dueDate": "2019-07-11", "allowPartialPayments": false, "deliveryMode": "None" }, "orderInformation": { "amountDetails": { "totalAmount": 293.5, "currency": "USD" }, "lineItems": [ { "productSku": "P653727383", "productName": "First line item's name", "unitPrice": 12.05, "quantity": 20, "totalAmount": 241 }, { "productSku": "P653727383", "productName": "First line item's name", "unitPrice": 5.25, "quantity": 10, "totalAmount": 52.5 } ] } }

REST Interactive Example: Create an Invoice Draft

Click this image to access the interactive code example for creating a invoice draft.

Figure:

Interactive Code
Image and link to the interactive code example for creating a new
                            invoice.

Create a Deliverable Draft Invoice

Drafting an invoice creates an unpublished invoice that is viewable only by you. To draft an invoice that will be delivered to the customer in an email message when you publish it, set the
invoiceInformation.deliveryMode
request field to
email
. When you are ready to publish and share the invoice with a customer, you can send the follow-on
send invoice
request. The customer will then receive an email with the invoice and the invoice's status will update from
DRAFT
to
SENT
.
Itemized Invoices
An invoice can display a single billed amount or list up to 30 billed items. To list the billed items in the invoice, include the items in the request using the line item array fields. An invoice with line items is known as an
itemized
invoice. For more information about how to include line items in your request, see Including Line Items in an Invoice.
Invoice Numbers
You can assign a unique invoice number in the
invoiceInformation.invoiceNumber
request field. The invoice number is required for follow-on API requests and tracking. You should store the invoice number in your system so that you can optimally perform the follow-on requests. If you do not include a unique invoice number when creating an invoice,
Visa Acceptance Solutions
generates a unique invoice number for you in the
invoiceInformation.invoiceNumber
response field.
IMPORTANT
You cannot update the invoice number after it is generated.
Installment Payments
Invoices can be paid in installment payments when these fields and values are included in the request. If an invoice is payable in installments, multiple customers can make payments towards the same invoice.
invoiceInformation.allowPartialPayments
Set to
true
.
orderInformation.amountDetails.minimumPartialAmount
Set to the minimum amount allowed for a partial payment.
Partner Information
If your merchant account is associated with a
Visa Acceptance Solutions
partner, you can include your partner solution ID (PSID) in the request message for tracking and reporting purposes. To include your PSID, use the
clientReferenceInformation.partner.solutionId
request field and set its field value to your PSID.
Alternative Methods to Create an Invoice
To create a
draft
invoice that is
not
sent in an email message to the customer when you publish it, see Create a Draft Invoice.
To create a new invoice that is
not
immediately sent in an email message to the customer, see Create an Invoice without Sending it.
To create
and send
a new invoice at the same time, see Create and Send an Invoice Immediately.

Endpoint

Send an API POST request message to one of these endpoints:
Test:
POST
https://apitest.visaacceptance.com
/invoicing/v2/invoices
Production:
POST
https://api.visaacceptance.com
/invoicing/v2/invoices

Response to a Successful Request

A successfully drafted invoice is indicated by the
DRAFT
status in the
status
response field.
The redirect URL generated in the
invoiceInformation.paymentLink
response field is usable only by you and not the customer.
Additional invoice details are included in the response message for you to review.

Follow-On API Requests

After successfully drafting an invoice, you can send these follow-on API requests.
Send an Invoice
After drafting an invoice, you can publish and send an invoice using the send invoice request. For more information, see Send an Invoice.
Update an Invoice
To update customer information or item details in an already drafted invoice, send an update invoice request. For more information, see Update an Invoice.
Cancel an Invoice
To cancel a drafted invoice, send the a cancel invoice request. For more information, see Cancel an Invoice.
Get Invoice Details
To retrieve a drafted invoice's details, send a get invoice details request. For more information, see Get Invoice Details.

Required Fields for Drafting an Invoice

This section lists the required fields necessary to create these types of invoices:
  • In-person draft invoice
  • Email draft invoice
  • Itemized email draft invoice
The invoice created using these fields and specified values is not immediately sent to the customer.

Required Fields for Drafting an In-Person Invoice

invoiceInformation.deliveryMode
Set to one of these possible values to determine whether or not the invoice is emailed to the customer when you send a send invoice request:
  • email
    : An invoice email is sent to the customer when you send the follow-on send invoice request for this invoice draft. The invoice status updates to
    SENT
    .
  • none
    : When you process a follow-on send invoice request to publish the drafted invoice, the invoice is not sent in an email to the customer. To share the invoice with the customer, send the customer the redirect URL in the
    invoiceInformation.paymentLink
    response field. The invoice updates change to
    CREATED
    .
invoiceInformation.description
invoiceInformation.dueDate
invoiceInformation.sendImmediately
Set to
false
.
orderInformation.amountDetails.currency
orderInformation.amountDetails.totalAmount

Required Fields for Drafting an Email Invoice

customerInformation.email
customerInformation.name
invoiceInformation.deliveryMode
Set to
email
.
invoiceInformation.dueDate
invoiceInformation.sendImmediately
Set to
false
.
orderInformation.amountDetails.currency
orderInformation.amountDetails.totalAmount

Required Fields for Drafting an Invoice with Line Items

customerInformation.email
customerInformation.name
invoiceInformation.deliveryMode
Set to one of these possible values to determine whether or not the invoice will be emailed to the customer when you send a send invoice request:
  • email
    : An invoice email is sent to the customer when you send the follow-on send invoice request for this invoice draft. The invoice status will change to
    SENT
    .
  • none
    : When you process a follow-on send invoice request to publish the drafted invoice, the invoice is not sent in an email to the customer. To share the invoice with the customer, send the customer the redirect URL in the
    invoiceInformation.paymentLink
    response field. The invoice status will change to
    CREATED
    .
invoiceInformation.dueDate
invoiceInformation.sendImmediately
Set to
false
.
orderInformation.amountDetails.currency
orderInformation.amountDetails.totalAmount
orderInformation.lineItems[].productName
orderInformation.lineItems[].productSku
orderInformation.lineItems[].quantity
orderInformation.lineItems[].totalAmount
orderInformation.lineItems[].unitPrice

Optional Fields for Invoice Creation

You can include these optional fields when sending create invoice requests:
clientReferenceInformation.partner.developerId
Set to your developer ID.
clientReferenceInformation.partner.solutionId
Set to your partner solution ID (PSID).
customerInformation.company.name
customerInformation.email
customerInformation.merchantCustomerId
customerInformation.name
invoiceInformation.allowPartialPayments
Set to one of these possible values:
  • false
    : The invoice must be paid in a single payment.
  • true
    : The invoice is payable in installments.
invoiceInformation.deliveryMode
invoiceInformation.description
This field becomes optional when either one of these conditions is met:
  • The line item fields are present in the request message.
  • When drafting a deliverable invoice, the
    invoiceInformation.deliveryMode
    request field is set to
    email
    .
invoiceInformation.invoiceNumber
Set to a unique number to create an invoice number.
If you do not include this field and a unique value, the invoicing API automatically generates an invoice number for the new invoice.
IMPORTANT
You cannot update this invoice number after sending the API request.
merchantDefinedFieldValues.definition.id[].value
orderInformation.amountDetails.freight.amount
orderInformation.amountDetails.freight.taxable
orderInformation.amountDetails.freight.taxRate
orderInformation.amountDetails.minimumPartialAmount
orderInformation.amountDetails.subAmount

Optional Fields for Discounts and Taxes

You can include discounts and taxes to either the total billed amount or to billed line items in an invoice.
IMPORTANT
You cannot include discounts or taxes to both the total billed amount and line items in the same request.
IMPORTANT
The merchant is responsible for complying with any legal and tax requirements when issuing invoices to clients.
Visa Acceptance Solutions
does not certify that the invoicing tool meets any such client requirements.

Discount Fields for the Invoice Total

orderInformation.amountDetails.discountAmount
orderInformation.amountDetails.discountPercent

Discount Fields for Line Items

orderInformation.lineItems[].discountAmount
orderInformation.lineItems[].discountRate

Tax Fields for the Invoice Total

orderInformation.amountDetails.taxDetails.amount
orderInformation.amountDetails.taxDetails.rate
orderInformation.amountDetails.taxDetails.type

Tax Fields for Line Items

orderInformation.lineItems[].taxAmount
orderInformation.lineItems[].taxRate

Example: Drafting a Deliverable Invoice

Request
{ "customerInformation": { "name": "Tanya Lee", "email": "[email protected]" }, "invoiceInformation": { "dueDate": "2019-07-11", "sendImmediately": false, "deliveryMode": "email" }, "orderInformation": { "amountDetails": { "totalAmount": "247.86", "currency": "USD" }, "lineItems": [ { "productSku": "P653727383", "productName": "First line item's name", "quantity": "20", "unitPrice": "12.05", "totalAmount": "247.86" } ] } }
Response to a Successful Request
{ "_links": { "self": { "href": "/v2/invoices/2669", "method": "GET" }, "update": { "href": "/v2/invoices/2669", "method": "PUT" }, "deliver": { "href": "/v2/invoices/2669/delivery", "method": "POST" }, "cancel": { "href": "/v2/invoices/2669/cancelation", "method": "POST" } }, "id": "2669", "submitTimeUtc": "2024-07-24T18:24:36.153361386Z", "status": "DRAFT", "customerInformation": { "name": "Tanya Lee", "email": "[email protected]" }, "processingInformation": { "requestPhone": false, "requestShipping": false }, "invoiceInformation": { "invoiceNumber": "2669", "dueDate": "2019-07-11", "allowPartialPayments": false, "deliveryMode": "Email" }, "orderInformation": { "amountDetails": { "totalAmount": 247.86, "currency": "USD", "balanceAmount": 247.86 }, "lineItems": [ { "productSku": "P653727383", "productName": "First line item's name", "unitPrice": 12.05, "quantity": 20, "totalAmount": 247.86 } ] } }
Request
{ "customerInformation": { "name": "Tanya Lee", "email": "[email protected]" }, "invoiceInformation": { "dueDate": "2019-07-11", "sendImmediately": false, "deliveryMode": "email" }, "orderInformation": { "amountDetails": { "totalAmount": 293.5, "currency": "USD" }, "lineItems": [ { "productSku": "P653727383", "productName": "First line item's name", "unitPrice": 12.05, "quantity": 20, "totalAmount": 241 }, { "productSku": "P653727383", "productName": "Second line item's name", "unitPrice": 5.25, "quantity": 10, "totalAmount": 52.5 } ] } }
Response to a Successful Request
{ "_links": { "self": { "href": "/v2/invoices/98765", "method": "GET" }, "update": { "href": "/v2/invoices/98765", "method": "PUT" }, "deliver": { "href": "/v2/invoices/98765/delivery", "method": "POST" }, "cancel": { "href": "/v2/invoices/98765/cancelation", "method": "POST" } }, "id": "98765", "submitTimeUtc": "2024-08-02T22:18:24.341304588Z", "status": "DRAFT", "customerInformation": { "name": "Tanya Lee", "email": "[email protected]" }, "processingInformation": { "requestPhone": false, "requestShipping": false }, "invoiceInformation": { "invoiceNumber": "98765", "dueDate": "2019-07-11", "allowPartialPayments": false, "deliveryMode": "Email" }, "orderInformation": { "amountDetails": { "totalAmount": 293.5, "currency": "USD", "balanceAmount": 293.5 }, "lineItems": [ { "productSku": "P653727383", "productName": "First line item's name", "unitPrice": 12.05, "quantity": 20, "totalAmount": 241 }, { "productSku": "P653727383", "productName": "First line item's name", "unitPrice": 5.25, "quantity": 10, "totalAmount": 52.5 } ] } }

REST Interactive Example: Create an Invoice Draft

Click this image to access the interactive code example for creating a invoice draft.

Figure:

Interactive Code
Image and link to the interactive code example for creating a new
                            invoice.

Create and Send an Invoice Immediately

Creating and sending an invoice publishes a payable invoice that is automatically emailed to the customer. In addition to the sent email, you can also share the invoice by sending the customer the redirect URL generated in the
invoiceInformation.paymentLink
response field.
Itemized Invoices
An invoice can display a single billed amount or list up to 30 billed items. To list the billed items in the invoice, include the items in the request using the line item array fields. An invoice with line items is known as an
itemized
invoice. For more information about how to include line items in your request, see Including Line Items in an Invoice.
Invoice Numbers
You can assign a unique invoice number in the
invoiceInformation.invoiceNumber
request field. The invoice number is required for follow-on API requests and tracking. You should store the invoice number in your system so that you can optimally perform the follow-on requests. If you do not include a unique invoice number when creating an invoice,
Visa Acceptance Solutions
generates a unique invoice number for you in the
invoiceInformation.invoiceNumber
response field.
IMPORTANT
You cannot update the invoice number after it is generated.
Installment Payments
Invoices can be paid in installment payments when these fields and values are included in the request. If an invoice is payable in installments, multiple customers can make payments towards the same invoice.
invoiceInformation.allowPartialPayments
Set to
true
.
orderInformation.amountDetails.minimumPartialAmount
Set to the minimum amount allowed for a partial payment.
Partner Information
If your merchant account is associated with a
Visa Acceptance Solutions
partner, you can include your partner solution ID (PSID) in the request message for tracking and reporting purposes. To include your PSID, use the
clientReferenceInformation.partner.solutionId
request field and set its field value to your PSID.
Alternative Methods to Create an Invoice
To create a new invoice that is
not
immediately sent in an email to the customer, see Create an Invoice without Sending it.
To create an invoice
draft
that is not payable or viewable to the customer, see Create a Draft Invoice.

Endpoint

Send an API POST request message to one of these endpoints:
Test:
POST
https://apitest.visaacceptance.com
/invoicing/v2/invoices
Production:
POST
https://api.visaacceptance.com
/invoicing/v2/invoices

Successful Response

A successfully created and sent invoice is indicated by the
SENT
status in the
status
response field. The response message also includes the newly created invoice's details.

Required Fields for Creating and Sending an Invoice

This section lists the required fields necessary to create and send these types of invoices:
  • Email invoice
  • Itemized email invoice

Required Fields for an Email Invoice

customerInformation.email
customerInformation.name
invoiceInformation.deliveryMode
Set to
email
.
invoiceInformation.description
invoiceInformation.dueDate
invoiceInformation.sendImmediately
Set to
true
.
orderInformation.amountDetails.currency
orderInformation.amountDetails.totalAmount

Required Fields for an Email Invoice with Line Items

customerInformation.email
customerInformation.name
invoiceInformation.deliveryMode
Set to
email
.
invoiceInformation.dueDate
invoiceInformation.sendImmediately
Set to
true
.
orderInformation.amountDetails.currency
orderInformation.amountDetails.totalAmount
orderInformation.lineItems[].productName
orderInformation.lineItems[].productSku
orderInformation.lineItems[].quantity
orderInformation.lineItems[].totalAmount
orderInformation.lineItems[].unitPrice

Optional Fields for Invoice Creation

You can include these optional fields when sending create invoice requests:
clientReferenceInformation.partner.developerId
Set to your developer ID.
clientReferenceInformation.partner.solutionId
Set to your partner solution ID (PSID).
customerInformation.company.name
customerInformation.email
customerInformation.merchantCustomerId
customerInformation.name
invoiceInformation.allowPartialPayments
Set to one of these possible values:
  • false
    : The invoice must be paid in a single payment.
  • true
    : The invoice is payable in installments.
invoiceInformation.deliveryMode
invoiceInformation.description
This field is optional when the line item fields are present in the request message.
invoiceInformation.invoiceNumber
Set to a unique number to create an invoice number.
If you do not include this field and a unique value, the invoicing API automatically generates an invoice number for the new invoice.
IMPORTANT
You cannot update this invoice number after sending the API request.
merchantDefinedFieldValues.definition id[].value
orderInformation.amountDetails.freight.amount
orderInformation.amountDetails.freight.taxable
orderInformation.amountDetails.freight.taxRate
orderInformation.amountDetails.minimumPartialAmount
orderInformation.amountDetails.subAmount

Example: Creating and Sending an Invoice

Request
{ "customerInformation": { "email": "[email protected]" }, "invoiceInformation": { "description": "This is a test invoice", "dueDate": "2019-07-11", "sendImmediately": true, "deliveryMode": "email" }, "orderInformation": { "amountDetails": { "totalAmount": "2623.64", "currency": "USD" } } }
Response to a Successful Request
{ "_links": { "self": { "href": "/v2/invoices/98768", "method": "GET" }, "update": { "href": "/v2/invoices/98768", "method": "PUT" }, "deliver": { "href": "/v2/invoices/98768/delivery", "method": "POST" }, "cancel": { "href": "/v2/invoices/98768/cancelation", "method": "POST" } }, "id": "98768", "submitTimeUtc": "2024-08-03T00:40:31.143121084Z", "status": "SENT", "customerInformation": { "email": "[email protected]" }, "processingInformation": { "requestPhone": false, "requestShipping": false }, "invoiceInformation": { "invoiceNumber": "98768", "description": "This is a test invoice", "dueDate": "2019-07-11", "allowPartialPayments": false, "paymentLink": "
https://businesscenter.visaacceptance.com
/ebc2/invoicing/payInvoice/2AgCNHLrUtD7hfFR5SVh5DSxISAbFD9zybhUjpxpZuXKLQVyuLttP78uWWLRSSNX?version=v2.1", "deliveryMode": "Email" }, "orderInformation": { "amountDetails": { "totalAmount": 2623.64, "currency": "USD", "balanceAmount": 2623.64 } } }
Request
{ "customerInformation": { "name": "Tanya Lee", "email": "[email protected]" }, "invoiceInformation": { "dueDate": "2019-07-11", "sendImmediately": true, "deliveryMode": "email" }, "orderInformation": { "amountDetails": { "totalAmount": 293.5, "currency": "USD" }, "lineItems": [ { "productSku": "P653727383", "productName": "First line item's name", "unitPrice": 12.05, "quantity": 20, "totalAmount": 241 }, { "productSku": "P653727383", "productName": "Second line item's name", "unitPrice": 5.25, "quantity": 10, "totalAmount": 52.5 } ] } }
Response to a Successful Request
{ "_links": { "self": { "href": "/v2/invoices/98769", "method": "GET" }, "update": { "href": "/v2/invoices/98769", "method": "PUT" }, "deliver": { "href": "/v2/invoices/98769/delivery", "method": "POST" }, "cancel": { "href": "/v2/invoices/98769/cancelation", "method": "POST" } }, "id": "98769", "submitTimeUtc": "2024-08-03T00:43:05.320320438Z", "status": "SENT", "customerInformation": { "name": "Tanya Lee", "email": "[email protected]" }, "processingInformation": { "requestPhone": false, "requestShipping": false }, "invoiceInformation": { "invoiceNumber": "98769", "dueDate": "2019-07-11", "allowPartialPayments": false, "paymentLink": "
https://businesscenter.visaacceptance.com
/ebc2/invoicing/payInvoice/XvgrhdaVUbBJb466S9nxqXpp1e2UHoFEUlhye9gtiwgi7gzv5fwqV8YgfP6xep0D?version=v2.1", "deliveryMode": "Email" }, "orderInformation": { "amountDetails": { "totalAmount": 293.5, "currency": "USD", "balanceAmount": 293.5 }, "lineItems": [ { "productSku": "P653727383", "productName": "First line item's name", "unitPrice": 12.05, "quantity": 20, "totalAmount": 241 }, { "productSku": "P653727383", "productName": "Second line item's name", "unitPrice": 5.25, "quantity": 10, "totalAmount": 52.5 } ] } }

REST Interactive Example: Create and Send an Invoice

Click this image to access the interactive code example for creating and sending a new invoice.

Figure:

Interactive Code
Image and link to the interactive code example for creating a new
                            invoice.

Create an Invoice without Sending it

Creating a new invoice publishes a payable invoice. To share the created invoice with a customer, send the customer the redirect URL generated in the
invoiceInformation.paymentLink
response field.
Itemized Invoices
An invoice can display a single billed amount or list up to 30 billed items. To list the billed items in the invoice, include the items in the request using the line item array fields. An invoice with line items is known as an
itemized
invoice. For more information about how to include line items in your request, see Including Line Items in an Invoice.
Invoice Numbers
You can assign a unique invoice number in the
invoiceInformation.invoiceNumber
request field. The invoice number is required for follow-on API requests and tracking. You should store the invoice number in your system so that you can optimally perform the follow-on requests. If you do not include a unique invoice number when creating an invoice,
Visa Acceptance Solutions
generates a unique invoice number for you in the
invoiceInformation.invoiceNumber
response field.
IMPORTANT
You cannot update the invoice number after it is generated.
Installment Payments
Invoices can be paid in installment payments when these fields and values are included in the request. If an invoice is payable in installments, multiple customers can make payments towards the same invoice.
invoiceInformation.allowPartialPayments
Set to
true
.
orderInformation.amountDetails.minimumPartialAmount
Set to the minimum amount allowed for a partial payment.
Partner Information
If your merchant account is associated with a
Visa Acceptance Solutions
partner, you can include your partner solution ID (PSID) in the request message for tracking and reporting purposes. To include your PSID, use the
clientReferenceInformation.partner.solutionId
request field and set its field value to your PSID.
Alternative Methods to Create an Invoice
To create
and send
a new invoice at the same time, see Create and Send an Invoice Immediately.
To create an invoice
draft
that is not payable or viewable to the customer, see Create a Draft Invoice.

Endpoint

Send an API POST request message to one of these endpoints:
Test:
POST
https://apitest.visaacceptance.com
/invoicing/v2/invoices
Production:
POST
https://api.visaacceptance.com
/invoicing/v2/invoices

Successful Response

A successfully created invoice is indicated by the
CREATED
status in the
status
response field. The response message also includes the newly created invoice's details for the new invoice.

Follow-On API Requests

After creating an invoice, you can send these follow-on API requests.
Send an Invoice
After creating an invoice, you can email the invoice to the customer using a send invoice request. For more information, see Send an Invoice.
Update an Invoice
To update customer information or item details in an invoice, send an update invoice request. For more information, see Update an Invoice.
Cancel an Invoice
To cancel an invoice, send a cancel invoice request. For more information, see Cancel an Invoice.
Get Invoice Details
You can retrieve an invoice's details by sending a get invoice details request. For more information, see Get Invoice Details.
Get List of Invoices
After creating multiple invoices, you might want to search for certain invoices. To retrieve a filtered list of invoices, send a get list of invoices request. For more information, see Get a List of Invoices.

Required Fields for Creating an Invoice

This section lists the required fields necessary to create these types of invoices:
  • In-person invoice
  • Email invoice
  • Itemized email invoice
The invoice created using these fields and specified values is not immediately sent to the customer.

Required Fields for Creating an In-Person Invoice

invoiceInformation.deliveryMode
Set to
none
.
invoiceInformation.description
invoiceInformation.dueDate
invoiceInformation.sendImmediately
Set to
true
.
orderInformation.amountDetails.currency
orderInformation.amountDetails.totalAmount

Required Fields for Creating an Email Invoice

customerInformation.email
customerInformation.name
invoiceInformation.deliveryMode
Set to
none
.
invoiceInformation.dueDate
invoiceInformation.sendImmediately
Set to
true
.
orderInformation.amountDetails.currency
orderInformation.amountDetails.totalAmount

Required Fields for Creating an Itemized Email Invoice

customerInformation.email
customerInformation.name
invoiceInformation.deliveryMode
Set to
none
.
invoiceInformation.dueDate
invoiceInformation.sendImmediately
Set to
true
.
orderInformation.amountDetails.currency
orderInformation.amountDetails.totalAmount
orderInformation.lineItems[].productName
Include for each item listed in the invoice.
orderInformation.lineItems[].productSku
Include for each item listed in the invoice.
orderInformation.lineItems[].quantity
Include for each item listed in the invoice.
orderInformation.lineItems[].totalAmount
Include for each item listed in the invoice.
orderInformation.lineItems[].unitPrice
Include for each item listed in the invoice.

Example: Creating an Invoice

Request
{ "invoiceInformation": { "description": "Food", "dueDate": "2019-07-11", "sendImmediately": true, "deliveryMode": "none" }, "orderInformation": { "amountDetails": { "totalAmount": "2623.64", "currency": "USD" } } }
Response to a Successful Request
{ "_links": { "self": { "href": "/v2/invoices/98761", "method": "GET" }, "update": { "href": "/v2/invoices/98761", "method": "PUT" }, "deliver": { "href": "/v2/invoices/98761/delivery", "method": "POST" }, "cancel": { "href": "/v2/invoices/98761/cancelation", "method": "POST" } }, "id": "98761", "submitTimeUtc": "2024-08-02T18:39:57.548314337Z", "status": "CREATED", "processingInformation": { "requestPhone": false, "requestShipping": false }, "invoiceInformation": { "invoiceNumber": "98761", "description": "Food", "dueDate": "2019-07-11", "allowPartialPayments": false, "paymentLink": "
https://businesscenter.visaacceptance.com
/ebc2/invoicing/payInvoice/wzvrzUssiXFLJ2RcJcmbuQEoHSrlcQudy9dL91Jxo8n4VcoRhNWRp8wvVDz8xtlD?version=v2.1", "deliveryMode": "None" }, "orderInformation": { "amountDetails": { "totalAmount": 2623.64, "currency": "USD", "balanceAmount": 2623.64 } } }
Request
{ "customerInformation": { "name": "Tanya Lee", "email": "[email protected]" }, "invoiceInformation": { "dueDate": "2019-07-11", "sendImmediately": true, "deliveryMode": "none" }, "orderInformation": { "amountDetails": { "totalAmount": 293.5, "currency": "USD" }, "lineItems": [ { "productSku": "P653727383", "productName": "First line item's name", "unitPrice": 12.05, "quantity": 20, "totalAmount": 241 }, { "productSku": "P653727383", "productName": "First line item's name", "unitPrice": 5.25, "quantity": 10, "totalAmount": 52.5 } ] } }
Response to a Successful Request
{ "_links": { "self": { "href": "/v2/invoices/98766", "method": "GET" }, "update": { "href": "/v2/invoices/98766", "method": "PUT" }, "deliver": { "href": "/v2/invoices/98766/delivery", "method": "POST" }, "cancel": { "href": "/v2/invoices/98766/cancelation", "method": "POST" } }, "id": "98766", "submitTimeUtc": "2024-08-03T00:02:49.453695409Z", "status": "CREATED", "customerInformation": { "name": "Tanya Lee", "email": "[email protected]" }, "processingInformation": { "requestPhone": false, "requestShipping": false }, "invoiceInformation": { "invoiceNumber": "98766", "dueDate": "2019-07-11", "allowPartialPayments": false, "paymentLink": "/ebc2/invoicing/payInvoice/JBOA7CQeoSFuUluwLqw2c6n8rf0KCO0cgJz19uQmxO9rF5tT8FdNGRTL9OHapjlr?version=v2.1", "deliveryMode": "None" }, "orderInformation": { "amountDetails": { "totalAmount": 293.5, "currency": "USD", "balanceAmount": 293.5 }, "lineItems": [ { "productSku": "P653727383", "productName": "First line item's name", "unitPrice": 12.05, "quantity": 20, "totalAmount": 241 }, { "productSku": "P653727383", "productName": "First line item's name", "unitPrice": 5.25, "quantity": 10, "totalAmount": 52.5 } ] } }

REST Interactive Example: Create a New Invoice

Click this image to access the interactive code example for creating a new invoice.

Figure:

Interactive Code
Image and link to the interactive code example for creating a new
                            invoice.

Get a List of Invoices

You can retrieve a list of your invoices by sending a get invoice list request. To filter the list results, you can add an optional string of query parameters to the endpoint. Filtering list results can help you retrieve specific invoices faster.
You can filter invoices by:
  • Number of invoices retrieved
  • Order of invoices
  • Status

Endpoints

Send your API request to one of these endpoints:
Test:
 
GET
https://apitest.visaacceptance.com
/invoicing/v2/invoices
Production:
 
GET
https://api.visaacceptance.com
/invoicing/v2/invoices

Generate an Endpoint with Query Parameters

You can filter your search results by appending an optional string of query parameters to the endpoint. A query parameter is also known as a
query-string
.
Begin each string with a question mark (
?
) to designate the start of the query parameters, and include an ampersand (
&
) at the beginning of each consecutive query parameter.
Use this format for appending a string of query parameters as name-value pairs:
?name1=value&name2=value&nameN=value
These are the query parameters to filter the retrieved list results:
Query Parameters
Query Parameter
Description
offset
The page offset number. This determines the order in which the invoices are retrieved, beginning with the consecutive number from the string value. For example, an offset of
3
results in a filtered list that begins with the fourth listed invoice.
Set to a whole number.
limit
The maximum number of items being retrieved.
Set to a whole number.
status
The status of the invoice.
Set to one of these possible values:
  • CANCELED
  • CREATED
  • DRAFT
  • PAID
  • PARTIAL
  • PENDING
    : The customer has initiated a payment for an invoice that is in the
    CREATED
    ,
    SENT
    , or
    PARTIAL
    status. The invoice can no longer be edited, and the customer can no longer initiate an payment in order to avoid a double payment. If the invoice payment requires a fraud review, the invoice will remain in the
    PENDING
    status until you approve or reject it.
  • SENT
In this example, up to 100 draft invoices are retrieved beginning with the fourth listed invoice:
GET
https://apitest.visaacceptance.com
/invoicing/v2/invoices?offset=3&limit=100&status=DRAFT

Example: Get a List of Invoices

Endpoint with Optional Query Parameters
GET
https://apitest.visaacceptance.com
/invoicing/v2/invoices?offset=0&limit=5&status=DRAFT
Request
{}
Response to a Successful Request
{ "_links": { "self": { "href": "/v2/invoices/?offset=0&limit=5", "method": "GET" }, "next": { "href": "/v2/invoices/?offset=5&limit=5", "method": "GET" } }, "submitTimeUtc": "2024-07-24T18:44:11.469054445Z", "totalInvoices": 38449, "invoices": [ { "_links": { "self": { "href": "/v2/invoices/2670", "method": "GET" }, "update": { "href": "/v2/invoices/2670", "method": "PUT" }, "deliver": { "href": "/v2/invoices/2670/delivery", "method": "POST" }, "cancel": { "href": "/v2/invoices/2670/cancelation", "method": "POST" } }, "id": "2670", "status": "SENT", "customerInformation": { "name": "Tanya Lee" }, "invoiceInformation": { "dueDate": "2019-07-11", "paymentLink": "https://developer.cybersource.com/ebc2/invoicing/payInvoice/W447tdnINi5t5wu6QA0KUE2HYWY2rQQ0zXL5b5z6M50w4Ea9FFlcYrEmp09pFlzl?version=v2.1" }, "orderInformation": { "amountDetails": { "totalAmount": 247.86, "currency": "USD" } } }, { "_links": { "self": { "href": "/v2/invoices/2669", "method": "GET" }, "update": { "href": "/v2/invoices/2669", "method": "PUT" }, "deliver": { "href": "/v2/invoices/2669/delivery", "method": "POST" }, "cancel": { "href": "/v2/invoices/2669/cancelation", "method": "POST" } }, "id": "2669", "status": "DRAFT", "customerInformation": { "name": "Tanya Lee" }, "invoiceInformation": { "dueDate": "2019-07-11" }, "orderInformation": { "amountDetails": { "totalAmount": 247.86, "currency": "USD" } } }, { "_links": { "self": { "href": "/v2/invoices/2668", "method": "GET" }, "update": { "href": "/v2/invoices/2668", "method": "PUT" }, "deliver": { "href": "/v2/invoices/2668/delivery", "method": "POST" }, "cancel": { "href": "/v2/invoices/2668/cancelation", "method": "POST" } }, "id": "2668", "status": "DRAFT", "customerInformation": { "name": "Tanya Lee" }, "invoiceInformation": { "dueDate": "2019-07-11" }, "orderInformation": { "amountDetails": { "totalAmount": 2623.64, "currency": "USD" } } }, { "_links": { "self": { "href": "/v2/invoices/2667", "method": "GET" }, "update": { "href": "/v2/invoices/2667", "method": "PUT" }, "deliver": { "href": "/v2/invoices/2667/delivery", "method": "POST" }, "cancel": { "href": "/v2/invoices/2667/cancelation", "method": "POST" } }, "id": "2667", "status": "DRAFT", "customerInformation": { "name": "Tanya Lee" }, "invoiceInformation": { "dueDate": "2019-07-11" }, "orderInformation": { "amountDetails": { "totalAmount": 2623.64, "currency": "USD" } } }, { "_links": { "self": { "href": "/v2/invoices/2666", "method": "GET" }, "update": { "href": "/v2/invoices/2666", "method": "PUT" }, "deliver": { "href": "/v2/invoices/2666/delivery", "method": "POST" }, "cancel": { "href": "/v2/invoices/2666/cancelation", "method": "POST" } }, "id": "2666", "status": "CREATED", "customerInformation": { "name": "Tanya Lee" }, "invoiceInformation": { "dueDate": "2019-07-11", "paymentLink": "https://developer.cybersource.com/ebc2/invoicing/payInvoice/i0wUKECHxctWAjRPKFgyEtZiSWxwgtZljBVSrxfFjbBVGgLpET8ROvOPdnhwCJTC?version=v2.1" }, "orderInformation": { "amountDetails": { "totalAmount": 2623.64, "currency": "USD" } } } ] }

REST Interactive Example: Get a List of Invoices

Click this image to access the interactive code example for retrieving a list of invoices.

Figure:

Interactive Code
Image and link to the interactive code example for creating a new
                            invoice.

Get Invoice Details

Retrieve an invoice's details to check its current status and payment history. Retrieving an invoice's details requires the unique invoice number assigned when the invoice was created.
If you need more information about the payment history, you can also use the transaction details API. For more information, see the Transaction Details API section in the
Transaction Search and Details API Developer Guide
.

Endpoints

Send your API request to one of these endpoints:
Test:
GET https://
https://apitest.visaacceptance.com
/invoicing/v2/invoices/
{id}
Production:
GET https://
https://api.visaacceptance.com
/invoicing/v2/invoices/
{id}
The
{id}
is the invoice number from the invoice creation response message.

Successful Response

A response contains this invoice information:
Response Fields to a Successful Request
Response Field
Description
submitTimeUtc
The date and time that the invoice was sent, in UTC format.
status
The invoice status. Possible values:
  • CANCELED
    : The invoice is cancelled.
  • CREATED
    : The invoice is created.
  • DRAFT
    : The invoice is drafted and not published.
  • PAID
    : The invoice is fully paid. The customer is notified that the payment is successful.
  • PARTIAL
    : The invoice is partially paid.
  • PENDING
    : Fraud management is reviewing the invoice and you must accept or reject the payment. The customer is also notified that the payment is processing. When you accept the payment, the invoice updates to the
    PAID
    status. If you reject the payment, the invoice updates to the
    SENT
    status.
    IMPORTANT
    This status is only retrievable for merchants with fraud management enabled.
  • SENT
    : The invoice is delivered to the customer.
customerInformation
(field object)
The customer's information, such as name and email.
invoiceInformation
(field object)
The
paymentLink
field contains the direct URL to the invoice.
orderInformation
(field object)
The itemized amount charged for the billed goods and services.
invoiceHistory
(field object)
An array of invoice status changes and the date and time stamp of each invoice status changed.

Example: Get Invoice Details

Endpoint with an Invoice Number
GET https://
https://api.visaacceptance.com
/invoicing/v2/invoices/2670
Request
{}
Response to a Successful Request
{ "_links": { "self": { "href": "/v2/invoices/2670", "method": "GET" }, "update": { "href": "/v2/invoices/2670", "method": "PUT" }, "deliver": { "href": "/v2/invoices/2670/delivery", "method": "POST" }, "cancel": { "href": "/v2/invoices/2670/cancelation", "method": "POST" } }, "id": "2670", "submitTimeUtc": "2024-07-24T18:36:18.863175539Z", "status": "SENT", "customerInformation": { "name": "Tanya Lee", "email": "[email protected]" }, "processingInformation": { "requestPhone": false, "requestShipping": false }, "invoiceInformation": { "invoiceNumber": "2670", "dueDate": "2019-07-11", "allowPartialPayments": false, "paymentLink": "
https://businesscenter.visaacceptance.com
/ebc2/invoicing/payInvoice/W447tdnINi5t5wu6QA0KUE2HYWY2rQQ0zXL5b5z6M50w4Ea9FFlcYrEmp09pFlzl?version=v2.1", "deliveryMode": "Email" }, "orderInformation": { "amountDetails": { "totalAmount": 247.86, "currency": "USD", "balanceAmount": 247.86 }, "lineItems": [ { "productSku": "P653727383", "productName": "First line item's name", "unitPrice": 12.05, "quantity": 20, "totalAmount": 247.86 } ] }, "invoiceHistory": [ { "event": "SEND", "date": "2024-07-24T18:35:23.320Z" }, { "event": "DRAFT", "date": "2024-07-24T18:35:22.960Z" } ] }

REST Interactive Example: Get Invoice Details

Click this image to access the interactive code example for retrieving invoice details.

Figure:

Interactive Code
Image and link to the interactive code example for creating a new
                            invoice.

Update an Invoice

You can update an invoice if no payment has been made. Include all of the fields that were contained in the original request message in the update request. If you do not include a field that was in the original request message, the field information associated with it will be removed in the updated invoice.
If you update the customer's email in the
customerInformation.email
request field, the generated redirect URL in the
invoiceInformation.paymentLink
response field changes and the previous URL becomes invalid. You can either share the new redirect URL with the customer, or resend the updated invoice using the send invoice request. For more information about how to resend an invoice, see Send an Invoice.
Itemized Invoices
An invoice can display a single billed amount or list up to 30 billed items. To list the billed items in the invoice, include the items in the request using the line item array fields. An invoice with line items is known as an
itemized
invoice. For more information about how to include line items in your request, see Including Line Items in an Invoice.
Installment Payments
Invoices can be paid in installment payments when these fields and values are included in the request. If an invoice is payable in installments, multiple customers can make payments towards the same invoice.
invoiceInformation.allowPartialPayments
Set to
true
.
orderInformation.amountDetails.minimumPartialAmount
Set to the minimum amount allowed for a partial payment.
Partner Information
If your merchant account is associated with a
Visa Acceptance Solutions
partner, you can include your partner solution ID (PSID) in the request message for tracking and reporting purposes. To include your PSID, use the
clientReferenceInformation.partner.solutionId
request field and set its field value to your PSID.

Endpoints

Send your API request message to one of these endpoints:
Test:
PUT
https://apitest.visaacceptance.com
/invoicing/v2/invoices/
{id}
Production:
PUT
https://api.visaacceptance.com
/invoicing/v2/invoices/
{id}
The
{id}
is the invoice number from the response to the create invoice request.

Required Fields for Updating an Invoice

Include these fields and any additional fields contained in the original request to create the invoice.
invoiceInformation.description
This field becomes optional if the line item fields are present in the request message.
invoiceInformation.dueDate
orderInformation.amountDetails.currency
orderInformation.amountDetails.totalAmount
orderInformation.lineItems[].productSku

Optional Fields for Updating an Invoice

Include all of the fields contained in the original request. If you do not include a field that was in the original request, the field information associated with it is removed in the updated invoice.
clientReferenceInformation.partner.solutionId
Set to your partner solution ID (PSID).
clientReferenceInformation.partner.developerId
Set to your developer ID.
customerInformation.company.name
customerInformation.email
customerInformation.merchantCustomerId
customerInformation.name
invoiceInformation.allowPartialPayments
invoiceInformation.deliveryMode
invoiceInformation.description
This field is optional when either of these conditions is met:
  • The
    invoiceInformation.deliveryMode
    request field is set to
    email
    .
  • The line item fields are present in the request message.
invoiceInformation.invoiceNumber
Set to a unique number to create an invoice number.
If you do not include this field and a unique value, the invoicing API automatically generates an invoice number for the new invoice.
IMPORTANT
You cannot update this invoice number after sending the API request.
invoiceInformation.sendImmediately
orderInformation.amountDetails.discountAmount
orderInformation.amountDetails.discountPercent
orderInformation.amountDetails.freight.amount
orderInformation.amountDetails.freight.taxable
orderInformation.amountDetails.freight.taxRate
orderInformation.amountDetails.minimumPartialAmount
orderInformation.amountDetails.subAmount
orderInformation.amountDetails.taxDetails.amount
orderInformation.amountDetails.taxDetails.rate
orderInformation.amountDetails.taxDetails.type
orderInformation.lineItems[].discountAmount
orderInformation.lineItems[].discountRate
orderInformation.lineItems[].taxAmount
orderInformation.lineItems[].taxRate
orderInformation.lineItems[].productName
orderInformation.lineItems[].productSku
orderInformation.lineItems[].quantity
orderInformation.lineItems[].totalAmount
orderInformation.lineItems[].unitPrice

Example: Updating an Invoice

Endpoint to Update an Invoice
https://api.visaacceptance.com
/invoicing/v2/invoices/98761
Request
{ "customerInformation": { "name": "Tanya Lee", "email": "[email protected]" }, "invoiceInformation": { "dueDate": "2019-07-15" }, "orderInformation": { "amountDetails": { "totalAmount": "2623.64", "currency": "USD" }, "lineItems": [ { "productSku": "P653727383", "productName": "First line item's name", "quantity": "20", "unitPrice": "12.05", "totalAmount": "247.86" } ] } }
Response to a Successful Request
{ "_links": { "self": { "href": "/v2/invoices/2670", "method": "GET" }, "update": { "href": "/v2/invoices/2670", "method": "PUT" }, "deliver": { "href": "/v2/invoices/2670/delivery", "method": "POST" }, "cancel": { "href": "/v2/invoices/2670/cancelation", "method": "POST" } }, "id": "2670", "submitTimeUtc": "2024-07-24T19:40:37.289869220Z", "status": "SENT", "customerInformation": { "name": "Tanya Lee", "email": "[email protected]" }, "processingInformation": { "requestPhone": false, "requestShipping": false }, "invoiceInformation": { "invoiceNumber": "2670", "dueDate": "2019-07-15", "allowPartialPayments": false, "paymentLink": "
https://businesscenter.visaacceptance.com
/ebc2/invoicing/payInvoice/W447tdnINi5t5wu6QA0KUE2HYWY2rQQ0zXL5b5z6M50w4Ea9FFlcYrEmp09pFlzl?version=v2.1", "deliveryMode": "Email" }, "orderInformation": { "amountDetails": { "totalAmount": 2623.64, "currency": "USD", "balanceAmount": 2623.64 }, "lineItems": [ { "productSku": "P653727383", "productName": "First line item's name", "unitPrice": 12.05, "quantity": 20, "totalAmount": 247.86 } ] } }
Request with Optional Fields
{ "customerInformation": { "name": "Tanya Lee", "email": "[email protected]", "merchantCustomerId": "1234", "company": { "name": "ABC" } }, "invoiceInformation": { "description": "This is an updated test invoice", "dueDate": "2019-07-15", "allowPartialPayments": true, "deliveryMode": "none" }, "orderInformation": { "amountDetails": { "totalAmount": "2623.64", "currency": "USD", "discountAmount": "126.08", "discountPercent": 5, "subAmount": 2749.72, "minimumPartialAmount": 200, "taxDetails": { "type": "State Tax", "amount": "208.00", "rate": "8.25" }, "freight": { "amount": "20.00", "taxable": true, "taxRate": "0.01" } }, "lineItems": [ { "productSku": "P653727383", "productName": "First line item's name", "quantity": "20", "unitPrice": "12.05", "discountAmount": "13.04", "discountRate": "0.0", "taxAmount": "0.0", "taxRate": "0.0", "totalAmount": "247.86" } ] } }
Response to a Successful Request with Optional Fields
{ "_links": { "self": { "href": "/v2/invoices/2670", "method": "GET" }, "update": { "href": "/v2/invoices/2670", "method": "PUT" }, "deliver": { "href": "/v2/invoices/2670/delivery", "method": "POST" }, "cancel": { "href": "/v2/invoices/2670/cancelation", "method": "POST" } }, "id": "2670", "submitTimeUtc": "2024-07-24T19:46:18.914132825Z", "status": "SENT", "customerInformation": { "name": "Tanya Lee", "email": "[email protected]", "merchantCustomerId": "1234", "company": { "name": "ABC" } }, "processingInformation": { "requestPhone": false, "requestShipping": false }, "invoiceInformation": { "invoiceNumber": "2670", "description": "This is an updated test invoice", "dueDate": "2019-07-15", "allowPartialPayments": true, "paymentLink": "
https://businesscenter.visaacceptance.com
/ebc2/invoicing/payInvoice/W447tdnINi5t5wu6QA0KUE2HYWY2rQQ0zXL5b5z6M50w4Ea9FFlcYrEmp09pFlzl?version=v2.1", "deliveryMode": "None" }, "orderInformation": { "amountDetails": { "totalAmount": 2623.64, "currency": "USD", "balanceAmount": 2623.64, "discountAmount": 126.08, "discountPercent": 5, "subAmount": 2749.72, "minimumPartialAmount": 200, "taxDetails": { "type": "State Tax", "amount": 208, "rate": 8.25 }, "freight": { "amount": 20, "taxable": true, "taxRate": 0.01 } }, "lineItems": [ { "productSku": "P653727383", "productName": "First line item's name", "unitPrice": 12.05, "quantity": 20, "discountAmount": 13.04, "taxAmount": 0, "taxRate": 0, "totalAmount": 247.86 } ] } }

REST Interactive Example: Update an Invoice

Click this image to access the interactive code example for updating an invoice.

Figure:

Interactive Code
Image and link to the interactive code example for creating a new
                            invoice.

Send an Invoice

You can send a published or drafted invoice that was not sent when it was initially created. You can also resend an unpaid invoice or a partially paid invoice. Fully paid or canceled invoices cannot be resent.

Endpoints

Send your API request message to one of these endpoints. 
Test:
POST
https://apitest.visaacceptance.com
/invoicing/v2/invoices/
{id}
/delivery
Production:
POST
https://api.visaacceptance.com
/invoicing/v2/invoices/
{id}
/delivery
The
{id}
is the invoice number from the response to the create invoice request.

Successful Response

A successful request is indicated by an updated submit time in the
submitTimeUtc
response field.
The invoice status in the
status
response field might update to a new status depending on the field value that was set in the
invoiceInformation.deliveryMode
request field when the invoice was initially created.
Use this table to determine how an invoice's status will change when you send or resend it. The Initial Status column indicates the invoice's initial status, which was in the
status
response field. The Delivery Method column indicates whether or not the customer was immediately emailed when the invoice was created, which was determined by the
invoiceInformation.deliveryMode
field value. The Notification Description column explains what happens to an invoice when you submit a send invoice request, which is the result of the invoice's initial status and whether or not it was emailed to the customer. The New Status column indicates the new status of the invoice after you submit a send invoice request, which can be found in the
status
response field.
New Invoice Statuses
Initial Status
Delivery Method
Notification Description
New Status
DRAFT
email
An invoice email is sent to the customer.
SENT
DRAFT
none
The customer is
not
sent an invoice email. To share the newly created invoice with the customer, send the customer the redirect URL generated in the
invoiceInformation.paymentLink
response field.
CREATED
CREATED
email
An invoice email is sent to the customer.
SENT
SENT
email
An invoice email is resent to the customer.
SENT
PARTIAL
email
An invoice email is sent to the customer.
PARTIAL

Example: Send an Invoice

Endpoint with an Invoice Number
https://api.visaacceptance.com
/invoicing/v2/invoices/2675/delivery
Request
{}
Response to a Successful Request
{ "_links": { "self": { "href": "/v2/invoices/2675", "method": "GET" }, "update": { "href": "/v2/invoices/2675", "method": "PUT" }, "deliver": { "href": "/v2/invoices/2675/delivery", "method": "POST" }, "cancel": { "href": "/v2/invoices/2675/cancelation", "method": "POST" } }, "id": "2675", "submitTimeUtc": "2024-07-24T19:54:06.665139633Z", "status": "CREATED", "customerInformation": { "name": "Tanya Lee", "email": "[email protected]", "merchantCustomerId": "1234", "company": { "name": "ABC" } }, "processingInformation": { "requestPhone": false, "requestShipping": false }, "invoiceInformation": { "invoiceNumber": "2675", "description": "This is a test invoice", "dueDate": "2019-07-11", "allowPartialPayments": true, "paymentLink": "https://developer.cybersource.com/ebc2/invoicing/payInvoice/9fO0CogtSMJiDO3VKR4GYijUSYHtKV4kjS6u0ENZpY9iq2pkdKJmwTTSlGCDOVHJ?version=v2.1", "deliveryMode": "None" }, "orderInformation": { "amountDetails": { "totalAmount": 2623.64, "currency": "USD", "balanceAmount": 2623.64, "discountAmount": 126.08, "discountPercent": 5, "subAmount": 2749.72, "minimumPartialAmount": 20, "taxDetails": { "type": "State Tax", "amount": 208, "rate": 8.25 }, "freight": { "amount": 20, "taxable": true } }, "lineItems": [ { "productSku": "P653727383", "productName": "First line item's name", "unitPrice": 12.05, "quantity": 20, "discountAmount": 13.04, "taxAmount": 0, "taxRate": 0, "totalAmount": 247.86 } ] } }

REST Interactive Example: Send an Invoice

Click this image to access the interactive code example for sending or resending an invoice.

Figure:

Interactive Code
Image and link to the interactive code example for creating a new
                            invoice.

Cancel an Invoice

You can cancel an unpaid invoice. Partially paid or fully paid invoices cannot be cancelled.
Cancelling an invoice requires the invoice number that was assigned when the invoice was created.

Endpoints

Send your API request message to one of these endpoints:  
Production:
 
POST
https://api.visaacceptance.com
/invoicing/v2/invoices/
{id}
/cancelation
Test:
 
POST
https://apitest.visaacceptance.com
/invoicing/v2/invoices/
{id}
/cancelation
The
{id}
is the invoice number from the response to the create invoice request.

Successful Response

A successful request is indicated by the
canceled
status in the
status
response field and an updated time in the
submitTimeUtc
response field.

Example: Cancelling an Invoice

Endpoint with an Invoice Number
https://apitest.visaacceptance.com
/invoicing/v2/invoices/2675/cancelation
Request
{}
Response to a Successful Request
{ "_links": { "self": { "href": "/v2/invoices/2675", "method": "GET" } }, "id": "2675", "submitTimeUtc": "2024-07-24T19:56:06.410896558Z", "status": "CANCELED", "customerInformation": { "name": "Tanya Lee", "email": "[email protected]", "merchantCustomerId": "1234", "company": { "name": "ABC" } }, "processingInformation": { "requestPhone": false, "requestShipping": false }, "invoiceInformation": { "invoiceNumber": "2675", "description": "This is a test invoice", "dueDate": "2019-07-11", "allowPartialPayments": true, "deliveryMode": "None" }, "orderInformation": { "amountDetails": { "totalAmount": 2623.64, "currency": "USD", "balanceAmount": 2623.64, "discountAmount": 126.08, "discountPercent": 5, "subAmount": 2749.72, "minimumPartialAmount": 20, "taxDetails": { "type": "State Tax", "amount": 208, "rate": 8.25 }, "freight": { "amount": 20, "taxable": true } }, "lineItems": [ { "productSku": "P653727383", "productName": "First line item's name", "unitPrice": 12.05, "quantity": 20, "discountAmount": 13.04, "taxAmount": 0, "taxRate": 0, "totalAmount": 247.86 } ] } }

REST Interactive Example: Cancel an Invoice

Click this image to access the interactive code example for cancelling an invoice.

Figure:

Interactive Code
Image and link to the interactive code example for creating a new
                            invoice.

Including Line Items in an Invoice

You can itemize invoices by including the line item fields in your request when you create, draft, and update an invoice.
Line items
are used to include information about your customers' purchases. Information can include product name, quantity, and price.
Line items are included in a request in the
lineItem[]
array request field.
You can include the line item fields in these requests:
These fields are required for each line item in your request:
orderInformation.lineItems[].productName
orderInformation.lineItems[].productSku
orderInformation.lineItems[].quantity
orderInformation.lineItems[].totalAmount
orderInformation.lineItems[].unitPrice
These fields are optional for each line item in your request:
orderInformation.lineItems[].discountAmount
orderInformation.lineItems[].discountRate
orderInformation.lineItems[].taxAmount
orderInformation.lineItems[].taxRate
Example: Including Line Items
This excerpt from a request shows three valid line items.
{ "orderInformation": { "lineItems": [ { "productSku": "ABCD1234", "productName": "First line item's name", "quantity": "20", "unitPrice": "12.05", "discountAmount": "13.04", "taxAmount": "0.0", "taxRate": "0.0", "totalAmount": "247.86" }, { "productSku": "EFGH5678", "productName": "Second line item's name", "quantity": "20", "unitPrice": "12.05", "discountAmount": "13.04", "taxAmount": "0.0", "taxRate": "0.0", "totalAmount": "247.86" }, { "productSku": "IJKL9999", "productName": "Third line item's name", "quantity": "20", "unitPrice": "12.05", "discountAmount": "13.04", "taxAmount": "0.0", "taxRate": "0.0", "totalAmount": "247.86" } ] } }

Invoice Settings API Requests

The Invoice Settings API enables you to customize your invoice checkout experience, add a custom message to your email communications, and enable payer authentication. You can also retrieve the invoice settings for your payment page.

Update Invoice Settings

Updating your invoice settings enables you to customize the checkout experience of the invoice payment page to match your branding:
  • Brand colors
  • Business name
  • Logo
  • VAT tax number
You can also choose to capture a customer's shipping information, phone number, and email during the checkout process.
To enable payer authentication, see Add Payer Authentication to Invoicing.

Endpoints

Send your API request message to one of these endpoints: 
Production:
PUT
https://api.visaacceptance.com
/invoicing/v2/invoiceSettings
Test:
PUT
https://apitest.visaacceptance.com
/invoicing/v2/invoiceSettings

Fields for Updating Invoice Settings

The update invoice settings request does not require a specific set of fields. Instead, you can choose the fields to include in your request based on aspects of your checkout experience, email communications, and payer authentication enablement.
Update Checkout Page Settings
Name
API Request Field
Description
Business Name
invoiceSettingsInformation.merchantDisplayName
The business name displayed on the invoice.
Currency
invoiceSettingsInformation.defaultCurrencyCode
The currency of the billed amount.
The currency code default value is set to
USD
when this field is not specified.
Only three-character ISO Standard Currency Codes are accepted.
Header Background Color
invoiceSettingsInformation.headerStyle.backgroundColor
The background color of the displayed invoice.
Only hexadecimal code values with a prefixed
#
are accepted.
Example:
#000000
Header Font Color
invoiceSettingsInformation.headerStyle.fontColor
The invoice font color.
Only hexadecimal code values with a prefixed
#
are accepted.
Example:
#000000
Logo
invoiceSettingsInformation.merchantLogo
The binary format of your logo that determines the image displayed to your customers.
Image files are restricted to 1 MB and must be encoded in Base64 format. These are the supported file types:
  • gif
  • jpg
  • png
VAT Tax Number
invoiceSettingsInformation.vatRegistrationNumber
The government-assigned tax identification number.
VAT Tax Number Displayed
invoiceSettingsInformation.showVatNumber
The toggle for displaying the VAT tax number in the invoice.
Possible values:
  • false
    : Do not display the VAT tax number.
  • true
    : Display the VAT tax number.
Update Email Communication Settings
Name
API Request Field
Description
Email Message
invoiceSettingsInformation.customEmailMessage
The custom message in the invoice email.
Email Reminder
invoiceSettingsInformation.enableReminders
The toggle for sending an email reminder to the customer five days before the invoice due and one day after it is past due.
Possible values:
  • False
    : No email reminder is sent.
  • True
    : Email reminders are sent.
Language
invoiceSettingsInformation.deliveryLanguage
The language of the email message sent to the customer.
Set to one of these possible values:
  • de-DE
    : German (Germany)
  • en-US
    : English (United States)
  • es-419
    : Spanish as used in Latin America and the Caribbean
  • fr-FR
    : French (France)
  • ja-JP
    : Japanese (Japan)
  • pt-BR
    : Portuguese (Brazil)
  • ru-RU
    : Russian (Russia)
  • zh-CN
    : Chinese (Simplified, People's Republic of China)
  • zh-TW
    : Chinese (Traditional, Taiwan)
Payer Authentication Enablement Settings
Name
API Request Field
Description
Payer Authentication Enablement
invoiceSettingsInformation.payerAuthenticationInInvoicing
The indicator for payer authentication enablement.
Possible values:
  • disable
    : Disable 3-D Secure
  • enable
    : Enable 3-D Secure payer authentication
For more information about including payer authentication to your invoices, see Add Payer Authentication to Invoicing.

Example: Update Invoice Settings

Request
{ "invoiceSettingsInformation": { "merchantLogo": "/9j/4AAQSkZJRgABAQEAYA", "merchantDisplayName": "Custom Merchant Display Name", "customEmailMessage": "Custom merchant email message", "enableReminders": true, "headerStyle": { "fontColor": "#000001", "backgroundColor": "#FFFFFF" }, "deliveryLanguage": "en-US", "defaultCurrencyCode": "USD", "payerAuthenticationInInvoicing": "enable", "showVatNumber": false, "vatRegistrationNumber": "Inv1234" } }
Response to a Successful Request
{ "submitTimeUtc": "2024-07-27T22:20:52.238332595Z", "invoiceSettingsInformation": { "merchantDisplayName": "Custom Merchant Display Name", "customEmailMessage": "Custom merchant email message", "enableReminders": true, "headerStyle": { "fontColor": "#000001", "backgroundColor": "#FFFFFF" }, "deliveryLanguage": "en-US", "defaultCurrencyCode": "USD", "payerAuthentication3DSVersion": "True", "showVatNumber": false, "phoneNumber": false, "shipTo": false, "email": true } }

REST Interactive Example: Update Invoice Settings

Click this image to access the interactive code example for updating invoice settings.

Figure:

Update Invoice Settings in the Developer Center Sandbox
Image and link to the interactive code example for updating invoice
                                settings.

Get Invoice Settings

You can retrieve the invoice settings for your payment page by sending a get invoice request.

Endpoints

Send the API request to one of these endpoints:
Production:
GET
https://api.visaacceptance.com
/invoicing/v2/invoiceSettings
Test:
GET
https://apitest.visaacceptance.com
/invoicing/v2/invoiceSettings

Successful Response

A successful request is indicated by a response message that includes this information:
  • Logo
  • Business name
  • Customized email message
  • Email reminder indicator
  • Color and font of the invoice
  • Language used in the invoice
  • Currency of the invoiced amount
  • Payer authentication enablement indicator

Example: Get Invoice Settings

Endpoint
GET
https://api.visaacceptance.com
/invoicing/v2/invoiceSettings
Request
{}
Response to a Successful Request
{ "submitTimeUtc": "2024-07-27T23:42:03.522831275Z", "invoiceSettingsInformation": { "merchantDisplayName": "Custom Merchant Display Name", "customEmailMessage": "Custom merchant email message", "enableReminders": true, "headerStyle": { "fontColor": "#000001", "backgroundColor": "#FFFFFF" }, "deliveryLanguage": "en-US", "defaultCurrencyCode": "USD", "payerAuthentication3DSVersion": "True", "showVatNumber": false, "phoneNumber": false, "shipTo": false, "email": true } }

REST Interactive Example: Get Invoice Settings

Click this image to access the interactive code example for updating invoice settings.

Figure:

Update Invoice Settings in the Developer Center Sandbox
Image and link to the interactive code example for updating invoice
                                settings.

Add Payer Authentication to Invoicing

You can enable Payer Authentication in your invoices.
Payer Authentication, also known as 3-D Secure, helps to minimize costly fraudulent transactions by adding an extra layer of protection to the payment process. The solution enables issuers to authenticate the cardholder using various available methods, such as one-time passwords and biometrics.
Invoicing supports these Payer Authentication services:
  • American Express SafeKey
  • JCB J/Secure
  • Mastercard Identity Check
  • Visa Secure
Card Types
Payer Authentication supports these card types:
  • American Express
  • Discover
  • JCB
  • Mastercard
  • Visa

Prerequisites for Payer Authentication

To sign-up and enable Payer Authentication, you must complete these tasks.
  1. Contact your
    Visa Acceptance Solutions
    account representative and provide your:
  2. Contact your acquirer, also known as the merchant bank, to establish the Payer Authentication service.
  3. If you are using an API, your software developer should become familiar with the API fields and technical details of this service.

Required Merchant Information

To enable Payer Authentication services, contact customer support and provide this information about your company and acquiring bank.
Required Merchant Information for Payer Authentication Services
Information
Description
About your company
  • Your
    Visa Acceptance Solutions
    merchant ID.
  • URL of your company’s website, for example:
    http://www.example.com
    .
  • Two-character ISO code for your country.
  • 3-D Secure requestor ID.
  • 3-D Secure requestor name.
  • Merchant category code.
Bank information
  • Name of your bank acquirer.
  • Complete name and address of your bank contact, including email address.
Payment card information
Supported card types:
  • American Express
  • Diners Club
  • Discover
  • JCB
  • Mastercard
  • Maestro
  • Visa
Information provided by your acquirer about each payment card company for which you are configured, including:
  • Six-digit BIN numbers.
  • Acquirer merchant ID: the merchant ID assigned by your acquirer.
  • All currencies that you can process.

Enable Payer Authentication

After completing the above requirements, you must enable Payer Authentication using either the invoicing API or the
Business Center
.
API Enablement
To enable Payer Authentication using the invoicing API, send an
update invoice settings
request and set the
invoiceSettingsInformation.payerAuthenticationInInvoicing
request field to
enable
.
For more information, see Update Invoice Settings.
Business Center
Enablement
  1. Log in to the
    Business Center
    .
  2. On the
    Business Center
    's left navigation bar, navigate to
    Invoicing > Manage Invoices
    .
  3. Click
    Settings
    .
  4. Click the
    Security
    tab.
  5. Select the
    Enable
    option.
  6. Click
    Save
    when done.

Add Invoicing Add-In to Outlook

The Visa Invoicing Add-In enables you to manage invoices directly from your Microsoft Outlook desktop application. From Outlook you can:
  • Create new simplified or itemized invoices.
  • Send invoices quickly and securely to your customers.
  • Track your customers' outstanding, overdue, and paid invoices.
  • Remind your customers to pay any outstanding or overdue invoices.
When you enter a customer's email address as the recipient of an email, the add-in uses the saved customer's information from your
Visa Acceptance Solutions
account to auto-generate messages with a secure payment link.
To use the Visa invoicing services from the add-in, you can log in to your existing
Visa Acceptance Solutions
account from the add-in, or register to create a test
Visa Acceptance Solutions
account.

Set Up Add-In

Follow one of these methods to set up the Visa Invoicing Add-in in Microsoft Outlook:
Set Up Add-In with an Existing
Visa Acceptance Solutions
Account
  1. Install the Visa Invoicing Add-In from the Microsoft App store.
  2. Log in to your
    Visa Acceptance Solutions
    account.
For more information, see Set up add-in with an existing account.
Set Up Add-In with a New
Visa Acceptance Solutions
Account
  1. Install the Visa Invoicing Add-In from the Microsoft App store.
  2. Register a
    Visa Acceptance Solutions
    test account.
  3. Go live by sending a MID configuration request.
For more information, see Set up add-in with a new account.

Services

These services are available in Outlook with the Visa Invoicing Add-In:

Set Up Add-In with Existing Account

Follow these steps to install and set up the Visa Invoicing Add-In for Microsoft Outlook if you already have a production
Visa Acceptance Solutions
account.
  1. Go to the Microsoft AppSource.
  2. Use the AppSource search field to find the
    Visa Invoicing
    add-in.
  3. Click
    Get it now
    to download and install it.
  4. If you are not already signed in to your Microsoft account, enter your account credentials on the Sign in to Microsoft AppSource window, then click
    Sign in
    .
  5. Confirm or edit your details, and click
    Get it now
    .
  6. A window opens asking if you would like to install Visa invoicing. Click
    Continue
    .
    The Visa Invoicing Add-in installs on your Outlook desktop application.
  7. Open your Outlook desktop application and click the
    Visa Invoicing
    add-in.
  8. On the Welcome page, click
    Get started
    .
  9. On the next page, choose the
    Production
    or
    Test
    environment, whichever your account is configured for, and then click
    Sign in to Visa Invoicing
    .
  10. On the sign-in page, enter your
    Business Center
    organization ID, username, and password. Click
    Sign in
    .
  11. Review the permissions disclosure, and click
    Allow
    to grant Microsoft Outlook access to your
    Business Center
    account for invoicing purposes.
    When you log in to the Visa Invoicing add-in, the Dashboard opens. You can choose from several tasks such as creating and managing invoices, managing permissions, and signing out. Any invoices you already have are listed.

Set Up Add-In with New Account

Follow these steps to install and set up the Visa Invoicing Add-In for Microsoft Outlook if you do not already have a
Visa Acceptance Solutions
account.
  1. Go to the Microsoft AppSource.
  2. Use the AppSource search field to find the
    Visa Invoicing
    add-in.
  3. Click
    Get it now
    to download and install it.
  4. If you are not already signed in to your Microsoft account, enter your account credentials on the Sign in to Microsoft AppSource window, then click
    Sign in
    .
  5. Confirm or edit your details, and click
    Get it now
    .
  6. A window opens asking if you would like to install Visa invoicing. Click
    Continue
    .
    The Visa Invoicing Add-in installs on your Outlook desktop application.
  7. Open your Outlook desktop application and click the
    Visa Invoicing
    add-in.
  8. On the Welcome page, click
    Get started
    .
  9. Click
    Create an account at Visa Invoicing
    .
    You are redirected to the Sign up for an account page.
  10. On the Sign up for an account page, enter the information requested, check the
    Terms and conditions
    check box, and then click
    Create Account
    .
  11. Check your email account for a
    Visa Acceptance Solutions
    Account Creation confirmation email message. The email will contain your account ID and your organization ID. In the email, click
    Set up your username and password now
    .
    You are redirected to the account creation page.
  12. On the New User Sign Up page, enter your Organization ID and Contact Email, and then click
    Submit
    .
  13. On the Create User Name page, enter your first name, last name, and username, and then click
    Next step
    .
  14. On the Create Password page, enter a password that conforms to the password requirements, and then click
    Create user
    .
    The Successfully Created User page opens, confirming that your account is successfully created.
  15. Open your Outlook desktop application and click the
    Visa Invoicing
    add-in.
  16. On the Welcome page, click
    Get started
    .
  17. Select
    Test
    environment and then click
    Sign in to Visa Invoicing
    .
  18. On the sign-in page, enter your
    Business Center
    organization ID, username, and password. Click
    Sign in
    .
  19. Review the permissions disclosure, and click
    Allow
    to grant Microsoft Outlook access to your
    Business Center
    account for invoicing purposes.
    When you log in to the Visa Invoicing add-in, the Dashboard opens. You can choose from several tasks such as creating and managing invoices, managing permissions, and signing out. Any invoices you already have are listed.
  20. When you are ready to activate your account for the production environment, click
    Go live
    .
    You are redirected to the
    Visa Acceptance Solutions
    Support Center.
  21. Click
    Sign in
    .
    You are redirected to the
    Business Center
    login page.
  22. Enter your organization ID, username, and password. When done, click
    Log in
    .
    You are redirected to the
    Visa Acceptance Solutions
    Support Center page.
  23. At the top of the page, choose
    Support Cases > MID Configuration Request
    .
  24. On the MID configuration request page, click the
    MID activation
    button to the right. Repeat for all other options that apply to you. When done, click
    Submit
    .
    You have successfully submitted a request to create a production account.

Create a Simple Invoice

A simple invoice is an invoice that displays a single amount for which your customer is being billed. To send an itemized invoice instead, see Create an Itemized Invoice.
Follow these steps to create and send a simple invoice.
  1. Open the Visa Invoicing add-in in your Microsoft Outlook desktop application.
  2. Click the
    Create simple invoice
    tab.
  3. Enter the following field information:
    Invoice Fields
    Field
    Description
    Customer name
    The customer's name or business name.
    Customer email
    The customer's email address or business email address.
    Invoice number
    A unique number for identifying an invoice. This number cannot change. It is also known as an
    invoice ID
    .
    Description
    A description of the billed goods or service for the invoice.
    Amount
    The amount billed to the customer in the invoice.
    Invoice due date
    The date by which the invoice must be paid.
    Click
    Insert invoice link
    .
    An invoice payment link is inserted into the email message body. If you are using a
    Business Center
    test account, an additional test link is inserted for you to test paying the invoice in the test environment.
  4. Send the email message with the invoice link included in the message body.

Create an Itemized Invoice

An itemized invoice lists each good and service for which your customer is being billed. This helps your customer to know the cost of individual goods and services. To send a simple invoice instead, see Create a Simple Invoice.
Follow these steps to create and send an itemized invoice.
  1. Open the Visa Invoicing add-in in your Microsoft Outlook desktop application.
  2. Click the
    Create list invoice
    tab.
  3. Enter the following field information:
    Invoice Fields
    Field
    Description
    Customer name*
    The customer's name or business name.
    Customer email*
    The customer's email address or business email address.
    Invoice number*
    A unique number for identifying an invoice. This number cannot change. It is also known as an
    invoice ID
    .
    Description*
    A description of the billed goods or service for the invoice.
    Invoice due date*
    The date by which the invoice must be paid.
    Item name*
    The name of the listed good or service the customer is being billed for.
    Amount*
    The billed amount for the listed good or service.
    Quantity*
    The number of goods or services listed in the invoice.
    Discount
    The deducted amount from an itemized good or service amount. Choose a fixed amount or a percentage amount for the deducted amount.
    Tax
    The tax percentage amount to be added to the billed amount.
    Shipping
    The fee amount for shipping the invoiced goods or services.
    Shipping Tax
    The tax percentage amount to be added to the shipping fee.
    The asterisk (*) denotes that the field information is required.
  4. To add listed items, click
    Add another item
    and enter the field information.
  5. When you are done entering all of the listed item information, click
    Insert invoice link
    .
    An invoice payment link is inserted into the email message body. If you are using a
    Business Center
    test account, an additional test link is inserted for you to test paying the invoice in the test environment.
  6. Send the email message with the invoice link included in the message body.

Manage Invoices

Follow these steps to view, track, and resend an invoice.
  1. Open the Visa Invoicing add-in in your Microsoft Outlook desktop application.
  2. Click the
    Dashboard
    tab.
    Use the (sort) button to organize the list by invoice number, due date, or status.
    Dashboard
    Tracking and Billing Information
    Description
    Invoice no.
    The unique invoice number used to identify and track and an individual invoice.
    Amount
    The billed amount in the invoice.
    Due date
    The date by which the billed amount is owed.
    Status
    Indicates whether the invoice has been paid.
    Possible values:
    • OVERDUE: The invoice is not paid, and the due date is passed.
    • PAID: The invoice is paid.
    • UNPAID: The invoice has not been paid.
  3. Click the invoice number of the invoice you want to view.
    The Invoice page opens.
  4. If the invoice is unpaid or overdue, you can resend it. Click
    Insert invoice link
    .
    An invoice payment link is inserted into the email message body.
  5. Send the email message with the invoice link included in the message body.

Revoke and Reconnect Outlook Permissions

Follow these steps to revoke Outlook's permission to access your
Business Center
invoicing information.
  1. Log in to the
    Business Center
    :
  2. On the left navigation panel, navigate to
    Account Management > Authorized applications
    .
  3. To revoke permissions, click
    Revoke
    for Invoicing.
    If it any time you want to grant Outlook permission to access your invoicing information again, follow the above steps and click
    Reconnect
    instead of
    Revoke
    .

Sign Out

Follow these steps to sign out of the Visa Invoicing add-in.
  1. Open the Visa Invoicing add-in in your Microsoft Outlook desktop application.
  2. Click
    Tap
    Tap
    .
  3. Click
    Sign out
    .
    The Sign out window opens.
  4. Click
    OK
    .
    The Visa Invoicing add-in sign-in page displays.

Webhook Notifications for Invoicing

Webhooks are automated notifications generated by system events that occur in your organization. You can create a webhook subscription for invoicing events to receive a notification when an invoice is:
  • Cancelled
  • Five-day early reminder
  • Fully paid
  • Overdue reminder
  • Partially paid
  • Sent
You must have a URL for the webhook notifications to be sent to.
Notifications that contain sensitive, personally identifiable information (PII), such as account numbers, are sent using message-level encryption. Transport Layer Security is required in order to ensure data integrity.
There are additional requirements for implementing webhooks that are not discussed in this guide. To create to webhook subscription to receive invoicing related notifications, see the
Webhooks Implementation Guide for the REST API
.

Invoicing Product ID and Event Types

When you send a
create a webhook subscription
request, set the
products.productId
field to
customerInvoicing
and set the
products.eventTypes
field to one or more of the values listed in the Event Type Field Value column in the table below. If you include multiple event types in your request, separate each event type field value with the comma character (
,
).
Invoicing Webhook Product ID and Event Types
Product ID
Event Type Field Value
Description
customerInvoicing
invoicing.customer.invoice.cancel
Merchants can subscribe to this event type to automate how their system is informed when an invoice is cancelled.
invoicing.customer.invoice.overdue-reminder
Notifies you 1 day after the invoice payment is due.
This event is triggered if you have invoice reminders enabled in your invoice settings.
invoicing.customer.invoice.paid
Merchants can subscribe to this event type to automate how their system is informed when an invoice is fully paid.
invoicing.customer.invoice.partial-payment
Merchants can subscribe to this event type to automate how their system is informed when an invoice is partially paid.
invoicing.customer.invoice.reminder
Notifies you 5 days before the invoice payment is due.
This event is triggered if you have invoice reminders enabled in your invoice settings.
invoicing.customer.invoice.send
Merchants can subscribe to this event type to automate how their system is informed when an invoice is sent to the customer.

Example: Creating an Invoice Webhook Subscription

IMPORTANT
There are additional requirements for implementing webhooks that are not discussed in this guide. To create to webhook subscription to receive invoicing related notifications, see the
Webhooks Implementation Guide for the REST API
.
Only use this example to reference how to format the
eventTypes
request field and its values.
Request
{ "name": "Invoicing Webhooks", "description": "Webhooks for Invoicing Events", "organizationId": "organizationId", "productId": "customerInvoicing", "eventTypes": [ "invoicing.customer.invoice.cancel", "invoicing.customer.invoice.paid", "invoicing.customer.invoice.partial-payment", "invoicing.customer.invoice.send" ], "webhookUrl": "https://test.com:443/test", "healthCheckUrl": "https://test.com:443/test", "notificationScope": "SELF", "retryPolicy": { "algorithm": "ARITHMETIC", "firstRetry": 1, "interval": 1, "numberOfRetries": 3, "deactivateFlag": "false", "repeatSequenceCount": 0, "repeatSequenceWaitTime": 0 }, "securityPolicy": { "securityType": "KEY", "proxyType": "external" } }
Response to a Successful Request
{ "organizationId": "invoicetest", "productId": "customerInvoicing", "eventTypes": [ "invoicing.customer.invoice.cancel", "invoicing.customer.invoice.paid", "invoicing.customer.invoice.partial-payment", "invoicing.customer.invoice.send" ], "webhookId": "fc880f5a-2145-44db-e053-9e588e0a6a26", "name": "Invoicing Webhooks", "webhookUrl": "https://test.com:443/test", "healthCheckUrl": "https://test.com:443/test", "createdOn": "2023-05-25T16:24:51.886Z", "status": "INACTIVE", "description": "Webhooks for Invoicing Events", "retryPolicy": { "algorithm": "ARITHMETIC", "firstRetry": 1, "interval": 1, "numberOfRetries": 3, "deactivateFlag": false, "repeatSequenceCount": 0, "repeatSequenceWaitTime": 0 }, "securityPolicy": { "securityType": "KEY", "proxyType": "external", "digitalSignatureEnabled": "yes" }, "version": "3", "deliveryType": "nrtdCentral", "notificationScope": "SELF" }

Manage Invoices Using the
Business Center

This section describes how to log in and perform these invoicing tasks in the
Business Center
:
  • Enable 3-D secure for your invoices
  • Manage your invoices
  • Apply fraud management detection to your invoices
  • Filter invoice transactions using transaction management
  • Generate reports with invoice data
  • Create custom fields and messages in an invoice
For additional documentation about how to perform other invoicing tasks in the
Business Center
, choose
Support > Help
on the top right of the
Business Center
home screen.

Logging in to the
Business Center

You can create, send, and manage invoices using the
Business Center
:
After logging into the
Business Center
, choose
Invoicing
on the left navigation panel to access the Invoicing menu.

Enabling 3-D Secure for Invoices

3-D Secure helps to minimize costly fraudulent transactions by adding an extra layer of protection to the payment process.
Follow these steps to enable 3-D Secure for your invoice transactions. You must have Payer Authentication already enabled for your account. If you do not, or you do not know, contact your
Visa Acceptance Solutions
account representative to enable it.
  1. On the left navigation panel, choose
    Invoicing > Manage Invoices
    .
    The Manage Invoices page appears.
  2. Click
    Settings
    .
  3. Click the
    Security
    tab.
    The 3-D Secure section appears.
  4. Choose
    Enable
    .
  5. When done, click
    Save
    .

Fraud Management for Invoices

This section describes how to use
Decision Manager
to apply fraud detection to invoice transactions.
Follow these steps to create a profile and a corresponding profile selector rule for your invoice transactions.
  1. On the left navigation panel, choose
    Decision Manager
    > Configuration > Profiles
    .
    The Profiles page appears.
  2. In the Order Profiles section, click
    ADD EMPTY PROFILE
    .
    The Profile Editor page appears.
  3. Enter the relevant information for these sections and their corresponding fields:

    ADDITIONAL INFORMATION

    • Profile Definition
    • Queue Selection
    • Fraud Score Threshold Rule Generator
  4. In the Rules section, select only Accept and Reject rules, and enter any relevant information into the
    Priority
    and
    Execution Timing
    fields.
  5. When done, click
    APPLY
    . You can click
    SAVE
    instead if you do not want the new profile to be immediately active.
    The Profiles page appears.
  6. In the Profile Selectors section, click
    ADD SELECTOR RULE
    .
    The Rule Definition page appears.
  7. In the Rule Definition section, enter this field information:
    Rule Definition Fields and Values
    Field
    Definition
    Name
    The name of the profile selector rule.
    Description
    The description that explains the profile selector rule.
    Profile
    Choose the profile you created on the Profile Editor page.
  8. In the Rule Conditions section, choose these options:
    1. Select
      All conditions below are true
      . By default, it should already be selected.
    2. Set Order Elements to
      Connection Method
      .
    3. Set Comparison Operator to
      is equal to
      .
    4. Set Comparison Values to
      Custom Value
      .
    5. In the Custom Value(s) field, enter
      Invoicing
      .
  9. When done, click
    APPLY
    . You can click
    SAVE
    instead if you do not want the new profile selector to be immediately active.

RESULT

The new profile selector now appears as an active selector.

Approving Payment Flagged for Fraud

This section describes how to approve an invoice payment that is flagged for fraud.
When the customer completes an invoice payment, this message may display to them: "Success. Your transaction is being processed. We will notify you when it is completed."
This message indicates that the payment is flagged for fraud. The customer must now wait until you accept or reject the payment using Decision Manager in the
Business Center
. Until you accept or reject the payment, the customer can no longer make the payment. If the customer reloads the payment screen, this message displays: "Information: A payment is pending completion."
Follow these steps to approve a payment flagged for fraud:
  1. On the left navigation panel choose
    Decision Manager > Case Management > Cases
    .
    The Case Management page appears.
  2. Click the order number of the pending invoice payment.
    A decision window appears.
  3. To approve the flagged invoice payment, click (approve).
  4. After reviewing the comments and reason codes, click
    ACCEPT
    .
    The settlement information displays.
  5. Click
    SETTLE
    .
    The payment is now settled.
  6. (Optional) You can enable automatic settlement and reversals for accepted and rejected payments. This expedites the review process.
    1. On the left navigation panel, choose
      Decision Manager > Configurations > Extended Settings
      .
      The Extended Settings page opens.
    2. In the Payment Processing section, use the Description drop-down menu to choose
      Enable with Settlement Selected
      . This option enables payments that you accept to automatically settle.

Rejecting Payment Flagged for Fraud

This section describes how to reject an invoice payment that is flagged for fraud.
When the customer completes an invoice payment, this message may display to them: "Success. Your transaction is being processed. We will notify you when it is completed."
This message indicates that the payment is flagged for fraud. The customer must now wait until you accept or reject the payment using Decision Manager in the
Business Center
. Until you accept or reject the payment, the customer can no longer make the payment. If the customer reloads the payment screen, this message displays: "Information: A payment is pending completion."
Follow these steps to reject a payment flagged for fraud:
  1. On the left navigation panel choose
    Decision Manager > Case Management > Cases
    .
    The Case Management page appears.
  2. Click the order number of the pending invoice payment.
    A decision window appears.
  3. To reject the flagged invoice payment, click (reject).
  4. After reviewing the comments and reason codes, click
    Select
    .
    The successful rejection message displays.
  5. (Optional) You can enable automatic settlement and reversals for accepted and rejected payments. This expedites the review process, making a seamless review experience.
    1. On the left navigation panel choose
      Decision Manager > Configurations > Extended Settings
      .
      The Extended Settings page opens.
    2. In the Decision Reject section, use the Description drop-down menu to choose
      Enable with authorization reversal selected by default
      . This option enables payments that you reject to automatically reverse.

Filtering Invoice Transactions in Transaction Management

This task describes how to view only your invoice transactions by using the filter tool in Transaction Management.
  1. On the left navigation panel, click
    Transaction Management
    >
    Transactions
    .
    The Transaction page appears.
  2. Click
    Add filter
    .
    The
    New Filter
    field appears.
  3. Click the
    New Filter
    field and enter
    Client Application
    or choose
    Client Application
    from the drop-down menu.
  4. Click the
    New Filter
    field again and enter
    Invoicing
    or choose
    Invoicing
    from the drop-down menu.
  5. When done, click
    Search
    .
    The Search Results table displays only your invoice transactions.
  6. (Optional) To verify that the transactions listed in the Search Results table are invoicing transactions, click
    Edit columns
    .
    The Edit Table Layout section appears.
  7. Click
    Add item
    .
    The Add Table Column page appears.
  8. In the
    Select Table Column
    field, enter
    Client Application
    or choose
    Client Application
    from the drop-down menu, and then click
    Save
    .
    The Edit Table Layout section appears.
  9. Click
    Save
    .
    The Search Results table appears with your filtered transactions and the new Client Application column. Each entry in the Client Application column should contain the Invoicing value, indicating that the transaction is an invoice.

Generating a Report with Invoice Data

This task describes how to use the Reports feature in the
Business Center
to generate a report that contains only your invoicing data.
  1. On the left navigation panel, choose
    Reports > Downloadable Reports > Available Reports
    .
    The Available Reports page appears.
  2. Click the
    Create custom report
    .
    The Create Report Subscription page appears.
  3. In the Advanced Report Features section, click the Connection Method drop-down menu and choose
    Invoicing
    .
    There is additional required information you must enter before you can generate a report.
  4. When done, click
    Create
    .
    The Report Subscription Management page appears.
    Click the
    Custom Report Subscriptions
    tab to view your new custom report that includes invoicing data.

Create a Custom Text Field for an Invoice

You can create a custom text field to display to your customers or merchants on your invoice checkout page. This text field enables users to enter information in the text field, or read a custom message. For example, you can give your customers the option to enter any specifications for their order in the text field. Follow these steps to create a custom text field.
  1. On the left navigation panel, choose
    Invoicing > Manage Invoices
    .
  2. Click the
    Custom Fields
    tab.
    The Custom Fields options displays.
  3. Click
    Text field
    .
  4. Enter this information in the fields:
    Text Field Information
    Field Name
    Description
    Label
    The title of the new custom text field.
    Min character limit
    The minimum number of characters the customer or merchant must enter in the text field.
    Max character limit
    The maximum number of characters the customer or merchant must enter in the text field.
    Default text
    The text that displays by default in the text field.
  5. Check the
    Customer visible
    box to make the text field viewable by the customer.
    You can check the
    Customer Read Only
    box to prevent the customer from entering text in the text field. Choose this option if you want to display a message to the customer.
  6. Click
    Add Field
    when done.

RESULT

The new custom text field is listed under the Custom Fields tab, and its corresponding drop-down menu appears in the invoice preview.

Creating New Custom Report Subscriptions

A recurring report subscription is a template that describes the attributes of a report, including how often it runs and the period of time it spans. After your recurring report is generated, it is available for download on the
Available Reports
page. You can maintain up to 20 report subscriptions at any time.
  • Name
    : a unique name for the report. The name cannot be changed after a report is created.
  • Report type
    : a set of reports that can be customized. The report type cannot be changed after a report is created.
  • Format
    : the format of a generated report (XML or CSV).
  • Frequency
    : the frequency at which a report runs: daily, weekly, or monthly.
  • Start time
    : the time of day at which a report runs.
The process for creating a report subscription is the same as for creating a one-time report. The steps listed below focus on creating recurring subscriptions.
To create a report subscription:
  1. On the left navigation pane, click the
    Reports
    icon.
  2. Under Downloadable Reports, click
    Report Subscription Management
    . The
    Report Subscription Management
    page appears.
  3. Click the
    Custom Report Subscriptions
    tab. The Custom Reports Subscriptions List appears.
  4. Click
    Create Subscription
    . The Create Report Subscription page appears.
  5. Under Account Setup, select whether to base the report on data from a specific merchant, or a group of merchants, and then choose an available value in the Merchants or Groups list.

    ADDITIONAL INFORMATION

    This option is only available for partners and account level users. To create a report that includes all merchants or groups, use the default value.
  6. Under Basic Report Setup, enter the following:
    1. In the
      Report Name
      field, enter the name for your report that best reflects the data you want to capture. Each report must have a unique name containing up to 250 characters.
    2. In the
      Report Type
      field, select the type of report that most closely represents the data or process you want to include. The
      Business Center
      automatically includes the most commonly used fields in your report based on this selection. See the next step for more information on how to customize these values.
    3. In the
      File Format
      field, choose whether the
      Business Center
      creates the report in XLS or XML format.
    4. In the
      Frequency
      field, choose
      Recurring subscription
      to automatically generates daily, weekly, or monthly reports. You can also create a One-time report.
  7. To change any of the default fields included in your report, click the
    Arrow
    icon to expand the Advanced Report Features section, and then perform one or more of the following actions (available actions are based on the services you use):
    In this field or tab
    Do this
    Credit Amounts
    Check the box if you want credits to appear as negative amounts (for example: -1390.00)
    Naming Convention
    Select how you want the field names to appear in the report:
    • SOAPI
      displays most field names in camel case (for example: FirstName)
    • SCMP
      displays most field names with underscores (for example: first_name)
    Application
    Select one or more types of applications you want to include in the report.
    Leave blank to include all types.
    Connection Method
    Select one or more connection methods used to perform the transaction that you want to include in the report.
    Leave blank to include all types.
    Available only for reports that include the Source field.
    Payment Channel
    Select one or more payment channels to include in the report. After you make a selection, an information alert lists the payment report field(s) associated with the selected payment channels.
    Leave blank to include all types.
    Field Selection
    One or more of the following:
    • Enter text matching a field name you want to find in the
      Search
      field.
    • Check the box for one or more fields or field types to include or remove from the report; check the
      Select All
      box to add or remove all fields.
      Click the
      ^
      in a section to expand or collapse it.
    • In the Selected column, click the
      X
      to remove a field or field type from the report
    Field Ordering
    To change the field order, click the up and down arrows or select a number in the Order drop-down menu. You can add or remove fields by clicking the plus and minus buttons.
    This option is only available for CSV output.
  8. When you are done, click
    Create
    . The Manage Report Subscription page appears, and the new subscription appears in the Custom Reports Subscriptions List.

Downloading Available Reports

The following types of downloadable reports are available in the
Business Center
, depending on your reporting history and usage:
  • Standard Reports
    : contains reports based on pre-defined report subscriptions.
  • Custom Reports
    : contains reports that the user has created or customized using a pre-defined report.
  • Classic Reports
    : contains new reports that have been configured for you based on your legacy subscriptions.
  • Third-Party Reports
    : contains any files from a third-party, typically your payment processor.
  • Legacy Reports
    : contains an archive of your legacy reports.
A tab may be empty if there are no reports in that category to display.
To download available reports:

Generating Custom Reports

The
Business Center
enables you to create your own reports based on the type of data you want to track (for example, transaction requests or invoice summaries). When you create a report subscription, the
Business Center
provides a set of fields for you to choose from; you can also add and remove additional fields based on your needs, and choose the order in which they appear and how they display in the report. You can also set how often you want to generate the report (or if you want to just run it once). Successfully generated reports appear in the
Available Reports
section.
To create a custom report subscription, create a brand new subscription, or save an existing standard or custom report as a new report.

Saving Existing Reports as New Subscriptions

You can choose to save any existing custom report as a new one; this enables you to copy over all the existing values, and change as much as you need to create a new report with a new name.
To create a new report or subscription based on an existing report:
  1. On the left navigation pane, click the
    Reports
    icon.
  2. Under Downloadable Reports, click
    Report Subscription Management
    . The
    Report Subscription Management
    page appears.
  3. Click the
    Custom Report Subscriptions
    tab. The Custom Reports Subscriptions List appears.
  4. Next to the report you want to copy, click the
    Save As
    ( ) icon. The Save New Subscription page appears.
  5. Under Account Setup, select whether to base the report on data from a specific merchant, or a group of merchants, and then choose an available value in the Merchants or Groups list.

    ADDITIONAL INFORMATION

    To create a report that includes all merchants or groups, use the default value.
  6. Under Basic Report Setup, enter a unique name for the report.

    ADDITIONAL INFORMATION

    All reports must have a unique name.
  7. Use the steps in Creating New Custom Report Subscriptions as a guideline for modifying report values.

    ADDITIONAL INFORMATION

    IMPORTANT
    You must change at least value to save the new report.
  8. When you are done, click
    Save As
    . The Manage Report Subscription page appears, and the new subscription appears in the Custom Reports Subscriptions List.

Generating One-Time Reports

The
Business Center
enables you to create your own reports when your needs don’t require an ongoing subscription. A one-time report might be useful when:
  • You need information about transactions that happened before you set up your recurring subscription.
  • You want to test a report before setting up a recurring subscription.
  • You need a particular type of information only one time, so a recurring subscription is unnecessary.
When you need past information that spans more than 31 days, you can create multiple one-time reports. In order to protect system performance, each user is able to generate up to three one-time reports concurrently. Additional one-time reports can be scheduled after the first three reports complete.
After your one-time report is generated, it is available for download on the
Available Reports
page. Depending on the size of the report, it might take longer than 6 hours to generate.
The process for creating a report subscription is the same as for creating a one-time report. The steps listed below focus on creating a one-time report; to follow steps specifically for creating custom subscriptions, see Creating New Custom Report Subscriptions
To generate a one-time report:
  1. On the left navigation pane, click the
    Reports
    icon.
  2. Under Downloadable Reports, click
    Available Reports
    . The
    Available Reports
    page appears.
  3. On the Custom Reports tab, click
    Create Report
    . The Create Report Subscription page appears.
  4. Under Account Setup, select whether to base the report on data from a specific merchant, or a group of merchants, and then choose an available value in the Merchants or Groups list.

    ADDITIONAL INFORMATION

    This option is only available for partners and account level users. To create a report that includes all merchants or groups, use the default value.
  5. Under Basic Report Setup, enter the following:
    1. In the
      Report Name
      field, enter the name for your report that best reflects the data you want to capture. Each report must have a unique name containing up to 250 characters.
    2. In the
      Report Type
      field, select the type of report that most closely represents the data or process you want to include. The
      Business Center
      automatically includes the most commonly used fields in your report based on this selection. See the next step for more information on how to customize these values
    3. In the
      File Format
      field, choose whether the
      Business Center
      creates the report in XLS or XML format.
    4. In the
      Frequency
      field, choose
      One-time report
      to create a single report covering the date range (and time zone) you choose. You can also select a Recurring subscription. For information about supported time zones, see Supported Time Zones.
  6. To change any of the default fields included in your report, click the
    Arrow
    icon to expand the Advanced Report Features section, and then perform one or more of the following actions (available actions are based on the services you use):
    In this field or tab
    Do this
    Credit Amounts
    Check the box if you want credits to appear as negative amounts (for example: -1390.00)
    Naming Convention
    Select how you want the field names to appear in the report:
    • SOAPI
      displays most field names in camel case (for example: FirstName)
    • SCMP
      displays most field names with underscores (for example: first_name)
    Application
    Select one or more types of applications you want to include in the report.
    Leave blank to include all types.
    Field Selection
    One or more of the following:
    • Enter text matching a field name you want to find in the
      Search
      field
    • Check the box for one or more fields or field types to include or remove from the report; check the
      Select All
      box to add or remove all fields.
      Click the
      ^
      in a section to expand or collapse it.
    • In the Selected column, click the
      X
      to remove a field or field type from the report
    Field Ordering
    Click and hold the
    Handle
    icon to rearrange fields (in the
    Selected
    column on the Field Selection tab) into the order in which you want them to appear in the report.
    This option is only available for CSV output.
  7. When you are done, click
    Create
    . The Available Reports page appears, and the new report appears in the Custom Reports List.

Payment Method Fields

Fields in this group prepend the field name with “PaymentMethod:”
Field Name
Description
AccountSuffix
Last four digits of the customer’s payment account number.
PaymentMethod. BankAccountName
Bank's account name.
PaymentMethod.BankCode
Bank's code. Used for some countries when you are not using the IBAN. Contact
Visa Acceptance Solutions
customer support for required country-specific bank account information.
BoletoBarCodeNumber
Numeric representation of the boleto barcode.
BoletoNumber
Boleto Bancário payment number.
CardCategory
Type of card used.
CardCategoryCode
Code for card type used.
CardType
Type of card to authorize.
CheckNumber
Check number.
ExpirationMonth
Two-digit month in which the credit card expires.
ExpirationYear
Four-digit year in which the credit card expires.
IssueNumber
Number of times a Maestro (UK Domestic) card has been issued to the account holder.
MandateId
Identification reference for the direct debit mandate.
MandateType
Type of mandate.
SignatureDate
Date of signature.
StartMonth
Month of the start of the Maestro (UK Domestic) card validity period.
StartYear
Year of the start of the Maestro (UK Domestic) card validity period.
WalletType
Type of wallet.

Supported Time Zones

This table lists the supported values for specifying a time zone. When using the
Business Center
, select the applicable time zone from the values listed in the
Business Center
column. When sending an API request, set the field to a value listed in the API column.
Time Zones
Business Center
API
Africa/Cairo - (GMT+02:00) Eastern European Time
Africa/Cairo
Africa/Johannesburg - (GMT+02:00) South Africa Standard Time
Africa/Johannesburg
Africa/Tripoli - (GMT+02:00) Eastern European Time
Africa/Tripoli
Africa/Tunis - (GMT+01:00) Central European Time
Africa/Tunis
America/Anchorage - (GMT-09:00) Alaska Standard Time
America/Anchorage
America/Bogota - (GMT-05:00) Colombia Time
America/Bogota
America/Buenos_Aires - (GMT-03:00) Argentine Time
America/Buenos_Aires
America/Chicago - (GMT-06:00) Central Standard Time
America/Chicago
America/Denver - (GMT-07:00) Mountain Standard Time
America/Denver
America/Edmonton - (GMT-07:00) Mountain Standard Time
America/Edmonton
America/Godthab - (GMT-03:00) Western Greenland Time
America/Godthab
America/Halifax - (GMT-04:00) Atlantic Standard Time
America/Halifax
America/Indianapolis - (GMT-05:00) Eastern Standard Time
America/Indianapolis
America/La_Paz - (GMT-04:00) Bolivia Time
America/La_Paz
America/Los_Angeles - (GMT-08:00) Pacific Standard Time
America/Los_Angeles
America/Mexico_City - (GMT-06:00) Central Standard Time
America/Mexico_City
America/New_York - (GMT-05:00) Eastern Standard Time
America/New_York
America/Noronha - (GMT-02:00) Fernando de Noronha Time
America/Noronha
America/Phoenix - (GMT-07:00) Mountain Standard Time
America/Phoenix
America/Sao_Paulo - (GMT-03:00) Brasilia Time
America/Sao_Paulo
America/St_Johns - (GMT-03:30) Newfoundland Standard Time
America/St_Johns
America/Vancouver - (GMT-08:00) Pacific Standard Time
America/Vancouver
America/Winnipeg - (GMT-06:00) Central Standard Time
America/Winnipeg
Asia/Baku - (GMT+04:00) Azerbaijan Time
Asia/Baku
Asia/Bangkok - (GMT+07:00) Indochina Time
Asia/Bangkok
Asia/Calcutta - (GMT+05:30) India Standard Time
Asia/Calcutta
Asia/Dacca - (GMT+06:00) Bangladesh Time
Asia/Dacca
Asia/Dubai - (GMT+04:00) Gulf Standard Time
Asia/Dubai
Asia/Hong_Kong - (GMT+08:00) Hong Kong Time
Asia/Hong_Kong
Asia/Jakarta - (GMT+07:00) West Indonesia Time
Asia/Jakarta
Asia/Jerusalem - (GMT+02:00) Israel Standard Time
Asia/Jerusalem
Asia/Katmandu - (GMT+05:45) Nepal Time
Asia/Katmandu
Asia/Kuala_Lumpur - (GMT+08:00) Malaysia Time
Asia/Kuala_Lumpur
Asia/Macao - (GMT+08:00) China Standard Time
Asia/Macao
Asia/Magadan - (GMT+11:00) Magadan Time
Asia/Magadan
Asia/Manila - (GMT+08:00) Philippines Time
Asia/Manila
Asia/Rangoon - (GMT +06:30) Myanmar Standard Time
Asia/Rangoon
Asia/Riyadh - (GMT+03:00) Arabia Standard Time
Asia/Riyadh
Asia/Saigon - (GMT+07:00) Indochina Time
Asia/Saigon
Asia/Seoul - (GMT+09:00) Korea Standard Time
Asia/Seoul
Asia/Shanghai - (GMT+08:00) China Standard Time
Asia/Shanghai
Asia/Singapore - (GMT+08:00) Singapore Time
Asia/Singapore
Asia/Taipei - (GMT+08:00) China Standard Time
Asia/Taipei
Asia/Tbilisi - (GMT+04:00) Georgia Time
Asia/Tbilisi
Asia/Tokyo - (GMT+09:00) Japan Standard Time
Asia/Tokyo
Asia/Yakutsk - (GMT+09:00) Yakutsk Time
Asia/Yakutsk
Atlantic/Cape_Verde - (GMT-01:00) Cape Verde Time
Atlantic/Cape_Verde
Australia/Adelaide - (GMT+09:30) Australian Central Standard Time
Australia/Adelaide
Australia/Brisbane - (GMT+10:00) Australian Eastern Standard Time
Australia/Brisbane
Australia/Broken_Hill - (GMT+09:30) Australian Central Standard Time
Australia/Broken_Hill
Australia/Darwin - (GMT+09:30) Australian Central Standard Time
Australia/Darwin
Australia/Eucla - (GMT+08:45) Australian Western Standard Time
Australia/Eucla
Australia/Hobart - (GMT+10:00) Australian Eastern Standard Time
Australia/Hobart
Australia/Lindeman - (GMT+10:00) Australian Eastern Standard Time
Australia/Lindeman
Australia/Lord_Howe - (GMT+10:30) Lord Howe Standard Time
Australia/Lord_Howe
Australia/Melbourne - (GMT+10:00) Australian Eastern Standard Time
Australia/Melbourne
Australia/Perth - (GMT+08:00) Australian Western Standard Time
Australia/Perth
Australia/Sydney - (GMT+10:00) Australian Eastern Standard Time
Australia/Sydney
Europe/Amsterdam - (GMT+01:00) Central European Time
Europe/Amsterdam
Europe/Athens - (GMT+02:00) Eastern European Time
Europe/Athens
Europe/Belgrade - (GMT+01:00) Central European Time
Europe/Belgrade
Europe/Berlin - (GMT+01:00) Central European Time
Europe/Berlin
Europe/Brussels - (GMT+01:00) Central European Time
Europe/Brussels
Europe/Bucharest - (GMT+02:00) Eastern European Time
Europe/Bucharest
Europe/Budapest - (GMT+01:00) Central European Time
Europe/Budapest
Europe/Copenhagen - (GMT+01:00) Central European Time
Europe/Copenhagen
Europe/Dublin - (GMT+00:00) Greenwich Mean Time
Europe/Dublin
Europe/Helsinki - (GMT+02:00) Eastern European Time
Europe/Helsinki
Europe/Istanbul - (GMT+02:00) Eastern European Time
Europe/Istanbul
Europe/Lisbon - (GMT+00:00) Western European Time
Europe/Lisbon
Europe/London - (GMT+00:00) Greenwich Mean Time
Europe/London
Europe/Madrid - (GMT+01:00) Central European Time
Europe/Madrid
Europe/Malta - (GMT+01:00) Central European Time
Europe/Malta
Europe/Minsk - (GMT+03:00) Moscow Standard Time
Europe/Minsk
Europe/Monaco - (GMT+01:00) Central European Time
Europe/Monaco
Europe/Moscow - (GMT+03:00) Moscow Standard Time
Europe/Moscow
Europe/Oslo - (GMT+01:00) Central European Time
Europe/Oslo
Europe/Paris - (GMT+01:00) Central European Time
Europe/Paris
Europe/Prague - (GMT+01:00) Central European Time
Europe/Prague
Europe/Riga - (GMT+02:00) Eastern European Time
Europe/Riga
Europe/Rome - (GMT+01:00) Central European Time
Europe/Rome
Europe/Stockholm - (GMT+01:00) Central European Time
Europe/Stockholm
Europe/Vienna - (GMT+01:00) Central European Time
Europe/Vienna
Europe/Warsaw - (GMT+01:00) Central European Time
Europe/Warsaw
Europe/Zurich - (GMT+01:00) Central European Time
Europe/Zurich
GMT - (GMT+00:00) Greenwich Mean Time
GMT
Pacific/Auckland - (GMT+12:00) New Zealand Standard Time
Pacific/Auckland
Pacific/Honolulu - (GMT-10:00) Hawaii Standard Time
Pacific/Honolulu
Pacific/Norfolk - (GMT+11:00) Norfolk Time
Pacific/Norfolk
Pacific/Pago_Pago - (GMT-11:00) Samoa Standard Time
Pacific/Pago_Pag

Creating New Custom Report Subscriptions

A recurring report subscription is a template that describes the attributes of a report, including how often it runs and the period of time it spans. After your recurring report is generated, it is available for download on the
Available Reports
page. You can maintain up to 20 report subscriptions at any time.
  • Name
    : a unique name for the report. The name cannot be changed after a report is created.
  • Report type
    : a set of reports that can be customized. The report type cannot be changed after a report is created.
  • Format
    : the format of a generated report (XML or CSV).
  • Frequency
    : the frequency at which a report runs: daily, weekly, or monthly.
  • Start time
    : the time of day at which a report runs.
The process for creating a report subscription is the same as for creating a one-time report. The steps listed below focus on creating recurring subscriptions.
To create a report subscription:
  1. On the left navigation pane, click the
    Reports
    icon.
  2. Under Downloadable Reports, click
    Report Subscription Management
    . The
    Report Subscription Management
    page appears.
  3. Click the
    Custom Report Subscriptions
    tab. The Custom Reports Subscriptions List appears.
  4. Click
    Create Subscription
    . The Create Report Subscription page appears.
  5. Under Account Setup, select whether to base the report on data from a specific merchant, or a group of merchants, and then choose an available value in the Merchants or Groups list.

    ADDITIONAL INFORMATION

    This option is only available for partners and account level users. To create a report that includes all merchants or groups, use the default value.
  6. Under Basic Report Setup, enter the following:
    1. In the
      Report Name
      field, enter the name for your report that best reflects the data you want to capture. Each report must have a unique name containing up to 250 characters.
    2. In the
      Report Type
      field, select the type of report that most closely represents the data or process you want to include. The
      Business Center
      automatically includes the most commonly used fields in your report based on this selection. See the next step for more information on how to customize these values.
    3. In the
      File Format
      field, choose whether the
      Business Center
      creates the report in XLS or XML format.
    4. In the
      Frequency
      field, choose
      Recurring subscription
      to automatically generates daily, weekly, or monthly reports. You can also create a One-time report.
  7. To change any of the default fields included in your report, click the Arrow ( ) icon to expand the Advanced Report Features section, and then perform one or more of the following actions (available actions are based on the services you use):
    1. In the
      Credit Amounts
      field, check the box if you want credits to appear as negative amounts (for example: -1390.00)
    2. In the
      Naming Convention
      field, select how you want the field names to appear in the report:
      SOAPI
      displays most field names in camel case (for example: FirstName);
      SCMP
      displays most field names with underscores (for example: first_name).
    3. In the
      Field Selection
      field, enter text matching a field name you want to find in the
      Search
      field, check the box for one or more fields or field types to include or remove from the report; check the
      Select All
      box to add or remove all fields. (Click the
      ^
      in a section to expand or collapse it.); and/or in the
      Selected
      column, click the
      X
      to remove a field or field type from the report
    4. In the
      Field Ordering
      field, click and hold the
      Handle
      icon to rearrange fields (in the
      Selected
      column on the Field Selection tab) into the order in which you want them to appear in the report
  8. When you are done, click
    Create
    . The Manage Report Subscription page appears, and the new subscription appears in the Custom Reports Subscriptions List.