On This Page
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:IMPORTANTAnImportantstatement 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:
- Create a draft invoice that is not emailed to the customer when the invoice is published. See Create a Draft Invoice.
- Create a draft invoice that is emailed to the customer when the invoice is published. See Create a Deliverable Draft 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.- 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.
- 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.
- 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.
- 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
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
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 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. |
|
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. |
|
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. |
|
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 anitemizedinvoice. 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 theinvoiceInformation.invoiceNumberrequest 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 Solutionsgenerates a unique invoice number for you in theinvoiceInformation.invoiceNumberresponse field.IMPORTANTYou 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 totrue.
- orderInformation.amountDetails.minimumPartialAmount
- Set to the minimum amount allowed for a partial payment.
- Partner Information
- If your merchant account is associated with aVisa Acceptance Solutionspartner, you can include your partner solution ID (PSID) in the request message for tracking and reporting purposes. To include your PSID, use theclientReferenceInformation.partner.solutionIdrequest field and set its field value to your PSID.
- Alternative Methods to Create an Invoice
- To create adraftinvoice 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 isnotimmediately sent in an email to the customer, see Create an Invoice without Sending it.To createand senda 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/invoicesProduction:
POST
https://api.visaacceptance.com
/invoicing/v2/invoicesResponse 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 toSENT.
- 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 theinvoiceInformation.paymentLinkresponse field. The invoice updates change toCREATED.
- invoiceInformation.description
- invoiceInformation.dueDate
- invoiceInformation.sendImmediately
- Set tofalse.
- orderInformation.amountDetails.currency
- orderInformation.amountDetails.totalAmount
Required Fields for Drafting an Email Invoice
- customerInformation.email
- customerInformation.name
- invoiceInformation.deliveryMode
- Set toemail.
- invoiceInformation.dueDate
- invoiceInformation.sendImmediately
- Set tofalse.
- 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 toSENT.
- 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 theinvoiceInformation.paymentLinkresponse field. The invoice status will change toCREATED.
- invoiceInformation.dueDate
- invoiceInformation.sendImmediately
- Set tofalse.
- 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, theinvoiceInformation.deliveryModerequest field is set toemail.
- 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.IMPORTANTYou 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 } ] } }
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 anitemizedinvoice. 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 theinvoiceInformation.invoiceNumberrequest 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 Solutionsgenerates a unique invoice number for you in theinvoiceInformation.invoiceNumberresponse field.IMPORTANTYou 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 totrue.
- orderInformation.amountDetails.minimumPartialAmount
- Set to the minimum amount allowed for a partial payment.
- Partner Information
- If your merchant account is associated with aVisa Acceptance Solutionspartner, you can include your partner solution ID (PSID) in the request message for tracking and reporting purposes. To include your PSID, use theclientReferenceInformation.partner.solutionIdrequest field and set its field value to your PSID.
- Alternative Methods to Create an Invoice
- To create adraftinvoice that isnotsent in an email message to the customer when you publish it, see Create a Draft Invoice.To create a new invoice that isnotimmediately sent in an email message to the customer, see Create an Invoice without Sending it.To createand senda 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/invoicesProduction:
POST
https://api.visaacceptance.com
/invoicing/v2/invoicesResponse 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 toSENT.
- 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 theinvoiceInformation.paymentLinkresponse field. The invoice updates change toCREATED.
- invoiceInformation.description
- invoiceInformation.dueDate
- invoiceInformation.sendImmediately
- Set tofalse.
- orderInformation.amountDetails.currency
- orderInformation.amountDetails.totalAmount
Required Fields for Drafting an Email Invoice
- customerInformation.email
- customerInformation.name
- invoiceInformation.deliveryMode
- Set toemail.
- invoiceInformation.dueDate
- invoiceInformation.sendImmediately
- Set tofalse.
- 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 toSENT.
- 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 theinvoiceInformation.paymentLinkresponse field. The invoice status will change toCREATED.
- invoiceInformation.dueDate
- invoiceInformation.sendImmediately
- Set tofalse.
- 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, theinvoiceInformation.deliveryModerequest field is set toemail.
- 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.IMPORTANTYou 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 } ] } }
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 anitemizedinvoice. 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 theinvoiceInformation.invoiceNumberrequest 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 Solutionsgenerates a unique invoice number for you in theinvoiceInformation.invoiceNumberresponse field.IMPORTANTYou 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 totrue.
- orderInformation.amountDetails.minimumPartialAmount
- Set to the minimum amount allowed for a partial payment.
- Partner Information
- If your merchant account is associated with aVisa Acceptance Solutionspartner, you can include your partner solution ID (PSID) in the request message for tracking and reporting purposes. To include your PSID, use theclientReferenceInformation.partner.solutionIdrequest field and set its field value to your PSID.
- Alternative Methods to Create an Invoice
- To create a new invoice that isnotimmediately sent in an email to the customer, see Create an Invoice without Sending it.To create an invoicedraftthat 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/invoicesProduction:
POST
https://api.visaacceptance.com
/invoicing/v2/invoicesSuccessful 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 toemail.
- invoiceInformation.description
- invoiceInformation.dueDate
- invoiceInformation.sendImmediately
- Set totrue.
- orderInformation.amountDetails.currency
- orderInformation.amountDetails.totalAmount
Required Fields for an Email Invoice with Line Items
- customerInformation.email
- customerInformation.name
- invoiceInformation.deliveryMode
- Set toemail.
- invoiceInformation.dueDate
- invoiceInformation.sendImmediately
- Set totrue.
- 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.IMPORTANTYou 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 } ] } }
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 anitemizedinvoice. 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 theinvoiceInformation.invoiceNumberrequest 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 Solutionsgenerates a unique invoice number for you in theinvoiceInformation.invoiceNumberresponse field.IMPORTANTYou 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 totrue.
- orderInformation.amountDetails.minimumPartialAmount
- Set to the minimum amount allowed for a partial payment.
- Partner Information
- If your merchant account is associated with aVisa Acceptance Solutionspartner, you can include your partner solution ID (PSID) in the request message for tracking and reporting purposes. To include your PSID, use theclientReferenceInformation.partner.solutionIdrequest field and set its field value to your PSID.
- Alternative Methods to Create an Invoice
- To createand senda new invoice at the same time, see Create and Send an Invoice Immediately.To create an invoicedraftthat 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/invoicesProduction:
POST
https://api.visaacceptance.com
/invoicing/v2/invoicesSuccessful 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 tonone.
- invoiceInformation.description
- invoiceInformation.dueDate
- invoiceInformation.sendImmediately
- Set totrue.
- orderInformation.amountDetails.currency
- orderInformation.amountDetails.totalAmount
Required Fields for Creating an Email Invoice
- customerInformation.email
- customerInformation.name
- invoiceInformation.deliveryMode
- Set tonone.
- invoiceInformation.dueDate
- invoiceInformation.sendImmediately
- Set totrue.
- orderInformation.amountDetails.currency
- orderInformation.amountDetails.totalAmount
Required Fields for Creating an Itemized Email Invoice
- customerInformation.email
- customerInformation.name
- invoiceInformation.deliveryMode
- Set tonone.
- invoiceInformation.dueDate
- invoiceInformation.sendImmediately
- Set totrue.
- 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 } ] } }
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/invoicesProduction:
GET
https://api.visaacceptance.com
/invoicing/v2/invoicesGenerate 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 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:
|
In this example, up to 100 draft invoices are retrieved beginning with the fourth listed
invoice:
GEThttps://apitest.visaacceptance.com/invoicing/v2/invoices?offset=3&limit=100&status=DRAFT
Example: Get a List of Invoices
Endpoint with Optional Query Parameters
GEThttps://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" } } } ] }
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 is the invoice number from the invoice creation response
message.
{id}
Successful Response
A response contains this invoice information:
Response Field | Description |
---|---|
submitTimeUtc | The date and time that the invoice was sent, in UTC format. |
status | The invoice status. Possible values:
|
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" } ] }
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 anitemizedinvoice. 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 totrue.
- orderInformation.amountDetails.minimumPartialAmount
- Set to the minimum amount allowed for a partial payment.
- Partner Information
- If your merchant account is associated with aVisa Acceptance Solutionspartner, you can include your partner solution ID (PSID) in the request message for tracking and reporting purposes. To include your PSID, use theclientReferenceInformation.partner.solutionIdrequest 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 is the invoice number from the response to the create
invoice request.
{id}
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:
- TheinvoiceInformation.deliveryModerequest field is set toemail.
- 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.IMPORTANTYou 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 } ] } }
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}
/deliveryProduction:
POST
https://api.visaacceptance.com
/invoicing/v2/invoices/{id}
/deliveryThe is the invoice number from the response to the create
invoice request.
{id}
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.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 } ] } }
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}
/cancelationTest:
POST
https://apitest.visaacceptance.com
/invoicing/v2/invoices/{id}
/cancelationThe is the invoice number from the response to the create
invoice request.
{id}
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 } ] } }
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/invoiceSettingsTest:
PUT
https://apitest.visaacceptance.com
/invoicing/v2/invoiceSettingsFields 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.
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:
|
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:
|
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:
|
Language | invoiceSettingsInformation.deliveryLanguage | The language of the email message sent to the customer. Set to one of these possible values:
|
Name | API Request Field | Description |
---|---|---|
Payer Authentication Enablement | invoiceSettingsInformation.payerAuthenticationInInvoicing | The indicator for payer authentication enablement. Possible values:
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 } }
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/invoiceSettingsTest:
GET
https://apitest.visaacceptance.com
/invoicing/v2/invoiceSettingsSuccessful 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
GEThttps://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 } }
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.
- Contact yourVisa Acceptance Solutionsaccount representative and provide your:
- Visa Acceptance Solutionstest merchant ID
- Contact your acquirer, also known as the merchant bank, to establish the Payer Authentication service.
- 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.
Information | Description |
---|---|
About your company |
|
Bank information |
|
Payment card information Supported card types:
| Information provided by your acquirer about each
payment card company for which you are configured, including:
|
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 anupdate invoice settingsrequest and set theinvoiceSettingsInformation.payerAuthenticationInInvoicingrequest field toenable.For more information, see Update Invoice Settings.
- Business CenterEnablement
- Log in to theBusiness Center.
- Production:Production:
- On theBusiness Center's left navigation bar, navigate toInvoicing > Manage Invoices.
- ClickSettings.
- Click theSecuritytab.
- Select theEnableoption.
- ClickSavewhen 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 ExistingVisa Acceptance SolutionsAccount
- Install the Visa Invoicing Add-In from the Microsoft App store.
- Log in to yourVisa Acceptance Solutionsaccount.
For more information, see Set up add-in with an existing account.- Set Up Add-In with a NewVisa Acceptance SolutionsAccount
- Install the Visa Invoicing Add-In from the Microsoft App store.
- Register aVisa Acceptance Solutionstest account.
- 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.- Go to the Microsoft AppSource.
- Use the AppSource search field to find theVisa Invoicingadd-in.
- ClickGet it nowto download and install it.
- If you are not already signed in to your Microsoft account, enter your account credentials on the Sign in to Microsoft AppSource window, then clickSign in.
- Confirm or edit your details, and clickGet it now.
- A window opens asking if you would like to install Visa invoicing. ClickContinue.The Visa Invoicing Add-in installs on your Outlook desktop application.
- Open your Outlook desktop application and click theVisa Invoicingadd-in.
- On the Welcome page, clickGet started.
- On the next page, choose theProductionorTestenvironment, whichever your account is configured for, and then clickSign in to Visa Invoicing.
- On the sign-in page, enter yourBusiness Centerorganization ID, username, and password. ClickSign in.
- Review the permissions disclosure, and clickAllowto grant Microsoft Outlook access to yourBusiness Centeraccount 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.- Go to the Microsoft AppSource.
- Use the AppSource search field to find theVisa Invoicingadd-in.
- ClickGet it nowto download and install it.
- If you are not already signed in to your Microsoft account, enter your account credentials on the Sign in to Microsoft AppSource window, then clickSign in.
- Confirm or edit your details, and clickGet it now.
- A window opens asking if you would like to install Visa invoicing. ClickContinue.The Visa Invoicing Add-in installs on your Outlook desktop application.
- Open your Outlook desktop application and click theVisa Invoicingadd-in.
- On the Welcome page, clickGet started.
- ClickCreate an account at Visa Invoicing.You are redirected to the Sign up for an account page.
- On the Sign up for an account page, enter the information requested, check theTerms and conditionscheck box, and then clickCreate Account.
- Check your email account for aVisa Acceptance SolutionsAccount Creation confirmation email message. The email will contain your account ID and your organization ID. In the email, clickSet up your username and password now.You are redirected to the account creation page.
- On the New User Sign Up page, enter your Organization ID and Contact Email, and then clickSubmit.
- On the Create User Name page, enter your first name, last name, and username, and then clickNext step.
- On the Create Password page, enter a password that conforms to the password requirements, and then clickCreate user.The Successfully Created User page opens, confirming that your account is successfully created.
- Open your Outlook desktop application and click theVisa Invoicingadd-in.
- On the Welcome page, clickGet started.
- SelectTestenvironment and then clickSign in to Visa Invoicing.
- On the sign-in page, enter yourBusiness Centerorganization ID, username, and password. ClickSign in.
- Review the permissions disclosure, and clickAllowto grant Microsoft Outlook access to yourBusiness Centeraccount 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.
- When you are ready to activate your account for the production environment, clickGo live.You are redirected to theVisa Acceptance SolutionsSupport Center.
- ClickSign in.You are redirected to theBusiness Centerlogin page.
- Enter your organization ID, username, and password. When done, clickLog in.You are redirected to theVisa Acceptance SolutionsSupport Center page.
- At the top of the page, chooseSupport Cases > MID Configuration Request.
- On the MID configuration request page, click theMID activationbutton to the right. Repeat for all other options that apply to you. When done, clickSubmit.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.
- Open the Visa Invoicing add-in in your Microsoft Outlook desktop application.
- Click theCreate simple invoicetab.
- Enter the following field information:Invoice FieldsFieldDescriptionCustomer nameThe customer's name or business name.Customer emailThe customer's email address or business email address.Invoice numberA unique number for identifying an invoice. This number cannot change. It is also known as aninvoice ID.DescriptionA description of the billed goods or service for the invoice.AmountThe amount billed to the customer in the invoice.Invoice due dateThe date by which the invoice must be paid.ClickInsert invoice link.An invoice payment link is inserted into the email message body. If you are using aBusiness Centertest account, an additional test link is inserted for you to test paying the invoice in the test environment.
- 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.
- Open the Visa Invoicing add-in in your Microsoft Outlook desktop application.
- Click theCreate list invoicetab.
- Enter the following field information:Invoice FieldsFieldDescriptionCustomer 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 aninvoice 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.DiscountThe deducted amount from an itemized good or service amount. Choose a
fixed amount or a
percentage amount for the deducted amount.
TaxThe tax percentage amount to be added to the billed amount.ShippingThe fee amount for shipping the invoiced goods or services.Shipping TaxThe tax percentage amount to be added to the shipping fee.The asterisk (*) denotes that the field information is required. - To add listed items, clickAdd another itemand enter the field information.
- When you are done entering all of the listed item information, clickInsert invoice link.An invoice payment link is inserted into the email message body. If you are using aBusiness Centertest account, an additional test link is inserted for you to test paying the invoice in the test environment.
- 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.
- Open the Visa Invoicing add-in in your Microsoft Outlook desktop application.
- Click theDashboardtab.Use the
(sort) button to organize the list by invoice number, due date, or status.
DashboardTracking and Billing InformationDescriptionInvoice no.The unique invoice number used to identify and track and an individual invoice.AmountThe billed amount in the invoice.Due dateThe date by which the billed amount is owed.StatusIndicates 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.
- Click the invoice number of the invoice you want to view.The Invoice page opens.
- If the invoice is unpaid or overdue, you can resend it. ClickInsert invoice link.An invoice payment link is inserted into the email message body.
- 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.- Log in to theBusiness Center:
- On the left navigation panel, navigate toAccount Management > Authorized applications.
- To revoke permissions, clickRevokefor Invoicing.If it any time you want to grant Outlook permission to access your invoicing information again, follow the above steps and clickReconnectinstead ofRevoke.
Sign Out
Follow these steps to sign out of the Visa Invoicing add-in.
- Open the Visa Invoicing add-in in your Microsoft Outlook desktop application.
- ClickTapTap.
- ClickSign out.The Sign out window opens.
- ClickOK.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 (,
). 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
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
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.- Log in to theBusiness Center:
- On the left navigation panel, chooseInvoicing > Manage Invoices.The Manage Invoices page appears.
- ClickSettings.
- Click theSecuritytab.The 3-D Secure section appears.
- ChooseEnable.
- When done, clickSave.
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.
- Log in to theBusiness Center:
- On the left navigation panel, choose.Decision Manager> Configuration > ProfilesThe Profiles page appears.
- In the Order Profiles section, clickADD EMPTY PROFILE.The Profile Editor page appears.
- Enter the relevant information for these sections and their corresponding fields:
ADDITIONAL INFORMATION
- Profile Definition
- Queue Selection
- Fraud Score Threshold Rule Generator
- In the Rules section, select only Accept and Reject rules, and enter any relevant information into thePriorityandExecution Timingfields.
- When done, clickAPPLY. You can clickSAVEinstead if you do not want the new profile to be immediately active.The Profiles page appears.
- In the Profile Selectors section, clickADD SELECTOR RULE.The Rule Definition page appears.
- In the Rule Definition section, enter this field information:Rule Definition Fields and ValuesFieldDefinitionNameThe name of the profile selector rule.DescriptionThe description that explains the profile selector rule.ProfileChoose the profile you created on the Profile Editor page.
- In the Rule Conditions section, choose these options:
- SelectAll conditions below are true. By default, it should already be selected.
- Set Order Elements toConnection Method.
- Set Comparison Operator tois equal to.
- Set Comparison Values toCustom Value.
- In the Custom Value(s) field, enterInvoicing.
- When done, clickAPPLY. You can clickSAVEinstead 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:
- Log in to theBusiness Center:
- On the left navigation panel chooseDecision Manager > Case Management > Cases.The Case Management page appears.
- Click the order number of the pending invoice payment.A decision window appears.
- To approve the flagged invoice payment, click
(approve).
- After reviewing the comments and reason codes, clickACCEPT.The settlement information displays.
- ClickSETTLE.The payment is now settled.
- (Optional) You can enable automatic settlement and reversals for accepted and rejected payments. This expedites the review process.
- On the left navigation panel, chooseDecision Manager > Configurations > Extended Settings.The Extended Settings page opens.
- In the Payment Processing section, use the Description drop-down menu to chooseEnable 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:
- Log in to theBusiness Center:
- On the left navigation panel chooseDecision Manager > Case Management > Cases.The Case Management page appears.
- Click the order number of the pending invoice payment.A decision window appears.
- To reject the flagged invoice payment, click
(reject).
- After reviewing the comments and reason codes, clickSelect.The successful rejection message displays.
- (Optional) You can enable automatic settlement and reversals for accepted and rejected payments. This expedites the review process, making a seamless review experience.
- On the left navigation panel chooseDecision Manager > Configurations > Extended Settings.The Extended Settings page opens.
- In the Decision Reject section, use the Description drop-down menu to chooseEnable 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.
- Log in to theBusiness Center:
- On the left navigation panel, clickTransaction Management>Transactions.The Transaction page appears.
- ClickAdd filter.TheNew Filterfield appears.
- Click theNew Filterfield and enterClient Applicationor chooseClient Applicationfrom the drop-down menu.
- Click theNew Filterfield again and enterInvoicingor chooseInvoicingfrom the drop-down menu.
- When done, clickSearch.The Search Results table displays only your invoice transactions.
- (Optional) To verify that the transactions listed in the Search Results table are invoicing transactions, clickEdit columns.The Edit Table Layout section appears.
- ClickAdd item.The Add Table Column page appears.
- In theSelect Table Columnfield, enterClient Applicationor chooseClient Applicationfrom the drop-down menu, and then clickSave.The Edit Table Layout section appears.
- ClickSave.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.- Log in to theBusiness Center:
- On the left navigation panel, chooseReports > Downloadable Reports > Available Reports.The Available Reports page appears.
- Click theCreate custom report.The Create Report Subscription page appears.
- In the Advanced Report Features section, click the Connection Method drop-down menu and chooseInvoicing.There is additional required information you must enter before you can generate a report.
- When done, clickCreate.The Report Subscription Management page appears.Click theCustom Report Subscriptionstab 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.
- Log in to theBusiness Center:
- On the left navigation panel, chooseInvoicing > Manage Invoices.
- Click theCustom Fieldstab.The Custom Fields options displays.
- ClickText field.
- Enter this information in the fields:Text Field InformationField NameDescriptionLabelThe title of the new custom text field.Min character limitThe minimum number of characters the customer or merchant must enter in the text field.Max character limitThe maximum number of characters the customer or merchant must enter in the text field.Default textThe text that displays by default in the text field.
- Check theCustomer visiblebox to make the text field viewable by the customer.You can check theCustomer Read Onlybox to prevent the customer from entering text in the text field. Choose this option if you want to display a message to the customer.
- ClickAdd Fieldwhen 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:
- On the left navigation pane, click theicon.Reports
- Under Downloadable Reports, click. TheReport Subscription ManagementReport Subscription Managementpage appears.
- Click theCustom Report Subscriptionstab. The Custom Reports Subscriptions List appears.
- ClickCreate Subscription. The Create Report Subscription page appears.
- 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. - Under Basic Report Setup, enter the following:
- In theReport Namefield, 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.
- In theReport Typefield, select the type of report that most closely represents the data or process you want to include. TheBusiness Centerautomatically 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.
- In theFile Formatfield, choose whether theBusiness Centercreates the report in XLS or XML format.
- In theFrequencyfield, chooseRecurring subscriptionto automatically generates daily, weekly, or monthly reports. You can also create a One-time report.
- To change any of the default fields included in your report, click theArrowicon 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 tabDo thisCredit AmountsCheck the box if you want credits to appear as negative amounts (for example: -1390.00)Naming ConventionSelect how you want the field names to appear in the report:
- SOAPIdisplays most field names in camel case (for example: FirstName)
- SCMPdisplays most field names with underscores (for example: first_name)
ApplicationSelect one or more types of applications you want to include in the report.Leave blank to include all types.Connection MethodSelect 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 ChannelSelect 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 SelectionOne or more of the following:- Enter text matching a field name you want to find in theSearchfield.
- Click theCheck the box for one or more fields or field types to include or remove from the report; check theSelect Allbox to add or remove all fields.^in a section to expand or collapse it.
- In the Selected column, click theXto remove a field or field type from the report
Field OrderingTo 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. - When you are done, clickCreate. 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:
- On the left navigation pane, click theicon.Reports
- Under Downloadable Reports, click. TheReport Subscription ManagementReport Subscription Managementpage appears.
- Click theCustom Report Subscriptionstab. The Custom Reports Subscriptions List appears.
- Next to the report you want to copy, click theSave As(
) icon. The Save New Subscription page appears.
- 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. - Under Basic Report Setup, enter a unique name for the report.
ADDITIONAL INFORMATION
All reports must have a unique name. - Use the steps in Creating New Custom Report Subscriptions as a guideline for modifying report values.
ADDITIONAL INFORMATION
IMPORTANTYou must change at least value to save the new report. - When you are done, clickSave 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:
- On the left navigation pane, click theicon.Reports
- Under Downloadable Reports, click. TheAvailable ReportsAvailable Reportspage appears.
- On the Custom Reports tab, clickCreate Report. The Create Report Subscription page appears.
- 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. - Under Basic Report Setup, enter the following:
- In theReport Namefield, 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.
- In theReport Typefield, select the type of report that most closely represents the data or process you want to include. TheBusiness Centerautomatically 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
- In theFile Formatfield, choose whether theBusiness Centercreates the report in XLS or XML format.
- In theFrequencyfield, chooseOne-time reportto 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.
- To change any of the default fields included in your report, click theArrowicon 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 tabDo thisCredit AmountsCheck the box if you want credits to appear as negative amounts (for example: -1390.00)Naming ConventionSelect how you want the field names to appear in the report:
- SOAPIdisplays most field names in camel case (for example: FirstName)
- SCMPdisplays most field names with underscores (for example: first_name)
ApplicationSelect one or more types of applications you want to include in the report.Leave blank to include all types.Field SelectionOne or more of the following:- Enter text matching a field name you want to find in theSearchfield
- Click theCheck the box for one or more fields or field types to include or remove from the report; check theSelect Allbox to add or remove all fields.^in a section to expand or collapse it.
- In the Selected column, click theXto remove a field or field type from the report
Field OrderingClick and hold theHandleicon to rearrange fields (in theSelectedcolumn 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. - When you are done, clickCreate. 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.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:
- On the left navigation pane, click theicon.Reports
- Under Downloadable Reports, click. TheReport Subscription ManagementReport Subscription Managementpage appears.
- Click theCustom Report Subscriptionstab. The Custom Reports Subscriptions List appears.
- ClickCreate Subscription. The Create Report Subscription page appears.
- 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. - Under Basic Report Setup, enter the following:
- In theReport Namefield, 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.
- In theReport Typefield, select the type of report that most closely represents the data or process you want to include. TheBusiness Centerautomatically 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.
- In theFile Formatfield, choose whether theBusiness Centercreates the report in XLS or XML format.
- In theFrequencyfield, chooseRecurring subscriptionto automatically generates daily, weekly, or monthly reports. You can also create a One-time report.
- 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 theCredit Amountsfield, check the box if you want credits to appear as negative amounts (for example: -1390.00)
- In theNaming Conventionfield, select how you want the field names to appear in the report:SOAPIdisplays most field names in camel case (for example: FirstName);SCMPdisplays most field names with underscores (for example: first_name).
- In theField Selectionfield, enter text matching a field name you want to find in theSearchfield, check the box for one or more fields or field types to include or remove from the report; check theSelect Allbox to add or remove all fields. (Click the^in a section to expand or collapse it.); and/or in theSelectedcolumn, click theXto remove a field or field type from the report
- In theField Orderingfield, click and hold theHandleicon to rearrange fields (in theSelectedcolumn on the Field Selection tab) into the order in which you want them to appear in the report
- When you are done, clickCreate. The Manage Report Subscription page appears, and the new subscription appears in the Custom Reports Subscriptions List.