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.
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
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