CyberSource Invoices API

Offer your customers a simple, convenient, and fast way to pay with the new online invoicing tool.

Operations 7

POST /invoicing/v2/invoices Create a New Invoice #
GET /invoicing/v2/invoices Get a List of Invoices #
GET /invoicing/v2/invoices/{id} Get Invoice Details #
PUT /invoicing/v2/invoices/{id} Update an Invoice #
POST /invoicing/v2/invoices/{id}/delivery Send an Invoice #
POST /invoicing/v2/invoices/{id}/cancelation Cancel an Invoice #
POST /invoicing/v2/invoices/{id}/publication Publish an Invoice #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/cybersource-invoices-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

cybersource-invoices-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  description: All CyberSource API specs merged together. These are available at https://developer.cybersource.com/api/reference/api-reference.html
  version: 0.0.1
  title: CyberSource Merged Spec bankAccountValidation Invoices API
servers:
- url: https://apitest.cybersource.com/
tags:
- name: Invoices
  description: 'Offer your customers a simple, convenient, and fast way to pay with the new online invoicing tool.

    '
paths:
  /invoicing/v2/invoices:
    post:
      tags:
      - Invoices
      summary: Create a New Invoice
      description: 'The invoicing product enables you to bill any customer with an email address and accept digital payments securely from any connected device. You can either use the system generated email or use the invoice payment link in your own communication. You can add discounts and taxes for the entire invoice or for each line item. To customize the invoice to match your brand see [Invoice Settings](https://developer.cybersource.com/api-reference-assets/index.html#invoicing_invoice-settings_update-invoice-settings). The invoice payment page uses Unified Checkout to process the payments.

        The availability of API features for a merchant can depend on the portfolio configuration and may need to be enabled at the portfolio level before they can be added to merchant accounts.'
      operationId: createInvoice
      x-devcenter-metaData:
        categoryTag: Invoicing
        developerGuides: https://developer.cybersource.com/docs/cybs/en-us/invoicing/developer/all/rest/invoicing/Introduction.html
      responses:
        '201':
          description: Created.
          content:
            application/json:
              schema:
                title: invoicingV2InvoicesPost201Response
                type: object
                properties:
                  _links:
                    type: object
                    properties:
                      self:
                        type: object
                        properties:
                          href:
                            type: string
                            description: This is the endpoint of the resource that was created by the successful request.
                          method:
                            type: string
                            description: '`method` refers to the HTTP method that you can send to the `self` endpoint to retrieve details of the resource.'
                      update:
                        type: object
                        properties:
                          href:
                            type: string
                            description: This is the endpoint of the resource that was created by the successful request.
                          method:
                            type: string
                            description: '`method` refers to the HTTP method that you can send to the `self` endpoint to retrieve details of the resource.'
                      deliver:
                        type: object
                        properties:
                          href:
                            type: string
                            description: This is the endpoint of the resource that was created by the successful request.
                          method:
                            type: string
                            description: '`method` refers to the HTTP method that you can send to the `self` endpoint to retrieve details of the resource.'
                      cancel:
                        type: object
                        properties:
                          href:
                            type: string
                            description: This is the endpoint of the resource that was created by the successful request.
                          method:
                            type: string
                            description: '`method` refers to the HTTP method that you can send to the `self` endpoint to retrieve details of the resource.'
                  id:
                    type: string
                    maxLength: 26
                    description: 'An unique identification number generated by Cybersource to identify the submitted request. Returned by all services.

                      It is also appended to the endpoint of the resource.

                      On incremental authorizations, this value with be the same as the identification number returned in the original authorization response.

                      '
                  submitTimeUtc:
                    type: string
                    description: 'Time of request in UTC. Format: `YYYY-MM-DDThh:mm:ssZ`

                      **Example** `2016-08-11T22:47:57Z` equals August 11, 2016, at 22:47:57 (10:47:57 p.m.).

                      The `T` separates the date and the time. The `Z` indicates UTC.


                      Returned by Cybersource for all services.

                      '
                  status:
                    type: string
                    description: 'The status of the invoice.


                      Possible values:

                      - DRAFT

                      - CREATED

                      - SENT

                      - PARTIAL

                      - PAID

                      - CANCELED

                      - PENDING

                      '
                  customerInformation:
                    type: object
                    description: Contains all of the customer-related fields for the invoice.
                    properties:
                      name:
                        type: string
                        maxLength: 100
                        description: Payer name for the invoice.
                      email:
                        type: string
                        maxLength: 255
                        description: 'Customer''s email address, including the full domain name.


                          #### CyberSource through VisaNet

                          Credit card networks cannot process transactions that contain non-ASCII characters. CyberSource through VisaNet accepts and stores non-ASCII characters correctly and displays them correctly in reports. However, the limitations of the credit card networks prevent CyberSource through VisaNet from transmitting non-ASCII characters to the credit card networks. Therefore, CyberSource through VisaNet replaces non-ASCII characters with meaningless ASCII characters for transmission to the credit card networks.


                          **Important** It is your responsibility to determine whether a field is required for the transaction you are requesting.


                          #### Invoicing

                          Email address for the customer for sending the invoice. If the invoice is in SENT status and email is updated, the old email customer payment link won''t work and you must resend the invoice with the new payment link.


                          #### Chase Paymentech Solutions

                          Optional field.


                          ####  Credit Mutuel-CIC

                          Optional field.


                          #### OmniPay Direct

                          Optional field.


                          #### SIX

                          Optional field.


                          #### TSYS Acquiring Solutions

                          Required when `processingInformation.billPaymentOptions.billPayment=true` and `pointOfSaleInformation.entryMode=keyed`.


                          #### Worldpay VAP

                          Optional field.


                          #### All other processors

                          Not used.

                          '
                      merchantCustomerId:
                        type: string
                        maxLength: 100
                        description: 'Your identifier for the customer.


                          When a subscription or customer profile is being created, the maximum length for this field for most processors is 30. Otherwise, the maximum length is 100.


                          #### Comercio Latino

                          For recurring payments in Mexico, the value is the customer''s contract number.

                          Note Before you request the authorization, you must inform the issuer of the customer contract numbers that will be used for recurring transactions.


                          #### Worldpay VAP

                          For a follow-on credit with Worldpay VAP, CyberSource checks the following locations, in the order

                          given, for a customer account ID value and uses the first value it finds:

                          1. `customer_account_id` value in the follow-on credit request

                          2. Customer account ID value that was used for the capture that is being credited

                          3. Customer account ID value that was used for the original authorization

                          If a customer account ID value cannot be found in any of these locations, then no value is used.

                          '
                      company:
                        type: object
                        properties:
                          name:
                            type: string
                            maxLength: 60
                            description: 'Name of the customer''s company.


                              **CyberSource through VisaNet**

                              Credit card networks cannot process transactions that contain non-ASCII characters. CyberSource through VisaNet accepts and stores non-ASCII characters correctly and displays them correctly in reports. However, the limitations of the credit card networks prevent CyberSource through VisaNet from transmitting non-ASCII characters to the credit card networks. Therefore, CyberSource through VisaNet replaces non-ASCII characters with meaningless ASCII characters for transmission to the credit card networks.

                              '
                  processingInformation:
                    type: object
                    description: Contains processing information, such as collection details.
                    properties:
                      requestPhone:
                        type: boolean
                        description: Collect the payers phone number during the payment.
                        default: false
                      requestShipping:
                        type: boolean
                        description: Collect the payers shipping address during the payment.
                        default: false
                  invoiceInformation:
                    type: object
                    description: Contains all of the invoice-specific fields, such as the invoice number and due date.
                    properties:
                      invoiceNumber:
                        type: string
                        description: Invoice Number.
                      description:
                        type: string
                        maxLength: 2000
                        description: The description included in the invoice.
                      dueDate:
                        type: string
                        maxLength: 10
                        format: date
                        description: 'The invoice due date. This field is required for creating an invoice.

                          Format: `YYYY-MM-DD`, where `YYYY` = year, `MM` = month, and `DD` = day

                          '
                      expirationDate:
                        type: string
                        maxLength: 10
                        format: date
                        description: 'Define an expiration date for the link.


                          Format: `YYYY-MM-DD`, where `YYYY` = year, `MM` = month, and `DD` = day

                          '
                      allowPartialPayments:
                        type: boolean
                        description: If set to `true`, the payer can make a partial invoice payment.
                        default: false
                      paymentLink:
                        type: string
                        description: Returns the payment link to an invoice when the invoice status is `SENT`, `CREATED`, `PARTIAL`, or `PAID`.
                      deliveryMode:
                        type: string
                        description: "If this field is set to 'None', an invoice will be generated with the status 'CREATED', but no email will be dispatched.  \n\nPossible values:      \n - `None` \n - `Email` \n \n"
                      customLabels:
                        description: 'A list of custom labels that allows you to override (rename) default field names and control the visibility of specific fields on invoices and items. If the list is empty, the labels will not be overwritten.

                          '
                        type: array
                        items:
                          type: object
                          properties:
                            key:
                              description: "The invoice field key. Possible values:\n  - billTo\n  - invoiceNumber\n  - customerId\n  - companyName\n  - description\n  - shipping\n  - partialPayment\n  - discount\n  - tax\n"
                              type: string
                            value:
                              description: The new (overridden) field name
                              type: string
                              maxLength: 25
                            hidden:
                              description: "Hides the specified field. This field is applicable for keys:\n  - customerId\n  - companyName\n  - description\n  - shipping\n  - partialPayment\n"
                              type: boolean
                              default: false
                            hiddenForInvoice:
                              description: "Hides the field at invoice level. This field is applicable for keys:\n  - discount\n  - tax\n"
                              type: boolean
                              default: false
                            hiddenForItem:
                              description: "Hides the field at invoice item level. This field is applicable for keys:\n  - discount\n  - tax\n"
                              type: boolean
                              default: false
                  orderInformation:
                    type: object
                    description: Contains all of the order-related fields, such as the amount and line item details.
                    properties:
                      amountDetails:
                        type: object
                        description: Contains all of the amount-related fields.
                        properties:
                          totalAmount:
                            type: string
                            maxLength: 19
                            description: "Grand total for the order. This value cannot be negative. You can include a decimal point (.), but no other special characters.\nCyberSource truncates the amount to the correct number of decimal places.\n\n**Note** For CTV, FDCCompass, Paymentech processors, the maximum length for this field is 12.\n\n**Important** Some processors have specific requirements and limitations, such as maximum amounts and maximum field lengths.\n\nIf your processor supports zero amount authorizations, you can set this field to 0 for the authorization to check if the card is lost or stolen. \n\n#### Card Present\nRequired to include either this field or `orderInformation.lineItems[].unitPrice` for the order.\n\n#### Invoicing / Pay By Link\nRequired for creating a new invoice or payment link.\n\n#### PIN Debit\nAmount you requested for the PIN debit purchase. This value is returned for partial authorizations. The issuing bank can approve a partial amount if the balance on the debit card is less than the requested transaction amount.\n\nRequired field for PIN Debit purchase and PIN Debit credit requests.\nOptional field for PIN Debit reversal requests.\n\n#### GPX\nThis field is optional for reversing an authorization or credit; however, for all other processors, these fields are required.\n\n#### DCC with a Third-Party Provider\nSet this field to the converted amount that was returned by the DCC provider. You must include either this field or the 1st line item in the order and the specific line-order amount in your request. \n\n#### DCC for First Data\nNot used.\n"
                          currency:
                            type: string
                            maxLength: 3
                            description: 'Currency used for the order. Use the three-character [ISO Standard Currency Codes.](http://apps.cybersource.com/library/documentation/sbc/quickref/currencies.pdf)


                              #### Used by

                              **Authorization**

                              Required field.


                              **Authorization Reversal**

                              For an authorization reversal (`reversalInformation`) or a capture (`processingOptions.capture` is set to `true`), you must use the same currency that you used in your payment authorization request.


                              #### PIN Debit

                              Currency for the amount you requested for the PIN debit purchase. This value is returned for partial authorizations. The issuing bank can approve a partial amount if the balance on the debit card is less than the requested transaction amount. For the possible values, see the [ISO Standard Currency Codes](https://developer.cybersource.com/library/documentation/sbc/quickref/currencies.pdf).

                              Returned by PIN debit purchase.


                              For PIN debit reversal requests, you must use the same currency that was used for the PIN debit purchase or PIN debit credit that you are reversing.

                              For the possible values, see the [ISO Standard Currency Codes](https://developer.cybersource.com/library/documentation/sbc/quickref/currencies.pdf).


                              Required field for PIN Debit purchase and PIN Debit credit requests.

                              Optional field for PIN Debit reversal requests.


                              #### GPX

                              This field is optional for reversing an authorization or credit.


                              #### DCC for First Data

                              Your local currency.


                              #### Tax Calculation

                              Required for international tax and value added tax only.

                              Optional for U.S. and Canadian taxes.

                              Your local currency.

                              '
                          balanceAmount:
                            type: string
                            maxLength: 12
                            description: 'Remaining balance on the account.


                              Returned by authorization service.


                              #### PIN debit

                              Remaining balance on the prepaid card.


                              Returned by PIN debit purchase.

                              '
                          discountAmount:
                            type: string
                            maxLength: 15
                            description: 'Total discount amount applied to the order.

                              '
                          discountPercent:
                            type: string
                            maxLength: 7
                            description: The total discount percentage applied to the order.
                          subAmount:
                            type: string
                            maxLength: 25
                            description: Sub-amount of the order.
                          minimumPartialAmount:
                            type: string
                            description: The minimum partial amount required to pay the invoice.
                          taxDetails:
                            type: object
                            description: Contains all of the tax-related fields for the order.
                            properties:
                              type:
                                type: string
                                description: 'Indicates the type of tax data for the _taxDetails_ object.


                                  Possible values:


                                  - `alternate`

                                  - `local`

                                  - `national`

                                  - `vat`

                                  - `other`

                                  - `green`

                                  '
                              amount:
                                type: string
                                maxLength: 13
                                description: 'Indicates the amount of tax based on the `type` field as described in the table below:


                                  | type      | type description |

                                  | ------------- |:-------------:|

                                  | `alternate` | Total amount of alternate tax for the order. |

                                  | `local`     | Sales tax for the order. |

                                  | `national`  | National tax for the order. |

                                  | `vat`       | Total amount of value added tax (VAT) included in the order. |

                                  | `other`     | Other tax. |

                                  | `green`     | Green tax amount for Korean Processing. |

                                  '
                              rate:
                                type: string
                                maxLength: 6
                                description: 'Rate of VAT or other tax for the order.


                                  Example 0.040 (=4%)


                                  Valid range: 0.01 to 0.99 (1% to 99%, with only whole percentage values accepted; values with additional

                                  decimal places will be truncated)

                                  '
                          freight:
                            type: object
                            description: Contains all of the shipping-related fields for the order.
                            properties:
                              amount:
                                type: string
                                maxLength: 13
                                description: 'Total freight or shipping and handling charges for the order. When you include this field in your request, you

                                  must also include the **totalAmount** field.

                                  '
                              taxable:
                                type: boolean
                                description: "Flag that indicates whether an order is taxable. This value must be true if the sum of all _lineItems[].taxAmount_ values > 0.\n\nIf you do not include any `lineItems[].taxAmount` values in your request, CyberSource does not include\n`invoiceDetails.taxable` in the data it sends to the processor.\n\nPossible values:\n - **true**\n - **false**\n"
                              taxRate:
                                description: 'Shipping Tax rate applied to the freight amount.


                                  **Visa**: Valid range is 0.01 to 0.99 (1% to 99%, with only whole percentage values accepted; values with additional

                                  decimal places will be truncated).


                                  **Mastercard**: Valid range is 0.00001 to 0.99999 (0.001% to 99.999%).

                                  '
                                type: string
                                maxLength: 7
                      lineItems:
                        type: array
                        description: List of the line items from the order.
                        maxItems: 30
                        items:
                          type: object
                          description: Line item from the order.
                          properties:
                            productSku:
                              type: string
                              maxLength: 255
                              description: 'Product identifier code. Also known as the Stock Keeping Unit (SKU) code for the product.


                                For an authorization or capture transaction (`processingOptions.capture` is set to `true` or `false`), this field is required when `orderInformation.lineItems[].productCode` is not set to **default** or one of the other values that are related to shipping and/or handling.


                                #### Tax Calculation

                                Optional field for U.S. and Canadian taxes. Not applicable to international and value added taxes.

                                For an authorization or capture transaction (`processingOptions.capture` is set to `true` or `false`), this field is

                                required when `orderInformation.lineItems[].productCode` is not `default` or one of the values related to shipping and/or handling.

                                '
                            productName:
                              type: string
                              maxLength: 255
                              description: 'For an authorization or capture transaction (`processingOptions.capture` is `true` or `false`),

                                this field is required when `orderInformation.lineItems[].productCode` is not `default` or one of

                                the other values that are related to shipping and/or handling.


                                #### Tax Calculation

                                Optional field for U.S., Canadian, international tax, and value added taxes.

                                '
                            quantity:
                              type: integer
                              minimum: 1
                              maximum: 999999999
                              default: 1
                              description: 'Number of units for this order. Must be a non-negative integer.


                                The default is `1`. For an authorization or capture transaction (`processingOptions.capture` is set to `true` or `false`),

                                this field is required when `orderInformation.lineItems[].productCode` is not `default` or one of the other values

                                related to shipping and/or handling.


                                #### Tax Calculation

                                Optional field for U.S., Canadian, international tax, and value added taxes.

                                '
                            unitPrice:
                              type: string
                              maxLength: 15
                              description: 'Per-item price of the product. This value for this field cannot be negative.


                                You must include either this field or the request-level field `orderInformation.amountDetails.totalAmount` in your request.


                                You can include a decimal point (.), but you cannot include any other special characters.

                                The value is truncated to the correct number of decimal places.


                                #### DCC with a Third-Party Provider

                                Set this field to the converted amount that was returned by the DCC provider. You must include either

                                the 1st line item in the order and this field, or the request-level field `orderInformation.amountDetails.totalAmount` in your request.


                                #### Tax Calculation

                                Required field for U.S., Canadian, international and value added taxes.


                                #### Zero Amount Authorizations

                                If your processor supports zero amount authorizations, you can set this field to 0 for the

                                authorization to check if the card is lost or stolen.


                                #### Maximum Field Lengths

                                For GPN and JCN Gateway: Decimal (10)

                                All other processors: Decimal (15)

                                '
                            discountAmount:
                              example: '10.00'
                              type: string
                              maxLength: 13
                              description: Discount applied to the item.
                            discountPercent:
                              example: '10'
                              type: string
                              maxLength: 6
                              description: 'Rate the item is discounted. Maximum of 2 decimal places.


                                Example 5.25 (=5.25%)

                                '
                            taxAmount:
                              type: string
                              maxLength: 15
                              description: "Total tax to apply to the product. This value cannot be negative. The tax amount and the offer amount must\nbe in the same currency. The tax amount field is additive.\n\nThe following example uses a two-exponent currency such as USD:\n\n 1. You include each line item in your request.\n ..- 1st line item has amount=10.00, quantity=1, and taxAmount=0.80\n ..- 2nd line item has amount=20.00, quantity=1, and taxAmount=1.60\n 2. The total amount authorized will be 32.40, not 30.00 with 2.40 of tax included.\n\nOptional field.\n\n#### Airlines processing\nTax portion of the order amount. This value cannot exceed 99999999999999 (fourteen 9s).\nFormat: English characters only.\nOptional request field for a line item.\n\n#### Tax Calculation\nOptional field for U.S., Canadian, international tax, and value added taxes.\n\nNote if you send this field in your tax request, the value in the field will override the tax engine\n"
                            taxRate:
                              type: string
                              maxLength: 7
                              description: 'Valid range: 1% to 99%, with only whole percentage values accepted; values with additional


                                decimal places will be truncated


                                For processor-specific details, see the alternate_tax_amount, vat_rate, vat_tax_rate, local_tax, national_tax, vat_tax_amount or other_tax#_rate field descriptions in the Level II and Level III Processing Using the SCMP API Guide.

                                '
                            totalAmount:
                              type: string
                              maxLength: 13
                              description: 'Total amount for the item. Normally calculated as the unit price times quantity.


                                When `orderInformation.lineItems[].productCode` is "gift_card", this is the purchase amount total

                                for prepaid gift cards in major units.


                                Example: 123.45 USD = 123

                                '
                  merchantDefinedFieldValuesWithDefinition:
                    type: array
                    items:
                      type: object
                      properties:
                        referenceType:
                          type: string
                        label:
                          type: string
                        fieldType:
                          type: string
                        customerVisible:
                          type: boolean
                        readOnly:
                          type: boolean
                        textMinLength:
                          type: integer
                          format: int32
                        textMaxLength:
                          type: integer
                          format: int32
         

# --- truncated at 32 KB (1113 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/cybersource/refs/heads/main/openapi/cybersource-invoices-api-openapi.yml