National Australia Bank Foreign Exchange Rates API
Retrieve current foreign exchange rates for cross-border payouts.
Retrieve current foreign exchange rates for cross-border payouts.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
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.curl "https://apis.io/api/v1/apis/national-australia-bank:national-australia-bank-foreign-exchange-rates-api"
curl "https://apis.io/api/v1/apis?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a 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: 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 Foreign Exchange Rates API
servers:
- url: https://apitest.cybersource.com/
tags:
- name: Foreign Exchange Rates
description: Retrieve current foreign exchange rates for cross-border payouts.
paths:
/pts/v2/payouts/fx-rates:
post:
summary: Retrieve Foreign Exchange Rates
description: Retrieve current foreign exchange rates for cross-border payouts.
tags:
- Foreign Exchange Rates
operationId: createFxRates
parameters:
- name: Content-Type
in: header
required: true
schema:
type: string
- name: x-requestid
in: header
required: true
schema:
type: string
- name: v-c-merchant-id
in: header
required: true
schema:
type: string
- name: v-c-permissions
in: header
required: true
schema:
type: string
- name: v-c-correlation-id
in: header
required: true
schema:
type: string
- name: v-c-organization-id
in: header
required: true
schema:
type: string
responses:
'201':
description: Created
content:
application/hal+json;charset=utf-8:
schema:
type: object
properties:
id:
type: string
maxLength: 26
description: 'A unique identification number to identify the submitted request. It is also appended to the endpoint of the resource.
'
status:
type: string
maxLength: 18
description: 'The status of the submitted transaction.
Possible values:
- `COMPLETED`
- `INVALID_REQUEST`
- `SERVER_ERROR`
'
submitTimeStampUtc:
type: string
maxLength: 20
description: 'Time of request in UTC. Format: `YYYY-MM-DD''T''HH: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.
'
orderInformation:
type: object
properties:
amountDetails:
type: object
properties:
markupRate:
type: string
maxLength: 6
description: "The markup between the offer exchange rate and wholesale rates, i.e. the mark up. Expressed as a percentage of 100, e.g. 3.75.\n\nIf the markup value is not supplied in the API, and the Acquiring BIN is provided, the markup configured during onboarding will be picked up and applied to the transaction. To override any markup defaults set up on the account, always send a markup value of 0.00 to indicate 0% markup. \n\nSupported by Visa Direct.\n"
exchangeRate:
type: string
maxLength: 14
description: Exchange rate returned by the card network.
originalAmount:
type: string
maxLength: 13
description: 'Amount in your original local pricing currency.
This value cannot be negative. You can include a decimal point (.) in this field to denote the currency exponent, but you cannot include any other special characters.
If needed, CyberSource truncates the amount to the correct number of decimal places.
'
destinationAmount:
type: string
maxLength: 13
description: 'Amount in your destination''s local pricing currency.
This value cannot be negative. You can include a decimal point (.) in this field to denote the currency exponent, but you cannot include any other special characters.
If needed, CyberSource truncates the amount to the correct number of decimal places.
'
originalAmountWithoutMarkup:
type: string
maxLength: 13
description: 'Original Transaction Amount excluding markup in source
currency. This field will be returned in a source-to-destination
inquiry response when markup is applicable.
Supported by Visa Direct
'
settlementAmount:
type: string
maxLength: 13
description: The transaction amount in settlement currency.
settlementCurrency:
type: string
maxLength: 3
description: 'The currency in which Visa or Mastercard settles with the acquirer/acquirer.
Use [ISO 4217 3-Alpha Currency Codes](https://developer.cybersource.com/content/dam/docs/cybs/en-us/currency-codes/reference/all/na/currency-codes.pdf).
'
settlementExchangeRate:
type: string
maxLength: 14
description: Exchange rate returned by the card network for settlement.
errorInformation:
type: object
properties:
details:
type: array
items:
type: object
properties:
field:
type: string
maxLength: 256
description: 'This is the flattened JSON object field name/path that is either
missing or invalid.
'
reason:
type: string
maxLength: 31
description: 'Possible reasons for the error.
Possible values:
- `MISSING_FIELD`
- `INVALID_DATA`
'
message:
type: string
maxLength: 256
description: 'The detail message related to the status and reason listed above.
'
reason:
type: string
maxLength: 30
description: 'The reason of the status.
Possible values:
- `INVALID_DATA`
- `INVALID_MERCHANT_CONFIGURATION`
- `SYSTEM_ERROR`
'
processorInformation:
type: object
properties:
responseCode:
type: string
maxLength: 10
description: 'For most processors, this is the error message sent directly from
the bank. Returned only when the processor returns this value.
'
responseDetails:
type: string
maxLength: 255
description: This field might contain information about a decline.
processingInformation:
type: object
properties:
routing:
type: object
properties:
network:
type: string
maxLength: 15
description: 'Name of the network on which the transaction was routed.
Possible values:
- `VISA_DIRECT`
- `MASTERCARD_SEND`
'
example:
id: '7714459917996265704'
status: COMPLETED
submitTimeStampUtc: '2026-02-18T20:19:25Z'
orderInformation:
amountDetails:
markupRate: '0.05'
exchangeRate: '1.2768'
originalAmount: '100.00'
destinationAmount: '127.68'
originalAmountWithoutMarkup: '22918.69'
settlementAmount: '22918.69'
settlementCurrency: EUR
settlementExchangeRate: '1.2768'
processingInformation:
routing:
network: MASTERCARD_SEND
'400':
description: Invalid request
content:
application/hal+json;charset=utf-8:
schema:
type: object
properties:
id:
type: string
maxLength: 26
description: 'A unique identification number to identify the submitted request. It is also appended to the endpoint of the resource.
'
submitTimeStampUtc:
type: string
maxLength: 20
description: 'Time of request in UTC. Format: `YYYY-MM-DD''T''HH: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.
'
status:
type: string
description: 'Possible values:
- INVALID_REQUEST
'
reason:
type: string
description: 'The reason of the status.
Possible values:
- INVALID_DATA
- MISSING_FIELD
'
message:
type: string
maxLength: 256
description: 'The detail message related to the status and reason listed above.
'
details:
type: array
items:
type: object
properties:
field:
type: string
maxLength: 256
description: 'This is the flattened JSON object field name/path that is either
missing or invalid.
'
reason:
type: string
maxLength: 31
description: 'Possible reasons for the error.
Possible values:
- `MISSING_FIELD`
- `INVALID_DATA`
'
example:
id: '7714459917996265704'
submitTimeStampUtc: '2026-02-18T20:19:25Z'
status: INVALID_REQUEST
reason: INVALID_DATA
message: One or more fields in the request contains invalid data
details:
- field: orderInformation.amountDetails.originalCurrency
reason: INVALID_DATA
'401':
description: Unauthorized
content:
application/hal+json;charset=utf-8:
schema:
type: object
properties:
id:
type: string
maxLength: 26
description: 'A unique identification number to identify the submitted request. It is also appended to the endpoint of the resource.
'
submitTimeStampUtc:
type: string
maxLength: 20
description: 'Time of request in UTC. Format: `YYYY-MM-DD''T''HH: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.
'
reason:
type: string
description: 'The reason of the status.
Possible values:
- UNAUTHORIZED
'
message:
type: string
maxLength: 256
description: 'The detail message related to the status and reason listed above.
'
example:
id: '7714459917996265704'
submitTimeStampUtc: '2026-02-18T20:19:25Z'
reason: UNAUTHORIZED
message: Authentication Failed
'502':
description: Server error
content:
application/hal+json;charset=utf-8:
schema:
type: object
properties:
id:
type: string
maxLength: 26
description: 'A unique identification number to identify the submitted request. It is also appended to the endpoint of the resource.
'
submitTimeStampUtc:
type: string
maxLength: 20
description: 'Time of request in UTC. Format: `YYYY-MM-DD''T''HH: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.
'
status:
type: string
description: 'Possible values:
- SERVER_ERROR
'
reason:
type: string
description: 'The reason of the status.
Possible values:
- SYSTEM_ERROR
'
message:
type: string
maxLength: 256
description: 'The detail message related to the status and reason listed above.
'
example:
id: '7714459917996265704'
submitTimeStampUtc: '2026-02-18T20:19:25Z'
status: SERVER_ERROR
reason: SYSTEM_ERROR
message: Error - General system failure
requestBody:
content:
application/json;charset=utf-8:
schema:
type: object
example:
acquirerInformation:
acquirerBin: '456789'
orderInformation:
amountDetails:
originalCurrency: USD
destinationCurrency: EUR
originalAmount: '100.00'
markupRate: '0.05'
settlementCurrency: EUR
processingInformation:
transactionType: PUSH
clearingSystem: SINGLE
transactionTypeIndicator: C07
routing:
network: VISA_DIRECT
clientReferenceInformation:
applicationName: REST API
applicationVersion: '2.5'
applicationUser: Value-R
code: '123456'
partner:
developerId: '56778945'
solutionId: '56778945'
properties:
acquirerInformation:
type: object
properties:
acquirerBin:
type: string
maxLength: 11
description: "Acquirer bank ID number that corresponds to a certificate that\nCybersource already has.This ID has this format: \n\n- `4XXXXX` for Visa\n- `5XXXXX` for Mastercard.\n"
orderInformation:
type: object
properties:
amountDetails:
type: object
properties:
markupRate:
type: string
maxLength: 6
description: "The markup between the offer exchange rate and wholesale rates, i.e. the mark up. Expressed as a percentage of 100, e.g. 3.75.\n\nIf the markup value is not supplied in the API, and the Acquiring BIN is provided, the markup configured during onboarding will be picked up and applied to the transaction. To override any markup defaults set up on the account, always send a markup value of 0.00 to indicate 0% markup. \n\nSupported by Visa Direct.\n"
settlementCurrency:
type: string
maxLength: 3
description: 'The currency in which Visa or Mastercard settles with the acquirer/acquirer.
Use [ISO 4217 3-Alpha Currency Codes](https://developer.cybersource.com/content/dam/docs/cybs/en-us/currency-codes/reference/all/na/currency-codes.pdf).
'
originalAmount:
type: string
maxLength: 13
description: 'Amount in your original local pricing currency.
This value cannot be negative. You can include a decimal point (.) in this field to denote the currency exponent, but you cannot include any other special characters.
If needed, CyberSource truncates the amount to the correct number of decimal places.
'
originalCurrency:
type: string
maxLength: 3
description: 'Your local pricing currency code.
Use [ISO 4217 3-Alpha Currency Codes](https://developer.cybersource.com/content/dam/docs/cybs/en-us/currency-codes/reference/all/na/currency-codes.pdf).
'
destinationAmount:
type: string
maxLength: 13
description: 'Amount in your destination''s local pricing currency.
This value cannot be negative. You can include a decimal point (.) in this field to denote the currency exponent, but you cannot include any other special characters.
If needed, CyberSource truncates the amount to the correct number of decimal places.
'
destinationCurrency:
type: string
maxLength: 3
description: 'Your destination pricing currency code.
Use [ISO 4217 3-Alpha Currency Codes](https://developer.cybersource.com/content/dam/docs/cybs/en-us/currency-codes/reference/all/na/currency-codes.pdf).
'
required:
- originalCurrency
- destinationCurrency
processingInformation:
type: object
properties:
transactionType:
type: string
maxLength: 4
description: 'Indicate that the FX rate is for a push (OCT) or pull (AFT) transaction. If the field is not passed, it defaults to PUSH (OCT).
Enum: `PUSH`, `PULL`
Supported for Visa Direct.
'
clearingSystem:
type: string
maxLength: 6
description: 'System used for clearing.
Values:
- `SINGLE`
- `DUAL`
Supported for Mastercard Send.
'
transactionTypeIndicator:
type: string
maxLength: 3
description: 'The Mastercard Transaction Type Indicator is an alphanumeric or numeric code that identifies the business purpose and transaction category for Mastercard‑routed payments. It is used by the Mastercard network to support correct processing, compliance controls, risk evaluation, and reporting.
This field is treated as a pass‑through parameter. The indicator is forwarded as provided to downstream processors and the Mastercard network, where validation and interpretation occur. Supplying an incorrect or missing value may result in network declines, misclassification, or compliance issues with Mastercard.
Example values:
- `C07` or `204` – General person‑to‑person
- `C55` or `208` – Business disbursement
- `C65` or `213` – Business‑to‑business transfer
- `P70` or `231` – Cryptocurrency
Important:
Clients are responsible for ensuring the value accurately reflects the transaction intent and complies with Mastercard network requirements.
'
routing:
type: object
properties:
network:
type: string
maxLength: 15
description: 'Name of the network on which the transaction is to be routed.
Possible values:
- `VISA_DIRECT`
- `MASTERCARD_SEND`
'
required:
- network
clientReferenceInformation:
type: object
properties:
applicationName:
type: string
maxLength: 50
description: 'The name of the Connection Method client (such as Virtual
Terminal, Batch Upload, etc.) that submitted the payment
transaction request to CyberSource.
'
applicationVersion:
type: string
maxLength: 50
description: 'Version of the CyberSource application or integration used for a
transaction.
'
applicationUser:
type: string
maxLength: 60
description: 'The entity that is responsible for running the transaction and
submitting the processing request to CyberSource. This could be
a person, a system, or a connection method.
'
code:
type: string
maxLength: 50
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.
'
partner:
type: object
properties:
developerId:
type: string
maxLength: 8
description: 'Identifier for the developer that helped integrate a partner
solution to CyberSource.
'
solutionId:
type: string
maxLength: 8
description: 'Identifier for the partner that is integrated to CyberSource.
'
required: true