CyberSource taxes API

tax calculation service

Operations 2

POST /vas/v2/tax Calculate Taxes #
PATCH /vas/v2/tax/{id} Void Taxes #

Work with this as data

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

MCP server

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

https://apis.io/mcp

Tools for apis

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

Call it yourself

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

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

Get an API key

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

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

OpenAPI Specification

cybersource-taxes-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  description: All CyberSource API specs merged together. These are available at https://developer.cybersource.com/api/reference/api-reference.html
  version: 0.0.1
  title: CyberSource Merged Spec bankAccountValidation Taxes API
servers:
- url: https://apitest.cybersource.com/
tags:
- name: taxes
  description: tax calculation service
paths:
  /vas/v2/tax:
    post:
      summary: Calculate Taxes
      description: "The tax calculation service provides real-time sales tax and VAT calculations for orders placed with your business worldwide. \nIt enhances your ability to conduct business globally and enables you to avoid the risk and complexity of managing online tax calculation. \nThe service supports product-based tax rules and exemptions for goods and services. \nThe tax rates are updated twice a month and calculations include sub-level detail (rates per taxing jurisdiction, names and types of jurisdictions).\nImplementation guidance, list of supported countries, and information on tax reporting are in the [Tax User Guide](https://developer.cybersource.com/docs/cybs/en-us/tax-calculation/developer/all/rest/tax-calculation/tax-overview.html).\nThe 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.\n"
      operationId: calculateTax
      x-devcenter-metaData:
        categoryTag: Value_Added_Service
        developerGuides: https://developer.cybersource.com/docs/cybs/en-us/tax-calculation/developer/all/rest/tax-calculation/tax-overview.html
      tags:
      - taxes
      responses:
        '201':
          description: Successful response.
          content:
            application/hal+json;charset=utf-8:
              schema:
                title: vasV2PaymentsPost201Response
                type: object
                properties:
                  _links:
                    type: object
                    properties:
                      void:
                        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 submitted transaction.\n\nPossible values:\n - COMPLETED\n"
                  clientReferenceInformation:
                    type: object
                    properties:
                      code:
                        type: string
                        maxLength: 59
                        description: 'Merchant-generated order reference or tracking number. It is recommended that you send a unique value for each

                          transaction so that you can perform meaningful searches for the transaction.


                          #### Used by

                          **Authorization**

                          Required field.


                          #### PIN Debit

                          Requests for PIN debit reversals need to use the same merchant reference number that was used in the transaction that is being

                          reversed.


                          Required field for all PIN Debit requests (purchase, credit, and reversal).


                          #### FDC Nashville Global

                          Certain circumstances can cause the processor to truncate this value to 15 or 17 characters for Level II and Level III processing, which can cause a discrepancy between the value you submit and the value included in some processor reports.

                          '
                      submitLocalDateTime:
                        type: string
                        maxLength: 14
                        description: 'Date and time at your physical location.


                          Format: `YYYYMMDDhhmmss`, where YYYY = year, MM = month, DD = day, hh = hour, mm = minutes ss = seconds


                          #### PIN Debit

                          Optional field for PIN Debit purchase and credit requests.

                          '
                      ownerMerchantId:
                        type: string
                        description: 'Merchant ID that was used to create the subscription or customer profile for which the service was requested.


                          If your CyberSource account is enabled for Recurring Billing, this field is returned only if you are using

                          subscription sharing and if your merchant ID is in the same merchant ID pool as the owner merchant ID.


                          If your CyberSource account is enabled for Payment Tokenization, this field is returned only if you are using

                          profile sharing and if your merchant ID is in the same merchant ID pool as the owner merchant ID.

                          '
                  taxInformation:
                    type: object
                    properties:
                      commitIndicator:
                        type: boolean
                        description: 'Indicates whether this is a committed tax transaction. For a committed tax transaction, the status in the Tax Detail Report is "Committed." For an uncommitted tax transaction, the status in the Tax Detail Report is "Uncommitted." Possible values:

                          - `true`: This is a committed tax transaction.

                          - `false` (default): This is not a committed tax transaction.


                          A committed tax request is a tax service request that sets the status field in the Tax Detail Report to committed.

                          The committed status indicates that the amount calculated by the tax service is included in the amount of a capture or credit.


                          Use a void service request to cancel a committed tax request or a committed refund tax request. The void transaction is included as a separate entry in the Tax Detail Report. The value of the status field is cancelled. The value of the link ID is the request ID of the committed tax request or refund tax request that was voided. You can use the value of the link ID to reconcile your orders.


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

                          For more information on Tax Detail Report features refer the [Tax Service Guide](https://developer.cybersource.com/docs/cybs/en-us/tax-calculation/developer/all/rest/tax-calculation/tax-overview.html).

                          '
                      refundIndicator:
                        type: boolean
                        description: 'Indicates whether this is a refund tax transaction. For a refund tax transaction, amounts in the Tax Detail Report will be negative.

                          Possible values:

                          - `true`: This is a refund tax transaction.

                          - `false` (default): This is not a refund tax transaction.


                          A refund tax request is a tax service request that sets the transaction type field in the Tax Detail Report to refunded and makes the reported amount negative.

                          Tax amounts are returned as positive amounts in reply messages, but they are saved in reports as negative amounts which enables the reporting software to accurately calculate the aggregate amounts.


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

                          For more information on Tax Detail Report features refer the [Tax Service Guide](https://developer.cybersource.com/docs/cybs/en-us/tax-calculation/developer/all/rest/tax-calculation/tax-overview.html).

                          '
                  orderInformation:
                    type: object
                    properties:
                      exemptAmount:
                        type: string
                        maxLength: 15
                        description: 'Total amount of tax exempt amounts. This value is the sum of the values for all the `orderInformation.lineItems[].exemptAmount` fields in the tax calculation request.

                          '
                      taxableAmount:
                        type: string
                        maxLength: 15
                        description: 'Total amount of all taxable amounts. This value is the sum of the values for all the `orderInformation.lineItems[].taxAmount` fields in the tax calculation request.

                          '
                      taxAmount:
                        type: string
                        maxLength: 15
                        description: 'Total amount of tax for all lineItems in the tax calculation request.

                          '
                      lineItems:
                        type: array
                        items:
                          type: object
                          properties:
                            taxDetails:
                              type: array
                              items:
                                type: object
                                properties:
                                  type:
                                    type: string
                                    maxLength: 15
                                    description: 'Allowed tax types:

                                      - city

                                      - county

                                      - state

                                      - national

                                      - special

                                      '
                                  amount:
                                    type: string
                                    maxLength: 15
                                    description: 'Amount corresponding to different types of taxes applied.

                                      '
                            jurisdiction:
                              type: array
                              items:
                                type: object
                                properties:
                                  type:
                                    type: string
                                    maxLength: 15
                                    description: 'Type of tax jurisdiction for the item. Returned only if the `taxInformation.showTaxPerLineItem` field is set to `Yes`.


                                      Possible values:

                                      - `city`

                                      - `county`

                                      - `state`

                                      - `country`

                                      - `special`

                                      '
                                  taxName:
                                    type: string
                                    maxLength: 15
                                    description: 'Name of the jurisdiction tax for the item. For example, CA State Tax. Returned only if the `taxInformation.showTaxPerLineItem` field is set to `Yes`.

                                      '
                                  taxAmount:
                                    type: string
                                    maxLength: 15
                                    description: 'Jurisdiction tax amount for the item. Returned only if the `taxInformation.showTaxPerLineItem` field is set to `Yes`.

                                      '
                                  taxable:
                                    type: string
                                    maxLength: 15
                                    description: 'Jurisdiction taxable amount for the item, not including product level exemptions. Returned only if the `taxInformation.showTaxPerLineItem` field is set to `Yes`.

                                      '
                                  name:
                                    type: string
                                    maxLength: 15
                                    description: 'Free-text description of the jurisdiction for the item. For example, San Mateo County. Returned only if the `taxInformation.showTaxPerLineItem` field is set to `Yes`.

                                      '
                                  code:
                                    type: string
                                    maxLength: 15
                                    description: 'Jurisdiction code assigned by the tax provider. Returned only if the `taxInformation.showTaxPerLineItem` field is set to `Yes`.

                                      '
                                  rate:
                                    type: string
                                    maxLength: 15
                                    description: 'Jurisdiction tax rate for the item. Returned only if the `taxInformation.showTaxPerLineItem` field is set to `Yes`.

                                      '
                                  region:
                                    type: string
                                    maxLength: 15
                                    description: 'Free-text description of the jurisdiction region for the item. For example, CA (California State) or GB (Great Britain). Returned only if the `taxInformation.showTaxPerLineItem` field is set to `Yes`.

                                      '
                                  country:
                                    type: string
                                    maxLength: 15
                                    description: 'Tax jurisdiction country for the item. Returned only if the `taxInformation.showTaxPerLineItem` field is set to `Yes`.

                                      '
                            exemptAmount:
                              type: string
                              maxLength: 15
                              description: 'Exempt amount for the lineItem. Returned only if the `taxInformation.showTaxPerLineItem` field is set to `Yes`.

                                '
                            taxableAmount:
                              type: string
                              maxLength: 15
                              description: 'Portion of the item amount that is taxable.

                                '
                            taxAmount:
                              type: string
                              maxLength: 15
                              description: 'Total tax for the item. This value is the sum of all taxes applied to the item.

                                '
                      taxDetails:
                        type: array
                        items:
                          type: object
                          properties:
                            type:
                              type: string
                              maxLength: 15
                              description: 'Allowed tax types:

                                - city

                                - county

                                - state

                                - national

                                - special

                                '
                            amount:
                              type: string
                              maxLength: 15
                              description: 'Amount corresponding to different types of taxes applied.

                                '
                      amountDetails:
                        type: object
                        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.

                              '
        '400':
          description: Invalid request.
          content:
            application/hal+json;charset=utf-8:
              schema:
                type: object
                title: vasV2PaymentsPost400Response
                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 - INVALID_REQUEST\n"
                  reason:
                    type: string
                    description: "The reason of the status.\n\nPossible values:\n - MISSING_FIELD\n - INVALID_DATA\n - INVALID_MERCHANT_CONFIGURATION\n - INVALID_ADDRESS\n"
                  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"
        '502':
          description: Unexpected system error or system timeout.
          content:
            application/hal+json;charset=utf-8:
              schema:
                title: vasV2PaymentsPost502Response
                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.
      x-example:
        example0:
          summary: Basic Tax Calculation Request
          sample-name: Tax Calculation
          value:
            clientReferenceInformation:
              code: TAX_TC001
            orderInformation:
              billTo:
                country: US
                address1: 1 Market St
                postalCode: 94105
                locality: San Francisco
                administrativeArea: CA
              amountDetails:
                currency: USD
              lineItems:
              - productSKU: 07-12-00657
                productName: Chewing Gum
                productCode: 50161815
                quantity: 1
                unitPrice: 1200
              - productSKU: 07-12-00659
                productName: Sugar Cookies
                productCode: 50181905
                quantity: 1
                unitPrice: 1240
              - productSKU: 07-12-00658
                productName: Carbonated Water
                productCode: 5020.11
                quantity: 1
                unitPrice: 9001
            taxInformation:
              showTaxPerLineItem: 'Yes'
        example1:
          summary: Tax Refund Request
          sample-name: Tax Refund Calculation
          value:
            clientReferenceInformation:
              code: TAX_TC001
            orderInformation:
              billTo:
                country: US
                address1: 1 Market St
                postalCode: 94105
                locality: San Francisco
                administrativeArea: CA
              shipTo:
                country: US
                address1: 123 Russel St.
                postalCode: 32401
                locality: Panama City
                administrativeArea: FL
              shippingDetails:
                shipFromCountry: CA
                shipFromLocality: Cambridge Bay
                shipFromAdministrativeArea: NL
                shipFromPostalCode: A0G 1T0
              amountDetails:
                currency: USD
              lineItems:
              - productSKU: 07-12-00657
                productName: Chewing Gum
                productCode: 50161815
                quantity: 1
                unitPrice: 1200
              - productSKU: 07-12-00659
                productName: Sugar Cookies
                productCode: 50181905
                quantity: 1
                unitPrice: 1240
              - productSKU: 07-12-00658
                productName: Carbonated Water
                productCode: 5020.11
                quantity: 1
                unitPrice: 9001
            taxInformation:
              showTaxPerLineItem: 'Yes'
              refundIndicator: true
            merchantInformation:
              vatRegistrationNumber: abcdef
        example2:
          summary: Committed Tax Call Request
          sample-name: Committed Tax Calculation
          value:
            clientReferenceInformation:
              code: TAX_TC001
            orderInformation:
              billTo:
                country: US
                address1: 1 Market St
                postalCode: 94105
                locality: San Francisco
                administrativeArea: CA
              shipTo:
                country: US
                address1: 123 Russel St.
                postalCode: 32401
                locality: Panama City
                administrativeArea: FL
              shippingDetails:
                shipFromCountry: CA
                shipFromLocality: Cambridge Bay
                shipFromAdministrativeArea: NL
                shipFromPostalCode: A0G 1T0
              amountDetails:
                currency: USD
              lineItems:
              - productSKU: 07-12-00657
                productName: Chewing Gum
                productCode: 50161815
                quantity: 1
                unitPrice: 1200
              - productSKU: 07-12-00659
                productName: Sugar Cookies
                productCode: 50181905
                quantity: 1
                unitPrice: 1240
              - productSKU: 07-12-00658
                productName: Carbonated Water
                productCode: 5020.11
                quantity: 1
                unitPrice: 9001
            taxInformation:
              showTaxPerLineItem: 'Yes'
              commitIndicator: true
            merchantInformation:
              vatRegistrationNumber: abcdef
        example3:
          summary: Committed Tax Refund Call Request
          sample-name: Committed Tax Refund Calculation
          value:
            clientReferenceInformation:
              code: TAX_TC001
            orderInformation:
              billTo:
                country: US
                address1: 1 Market St
                postalCode: 94105
                locality: San Francisco
                administrativeArea: CA
              shipTo:
                country: US
                address1: 123 Russel St.
                postalCode: 32401
                locality: Panama City
                administrativeArea: FL
              shippingDetails:
                shipFromCountry: CA
                shipFromLocality: Cambridge Bay
                shipFromAdministrativeArea: NL
                shipFromPostalCode: A0G 1T0
              amountDetails:
                currency: USD
              lineItems:
              - productSKU: 07-12-00657
                productName: Chewing Gum
                productCode: 50161815
                quantity: 1
                unitPrice: 1200
              - productSKU: 07-12-00659
                productName: Sugar Cookies
                productCode: 50181905
                quantity: 1
                unitPrice: 1240
              - productSKU: 07-12-00658
                productName: Carbonated Water
                productCode: 5020.11
                quantity: 1
                unitPrice: 9001
            taxInformation:
              showTaxPerLineItem: 'Yes'
              commitIndicator: true
              refundIndicator: true
            merchantInformation:
              vatRegistrationNumber: abcdef
      requestBody:
        content:
          application/json;charset=utf-8:
            schema:
              type: object
              properties:
                clientReferenceInformation:
                  type: object
                  properties:
                    code:
                      type: string
                      maxLength: 59
                      description: 'Merchant-generated order reference or tracking number. It is recommended that you send a unique value for each

                        transaction so that you can perform meaningful searches for the transaction.


                        #### Used by

                        **Authorization**

                        Required field.


                        #### PIN Debit

                        Requests for PIN debit reversals need to use the same merchant reference number that was used in the transaction that is being

                        reversed.


                        Required field for all PIN Debit requests (purchase, credit, and reversal).


                        #### FDC Nashville Global

                        Certain circumstances can cause the processor to truncate this value to 15 or 17 characters for Level II and Level III processing, which can cause a discrepancy between the value you submit and the value included in some processor reports.

                        '
                    partner:
                      type: object
                      properties:
                        developerId:
                          type: string
                          maxLength: 8
                          description: 'Identifier for the developer that helped integrate a partner solution to CyberSource.


                            Send this value in all requests that are sent through the partner solutions built by that developer.

                            CyberSource assigns the ID to the developer.


                            **Note** When you see a developer ID of 999 in reports, the developer ID that was submitted is incorrect.

                            '
                        solutionId:
                          type: string
                          maxLength: 8
                          description: 'Identifier for the partner that is integrated to CyberSource.


                            Send this value in all requests that are sent through the partner solution. CyberSourc

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