swagger: '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 host: apitest.cybersource.com basePath: / schemes: - https consumes: - application/json;charset=utf-8 produces: - application/hal+json;charset=utf-8 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 consumes: - application/json;charset=utf-8 produces: - application/json - application/hal+json - application/json;charset=utf-8 - application/hal+json;charset=utf-8 parameters: - name: createInvoiceRequest in: body required: true schema: type: object required: - invoiceInformation - orderInformation properties: clientReferenceInformation: type: object properties: partner: type: object properties: developerId: type: string maxLength: 8 description: 'Identifier for the developer that integrated a partner solution with Cybersource. Send this value with all requests that are sent through a partner solution built by that developer. Cybersource assigns the ID to the developer. **Note** A developerId set to 999 means the submitted developer ID is incorrect. ' solutionId: type: string maxLength: 8 description: 'Identifier for the partner that integrated with Cybersource. Send this value with all requests sent through the partner solution. Cybersource assigns the ID to the partner. **Note** A solutionId set to 999 means the submitted solutionId is incorrect. ' 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 required: - dueDate - description 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 ' sendImmediately: type: boolean description: If set to `true`, we send the invoice immediately. If set to `false`, the invoice remains in draft mode. default: false allowPartialPayments: type: boolean description: If set to `true`, the payer can make a partial invoice payment. default: false 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" orderInformation: type: object required: - amountDetails description: Contains all of the order-related fields, such as the amount and line item details. properties: amountDetails: type: object required: - currency - totalAmount 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. ' discountAmount: example: '10.00' type: string maxLength: 15 description: 'Total discount amount applied to the order. ' discountPercent: example: '10' 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 ' merchantDefinedFieldValues: type: array items: type: object properties: definitionId: type: integer format: int64 value: type: string example: clientReferenceInformation: partner: developerId: '3435' solutionId: '83745' customerInformation: name: Tanya Lee firstName: Tanya lastName: Lee email: tanya.lee@my-email.world merchantCustomerId: '1234' company: name: ABC processingInformation: requestPhone: false requestShipping: false invoiceInformation: invoiceNumber: '98753' description: This is a test invoice dueDate: '2019-07-11' expirationDate: '2028-08-11' sendImmediately: true allowPartialPayments: true deliveryMode: email orderInformation: amountDetails: totalAmount: '2623.64' currency: USD discountAmount: '126.08' discountPercent: '5.0' subAmount: '2749.72' minimumPartialAmount: '20' taxDetails: type: State Tax amount: '208.04' rate: '8.25' freight: amount: '20.00' taxable: true taxRate: '10' lineItems: - productSku: P653727383 productName: First line item's name unitPrice: '12.05' quantity: '20' discountAmount: '13.04' discountPercent: '5.0' taxAmount: '0.0' taxRate: '0.0' totalAmount: '247.86' merchantDefinedFieldValues: - definitionId: 123 value: Some value - definitionId: 456 value: Another value responses: '201': description: Created. 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 textDefaultValue: type: string possibleValues: type: string value: type: string position: type: integer definitionId: type: integer merchantDefinedDataIndex: type: integer example: fieldType: Text label: Cup customerVisible: 'true' readOnly: 'false' textMinLength: 1 textMaxLength: 100 textDefaultValue: default text merchantDefinedDataIndex: 15 example: _links: self: href: /v2/invoices/98753 method: GET update: href: /v2/invoices/98753 method: PUT deliver: href: /v2/invoices/98753/delivery method: POST cancel: href: /v2/invoices/98753/cancelation method: POST id: '98753' submitTimeUtc: '2019-06-28T19:48:06Z' status: SENT customerInformation: name: Tanya Lee firstName: Tanya lastName: Lee email: tanya.lee@my-email.world merchantCustomerId: '1234' company: name: ABC processingInformation: requestPhone: false requestShipping: false invoiceInformation: invoiceNumber: '98753' description: This is a test invoice dueDate: '2019-07-11' expirationDate: '2028-08-11' allowPartialPayments: true paymentLink: https://ebc.cybersource.com/ebc2/invoicing/payInvoice/c7UI9Vz8rdhXbc8FdK6SaoeOATON4TQLhbd5lfib9UCyywvZLhIrSuYYNFMynMCc deliveryMode: email orderInformation: amountDetails: totalAmount: '2623.64' currency: USD balanceAmount: '2623.64' discountAmount: '126.08' discountPercent: '5.0' subAmount: '2749.72' minimumPartialAmount: '20.00' taxDetails: type: State Tax amount: '208.04' rate: '8.25' freight: amount: '20.00' taxable: false lineItems: - productSku: P653727383 productName: First line item's name unitPrice: '12.05' quantity: '20' discountAmount: '13.04' discountPercent: '5.0' taxAmount: '0.0' taxRate: '0.0' totalAmount: '247.86' merchantDefinedFieldValuesWithDefinition: - id: 1515 fieldType: Text label: Cup customerVisible: 'true' readOnly: 'false' textMinLength: 1 textMaxLength: 100 textDefaultValue: default text merchantDefinedDataIndex: 15 '202': description: Invoice created but failed to send an email. Send the invoice separately. schema: title: invoicingV2InvoicesPost202Response type: object properties: 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 ' reason: type: string description: 'The reason of the status. Possible values: - ACCEPTED ' message: type: string description: The detail message related to the status and reason listed above. details: type: array items: type: object properties: field: type: string description: This is the flattened JSON object field name/path that is either missing or invalid. reason: type: string description: "Possible reasons for the error.\n\nPossible values:\n - MISSING_FIELD\n - INVALID_DATA\n" example: submitTimeUtc: '2019-06-28T20:21:48Z' status: ACCEPTED reason: ACCEPTED message: Invoice ID 98753 created but failed to send an email. Send the invoice separately. '400': description: Invalid request. schema: title: invoicingV2InvoicesPost400Response type: object properties: 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.\n\nPossible values:\n - BADREQUEST\n" reason: type: string description: 'The reason of the status. Possible values: - DUPLICATE_RECORD - ACTION_NOT_ALLOWED - VALIDATION_ERRORS - INVALID_IMAGE - INVALID_TRANSIENT_TOKEN ' message: type: string description: The detail message related to the status and reason listed above. details: type: array items: type: object properties: field: type: string description: This is the flattened JSON object field name/path that is either missing or invalid. reason: type: string description: "Possible reasons for the error.\n\nPossible values:\n - MISSING_FIELD\n - INVALID_DATA\n" example: submitTimeUtc: '2019-07-01T21:40:10Z' status: BADREQUEST reason: VALIDATION_ERROR message: Field validation errors. details: - field: customerInformation.email reason: Invalid email '404': description: The specified resource is not found. schema: title: invoicingV2InvoicesPost404Response type: object properties: 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.\n\nPossible values:\n - NOTFOUND\n" reason: type: string description: 'The reason of the status. Possible values: - NOTFOUND ' message: type: string description: The detail message related to the status and reason listed above. details: type: array items: type: object properties: field: type: string description: This is the flattened JSON object field name/path that is either missing or invalid. reason: type: string description: "Possible reasons for the error.\n\nPossible values:\n - MISSING_FIELD\n - INVALID_DATA\n" example: submitTimeUtc: '2019-07-01T21:36:29Z' status: NOTFOUND reason: NOT_FOUND message: Invoice does not exist. '502': description: Unexpected error. schema: title: invoicingV2InvoicesPost502Response type: object properties: 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 submitted transaction.\n\nPossible values:\n - SERVER_ERROR\n" reason: type: string description: "The reason of the status.\n\nPossible values:\n - SYSTEM_ERROR\n - SERVER_TIMEOUT\n - SERVICE_TIMEOUT\n" message: type: string description: The detail message related to the status and reason listed above. example: submitTimeUtc: '2018-06-12T09:27:20Z' status: SERVER_ERROR reason: SERVER_ERROR message: Error - General system failure. x-example: example0: summary: Create a draft itemized invoice value: clientReferenceInformation: partner: developerId: '3435' solutionId: '83745' customerInformation: name: Tanya Lee firstName: Tanya lastName: Lee email: tanya.lee@my-email.world merchantCustomerId: '1234' company: name: ABC processingInformation: requestPhone: false requestShipping: false invoiceInformation: description: This is a test invoice dueDate: '2019-07-11' expirationDate: '2028-08-11' sendImmediately: false allowPartialPayments: true deliveryMode: none orderInformation: amountDetails: totalAmount: '2623.64' currency: USD discountAmount: '126.08' discountPercent: '5.0' subAmount: '2749.72' minimumPartialAmount: '20.00' taxDetails: type: State Tax amount: '208.00' rate: '8.25' freight: amount: '20.00' taxable: true taxRate: '10' lineItems: - productSku: P653727383 productName: First line item's name unitPrice: '12.05' quantity: '20' discountAmount: '13.04' discountPercent: '5.0' taxAmount: '0.0' taxRate: '0.0' totalAmount: '247.86' merchantDefinedFieldValues: - definitionId: 123 value: Some new Value - definitionId: 456 value: Another brand new value example1: summary: Create and send simple invoice immediately value: clientReferenceInformation: partner: developerId: '3435' solutionId: '83745' customerInformation: name: Tanya Lee firstName: Tanya lastName: Lee email: tanya.lee@my-email.world processingInformation: requestPhone: false requestShipping: false invoiceInformation: description: This is a test invoice dueDate: '2019-07-11' expirationDate: '2028-08-11' sendImmediately: true allowPartialPayments: true deliveryMode: email orderInformation: amountDetails: totalAmount: '2623.64' currency: USD discountAmount: '126.08' discountPercent: '5.0' subAmount: '2749.72' minimumPartialAmount: '20.00' taxDetails: type: State Tax amount: '208.04' rate: '8.25' freight: amount: '20.00' taxable: false merchantDefinedFieldValues: - definitionId: 123 value: Some new Value - definitionId: 456 value: Another brand new value example2: summary: Create an invoice and assign it a specific invoice number value: clientReferenceInformation: partner: developerId: '3435' solutionId: '83745' customerInformation: name: Tanya Lee firstName: Tanya lastName: Lee email: tanya.lee@my-email.world processingInformation: requestPhone: false requestShipping: false invoiceInformation: invoiceNumber: '123' description: This is a test invoice dueDate: '2019-07-11' expirationDate: '2028-08-11' sendImmediately: true allowPartialPayments: true deliveryMode: email orderInformation: amountDetails: totalAmount: '2623.64' currency: USD discountAmount: '126.08' discountPercent: '5.0' subAmount: '2749.72' minimumPartialAmount: '20.00' taxDetails: type: State Tax amount: '208.04' rate: '8.25' freight: amount: '20.00' taxable: false lineItems: - productSku: P653727383 productName: First line item's name unitPrice: '12.05' quantity: '20' discountAmount: '13.04' discountPercent: '5.0' taxAmount: '0.0' taxRate: '0.0' totalAmount: '247.86' merchantDefinedFieldValues: - definitionId: 123 value: Some new Value - definitionId: 456 value: Another brand new value example3: summary: Create an invoice without sending it value: clientReferenceInformation: partner: developerId: '3435' solutionId: '83745' customerInformation: name: Tanya Lee firstName: Tanya lastName: Lee email: tanya.lee@my-email.world processingInformation: requestPhone: false requestShipping: false invoiceInformation: description: This is a test invoice dueDate: '2019-07-11' expirationDate: '2028-08-11' sendImmediately: true allowPartialPayments: true deliveryMode: none orderInformation: amountDetails: totalAmount: '2623.64' currency: USD discountAmount: '126.08' discountPercent: '5.0' subAmount: '2749.72' minimumPartialAmount: '20.00' taxDetails: type: State Tax amount: '208.04' rate: '8.25' freight: amount: '20.00' taxable: false merchantDefinedFieldValues: - definitionId: 123 value: Some new Value - definitionId: 456 value: Another brand new value get: tags: - Invoices summary: Get a List of Invoices description: Provides a (filtered) list of invoices that have been created in your account. You can filter the list based on Invoice Status by setting the status query parameter to one of DRAFT, CREATED, SENT, PARTIAL, PAID or CANCELED. operationId: getAllInvoices x-devcenter-metaData: categoryTag: Invoicing developerGuides: https://developer.cybersource.com/docs/cybs/en-us/invoicing/developer/all/rest/invoicing/Introduction.html x-queryParameterDefaults: offset: '0' limit: '5' consumes: - application/json;charset=utf-8 produces: - application/json - application/hal+json - application/json;charset=utf-8 - application/hal+json;charset=utf-8 parameters: - name: offset in: query type: integer required: true description: Page offset number. - name: limit in: query type: integer required: true description: Maximum number of items you would like returned. maximum: 1000 - name: status in: query type: string required: false description: "The status of the invoice.\n\nPossible values:\n - DRAFT\n - CREATED\n - SENT\n - PARTIAL\n - PAID\n - CANCELED\n" responses: '200': description: OK. schema: title: invoicingV2InvoicesAllGet200Response 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.' 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. ' totalInvoices: type: integer invoices: type: array items: type: object description: A list of invoices. 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. ' status: type: string description: 'The status of the invoice. Possible values: - DRAFT - CREATED - SENT - PARTIAL - PAID - CANCELED - PENDING ' createdDate: type: string x-example: '2018-08-11T22:47:57Z' description: 'Date and time (UTC) the invoice was created. 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. ' customerInformation: type: object properties: name: type: string maxLength: 100 description: Payer name for the invoice. 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. ' invoiceInformation: type: object properties: 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 ' 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. ' example: _links: self: href: /v2/invoices/?offset=1&limit=2&status=draft method: GET next: href: /v2/invoices/?offset=3&limit=2&status=draft method: GET previous: href: /v2/invoices/?offset=0&limit=2&status=draft method: GET submitTimeUtc: '2019-07-03T19:22:26Z' totalInvoices: 123 invoices: - _links: self: href: /v2/invoices/98772 method: GET id: '98772' status: DRAFT customerInformation: name: Tanya Lee merchantCustomerId: '1234' invoiceInformation: dueDate: '2019-07-11' expirationDate: '2028-08-11' orderInformation: amountDetails: totalAmount: '14249.56' currency: USD - _links: self: href: /v2/invoices/98771 method: GET deliver: href: /v2/invoices/A123/delivery method: POST update: href: /v2/invoices/A123 method: PUT cancel: href: /v2/invoices/A123/cancelation method: POST id: '98771' status: DRAFT createdDate: '2018-08-11T22:47:57Z' customerInformation: name: Tanya Lee firstName: Tanya lastName: Lee merchantCustomerId: '1234' company: name: ABC invoiceInformation: dueDate: '2019-07-11' expirationDate: '2028-08-11' orderInformation: amountDetails: totalAmount: '14249.56' currency: USD '400': description: 'Invalid invoice status. The status should be one of: `DRAFT`, `CREATED`, `SENT`, `PARTIAL`, `PAID`, or `CANCELED`.' schema: title: invoicingV2InvoicesAllGet400Response type: object properties: 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.\n\nPossible values:\n - BADREQUEST\n" reason: type: string description: 'The reason of the status. Possible values: - DUPLICATE_RECORD - ACTION_NOT_ALLOWED - VALIDATION_ERRORS - INVALID_IMAGE - INVALID_TRANSIENT_TOKEN ' message: type: string description: The detail message related to the status and reason listed above. details: type: array items: type: object properties: field: type: string description: This is the flattened JSON object field name/path that is either missing or invalid. reason: type: string description: "Possible reasons for the error.\n\nPossible values:\n - MISSING_FIELD\n - INVALID_DATA\n" example: submitTimeUtc: '2019-07-01T21:40:10Z' status: BADREQUEST reason: VALIDATION_ERROR message: Field validation errors. details: - field: customerInformation.email reason: Invalid email '404': description: No invoices found. schema: title: invoicingV2InvoicesAllGet404Response type: object properties: 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.\n\nPossible values:\n - NOTFOUND\n" reason: type: string description: 'The reason of the status. Possible values: - NOTFOUND ' message: type: string description: The detail message related to the status and reason listed above. details: type: array items: type: object properties: field: type: string description: This is the flattened JSON object field name/path that is either missing or invalid. reason: type: string description: "Possible reasons for the error.\n\nPossible values:\n - MISSING_FIELD\n - INVALID_DATA\n" example: submitTimeUtc: '2019-07-01T21:36:29Z' status: NOTFOUND reason: NOT_FOUND message: Invoice does not exist. '502': description: Unexpected error. schema: title: invoicingV2InvoicesAllGet502Response type: object properties: 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 submitted transaction.\n\nPossible values:\n - SERVER_ERROR\n" reason: type: string description: "The reason of the status.\n\nPossible values:\n - SYSTEM_ERROR\n - SERVER_TIMEOUT\n - SERVICE_TIMEOUT\n" message: type: string description: The detail message related to the status and reason listed above. example: submitTimeUtc: '2018-06-12T09:27:20Z' status: SERVER_ERROR reason: SERVER_ERROR message: Error - General system failure. /invoicing/v2/invoices/{id}: get: tags: - Invoices summary: Get Invoice Details description: You can retrieve details of a specific invoice. This can be used to check the Invoice status and get a list of invoice payments in the invoice history section of the response. For each payment transaction you can use the Transaction Details API to get more details on the payment transaction. operationId: getInvoice x-devcenter-metaData: categoryTag: Invoicing developerGuides: https://developer.cybersource.com/docs/cybs/en-us/invoicing/developer/all/rest/invoicing/Introduction.html consumes: - application/json;charset=utf-8 produces: - application/json - application/hal+json - application/json;charset=utf-8 - application/hal+json;charset=utf-8 parameters: - name: id in: path type: string description: The invoice number. required: true responses: '200': description: OK. schema: title: invoicingV2InvoicesGet200Response example: _links: self: href: /v2/invoices/A123 method: GET deliver: href: /v2/invoices/A123/delivery method: POST update: href: /v2/invoices/A123 method: PUT cancel: href: /v2/invoices/A123/cancelation method: POST id: A123 submitTimeUtc: '2019-07-01T22:37:14Z' status: PAID customerInformation: name: Tanya Lee firstName: Tanya lastName: Lee email: tanya.lee@my-email.world merchantCustomerId: '1234' company: name: ABC processingInformation: requestPhone: false requestShipping: false invoiceInformation: invoiceNumber: '23412' description: This is a test invoice dueDate: '2019-07-11' expirationDate: '2028-08-11' allowPartialPayments: true paymentLink: https://ebc.cybersource.com/ebc2/invoicing/payInvoice/c7UI9Vz8rdhXbc8FdK6SaoeOATON4TQLhbd5lfib9UCyywvZLhIrSuYYNFMynMCc deliveryMode: email orderInformation: amountDetails: totalAmount: '11955.45' currency: USD balanceAmount: '0' discountAmount: '1402.60' discountPercent: '10.5' subAmount: '13358.05' minimumPartialAmount: '100.00' taxDetails: type: State Tax amount: '1018.05' rate: '8.25' freight: amount: '40.00' taxable: true taxRate: '10' lineItems: - productSku: P653727383 productName: First line item's name unitPrice: '12.05' quantity: '20' discountAmount: '13.04' discountPercent: '5.0' taxAmount: '0.0' taxRate: '0.0' totalAmount: '247.86' invoiceHistory: - event: PAYMENT date: '2019-06-18T21:57:31.09Z' transactionDetails: transactionId: '2155897958' amount: '11843.71' - event: RESEND date: '2019-06-18T21:55:01.02Z' - event: SEND date: '2019-06-18T21:51:19.09Z' - event: CREATE date: '2019-06-18T21:51:18.76Z' merchantDefinedFieldValues: - definitionId: 123 value: Some interesting Value - definitionId: 456 value: Another quirky value 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 textDefaultValue: type: string possibleValues: type: string value: type: string position: type: integer definitionId: type: integer merchantDefinedDataIndex: type: integer example: fieldType: Text label: Cup customerVisible: 'true' readOnly: 'false' textMinLength: 1 textMaxLength: 100 textDefaultValue: default text merchantDefinedDataIndex: 15 invoiceHistory: type: array items: type: object properties: event: type: string description: "The event triggered for the invoice.\n\nPossible values:\n - `UNKNOWN`\n - `DRAFT`\n - `CREATE`\n - `UPDATE`\n - `SEND`\n - `RESEND`\n - `REMINDER`\n - `PAYMENT`\n - `CANCEL`\n - `PENDING`\n - `REJECTED`\n" date: type: string format: date-time description: 'The date and time when the invoice event was triggered in ISO 8601 format. Format: YYYY-MM-DDThh:mm:ssZ ' transactionDetails: description: These details are only returned when the invoice event is `payment`. type: object properties: transactionId: type: string description: Payer auth Transaction identifier. amount: 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" '400': description: Invoicing service is not enabled. schema: title: invoicingV2InvoicesGet400Response type: object properties: 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.\n\nPossible values:\n - BADREQUEST\n" reason: type: string description: 'The reason of the status. Possible values: - DUPLICATE_RECORD - ACTION_NOT_ALLOWED - VALIDATION_ERRORS - INVALID_IMAGE - INVALID_TRANSIENT_TOKEN ' message: type: string description: The detail message related to the status and reason listed above. details: type: array items: type: object properties: field: type: string description: This is the flattened JSON object field name/path that is either missing or invalid. reason: type: string description: "Possible reasons for the error.\n\nPossible values:\n - MISSING_FIELD\n - INVALID_DATA\n" example: submitTimeUtc: '2019-07-01T21:40:10Z' status: BADREQUEST reason: VALIDATION_ERROR message: Field validation errors. details: - field: customerInformation.email reason: Invalid email '404': description: Invoice does not exist. schema: title: invoicingV2InvoicesGet404Response type: object properties: 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.\n\nPossible values:\n - NOTFOUND\n" reason: type: string description: 'The reason of the status. Possible values: - NOTFOUND ' message: type: string description: The detail message related to the status and reason listed above. details: type: array items: type: object properties: field: type: string description: This is the flattened JSON object field name/path that is either missing or invalid. reason: type: string description: "Possible reasons for the error.\n\nPossible values:\n - MISSING_FIELD\n - INVALID_DATA\n" example: submitTimeUtc: '2019-07-01T21:36:29Z' status: NOTFOUND reason: NOT_FOUND message: Invoice does not exist. '502': description: Unexpected error. schema: title: invoicingV2InvoicesGet502Response type: object properties: 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 submitted transaction.\n\nPossible values:\n - SERVER_ERROR\n" reason: type: string description: "The reason of the status.\n\nPossible values:\n - SYSTEM_ERROR\n - SERVER_TIMEOUT\n - SERVICE_TIMEOUT\n" message: type: string description: The detail message related to the status and reason listed above. example: submitTimeUtc: '2018-06-12T09:27:20Z' status: SERVER_ERROR reason: SERVER_ERROR message: Error - General system failure. put: tags: - Invoices summary: Update an Invoice description: You can update all information except the invoice number till any payment is received for an invoice. Invoices that are partially or fully paid or cancelled cannot be updated. operationId: updateInvoice x-devcenter-metaData: categoryTag: Invoicing developerGuides: https://developer.cybersource.com/docs/cybs/en-us/invoicing/developer/all/rest/invoicing/Introduction.html consumes: - application/json;charset=utf-8 produces: - application/json - application/hal+json - application/json;charset=utf-8 - application/hal+json;charset=utf-8 parameters: - name: id in: path type: string description: The invoice number. required: true - name: updateInvoiceRequest in: body description: Updating the invoice does not resend the invoice automatically. You must resend the invoice separately. required: true schema: required: - invoiceInformation - orderInformation type: object properties: 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 required: - dueDate - description description: Contains the updatable invoice information. properties: 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 ' sendImmediately: type: boolean description: If set to `true`, we send the invoice immediately. If set to `false`, the invoice remains in draft mode. default: false allowPartialPayments: type: boolean description: If set to `true`, the payer can make a partial invoice payment. default: false 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" orderInformation: type: object required: - amountDetails description: Contains all of the order-related fields, such as the amount and line item details. properties: amountDetails: type: object required: - currency - totalAmount 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. ' discountAmount: example: '10.00' type: string maxLength: 15 description: 'Total discount amount applied to the order. ' discountPercent: example: '10' 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 ' merchantDefinedFieldValues: type: array items: type: object properties: definitionId: type: integer format: int64 value: type: string example: customerInformation: name: Tanya Lee firstName: Tanya lastName: Lee email: tanya.lee@my-email.world merchantCustomerId: '1234' company: name: ABC processingInformation: requestPhone: false requestShipping: false invoiceInformation: description: This is a test invoice dueDate: '2019-07-11' expirationDate: '2028-08-11' sendImmediately: true allowPartialPayments: true deliveryMode: email orderInformation: amountDetails: totalAmount: '2623.64' currency: USD discountAmount: '126.08' discountPercent: '5.0' subAmount: '2749.72' minimumPartialAmount: '20.00' taxDetails: type: State Tax amount: '208.04' rate: '8.25' freight: amount: '20.00' taxable: false lineItems: - productSku: P653727383 productName: First line item's name unitPrice: '12.05' quantity: '20' discountAmount: '13.04' discountPercent: '5.0' taxAmount: '0.0' taxRate: '0.0' totalAmount: '247.86' merchantDefinedFieldValues: - definitionId: 123 value: Some new Value - definitionId: 456 value: Another brand new value responses: '200': description: OK. schema: title: invoicingV2InvoicesPut200Response 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 textDefaultValue: type: string possibleValues: type: string value: type: string position: type: integer definitionId: type: integer merchantDefinedDataIndex: type: integer example: fieldType: Text label: Cup customerVisible: 'true' readOnly: 'false' textMinLength: 1 textMaxLength: 100 textDefaultValue: default text merchantDefinedDataIndex: 15 example: _links: self: href: /v2/invoices/98753 method: GET deliver: href: /v2/invoices/A123/delivery method: POST update: href: /v2/invoices/A123 method: PUT cancel: href: /v2/invoices/A123/cancelation method: POST id: '98753' submitTimeUtc: '2019-06-28T19:48:06Z' status: SENT clientReferenceInformation: partner: developerId: '3435' solutionId: '83745' customerInformation: name: Tanya Lee firstName: Tanya lastName: Lee email: tanya.lee@my-email.world merchantCustomerId: '1234' company: name: ABC processingInformation: requestPhone: false requestShipping: false invoiceInformation: invoiceNumber: '23412' description: This is a test invoice dueDate: '2019-07-11' expirationDate: '2028-08-11' sendImmediately: true allowPartialPayments: true paymentLink: https://ebc.cybersource.com/ebc2/invoicing/payInvoice/c7UI9Vz8rdhXbc8FdK6SaoeOATON4TQLhbd5lfib9UCyywvZLhIrSuYYNFMynMCc deliveryMode: email orderInformation: amountDetails: totalAmount: '2623.64' currency: USD balanceAmount: '2623.64' discountAmount: '126.08' discountPercent: '5.0' subAmount: '2749.72' minimumPartialAmount: '20.00' taxDetails: type: State Tax amount: '208.04' rate: '8.25' freight: amount: '20.00' taxable: false lineItems: - productSku: P653727383 productName: First line item's name unitPrice: '12.05' quantity: '20' discountAmount: '13.04' discountPercent: '5.0' taxAmount: '0.0' taxRate: '0.0' totalAmount: '247.86' merchantDefinedFieldValuesWithDefinition: - id: 1515 fieldType: Text label: Cup customerVisible: 'true' readOnly: 'false' textMinLength: 1 textMaxLength: 100 textDefaultValue: default text merchantDefinedDataIndex: 15 '400': description: Field validation errors. schema: title: invoicingV2InvoicesPut400Response type: object properties: 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.\n\nPossible values:\n - BADREQUEST\n" reason: type: string description: 'The reason of the status. Possible values: - DUPLICATE_RECORD - ACTION_NOT_ALLOWED - VALIDATION_ERRORS - INVALID_IMAGE - INVALID_TRANSIENT_TOKEN ' message: type: string description: The detail message related to the status and reason listed above. details: type: array items: type: object properties: field: type: string description: This is the flattened JSON object field name/path that is either missing or invalid. reason: type: string description: "Possible reasons for the error.\n\nPossible values:\n - MISSING_FIELD\n - INVALID_DATA\n" example: submitTimeUtc: '2019-07-01T21:40:10Z' status: BADREQUEST reason: VALIDATION_ERROR message: Field validation errors. details: - field: customerInformation.email reason: Invalid email '404': description: Invoice does not exist. schema: title: invoicingV2InvoicesPut404Response type: object properties: 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.\n\nPossible values:\n - NOTFOUND\n" reason: type: string description: 'The reason of the status. Possible values: - NOTFOUND ' message: type: string description: The detail message related to the status and reason listed above. details: type: array items: type: object properties: field: type: string description: This is the flattened JSON object field name/path that is either missing or invalid. reason: type: string description: "Possible reasons for the error.\n\nPossible values:\n - MISSING_FIELD\n - INVALID_DATA\n" example: submitTimeUtc: '2019-07-01T21:36:29Z' status: NOTFOUND reason: NOT_FOUND message: Invoice does not exist. '502': description: Unexpected error. schema: title: invoicingV2InvoicesPut502Response type: object properties: 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 submitted transaction.\n\nPossible values:\n - SERVER_ERROR\n" reason: type: string description: "The reason of the status.\n\nPossible values:\n - SYSTEM_ERROR\n - SERVER_TIMEOUT\n - SERVICE_TIMEOUT\n" message: type: string description: The detail message related to the status and reason listed above. example: submitTimeUtc: '2018-06-12T09:27:20Z' status: SERVER_ERROR reason: SERVER_ERROR message: Error - General system failure. x-example: example0: summary: Update an invoice value: customerInformation: name: Tanya Lee firstName: Tanya lastName: Lee email: tanya.lee@my-email.world merchantCustomerId: '1234' company: name: ABC processingInformation: requestPhone: false requestShipping: false invoiceInformation: description: This is an updated test invoice dueDate: '2019-07-15' expirationDate: '2028-08-11' allowPartialPayments: true deliveryMode: none orderInformation: amountDetails: totalAmount: '2623.64' currency: USD discountAmount: '126.08' discountPercent: '5.0' subAmount: '2749.72' minimumPartialAmount: '200.00' taxDetails: type: State Tax amount: '208.00' rate: '8.25' freight: amount: '20.00' taxable: true lineItems: - productSku: P653727383 productName: First line item's name unitPrice: '12.05' quantity: '20' discountAmount: '13.04' discountPercent: '5.0' taxAmount: '0.0' taxRate: '0.0' totalAmount: '247.86' merchantDefinedFieldValues: - definitionId: 123 value: Some new Value - definitionId: 456 value: Another brand new value example1: summary: Update a simple invoice value: customerInformation: name: Tanya Lee email: tanya.lee@my-email.world processingInformation: requestPhone: false requestShipping: false invoiceInformation: description: This is a test invoice dueDate: '2019-07-11' expirationDate: '2028-08-11' sendImmediately: true allowPartialPayments: true deliveryMode: none orderInformation: amountDetails: totalAmount: '2623.64' currency: USD discountAmount: '126.08' discountPercent: '5.0' subAmount: '2749.72' minimumPartialAmount: '20.00' taxDetails: type: State Tax amount: '208.04' rate: '8.25' freight: amount: '20.00' taxable: false merchantDefinedFieldValues: - definitionId: 123 value: Some new Value - definitionId: 456 value: Another brand new value /invoicing/v2/invoices/{id}/delivery: post: tags: - Invoices summary: Send an Invoice description: You can send an invoice in draft or created state or resend a sent or partially paid invoice. Fully paid or canceled invoices cannot be resent. operationId: performSendAction x-devcenter-metaData: categoryTag: Invoicing developerGuides: https://developer.cybersource.com/docs/cybs/en-us/invoicing/developer/all/rest/invoicing/Introduction.html consumes: - application/json;charset=utf-8 produces: - application/json - application/hal+json - application/json;charset=utf-8 - application/hal+json;charset=utf-8 parameters: - name: id in: path type: string description: The invoice number. required: true x-depends: example: path: /invoicing/v2/invoices verb: post exampleId: example0 fieldMapping: - sourceField: id destinationField: id fieldTypeInDestination: path responses: '200': description: OK. schema: title: invoicingV2InvoicesSend200Response 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 ' example: _links: self: href: /v2/invoices/51 method: GET update: href: /v2/invoices/51 method: PUT deliver: href: /v2/invoices/51/delivery method: POST cancel: href: /v2/invoices/51/cancelation method: POST id: '51' submitTimeUtc: '2020-03-12T21:15:07Z' status: SENT customerInformation: name: Tanya Lee firstName: Tanya lastName: Lee email: tanya.lee@my-email.world merchantCustomerId: '1234' company: name: ABC processingInformation: requestPhone: false requestShipping: false invoiceInformation: invoiceNumber: '98753' description: This is a test invoice dueDate: '2019-07-11' expirationDate: '2028-08-11' allowPartialPayments: true paymentLink: https://ebc.cybersource.com/ebc2/invoicing/payInvoice/c7UI9Vz8rdhXbc8FdK6SaoeOATON4TQLhbd5lfib9UCyywvZLhIrSuYYNFMynMCc deliveryMode: email orderInformation: amountDetails: totalAmount: '2623.64' currency: USD balanceAmount: '2623.64' discountAmount: '126.08' discountPercent: '5.0' subAmount: '2749.72' minimumPartialAmount: '20.00' taxDetails: type: State Tax amount: '208.04' rate: '8.25' freight: amount: '20.00' taxable: false lineItems: - productSku: P653727383 productName: First line item's name unitPrice: '12.05' quantity: '20' discountAmount: '13.04' discountPercent: '5.0' taxAmount: '0.0' taxRate: '0.0' totalAmount: '247.86' merchantDefinedFieldValues: - definitionId: 123 value: Some new Value - definitionId: 456 value: Another brand new value '400': description: Requested action is not allowed. schema: title: invoicingV2InvoicesSend400Response type: object properties: 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.\n\nPossible values:\n - BADREQUEST\n" reason: type: string description: 'The reason of the status. Possible values: - DUPLICATE_RECORD - ACTION_NOT_ALLOWED - VALIDATION_ERRORS - INVALID_IMAGE - INVALID_TRANSIENT_TOKEN ' message: type: string description: The detail message related to the status and reason listed above. details: type: array items: type: object properties: field: type: string description: This is the flattened JSON object field name/path that is either missing or invalid. reason: type: string description: "Possible reasons for the error.\n\nPossible values:\n - MISSING_FIELD\n - INVALID_DATA\n" example: submitTimeUtc: '2019-07-01T21:40:10Z' status: BADREQUEST reason: VALIDATION_ERROR message: Field validation errors. details: - field: customerInformation.email reason: Invalid email '404': description: Invoice does not exist. schema: title: invoicingV2InvoicesSend404Response type: object properties: 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.\n\nPossible values:\n - NOTFOUND\n" reason: type: string description: 'The reason of the status. Possible values: - NOTFOUND ' message: type: string description: The detail message related to the status and reason listed above. details: type: array items: type: object properties: field: type: string description: This is the flattened JSON object field name/path that is either missing or invalid. reason: type: string description: "Possible reasons for the error.\n\nPossible values:\n - MISSING_FIELD\n - INVALID_DATA\n" example: submitTimeUtc: '2019-07-01T21:36:29Z' status: NOTFOUND reason: NOT_FOUND message: Invoice does not exist. '502': description: Unexpected error. schema: title: invoicingV2InvoicesSend502Response type: object properties: 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 submitted transaction.\n\nPossible values:\n - SERVER_ERROR\n" reason: type: string description: "The reason of the status.\n\nPossible values:\n - SYSTEM_ERROR\n - SERVER_TIMEOUT\n - SERVICE_TIMEOUT\n" message: type: string description: The detail message related to the status and reason listed above. example: submitTimeUtc: '2018-06-12T09:27:20Z' status: SERVER_ERROR reason: SERVER_ERROR message: Error - General system failure. /invoicing/v2/invoices/{id}/cancelation: post: tags: - Invoices summary: Cancel an Invoice description: You can cancel an invoice if no payment is made to it. You cannot cancel partially or fully paid invoices. operationId: performCancelAction x-devcenter-metaData: categoryTag: Invoicing developerGuides: https://developer.cybersource.com/docs/cybs/en-us/invoicing/developer/all/rest/invoicing/Introduction.html consumes: - application/json;charset=utf-8 produces: - application/json - application/hal+json - application/json;charset=utf-8 - application/hal+json;charset=utf-8 parameters: - name: id in: path type: string description: The invoice number. required: true x-depends: example: path: /invoicing/v2/invoices verb: post exampleId: example0 fieldMapping: - sourceField: id destinationField: id fieldTypeInDestination: path responses: '200': description: OK. schema: title: invoicingV2InvoicesCancel200Response 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 ' example: _links: self: href: /v2/invoices/51 method: GET id: '51' submitTimeUtc: '2020-03-12T21:15:07Z' status: CANCELED customerInformation: name: Tanya Lee firstName: Tanya lastName: Lee email: tanya.lee@my-email.world merchantCustomerId: '1234' company: name: ABC processingInformation: requestPhone: false requestShipping: false invoiceInformation: invoiceNumber: '98753' description: This is a test invoice dueDate: '2019-07-11' expirationDate: '2028-08-11' allowPartialPayments: true deliveryMode: email orderInformation: amountDetails: totalAmount: '2623.64' currency: USD balanceAmount: '2623.64' discountAmount: '126.08' discountPercent: '5.0' subAmount: '2749.72' minimumPartialAmount: '20.00' taxDetails: type: State Tax amount: '208.04' rate: '8.25' freight: amount: '20.00' taxable: false lineItems: - productSku: P653727383 productName: First line item's name unitPrice: '12.05' quantity: '20' discountAmount: '13.04' discountPercent: '5.0' taxAmount: '0.0' taxRate: '0.0' totalAmount: '247.86' '400': description: Requested action is not allowed. schema: title: invoicingV2InvoicesCancel400Response type: object properties: 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.\n\nPossible values:\n - BADREQUEST\n" reason: type: string description: 'The reason of the status. Possible values: - DUPLICATE_RECORD - ACTION_NOT_ALLOWED - VALIDATION_ERRORS - INVALID_IMAGE - INVALID_TRANSIENT_TOKEN ' message: type: string description: The detail message related to the status and reason listed above. details: type: array items: type: object properties: field: type: string description: This is the flattened JSON object field name/path that is either missing or invalid. reason: type: string description: "Possible reasons for the error.\n\nPossible values:\n - MISSING_FIELD\n - INVALID_DATA\n" example: submitTimeUtc: '2019-07-01T21:40:10Z' status: BADREQUEST reason: VALIDATION_ERROR message: Field validation errors. details: - field: customerInformation.email reason: Invalid email '404': description: Invoice does not exist. schema: title: invoicingV2InvoicesCancel404Response type: object properties: 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.\n\nPossible values:\n - NOTFOUND\n" reason: type: string description: 'The reason of the status. Possible values: - NOTFOUND ' message: type: string description: The detail message related to the status and reason listed above. details: type: array items: type: object properties: field: type: string description: This is the flattened JSON object field name/path that is either missing or invalid. reason: type: string description: "Possible reasons for the error.\n\nPossible values:\n - MISSING_FIELD\n - INVALID_DATA\n" example: submitTimeUtc: '2019-07-01T21:36:29Z' status: NOTFOUND reason: NOT_FOUND message: Invoice does not exist. '502': description: Unexpected error. schema: title: invoicingV2InvoicesCancel502Response type: object properties: 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 submitted transaction.\n\nPossible values:\n - SERVER_ERROR\n" reason: type: string description: "The reason of the status.\n\nPossible values:\n - SYSTEM_ERROR\n - SERVER_TIMEOUT\n - SERVICE_TIMEOUT\n" message: type: string description: The detail message related to the status and reason listed above. example: submitTimeUtc: '2018-06-12T09:27:20Z' status: SERVER_ERROR reason: SERVER_ERROR message: Error - General system failure. /invoicing/v2/invoices/{id}/publication: post: tags: - Invoices summary: Publish an Invoice description: You can publish an invoice in DRAFT status. After invoking this method, the invoice status is changed to CREATED. operationId: performPublishAction x-devcenter-metaData: categoryTag: Invoicing developerGuides: https://developer.cybersource.com/docs/cybs/en-us/invoicing/developer/all/rest/invoicing/Introduction.html consumes: - application/json;charset=utf-8 produces: - application/json - application/hal+json - application/json;charset=utf-8 - application/hal+json;charset=utf-8 parameters: - name: id in: path type: string description: The invoice number. required: true x-depends: example: path: /invoicing/v2/invoices verb: post exampleId: example0 fieldMapping: - sourceField: id destinationField: id fieldTypeInDestination: path responses: '200': description: OK. schema: title: invoicingV2InvoicesPublish200Response 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 ' example: _links: self: href: /v2/invoices/51/publication method: POST id: '51' submitTimeUtc: '2020-03-12T21:15:07Z' status: CREATED customerInformation: name: Tanya Lee firstName: Tanya lastName: Lee email: tanya.lee@my-email.world merchantCustomerId: '1234' company: name: ABC processingInformation: requestPhone: false requestShipping: false invoiceInformation: invoiceNumber: '98753' description: This is a test invoice dueDate: '2019-07-11' expirationDate: '2028-08-11' allowPartialPayments: true deliveryMode: none orderInformation: amountDetails: totalAmount: '2623.64' currency: USD balanceAmount: '2623.64' discountAmount: '126.08' discountPercent: '5.0' subAmount: '2749.72' minimumPartialAmount: '20.00' taxDetails: type: State Tax amount: '208.04' rate: '8.25' freight: amount: '20.00' taxable: false lineItems: - productSku: P653727383 productName: First line item's name unitPrice: '12.05' quantity: '20' discountAmount: '13.04' discountPercent: '5.0' taxAmount: '0.0' taxRate: '0.0' totalAmount: '247.86' '400': description: Requested action is not allowed. schema: title: invoicingV2InvoicesPublish400Response type: object properties: 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.\n\nPossible values:\n - BADREQUEST\n" reason: type: string description: 'The reason of the status. Possible values: - DUPLICATE_RECORD - ACTION_NOT_ALLOWED - VALIDATION_ERRORS - INVALID_IMAGE - INVALID_TRANSIENT_TOKEN ' message: type: string description: The detail message related to the status and reason listed above. details: type: array items: type: object properties: field: type: string description: This is the flattened JSON object field name/path that is either missing or invalid. reason: type: string description: "Possible reasons for the error.\n\nPossible values:\n - MISSING_FIELD\n - INVALID_DATA\n" example: submitTimeUtc: '2019-07-01T21:40:10Z' status: BADREQUEST reason: VALIDATION_ERROR message: Field validation errors. details: - field: customerInformation.email reason: Invalid email '404': description: Invoice does not exist. schema: title: invoicingV2InvoicesPublish404Response type: object properties: 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.\n\nPossible values:\n - NOTFOUND\n" reason: type: string description: 'The reason of the status. Possible values: - NOTFOUND ' message: type: string description: The detail message related to the status and reason listed above. details: type: array items: type: object properties: field: type: string description: This is the flattened JSON object field name/path that is either missing or invalid. reason: type: string description: "Possible reasons for the error.\n\nPossible values:\n - MISSING_FIELD\n - INVALID_DATA\n" example: submitTimeUtc: '2019-07-01T21:36:29Z' status: NOTFOUND reason: NOT_FOUND message: Invoice does not exist. '502': description: Unexpected error. schema: title: invoicingV2InvoicesPublish502Response type: object properties: 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 submitted transaction.\n\nPossible values:\n - SERVER_ERROR\n" reason: type: string description: "The reason of the status.\n\nPossible values:\n - SYSTEM_ERROR\n - SERVER_TIMEOUT\n - SERVICE_TIMEOUT\n" message: type: string description: The detail message related to the status and reason listed above. example: submitTimeUtc: '2018-06-12T09:27:20Z' status: SERVER_ERROR reason: SERVER_ERROR message: Error - General system failure. x-devcenter-metaData: categoryTagArray: - name: Payments description: For more information about Payments transactions, see the [Payments Developer Guides Page](https://developer.cybersource.com/docs/cybs/en-us/payments/developer/ctv/rest/payments/payments-intro.html). - name: Transaction_Batches description: For more information about Transaction Batches, see the [Transaction Batches Developer Guides Page](https://developer.cybersource.com/api/developer-guides/dita-transaction-batch-api/txn_batch_api_intro.html). - name: eCheck_AVS description: For more information about eCheck Account Validation, see the [Account Validation Developer Guides Page](https://...). - name: Token_Management description: For more information about the Token Management Service (TMS) see the [Token Management Developer Guide](https://developer.cybersource.com/docs/cybs/en-us/tms/developer/all/rest/tms/tms-overview.html) - name: Flex_Microform description: Microform Integration is a lightweight acceptance solution designed to safely and securely accept payment information within your web page. Microform is designed to a be embedded seamlessly within your existing webpage experience, blending in with your existing acceptance form. This solution allows for the replacement of sensitive payment date with a transient token (a short lived reference to the sensitive payment data). For more information about Flex Microform transactions, see the [Flex Developer Guides Page](https://developer.cybersource.com/api/developer-guides/dita-flex/SAFlexibleToken.html). For examples on how to integrate Flex Microform within your webpage please see our [GitHub Flex Samples](https://github.com/CyberSource?q=flex&type=&language=) - name: Flex_API description: For more information about Flex API, please see [Developer Guides Page](https://developer.cybersource.com/docs/cybs/en-us/digital-accept-flex/developer/all/rest/digital-accept-flex/da-flex-api-intro.html). - name: Risk_Management - name: Payouts description: 'For more information about Payouts, see the [Payouts Developer Guides Page](https://developer.cybersource.com/api/developer-guides/dita-payouts/Introduction.html). ' - name: Installments description: For more information about Installment contact Cybersource Support. For Visa installments contact VISthroughCYBS@visa.com - name: Recurring_Billing_Subscriptions description: For more information about Recurring Billing, see the [Recurring Billing Developer Guide](https://developer.cybersource.com/docs/cybs/en-us/recurring-billing/developer/all/rest/recurring-billing-developer/recur-bill-services-intro.html). - name: BIN_Lookup description: 'The BIN Lookup Service is a versatile business tool that provides card network agnostic solution designed to ensure frictionless transaction experience by utilizing up-to-date Bank Identification Number (BIN) attributes sourced from multiple global and regional data sources. This service helps to improve authorization rates by helping to route transactions to the best-suited card network, minimizes fraud through card detail verification and aids in regulatory compliance by identifying card properties. The service is flexible and provides businesses with a flexible choice of inputs such as primary account number (PAN), network token from major networks (such as Visa, American Express, Discover and regional networks) which includes device PAN (DPAN), and all types of tokens generated via CyberSource Token Management Service (TMS). Currently, the range of available credentials is contingent on the networks enabled for the business entity. Therefore, the network information specified in this documentation is illustrative and subject to personalized offerings for each reseller or merchant. ' - name: Transaction_Details description: For more information about Transaction Details, see the [Transaction Details Developer Guides Page](https://developer.cybersource.com/api/developer-guides/dita-txn-search-details-rest-api-dev-guide-102718/txn_details_api.html). - name: Transaction_Search description: For more information about Transaction Search, see the [Transaction Search Developer Guides Page](https://developer.cybersource.com/api/developer-guides/dita-txn-search-details-rest-api-dev-guide-102718/txn_search_api.html). - name: Reporting description: 'For more information about Reporting, see the [Reporting Developer Guides Page](https://developer.cybersource.com/api/developer-guides/dita-reporting-rest-api-dev-guide-102718/reporting_api.html). ' - name: Secure_File_Share description: For more information about Secure File Share, see the [Secure File Share Developer Guides Page](https://developer.cybersource.com/api/developer-guides/dita-secure-file-share-api-102718/secure_file_share_api_intro.html). - name: Invoices description: For more information about Invoicing, see the [Invoicing Developer Guide](https://developer.cybersource.com/docs/cybs/en-us/invoicing/developer/all/rest/invoicing/Introduction.html). - name: Pay_By_Link description: For more information about PayByLink, see the [PBL Developer Guide](https://developer.cybersource.com/docs/cybs/en-us/boarding/user/all/rest/boarding/templates-matrix-intro/templates-matrix-pay-by-link.html). - name: User_Management description: For more information about User Management, see the [User Managment Developer Guides Page](https://developer.cybersource.com/api/developer-guides/dita-user-management-api-102718/user_management_api_intro.html). - name: Value_Added_Service - name: Fee Service - name: Merchant_Boarding description: For more information about Merchant Boarding, please see [Developer Guides Page](https://developer.cybersource.com/api/developer-guides/Merchant-Boarding-API_ditamap/Merchant-Boarding-API.html). - name: Webhooks description: For more information about Webhooks, please see [Developer Guides Page](https://developer.cybersource.com/docs/cybs/en-us/webhooks/implementation/all/rest/webhooks/wh-fg-intro.html). - name: Unified_Checkout description: For more information about Unified Checkout, see the [Unified Checkout Developer Guides Page](https://developer.cybersource.com/docs/cybs/en-us/unified-checkout/developer/all/rest/unified-checkout/uc-intro.html). - name: Unified_Checkoutv1 description: For more information about Unified Checkout, see the [Unified Checkout Developer Guides Page](https://developer.cybersource.com/docs/cybs/en-us/unified-checkout/developer/all/rest/unified-checkout/uc-about-guide.html). - name: Account_Updater description: For more information about Account Updater, see the [Account Updater Developer Guides Page:](https://developer.cybersource.com/library/documentation/dev_guides/Account_Updater_UG/html/index.html). - name: Visa_Bank_Account_Validation description: 'The Visa Bank Account Validation Service is a new standalone product designed to validate customer''s routing and bank account number combination for ACH transactions. Merchant''s can use this standalone product to validate their customer''s account prior to processing an ACH transaction against the customer''s account to comply with Nacha''s account validation mandate for Web-debit transactions. ' - name: Currency Conversion description: 'Empower global transactions with transparency and choice. Our Dynamic Currency Conversion API lets merchants offer customers the option to pay in their home currency at checkout, delivering real-time exchange rates and clear cost disclosure. **Key Benefits:** - **Enhanced Customer Experience:** Provide clarity and convenience for international shoppers. - **Real-Time Rates:** Accurate currency conversion with all the data required for acquirers and their merchants to maintain compliance with card network rules. - **Seamless Integration:** Flexible API endpoints for rate lookup, authorization, and capture. - **Regulatory Compliance:** Provides the data required for acquirers and merchants to meet and maintain card scheme requirements for disclosure and consent. Ideal for merchants and payment partners seeking to boost trust and conversion in cross-border commerce. **Key Features:** - **Rate Lookup:** Retrieves the most up-to-date exchange rate for eligible cards before authorization. - **Currency Choice:** Enables the merchant to offer customers the option to select between the merchant''s local currency and their card''s billing currency. - **Compliance:** Ensures merchants have the data required to adhere to card network regulations; exchange rates, markups, etc. **Supported Scenarios:** - Dynamic Currency Conversion when cardholder''s billing currency differs from merchant''s pricing currency. - Merchant and acquirer must support the cardholder''s billing currency. **Core API Endpoints:** **Currency Conversion API** Returns eligibility and exchange rate details, including: - exchangeRate - marginRate - reconciliationId and Id (for subsequent payment requests) **Payment Authorization with DCC*** POST /pts/v2/payments Required fields include: - orderInformation.amountDetails.currency - orderInformation.amountDetails.originalCurrency - orderInformation.amountDetails.originalAmount - orderInformation.amountDetails.exchangeRate - currencyConversion.indicator (e.g., 1 = Converted, 2 = Nonconvertible, 3 = Declined) **Capture with DCC*** POST /pts/v2/payments/{id}/captures Maps from original authorization and includes original and converted amounts. **Refund with DCC*** POST /pts/v2/captures/{id}/refunds Maps from original authorization and includes original and converted amounts. *Note: DCC is only supported on select processors. Contact your acquirer or account manager for more information. **Compliance & Disclosure:** Merchants must: - Adhere to card network rules for Dynamic Currency Conversion (DCC) transactions. - Display the converted amount, exchange rate, and markup percentage and other required disclosures. - Obtain explicit cardholder consent before applying DCC. - Work with your acquirer to obtain full set of compliance requirements. For more information, see the [Currency Conversion Developer Guide](https://developer.cybersource.com/docs/cybs/en-us/currency-conversion/developer/all/rest/currency-conversion/cc-intro.html). ' - name: Intelligent_Commerce_Connect description: For more information about Intelligent Commerce Cross Network Service API, please see [Developer Guides](https://developer.cybersource.com/docs/cybs/en-us/intelligent-commerce/developer/all/rest/intelligent-commerce/intelligent-commerce-about-guide.html).