National Australia Bank Offers API
Operations related to creating, retrieving, and updating offers.
Operations related to creating, retrieving, and updating offers.
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-offers-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 Offers API
servers:
- url: https://apitest.cybersource.com/
tags:
- name: Offers
description: Operations related to creating, retrieving, and updating offers.
paths:
/vas/v1/currencyconversion/{id}:
get:
summary: Retrieve an Offer
description: Retrieves an offer record from the system.
tags:
- Offers
operationId: getOffer
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-correlation-id
in: header
required: true
schema:
type: string
- name: v-c-organization-id
in: header
required: true
schema:
type: string
- name: id
in: path
description: Request ID generated by Cybersource. This was sent in the header on the request. Echo value from v-c-request-id
required: true
schema:
type: string
maxLength: 26
responses:
'200':
description: Request OK.
content:
application/hal+json;charset=utf-8:
schema:
type: object
required:
- id
- submitTimeUtc
- status
properties:
clientReferenceInformation:
type: object
properties:
code:
type: string
maxLength: 50
description: "Merchant-generated order reference or tracking number. \nIt is recommended that you send a unique value for each transaction so that you can perform meaningful searches for the transaction.\n"
applicationName:
type: string
maxLength: 50
description: The name of the Connection Method client (such as Virtual Terminal or SOAP Toolkit API) that the merchant uses to send a 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.
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. CyberSource assigns the ID to the partner.
**Note** When you see a solutionId of 999 in reports, the solutionId that was submitted is incorrect.
'
id:
type: string
maxLength: 26
description: 'Request ID generated by Cybersource. This was sent in the header on the request.
Echo value from x-requestid
'
submitTimeUtc:
type: string
maxLength: 20
description: 'Time of request in UTC. Format: `YYYY-MM-DDThh:mm:ssZ`
**Example** `2023-05-17T22:47:57Z` equals May 17, 2023, at 22:47:57 (10:47:57 PM).
The `T` separates the date and the time. The `Z` indicates UTC.
'
status:
type: string
maxLength: 18
description: 'Message describing the status of the currency conversion request.
Values:
- `PENDING`
- `DECLINED`
- `INVALID_REQUEST`
- `SERVER_ERROR`
- `OFFER_DECLINED`
- `AUTHORIZED`
- `AUTHORIZATION_DECLINED`
- `AUTHORIZATION_FAILURE`
- `REVERSED`
- `CAPTURED`
- `REFUNDED`
- `CANCELLED`
'
errorInformation:
type: object
properties:
reason:
type: string
maxLength: 30
description: 'Only required when offer cannot be made. The reason of the status.
Possible values:
- ''INVALID_MERCHANT_CONFIGURATION''
- ''NOT_ELIGIBLE''
- ''CURRENCY_NOT_CONFIGURED''
- ''BIN_UNKNOWN''
- ''CURRENCY_MATCH''
- ''CURRENCY_NOT_ALLOWED''
- ''LOOKUP_FAILED''
- ''EXCHANGE_RATE_NOT_FOUND''
- ''CARD_TYPE_NOT_ACCEPTED''
- ''INVALID_AMOUNT''
- ''INVALID_CARD''
- ''INVALID_CURRENCY''
- ''INVALID_TERMINAL''
- ''INVALID_ACQUIRER''
- ''SERVICE_DISABLED''
- ''DUPLICATE_REQUEST''
- ''UNKNOWN''
- ''PROCESSOR_ERROR''
'
message:
type: string
maxLength: 256
description: Only required when the requested action cannot be performed. Descriptive message to add more detail to the status E.g. not all cards are eligible for DCC, so it is not possible for DCC to be offered.
orderInformation:
type: object
properties:
currencyConversion:
type: object
required:
- reconciliationId
properties:
type:
type: string
maxLength: 3
description: 'Valid Values:
- `DCC`: Dynamic Currency Conversion
- `MCP`: Multi-Currency Pricing
This should be echo''d from the request
'
reconciliationId:
type: string
maxLength: 60
description: Unique identifier generated by the DCC provider.
offer:
type: array
description: 'When type is DCC this is a single item.
When type is MCP this is an array that repeats for each currency that''s configured by the currency conversion provider for the merchant.
'
items:
type: object
properties:
originalAmount:
type: string
maxLength: 15
description: "The amount of the sale in the merchant's currency. \nFor DCC this should be the same value as the request. For MCP will be 1 major unit of the merchant's base currency.\n"
originalCurrency:
type: string
maxLength: 3
description: "Currency of the transaction in the merchant's currency. \nFor DCC this should be the same value as the request. \nFor MCP will be the merchant's base currency as configured on the currency conversion provider's system.\nUse three-character alphabetic [ISO 4271 Currency Codes.](https://developer.cybersource.com/docs/cybs/en-us/currency-codes/reference/all/na/currency-codes/currency-codes.html)\n"
amount:
type: string
maxLength: 15
description: 'The offer amount, calculated using the originalAmount and the exchangeRate.
For DCC this is the amount in the card issuer''s currency.
'
currency:
type: string
maxLength: 3
description: 'Currency of the offer. For DCC this is the card''s issuers currency.
Use three-character alphabetic [ISO 4271 Currency Codes.](https://developer.cybersource.com/docs/cybs/en-us/currency-codes/reference/all/na/currency-codes/currency-codes.html)
'
exchangeRate:
type: string
maxLength: 13
description: 'The exchange rate of the offer from 1 major unit of the sale currency including margin.
This will be printed on the receipt.
For example, if a USD consumer is purchasing in EUR, this field should return the amount of 1 EUR in USD including mark-up.
The receipt will contain the following: `EUR 1.00 = USD 1.09998900010999` - where 1.09998900010999 is the value returned in this field.
'
exchangeRateInverted:
type: boolean
example: true
description: 'An inverted exchange rate is the base currency amount divided by the converted currency amount.
Ex. If a USD customer is purchasing in EUR, this field should return the value of USD divided by EUR.
'
marginRate:
type: string
maxLength: 8
description: 'The margin between the offer exchange rate and wholesale rates, i.e. the mark up.
Expressed as a percentage of 100, e.g. 3.75
'
rateSource:
type: string
maxLength: 50
description: 'The source of the rate (excluding mark up). Optional field.
'
exchangeRateTimeUtc:
type: string
maxLength: 20
description: 'The date and time of exchange rate in UTC. Format: `YYYY-MM-DDThh:mm:ssZ`
**Example** `2023-05-17T23:47:57Z` equals May 17, 2023, at 23:47:57 (11:47:57 PM).
The `T` separates the date and the time. The `Z` indicates UTC.
'
exchangeRateExpirationTimeUtc:
type: string
maxLength: 20
description: 'The expiration time of the exchange rate in UTC. Format: `YYYY-MM-DDThh:mm:ssZ`
'
rateId:
type: string
maxLength: 36
description: 'A unique MCP rate identifier.
'
disclaimer:
type: string
maxLength: 1024
description: "This text is intended to inform customers about their opt-in choices. It should include details such \nas the amount, exchange rate, currency, mark-up, and any other regulated requirements, such as \nthe mark-up over the ECB rate, if applicable. It is mandatory for DCC (Dynamic Currency \nConversion) and optional otherwise. This information will be displayed on the screen and printed on \nthe receipt without modification.\n"
example:
clientReferenceInformation:
code: REF-101-GBP-909
partner:
developerId: '123456'
solutionId: '123456'
applicationName: REST API
applicationVersion: 1.23.44
applicationUser: Bob
id: '6843379070056369304008'
submitTimeUtc: '2023-05-17T22:47:57Z'
status: OFFER_PENDING
errorInformation:
reason: INVALID_MERCHANT_CONFIGURATION
message: Only required when valid request cannot be fulfilled
orderInformation:
currencyConversion:
type: DCC
reconciliationId: ABC123
offer:
- originalAmount: '100.00'
originalCurrency: GBP
amount: '123.21'
currency: EUR
exchangeRate: '0.8116'
marginRate: '3.75'
rateSource: European Central Bank
disclaimer: 'I accept I have been offered a choice of currencies for payment. I accept the conversion rate and sale amount and that the selected currency is EUR. I acknowledge I had a choice to pay in GBP. Currency Conversion for this transaction is offered by the Merchant and is based on the reference rate of the currency conversion provider. Mark up on reference rate: 3.7500.'
exchangeRateTimeUtc: '2023-05-17T23:47:57Z'
exchangeRateExpirationTimeUtc: '2024-05-18T22:47:57Z'
exchangeRateInverted: true
rateId: 009F303309AF07234520190628143445
'404':
description: Offer not found.
content:
application/hal+json;charset=utf-8:
schema:
description: Currency conversion offer not found
'500':
description: Unexpected system error or system timeout.
content:
application/hal+json;charset=utf-8:
schema:
type: object
required:
- status
properties:
id:
type: string
maxLength: 26
description: 'Request ID generated by Cybersource. This was sent in the header on the request.
Echo value from x-requestid
'
submitTimeUtc:
type: string
maxLength: 20
description: 'Time of request in UTC. Format: `YYYY-MM-DDThh:mm:ssZ`
**Example** `2023-05-17T22:47:57Z` equals May 17, 2023, at 22:47:57 (10:47:57 PM).
The `T` separates the date and the time. The `Z` indicates UTC.
'
status:
type: string
enum:
- SERVER_ERROR
description: 'Message describing the status of the currency conversion request.
'
reason:
type: string
description: 'Only required when offer cannot be made.
The reason of the status. Only required when the requested action cannot be performed cannot be made.
Possible values:
- SYSTEM_ERROR
- SERVER_TIMEOUT
- SERVICE_TIMEOUT
'
message:
type: string
description: 'The detail message related to the status and reason listed above.
'
example:
id: '6843379070056369304008'
submitTimeUtc: '2023-05-17T22:47:57Z'
status: SERVER_ERROR
reason: SYSTEM_ERROR
message: string