openapi: 3.0.3
info:
title: api-onboarding Account Usage Reference API
version: v1
description: Easy access to view important data relevant to your Currencycloud account including beneficiary details, conversion dates, available currencies, payer required details, payment dates and settlement details.
servers:
- url: /onboarding
description: Relative URL
- url: https://api.currencycloud.com/onboarding
description: Production server (uses live data)
- url: https://devapi.currencycloud.com/onboarding
description: Dev server (uses test data)
tags:
- name: Reference
description: Easy access to view important data relevant to your Currencycloud account including beneficiary details, conversion dates, available currencies, payer required details, payment dates and settlement details.
paths:
/reference/bank_details/find:
post:
tags:
- Reference
x-api-group: manage
summary: Find Bank Details
description: Returns the related bank details for the given account reference.
operationId: FinfBankDetailsPost
produces:
- application/json
parameters:
- name: X-Auth-Token
in: header
required: true
type: string
description: Authentication token
minLength: 32
- name: identifier_type
in: formData
required: true
type: string
enum:
- aba
- bic_swift
- bsb_code
- cnaps
- iban
- ifsc
- routing_number
- sort_code
description: The type of code used to identify the account (e.g. IBAN).
- name: identifier_value
in: formData
required: true
type: string
description: The value of the account identifier specified in identifier_type (e.g. the IBAN code).
minLength: 1
maxLength: 255
responses:
'200':
description: Success.
schema:
$ref: '#/definitions/BankDetails'
headers:
X-Request-Id:
type: string
description: A unique reference for the request.
'400':
description: Client error.
x-errors:
- code: identifier_type_is_required
category: identifier_type
message: identifier_type is required
params: ''
- code: identifier_type_not_in_range
category: identifier_type
message: 'identifier_type should be in range: iban, bic_swift, sort_code, aba, bsb_code, routing_number, cnaps, ifsc'
params: '{ "range" => "iban, bic_swift, sort_code, aba, bsb_code, routing_number, cnaps, ifsc" }'
- code: identifier_value_is_required
category: identifier_value
message: identifier_value is required
params: ''
- code: identifier_value_is_empty
category: identifier_value
message: identifier_value should not be empty
params: '{ "type" => "not_empty_string" }'
- code: invalid_iban
category: base
message: IBAN is invalid
params: ''
- code: invalid_bic
category: base
message: BIC_Swift is invalid
params: ''
- code: invalid_aba
category: base
message: ABA is invalid
params: ''
- code: invalid_sort_code
category: base
message: SORT_CODE is invalid
params: ''
- code: invalid_bsb
category: base
message: BSB_CODE is invalid
params: ''
- code: invalid_routing_number
category: base
message: ROUTING_NUMBER is invalid
params: ''
- code: invalid_cnaps
category: base
message: CNAPS is invalid
params: ''
- code: cannot_retrieve_bank_data
category: base
message: Bank Details service is temporarily unavailable
params: ''
schema:
$ref: '#/definitions/GetBankDetailsError'
headers:
X-Request-Id:
type: string
description: A unique reference for the request.
'401':
description: Unauthorized.
x-errors:
- code: invalid_supplied_credentials
category: username
message: Authentication failed with the supplied credentials
params: ''
schema:
$ref: '#/definitions/UnauthorizedError'
headers:
X-Request-Id:
type: string
description: A unique reference for the request.
'429':
description: Too many requests.
x-errors:
- code: too_many_requests
category: base
message: Too many requests have been made to the api. Please refer to the Developer Center for more information
params: ''
schema:
$ref: '#/definitions/RateLimitError'
headers:
X-Request-Id:
type: string
description: A unique reference for the request.
'500':
description: Internal server error
x-errors:
- code: internal_server_error
category: base
message: Internal server error s
params: ''
headers:
X-Request-Id:
type: string
description: A unique reference for the request.
'503':
description: Service is temporary unavailable
x-errors:
- code: service_unavailable
category: base
message: Service is temporarily unavailable.
params: ''
headers:
X-Request-Id:
type: string
description: A unique reference for the request.
default:
description: Unexpected error.
headers:
X-Request-Id:
type: string
description: A unique reference for the request.
/reference/beneficiary_required_details:
get:
tags:
- Reference
x-api-group: manage
summary: Get Beneficiary Requirements
description: Returns the information that is required to make payments to beneficiaries in specified currencies and countries.
operationId: GetBeneficiaryRequirements
produces:
- application/json
parameters:
- name: X-Auth-Token
in: header
required: true
type: string
description: Authentication token
minLength: 32
- name: currency
in: query
required: true
type: string
description: Currency in which money is held in the beneficiary's bank account. Three-letter ISO currency code.
format: iso-4217
pattern: ^[A-Z]{3}$
- name: bank_account_country
in: query
required: true
type: string
description: Two-letter ISO country code.
format: iso3166-1-alpha-2
pattern: ^[A-Z]{2}$
- name: on_behalf_of
in: query
required: false
type: string
description: A contact UUID for the sub-account you're acting on behalf of.
format: uuid
- name: beneficiary_country
in: query
required: true
type: string
description: Two-letter ISO country code. If the beneficiary is a company, this is the country in which the company is registered. If the beneficiary is an individual, this is the country in which they are based.
format: iso3166-1-alpha-2
pattern: ^[A-Z]{2}$
responses:
'200':
description: Success.
schema:
type: object
properties:
details:
type: array
items:
$ref: '#/definitions/BeneficiaryRequirements'
headers:
X-Request-Id:
type: string
description: A unique reference for the request.
'400':
description: Client error.
x-errors:
- code: bank_account_country_is_in_invalid_format
category: bank_account_country
message: Bank account country is not a valid ISO 3166-1 Alpha-2 country code
params: ''
- code: currency_is_in_invalid_format
category: currency
message: Currency is not a valid ISO 4217 currency code
params: ''
- code: beneficiary_country_is_in_invalid_format
category: beneficiary_country
message: Beneficiary country is not a valid ISO 3166-1 Alpha-2 country code
params: ''
schema:
$ref: '#/definitions/GetBeneficiaryRequirementsError'
headers:
X-Request-Id:
type: string
description: A unique reference for the request.
'401':
description: Unauthorized.
x-errors:
- code: invalid_supplied_credentials
category: username
message: Authentication failed with the supplied credentials
params: ''
schema:
$ref: '#/definitions/UnauthorizedError'
headers:
X-Request-Id:
type: string
description: A unique reference for the request.
'404':
description: Resource not found.
headers:
X-Request-Id:
type: string
description: A unique reference for the request.
'429':
description: Too many requests.
x-errors:
- code: too_many_requests
category: base
message: Too many requests have been made to the api. Please refer to the Developer Center for more information
params: ''
schema:
$ref: '#/definitions/RateLimitError'
headers:
X-Request-Id:
type: string
description: A unique reference for the request.
'500':
description: Internal server error
x-errors:
- code: internal_server_error
category: base
message: Internal server error
params: ''
headers:
X-Request-Id:
type: string
description: A unique reference for the request.
'503':
description: Service is temporary unavailable
x-errors:
- code: service_unavailable
category: base
message: Service is temporarily unavailable
params: ''
headers:
X-Request-Id:
type: string
description: A unique reference for the request.
default:
description: Unexpected error.
headers:
X-Request-Id:
type: string
description: A unique reference for the request.
/reference/conversion_dates:
get:
tags:
- Reference
x-api-group: manage
summary: Get Conversion Dates
description: Provides a list of upcoming non-trading dates, such as weekends or public holidays, for a specified currency pair. Common use cases include situations where this information needs to be provided, or for planning upcoming conversion bookings.
Many currencies are triangulated; this means that holidays affecting the intermediary currency, as well as the sale and purchase currencies, will impact transactions. Find out more at our support article.
operationId: GetConversionDates
produces:
- application/json
parameters:
- name: X-Auth-Token
in: header
required: true
type: string
description: Authentication token
minLength: 32
- name: conversion_pair
in: query
required: true
type: string
description: Concatenated string of the currency codes for the two currencies involved, e.g. "USDEUR".
pattern: ^[A-Z]{6}$
- name: start_date
in: query
required: false
type: string
format: date
description: Start date of conversion. ISO 8601 format YYYY-MM-DD.
- name: on_behalf_of
in: query
required: false
type: string
description: A contact UUID for the sub-account you're acting on behalf of.
format: uuid
responses:
'200':
description: Success.
schema:
$ref: '#/definitions/ConversionDates'
headers:
X-Request-Id:
type: string
description: A unique reference for the request.
'400':
description: Client error.
x-errors:
- code: conversion_pair_is_required
category: conversion_pair
message: conversion_pair is required
params: ''
- code: invalid_conversion_pair
category: conversion_pair
message: The conversion pair specified was invalid
params: ''
- code: conversion_pair_is_too_short
category: conversion_pair
message: conversion_pair can not be shorter than 6 character(s)
params: '{ "minlength" => 6 }'
- code: conversion_pair_is_too_long
category: conversion_pair
message: conversion_pair can not be longer than 6 character(s)
params: '{ "maxlength" => 6 }'
- code: start_date_is_too_far_in_future
category: start_date
message: Date is too far in the future (more than 1 year)
params: '{ "maxdate" => "2015-04-04T00:00:00Z", "period" => "1 year" }'
- code: start_date_is_in_invalid_format
category: start_date
message: start_date should be in ISO 8601 format
params: '{ "type" => "date" }'
- code: contact_not_found
category: on_behalf_of
message: Contact was not found for this id
params: ''
- code: on_behalf_of_self
category: on_behalf_of
message: You can not act on behalf of your own Contact
params: ''
schema:
$ref: '#/definitions/GetConversionDatesError'
headers:
X-Request-Id:
type: string
description: A unique reference for the request.
'401':
description: Unauthorized.
x-errors:
- code: invalid_supplied_credentials
category: username
message: Authentication failed with the supplied credentials
params: ''
schema:
$ref: '#/definitions/UnauthorizedError'
headers:
X-Request-Id:
type: string
description: A unique reference for the request.
'404':
description: Resource not found.
headers:
X-Request-Id:
type: string
description: A unique reference for the request.
'429':
description: Too many requests.
x-errors:
- code: too_many_requests
category: base
message: Too many requests have been made to the api. Please refer to the Developer Center for more information
params: ''
schema:
$ref: '#/definitions/RateLimitError'
headers:
X-Request-Id:
type: string
description: A unique reference for the request.
'500':
description: Internal server error
x-errors:
- code: internal_server_error
category: base
message: Internal server error
params: ''
headers:
X-Request-Id:
type: string
description: A unique reference for the request.
'503':
description: Service is temporary unavailable
x-errors:
- code: service_unavailable
category: base
message: Service is temporarily unavailable
params: ''
headers:
X-Request-Id:
type: string
description: A unique reference for the request.
default:
description: Unexpected error.
headers:
X-Request-Id:
type: string
description: A unique reference for the request.
/reference/currencies:
get:
tags:
- Reference
x-api-group: manage
summary: Get Available Currencies
description: Gets a list of all currencies that can be traded on the Currencycloud platform.
operationId: GetAvailableCurrencies
produces:
- application/json
parameters:
- name: X-Auth-Token
in: header
required: true
type: string
description: Authentication token
minLength: 32
responses:
'200':
description: Success.
schema:
$ref: '#/definitions/AvailableCurrencies'
headers:
X-Request-Id:
type: string
description: A unique reference for the request.
'400':
description: Client error.
schema:
$ref: '#/definitions/GetAvailableCurrenciesError'
headers:
X-Request-Id:
type: string
description: A unique reference for the request.
'401':
description: Unauthorized.
x-errors:
- code: invalid_supplied_credentials
category: username
message: Authentication failed with the supplied credentials
params: ''
schema:
$ref: '#/definitions/UnauthorizedError'
headers:
X-Request-Id:
type: string
description: A unique reference for the request.
'404':
description: Resource not found.
headers:
X-Request-Id:
type: string
description: A unique reference for the request.
'429':
description: Too many requests.
x-errors:
- code: too_many_requests
category: base
message: Too many requests have been made to the api. Please refer to the Developer Center for more information
params: ''
schema:
$ref: '#/definitions/RateLimitError'
headers:
X-Request-Id:
type: string
description: A unique reference for the request.
'500':
description: Internal server error
x-errors:
- code: internal_server_error
category: base
message: Internal server error
params: ''
headers:
X-Request-Id:
type: string
description: A unique reference for the request.
'503':
description: Service is temporary unavailable
x-errors:
- code: service_unavailable
category: base
message: Service is temporarily unavailable
params: ''
headers:
X-Request-Id:
type: string
description: A unique reference for the request.
default:
description: Unexpected error.
headers:
X-Request-Id:
type: string
description: A unique reference for the request.
/reference/payer_required_details:
get:
tags:
- Reference
x-api-group: manage
summary: Get Payer Requirements
description: Returns the payer information you need to provide to create a payment. Requirements vary depending on the location of the payer, the type of payment to be made (priority or regular), and other factors.
operationId: GetPayerRequirements
produces:
- application/json
parameters:
- name: X-Auth-Token
in: header
required: true
type: string
description: Authentication token
minLength: 32
- name: payer_country
in: query
required: true
type: string
description: Two-letter ISO country code.
format: iso3166-1-alpha-2
pattern: ^[A-Z]{2}$
- name: payer_entity_type
in: query
required: false
type: string
enum:
- company
- individual
description: Legal entity type - company or individual.
- name: payment_type
in: query
required: false
type: string
enum:
- priority
- regular
description: 'Currencycloud supports two types of payments: "priority" (Swift), made using the Swift network; and "regular" (local), made using the local bank network.'
- name: currency
in: query
required: false
type: string
description: Three-letter ISO 4217 currency code.
format: iso-4217
pattern: ^[A-Z]{3}$
responses:
'200':
description: Success.
schema:
$ref: '#/definitions/PayerRequirements'
headers:
X-Request-Id:
type: string
description: A unique reference for the request.
'400':
description: Client error.
x-errors:
- code: payer_country_is_required
category: payer_country
message: payer_country is required
params: ''
- code: payer_country_is_in_invalid_format
category: payer_country
message: payer_country is not a valid ISO 3166-1 Alpha-2 country code
params: '{ "type" => "country_code" }'
- code: payment_type_not_in_range
category: payment_type
message: 'payment_type should be in range: priority, regular'
params: '{ "range" => "priority, regular" }'
- code: payer_entity_type_not_in_range
category: payer_entity_type
message: 'payer_entity_type should be in range: company, individual'
params: '{ "range" => "company, individual" }'
- code: currency_is_in_invalid_format
category: currency
message: currency is not a valid ISO 4217 currency code
params: ''
schema:
$ref: '#/definitions/GetPayerRequirementsError'
headers:
X-Request-Id:
type: string
description: A unique reference for the request.
'401':
description: Unauthorized.
x-errors:
- code: invalid_supplied_credentials
category: username
message: Authentication failed with the supplied credentials
params: ''
schema:
$ref: '#/definitions/UnauthorizedError'
headers:
X-Request-Id:
type: string
description: A unique reference for the request.
'404':
description: Resource not found.
headers:
X-Request-Id:
type: string
description: A unique reference for the request.
'429':
description: Too many requests.
x-errors:
- code: too_many_requests
category: base
message: Too many requests have been made to the api. Please refer to the Developer Center for more information
params: ''
schema:
$ref: '#/definitions/RateLimitError'
headers:
X-Request-Id:
type: string
description: A unique reference for the request.
'500':
description: Internal server error
x-errors:
- code: internal_server_error
category: base
message: Internal server error
params: ''
headers:
X-Request-Id:
type: string
description: A unique reference for the request.
'503':
description: Service is temporary unavailable
x-errors:
- code: service_unavailable
category: base
message: Service is temporarily unavailable
params: ''
headers:
X-Request-Id:
type: string
description: A unique reference for the request.
default:
description: Unexpected error.
headers:
X-Request-Id:
type: string
description: A unique reference for the request.
/reference/payment_dates:
get:
tags:
- Reference
x-api-group: manage
summary: Get Payment Dates
description: Gets a list of invalid payment dates for a given currency covering a two months period from the start_date specified. A payment date is when a payment will be executed by Currencycloud. Payments cannot be made on some days, for example when banks are closed.
operationId: GetPaymentDates
produces:
- application/json
parameters:
- name: X-Auth-Token
in: header
required: true
type: string
description: Authentication token
minLength: 32
- name: currency
in: query
required: true
type: string
description: Currency in which payment made. Three-letter ISO currency code.
format: iso-4217
pattern: ^[A-Z]{3}$
- name: start_date
in: query
required: false
type: string
format: date
description: Payment start date, defaults to today's date. ISO 8601 format YYYY-MM-DD.
responses:
'200':
description: Success.
schema:
$ref: '#/definitions/PaymentDates'
headers:
X-Request-Id:
type: string
description: A unique reference for the request.
'400':
description: Client error.
x-errors:
- code: currency_is_required
category: currency
message: currency is required
params: ''
- code: currency_is_in_invalid_format
category: currency
message: currency is not a valid ISO 4217 currency code
params: ''
- code: start_date_is_too_far_in_future
category: start_date
message: Date is too far in the future (more than 1 year)
params: '{ "maxdate" => "2015-04-04T00:00:00Z", "period" => "1 year" }'
- code: start_date_is_in_invalid_format
category: start_date
message: start_date should be in ISO 8601 format
params: '{ "type" => "datetime" }'
schema:
$ref: '#/definitions/GetPaymentDatesError'
headers:
X-Request-Id:
type: string
description: A unique reference for the request.
'401':
description: Unauthorized.
x-errors:
- code: invalid_supplied_credentials
category: username
message: Authentication failed with the supplied credentials
params: ''
schema:
$ref: '#/definitions/UnauthorizedError'
headers:
X-Request-Id:
type: string
description: A unique reference for the request.
'404':
description: Resource not found.
headers:
X-Request-Id:
type: string
description: A unique reference for the request.
'429':
description: Too many requests.
x-errors:
- code: too_many_requests
category: base
message: Too many requests have been made to the api. Please refer to the Developer Center for more information
params: ''
schema:
$ref: '#/definitions/RateLimitError'
headers:
X-Request-Id:
type: string
description: A unique reference for the request.
'500':
description: Internal server error
x-errors:
- code: internal_server_error
category: base
message: Internal server error
params: ''
headers:
X-Request-Id:
type: string
description: A unique reference for the request.
'503':
description: Service is temporary unavailable
x-errors:
- code: service_unavailable
category: base
message: Service is temporarily unavailable
params: ''
headers:
X-Request-Id:
type: string
description: A unique reference for the request.
default:
description: Unexpected error.
headers:
X-Request-Id:
type: string
description: A unique reference for the request.
/reference/payment_fee_rules:
get:
tags:
- Reference
x-api-group: manage
summary: Get Payment Fee Rules
description: Gets the payment fee information set up for the account / payment type provided.
operationId: GetPaymentFeeRules
produces:
- application/json
parameters:
- name: X-Auth-Token
in: header
required: true
type: string
description: Authentication token
minLength: 32
- name: account_id
in: query
required: false
type: string
description: Account UUID
format: uuid
- name: payment_type
in: query
required: false
type: string
enum:
- priority
- regular
description: Payment type value. Limits the search results to payments of the specified payment type - 'priority'(Swift) or 'regular'(local).
- name: charge_type
in: query
required: false
type: string
enum:
- ours
- shared
description: Payment charge value. Limits the search results to payments of the specified charge type - 'ours' or 'shared'.
responses:
'200':
description: Success.
schema:
type: object
properties:
payment_fee_rules:
type: array
items:
$ref: '#/definitions/PaymentFeeRule'
headers:
X-Request-Id:
type: string
description: A unique reference for the request.
'400':
description: Client error.
x-errors:
- code: account_id_is_not_valid_uuid
category: account_id
message: account_id should be in UUID format
params: ''
- code: charge_type_not_in_range
category: charge_type
message: 'charge_type should be in range: shared, ours'
params: '{ "charge_type" => "shared, ours" }'
- code: payment_type_not_in_range
category: payment_type
message: 'payment_type should be in range: priority, regular'
params: '{ "payment_type" => "priority, regular" }'
schema:
$ref: '#/definitions/GetPaymentFeeRulesError'
headers:
X-Request-Id:
type: string
description: A unique reference for the request.
'401':
description: Unauthorized.
x-errors:
- code: invalid_supplied_credentials
category: username
message: Authentication failed with the supplied credentials
params: ''
schema:
$ref: '#/definitions/UnauthorizedError'
headers:
X-Request-Id:
type: string
description: A unique reference for the request.
'404':
description: Resource not found.
headers:
X-Request-Id:
type: string
description: A unique reference for the request.
'429':
description: Too many requests.
x-errors:
- code: too_many_requests
category: base
message: Too many requests have been made to the api. Please refer to the Developer Center for more information
params: ''
schema:
$ref: '#/definitions/RateLimitError'
headers:
X-Request-Id:
type: string
description: A unique reference for the request.
'500':
description: Internal server error
x-errors:
- code: internal_server_error
category: base
message: Internal server error
params: ''
headers:
X-Request-Id:
type: string
description: A unique reference for the request.
'503':
description: Service is temporary unavailable
x-errors:
- code: service_unavailable
category: base
message: Service is temporarily unavailable
params: ''
headers:
X-Request-Id:
type: string
description: A unique reference for the request.
default:
description: Unexpected error.
headers:
X-Request-Id:
type: string
description: A unique reference for the request.
/reference/payment_purpose_codes:
get:
tags:
- Reference
x-api-group: manage
summary: Get Payment Purpose Codes
description: Gets a list of payment purpose codes for a given currency and entity type. When initiating cross-border payments, the central bank of the country may require a purpose to be included with your transaction in order for your payment to be accepted and processed. If a payment purpose code is required but not provided, your payment may be delayed or rejected by the beneficiary bank.
operationId: GetPaymentPurposeCodes
produces:
- application/json
parameters:
- name: X-Auth-Token
in: header
required: true
type: string
description: Authentication token
minLength: 32
- name: currency
in: query
required: true
type: string
description: Three-letter ISO currency code for the currency in which payment will be made. No purpose codes will be returned if an invalid currency code is given.
format: iso-4217
pattern: ^[A-Z]{3}$
- name: entity_type
in: query
required: false
type: string
enum:
- company
- individual
description: Legal entity type - company or individual.
- name: bank_account_country
in: query
required: true
type: string
description: Two-letter ISO country code of the bank account.
format: iso3166-1-alpha-2
pattern: ^[A-Z]{2}$
responses:
'200':
description: Success.
schema:
type: object
properties:
purpose_codes:
type: array
items:
$ref: '#/definitions/PaymentPurposeCodes'
headers:
X-Request-Id:
type: string
description: A unique reference for the request.
'400':
description: Client error.
x-errors:
- code: currency_is_required
category: currency
message: currency is required
params: ''
schema:
$ref: '#/definitions/GetPaymentPurposeCodesError'
headers:
X-Request-Id:
type: string
description: A unique reference for the request.
'401':
description: Unauthorized.
x-errors:
- code: invalid_supplied_credentials
category: username
message: Authentication failed with the supplied credentials
params: ''
schema:
$ref: '#/definitions/UnauthorizedError'
headers:
X-Request-Id:
type: string
description: A unique reference for the request.
'404':
description: Resource not found.
headers:
X-Request-Id:
type: string
description: A unique reference for the request.
'429':
description: Too many requests.
x-errors:
- code: too_many_requests
category: base
message: Too many requests have been made to the api. Please refer to the Developer Center for more information
params: ''
schema:
$ref: '#/definitions/RateLimitError'
headers:
X-Request-Id:
type: string
description: A unique reference for the request.
'500':
description: Internal server error
x-errors:
- code: internal_server_error
category: base
message: Internal server error
params: ''
- code: missing_translation
category: base
message: Internal server error. Currency value was not specified
params: ''
headers:
X-Request-Id:
type: string
description: A unique reference for the request.
'503':
description: Service is temporary unavailable
x-errors:
- code: service_unavailable
category: base
message: Service is temporarily unavailable
params: ''
headers:
X-Request-Id:
type: string
description: A unique reference for the request.
default:
description: Unexpected error.
headers:
X-Request-Id:
type: string
description: A unique reference for the request.
/reference/settlement_accounts:
get:
tags:
- Reference
x-api-group: manage
summary: Get Settlement Accounts
description: Gets settlement account information - a list of accounts that require funding in order to allow for outstanding transactions to be processed.
operationId: GetSettlementAccounts
produces:
- application/json
parameters:
- name: X-Auth-Token
in: header
required: true
type: string
description: Authentication token
minLength: 32
- name: currency
in: query
required: false
type: string
description: Three-letter ISO currency code.
format: iso-4217
pattern: ^[A-Z]{3}$
- name: account_id
in: query
required: false
type: string
description: Account UUID
format: uuid
responses:
'200':
description: Success.
schema:
type: object
properties:
settlement_accounts:
type: array
items:
$ref: '#/definitions/SettlementAccount'
headers:
X-Request-Id:
type: string
description: A unique reference for the request.
'400':
description: Client error.
x-errors:
- code: account_id_is_not_valid_uuid
category: id
message: account_id should be in UUID format
params: ''
- code: currency_is_in_invalid_format
category: currency
message: currency is not a valid ISO 4217 currency code.
params: ''
schema:
$ref: '#/definitions/GetSettlementAccountsError'
headers:
X-Request-Id:
type: string
description: A unique reference for the request.
'401':
description: Unauthorized.
x-errors:
- code: invalid_supplied_credentials
category: username
message: Authentication failed with the supplied credentials
params: ''
schema:
$ref: '#/definitions/UnauthorizedError'
headers:
X-Request-Id:
type: string
description: A unique reference for the request.
'404':
description: Resource not found.
x-errors:
- code: account_not_found
category: base
message: Account was not found for this id
params: ''
- code: settlement_accounts_not_found
category: base
message: Settlement Account details not found
params: ''
schema:
$ref: '#/definitions/NotFoundError'
headers:
X-Request-Id:
type: string
description: A unique reference for the request.
'429':
description: Too many requests.
x-errors:
- code: too_many_requests
category: base
message: Too many requests have been made to the api. Please refer to the Developer Center for more information
params: ''
schema:
$ref: '#/definitions/RateLimitError'
headers:
X-Request-Id:
type: string
description: A unique reference for the request.
'500':
description: Internal server error
x-errors:
- code: internal_server_error
category: base
message: Internal server error
params: ''
headers:
X-Request-Id:
type: string
description: A unique reference for the request.
'503':
description: Service is temporary unavailable
x-errors:
- code: service_unavailable
category: base
message: Service is temporarily unavailable
params: ''
headers:
X-Request-Id:
type: string
description: A unique reference for the request.
default:
description: Unexpected error.
headers:
X-Request-Id:
type: string
description: A unique reference for the request.
components:
securitySchemes:
AuthToken:
type: apiKey
in: header
name: X-Auth-Token
definitions:
BankDetails:
type: object
description: Bank Details
required:
- identifier_type
- identifier_value
additionalProperties: false
properties:
identifier_type:
type: string
description: The type of identifier used to identify the account (e.g. IBAN).
identifier_value:
type: string
description: The value of the identifier of the account in the format of the identifier_type (e.g. IBAN code).
account_number:
type: string
description: Account number
bic_swift:
type: string
description: BIC/Swift code.
bank_name:
type: string
description: Bank name
bank_branch:
type: string
description: Bank branch
bank_address:
type: string
description: Bank address
bank_city:
type: string
description: City of the bank.
bank_state:
type: string
description: State the bank is situated in. Available in all countries using states.
bank_post_code:
type: string
description: The bank's post code or the zip code for USA banks.
bank_country:
type: string
description: Full country name.
bank_country_ISO:
type: string
description: Two-letter ISO country code.
currency:
type: string
description: Three-letter ISO currency code.
example:
identifier_type: iban
identifier_value: FR7530002002460000012345X12
account_number: FR7530002002460000012345X12
bic_swift: CRLYFRPPXXX
bank_name: CREDIT LYONNAIS
bank_branch: AG STALINGRAD
bank_address: 212 BOULEVARD DE LA VILLETTE
bank_city: PARIS
bank_state: PARIS
bank_post_code: 75019
bank_country: FRANCE
bank_country_ISO: FR
currency: null
UnauthorizedError:
type: object
description: Authorization error.
required:
- error_code
- error_messages
properties:
error_code:
type: string
description: A high-level error code for the whole request.
enum:
- auth_failed
error_messages:
type: object
description: Detailed error information for individual input parameters that failed validation. Object keys are the names of the invalid input parameters. Each parameter may have one or more reasons why it failed.
additionalProperties:
type: array
items:
type: object
description: An object that represents one of the reasons why the input parameter failed.
required:
- code
- message
properties:
code:
type: string
description: A unique code that identifies this error. It can be used for translations.
message:
type: string
description: An explanation of the error in English.
params:
type: object
default: {}
description: Relevant validation rules that failed. This can be used for translations.
example:
minlength: 1
maxlength: 255
example:
error_code: auth_failed
error_messages:
api_key:
- code: invalid_supplied_credentials
message: Authentication failed with the supplied credentials
params: {}
BeneficiaryRequirements:
type: object
description: Beneficiary requirements.
properties:
payment_type:
description: The type of payment - 'priority' (Swift) or 'regular' (local).
type: string
enum:
- priority
- regular
acct_number:
type: string
description: An account number is required.
bic_swift:
type: string
description: BIC / Swift code is required.
beneficiary_address:
type: string
description: Beneficiary's address
beneficiary_city:
type: string
description: Beneficiary's city
beneficiary_country:
type: string
description: Beneficiary's country
beneficiary_postcode:
type: string
description: Beneficiary's postcode
beneficiary_state_or_province:
type: string
description: Beneficiary's state or province
beneficiary_first_name:
type: string
description: Beneficiary's first name
beneficiary_last_name:
type: string
description: Beneficiary's last name
beneficiary_entity_type:
type: string
description: Type of entity
enum:
- company
- individual
sort_code:
type: string
description: A sort code is required.
aba:
type: string
description: An ABA (American Bankers Association) routing number is required.
bsb_code:
type: string
description: A BSB (Bank State Branch) number is required.
institution_no:
type: string
description: An institution number is required.
bank_code:
type: string
description: A bank code is required.
branch_code:
type: string
description: A branch code is required.
clabe:
type: string
description: A CLABE (Clave Bancaria Estandarizada) code is required.
cnaps:
type: string
description: A CNAPS (China National Advanced Payment System) code is required.
example:
payment_type: regular
acct_number: ^\\d{1,17}$
aba: ^[0-9A-Z]{9}$
beneficiary_address: ^.{1,255}
beneficiary_city: ^.{1,255}
beneficiary_country: ^[A-z]{2}$
beneficiary_postcode: ^.{1,255}
beneficiary_state_or_province: ^.{1,255}
beneficiary_first_name: ^.{1,255}
beneficiary_last_name: ^.{1,255}
beneficiary_entity_type: individual
AvailableCurrencies:
type: object
description: Available currencies
properties:
code:
description: Three-letter ISO currency code.
type: string
decimal_places:
description: The number of decimal places used by the currency.
type: integer
name:
description: The name of the currency.
type: string
online_trading:
description: Can the currency be traded online?
type: boolean
enum:
- true
- false
can_buy:
description: Can the currency be bought?
type: boolean
enum:
- true
- false
can_sell:
description: Can the currency be sold?
type: boolean
enum:
- true
- false
example:
code: AED
decimal_places: 2
name: United Arab Emirates Dirham
online_trading: true
can_buy: true
can_sell: true
GetBankDetailsError:
type: object
description: 'Client error information for the Get Bank Details endpoint.
'
required:
- error_code
- error_messages
properties:
error_code:
type: string
description: A high-level error code for the whole request.
error_messages:
type: object
description: Detailed error information for individual input parameters that failed validation. Object keys are the names of the invalid input parameters. Each parameter may have one or more reasons why it failed.
additionalProperties:
type: array
items:
type: object
description: An object that represents one of the reasons why the input parameter failed.
required:
- code
- message
properties:
code:
type: string
description: A unique code that identifies this error. It can be used for translations.
message:
type: string
description: An explanation of the error in English.
params:
type: object
default: {}
description: Relevant validation rules that failed. This can be used for translations.
example:
minlength: 1
maxlength: 255
ConversionDates:
type: object
description: Conversion dates.
properties:
first_conversion_cutoff_datetime:
type: string
format: date-time
description: The first conversion date and cutoff time by when conversions can be created.
first_conversion_date:
type: string
format: date
description: The first available date that a trade can be made on, in the format YYYY-MM-DD.
next_day_conversion_date:
type: string
format: date
description: The next available date that a trade can be made on, in the format YYYY-MM-DD.
default_conversion_date:
type: string
format: date
description: The default available date that a trade can be made on, in the format YYYY-MM-DD.
optimize_liquidity_conversion_date:
type: string
format: date
description: Optimal conversion date for maximizing chances of getting a successful rate.
invalid_conversion_dates:
type: object
additionalProperties:
type: string
description: Maps dates (eg. "2020-12-27") to string values that explain why trading is not available on the date (eg. "No trading on Sunday").
offline_conversion_dates:
type: array
items:
type: string
description: The list of available offline conversion dates.
example:
first_conversion_cutoff_datetime: '2020-11-18T15:50:00+00:00'
first_conversion_date: '2020-11-18'
next_day_conversion_date: '2020-11-19'
default_conversion_date: '2020-11-20'
optimize_liquidity_conversion_date: '2020-11-23'
invalid_conversion_dates:
'2020-11-21': No trading on Saturday
'2020-11-22': No trading on Sunday
'2020-11-28': No trading on Saturday
'2020-11-29': No trading on Sunday
'2020-12-05': No trading on Saturday
'2020-12-06': No trading on Sunday
'2020-12-12': No trading on Saturday
'2020-12-13': No trading on Sunday
'2020-12-19': No trading on Saturday
'2020-12-20': No trading on Sunday
'2020-12-25': Christmas Day
'2020-12-26': No trading on Saturday
'2020-12-27': No trading on Sunday
'2020-12-28': Boxing Day OBS
'2021-01-01': New Year's Day
'2021-01-02': No trading on Saturday
'2021-01-03': No trading on Sunday
offline_conversion_dates:
- '2020-11-23'
NotFoundError:
type: object
description: Resource not found.
required:
- error_code
- error_messages
properties:
error_code:
type: string
description: A high-level error code for the whole request.
error_messages:
type: object
additionalProperties:
type: array
items:
type: object
description: An object that represents one of the reasons why the input parameter failed.
required:
- code
- message
properties:
code:
type: string
description: A unique code that identifies this error. It can be used for translations.
message:
type: string
description: An explanation of the error in English.
params:
type: object
default: {}
description: Relevant validation rules that failed. This can be used for translations.
example:
minlength: 1
maxlength: 255
PaymentFeeRule:
type: object
description: Payment fee rule.
required:
- payment_type
- charge_type
- fee_amount
- fee_currency
- payment_fee_id
- payment_fee_name
additionalProperties: false
properties:
payment_type:
type: string
description: The payment type the fee is applicable to, priority(Swift) or regular(local).
charge_type:
type: string
description: The charge type the fee is applicable to.
fee_amount:
type: string
description: The fee amount.
fee_currency:
type: string
description: The fee currency.
payment_fee_id:
type: string
format: uuid
description: The ID of payment level rule.
payment_fee_name:
type: string
description: The name of payment level fee table.
example:
payment_type: priority
charge_type: shared
fee_amount: '2.00'
fee_currency: AED
payment_fee_id: 5c3b8754-406d-4e7e-a80e-606fa273ab80
payment_fee_name: fee_table_AED
GetSettlementAccountsError:
type: object
description: 'Client error information for the Get Settlement Accounts endpoint.
'
required:
- error_code
- error_messages
properties:
error_code:
type: string
description: A high-level error code for the whole request.
error_messages:
type: object
description: Detailed error information for individual input parameters that failed validation. Object keys are the names of the invalid input parameters. Each parameter may have one or more reasons why it failed.
additionalProperties:
type: array
items:
type: object
description: An object that represents one of the reasons why the input parameter failed.
required:
- code
- message
properties:
code:
type: string
description: A unique code that identifies this error. It can be used for translations.
message:
type: string
description: An explanation of the error in English.
params:
type: object
default: {}
description: Relevant validation rules that failed. This can be used for translations.
example:
minlength: 1
maxlength: 255
GetPaymentPurposeCodesError:
type: object
description: 'Client error information for the Get Payment Purpose Codes endpoint.
'
required:
- error_code
- error_messages
properties:
error_code:
type: string
description: A high-level error code for the whole request.
error_messages:
type: object
description: Detailed error information for individual input parameters that failed validation. Object keys are the names of the invalid input parameters. Each parameter may have one or more reasons why it failed.
additionalProperties:
type: array
items:
type: object
description: An object that represents one of the reasons why the input parameter failed.
required:
- code
- message
properties:
code:
type: string
description: A unique code that identifies this error. It can be used for translations.
message:
type: string
description: An explanation of the error in English.
params:
type: object
default: {}
description: Relevant validation rules that failed. This can be used for translations.
example:
minlength: 1
maxlength: 255
RateLimitError:
type: object
description: Too many requests.
required:
- error_code
- error_messages
properties:
error_code:
type: string
description: A high-level error code for the whole request.
error_messages:
type: object
description: Detailed error information for individual input parameters that failed validation. Object keys are the names of the invalid input parameters. Each parameter may have one or more reasons why it failed.
additionalProperties:
type: array
items:
type: object
description: An object that represents one of the reasons why the input parameter failed.
required:
- code
- message
properties:
code:
type: string
description: A unique code that identifies this validation/error.
message:
type: string
description: An explanation of the error in English.
params:
type: object
default: {}
description: Relevant validation rules that failed. This can be used for translations.
example:
minlength: 1
maxlength: 255
GetPayerRequirementsError:
type: object
description: 'Client error information for the Get Payer Requirements endpoint.
'
required:
- error_code
- error_messages
properties:
error_code:
type: string
description: A high-level error code for the whole request.
error_messages:
type: object
description: Detailed error information for individual input parameters that failed validation. Object keys are the names of the invalid input parameters. Each parameter may have one or more reasons why it failed.
additionalProperties:
type: array
items:
type: object
description: An object that represents one of the reasons why the input parameter failed.
required:
- code
- message
properties:
code:
type: string
description: A unique code that identifies this error. It can be used for translations.
message:
type: string
description: An explanation of the error in English.
params:
type: object
default: {}
description: Relevant validation rules that failed. This can be used for translations.
example:
minlength: 1
maxlength: 255
GetConversionDatesError:
type: object
description: 'Client error information for the Get Conversion Dates endpoint.
'
required:
- error_code
- error_messages
properties:
error_code:
type: string
description: A high-level error code for the whole request.
error_messages:
type: object
description: Detailed error information for individual input parameters that failed validation. Object keys are the names of the invalid input parameters. Each parameter may have one or more reasons why it failed.
additionalProperties:
type: array
items:
type: object
description: An object that represents one of the reasons why the input parameter failed.
required:
- code
- message
properties:
code:
type: string
description: A unique code that identifies this error. It can be used for translations.
message:
type: string
description: An explanation of the error in English.
params:
type: object
default: {}
description: Relevant validation rules that failed. This can be used for translations.
example:
minlength: 1
maxlength: 255
PaymentPurposeCodes:
type: object
description: Payment purpose codes.
properties:
currency:
type: string
description: Payment currency
entity_type:
type: string
description: Legal entity type - 'company' or 'individual'.
purpose_code:
type: string
description: Purpose code
purpose_description:
type: string
description: A description of the purpose code.
bank_account_country:
type: string
description: Two-letter country code for the country of the bank account.
example:
currency: INR
entity_type: Company
purpose_code: delivery
purpose_description: Delivery fees for goods
bank_account_country: IN
PaymentDates:
type: object
description: Payment dates.
properties:
invalid_payment_dates:
type: object
description: Invalid payment dates with reason.
additionalProperties:
type: string
description: Maps dates (eg. "2023-12-31") to string values that explains why payments cannot be made on this date (eg. "No trading on Sunday").
first_payment_date:
description: Frist possible payment date.
type: string
example:
invalid_payment_dates:
'2013-04-18': Good Friday
'2013-04-19': No trading on Saturday
'2013-04-20': No trading on Sunday
'2013-04-21': Easter Monday
'2013-04-26': No trading on Saturday
'2013-04-27': No trading on Sunday
'2013-05-03': No trading on Saturday
'2013-05-04': No trading on Sunday
'2013-05-05': Early May Bank Holiday
'2013-05-10': No trading on Saturday
'2013-05-11': No trading on Sunday
'2013-05-17': No trading on Saturday
'2013-05-18': No trading on Sunday
'2013-05-24': No trading on Saturday
'2013-05-25': No trading on Sunday
'2013-05-26': Spring Bank Holiday
'2013-05-31': No trading on Saturday
'2013-06-01': No trading on Sunday
'2013-06-07': No trading on Saturday
'2013-06-08': No trading on Sunday
'2013-06-14': No trading on Saturday
first_payment_date: '2013-04-15T00:00:00.000Z'
SettlementAccount:
type: object
description: Settlement accounts.
properties:
bank_account_holder_name:
type: string
description: The bank account holder's name.
beneficiary_address:
type: array
description: The beneficiary's address.
items:
type: string
description: Line of address.
beneficiary_country:
description: Beneficiary's country.
type: string
bank_name:
description: The name of the bank.
type: string
bank_address:
description: The bank's address.
type: array
items:
type: string
description: Line of address
bank_country:
type: string
description: Two-letter ISO country code for the bank's country.
currency:
description: Payment currency
type: string
bic_swift:
description: BIC / Swift code
type: string
iban:
description: IBAN number
type: string
account_number:
description: Account number
type: string
routing_code_type_1:
description: Routing system for regular (local) payments.
type: string
enum:
- aba
- bank_code
- branch_code
- bsb_code
- clabe
- cnaps
- ifsc
- institution_no
- sort_code
routing_code_value_1:
type: string
description: Value for routing system 'routing_code_type_1'.
routing_code_type_2:
type: string
enum:
- aba
- bank_code
- branch_code
- bsb_code
- clabe
- cnaps
- ifsc
- institution_no
- sort_code
description: Local payment routing system.
routing_code_value_2:
type: string
description: Value for routing system 'routing_code_type_2'.
example:
bank_account_holder_name: The Currency Cloud GBP - Client Seg A/C
beneficiary_address:
- 1 Churchill Place London E14 5HP
beneficiary_country: GB
bank_name: Barclays Bank Plc.
bank_address:
- 164 Bishopsgate London EC2M 4LX
bank_country: GB
currency: GBP
bic_swift: BARCGB22
iban: GB33 BUKB 2020 1555 5555 55
account_number: '13071472'
routing_code_type_1: sort_code
routing_code_value_1: '200605'
routing_code_type_2: ''
routing_code_value_2: ''
PayerRequirements:
type: object
description: Payer requirements.
properties:
payer_entity_type:
description: Legal entity type - company or individual.
enum:
- company
- individual
type: string
payment_type:
description: Type of payment - regular (local) or priority (Swift).
enum:
- priority
- regular
type: string
required_fields:
description: The required payer fields for the payment.
type: array
items:
type: object
properties:
name:
type: string
validation_rule:
type: string
example:
payer_entity_type: company
payment_type: priority
required_fields:
- name: payer_country
validation_rule: ^[A-z]{2}$
- name: payer_city
validation_rule: ^.{1,255}
- name: payer_address
validation_rule: ^.{1,255}
- name: payer_postcode
validation_rule: ^.{1,255}
- name: payer_company_name
validation_rule: ^.{1,255}
GetPaymentDatesError:
type: object
description: 'Client error information for the Get Payment Dates endpoint.
'
required:
- error_code
- error_messages
properties:
error_code:
type: string
description: A high-level error code for the whole request.
error_messages:
type: object
description: Detailed error information for individual input parameters that failed validation. Object keys are the names of the invalid input parameters. Each parameter may have one or more reasons why it failed.
additionalProperties:
type: array
items:
type: object
description: An object that represents one of the reasons why the input parameter failed.
required:
- code
- message
properties:
code:
type: string
description: A unique code that identifies this error. It can be used for translations.
message:
type: string
description: An explanation of the error in English.
params:
type: object
default: {}
description: Relevant validation rules that failed. This can be used for translations.
example:
minlength: 1
maxlength: 255
GetPaymentFeeRulesError:
type: object
description: 'Client error information for the Get Payment Fee Rules endpoint.
'
required:
- error_code
- error_messages
properties:
error_code:
type: string
description: A high-level error code for the whole request.
error_messages:
type: object
description: Detailed error information for individual input parameters that failed validation. Object keys are the names of the invalid input parameters. Each parameter may have one or more reasons why it failed.
additionalProperties:
type: array
items:
type: object
description: An object that represents one of the reasons why the input parameter failed.
required:
- code
- message
properties:
code:
type: string
description: A unique code that identifies this error. It can be used for translations.
message:
type: string
description: An explanation of the error in English.
params:
type: object
default: {}
description: Relevant validation rules that failed. This can be used for translations.
example:
minlength: 1
maxlength: 255
GetBeneficiaryRequirementsError:
type: object
description: 'Client error information for the Get Beneficiary Requirements endpoint.
'
required:
- error_code
- error_messages
properties:
error_code:
type: string
description: A high-level error code for the whole request.
error_messages:
type: object
description: Detailed error information for individual input parameters that failed validation. Object keys are the names of the invalid input parameters. Each parameter may have one or more reasons why it failed.
additionalProperties:
type: array
items:
type: object
description: An object that represents one of the reasons why the input parameter failed.
required:
- code
- message
properties:
code:
type: string
description: A unique code that identifies this error. It can be used for translations.
message:
type: string
description: An explanation of the error in English.
params:
type: object
default: {}
description: Relevant validation rules that failed. This can be used for translations.
example:
minlength: 1
maxlength: 255
GetAvailableCurrenciesError:
type: object
description: 'Client error information for the Get Available Currencies endpoint.
'
required:
- error_code
- error_messages
properties:
error_code:
type: string
description: A high-level error code for the whole request.
error_messages:
type: object
description: Detailed error information for individual input parameters that failed validation. Object keys are the names of the invalid input parameters. Each parameter may have one or more reasons why it failed.
additionalProperties:
type: array
items:
type: object
description: An object that represents one of the reasons why the input parameter failed.
required:
- code
- message
properties:
code:
type: string
description: A unique code that identifies this error. It can be used for translations.
message:
type: string
description: An explanation of the error in English.
params:
type: object
default: {}
description: Relevant validation rules that failed. This can be used for translations.
example:
minlength: 1
maxlength: 255