Currency Solutions Online Trading Platform API (1.4.1)

Download OpenAPI specification:Download

Currency Solutions Online Trading Platform can be used to book currency online in a simple manner

All requests to API (except getToken request) should have Authorization header containing valid authorisation JWT token.

If you are the Service Provider all requests of your API users should have X-Provider-Hash header containing valid security hash provided by you (if required).

API host for test environment:

https://op-api-demo.currencysolutions.co.uk/

API host for live environment:

https://op-api.currencysolutions.co.uk/

API users:

To obtain the API JWT token please write to it@currencysolutions.com specifying your details and environment you need the token for.

If you are the Service Provider please additionaly send us the security hash you would like to use for all of your API users requests.

Online Platform users:

First you have to obtain guest JWT token with your session data performing getToken request.

Having guest token you can get the valid JWT token by login request.

buy currency

List of requests required to buy a currency online:

Get list of buy currencies

Get list of currencies available to buy by authorised user

header Parameters
Authorization
required
string

JWT Auth Token

X-Provider-Hash
string

Security Hash (Service Providers only)

Responses

Response samples

Content type
application/json
{
  • "content": {
    }
}

Get list of sell currencies

Get list of currencies available to sell by authorised user

header Parameters
Authorization
required
string

JWT Auth Token

X-Provider-Hash
string

Security Hash (Service Providers only)

Responses

Response samples

Content type
application/json
{
  • "content": {
    }
}

Reasons for transfer list

List of reasons for transfer

header Parameters
Authorization
required
string

JWT Auth Token

X-Provider-Hash
string

Security Hash (Service Providers only)

Responses

Response samples

Content type
application/json
{
  • "content": [
    ]
}

Book quote

Before using this method you have to get a quote performing get quote request. Book currency exchange quote. All quote data is stored on server and can be retrieved by quoted currencies before quote has been expired.

query Parameters
buyCurrency
required
string

Buy Currency which was used on getQuote request

sellCurrency
required
string

Sell Currency which was used on getQuote request

header Parameters
Authorization
required
string

JWT Auth Token

X-Provider-Hash
string

Security Hash (Service Providers only)

Responses

Response samples

Content type
application/json
{
  • "content": {
    }
}

Get a currency quote

Get a quote for currency exchange

query Parameters
buyCurrency
required
number

Currency that client wants to buy

buyAmount
required
string

Amount that client wants to buy. Required unless sellAmount is provided

sellCurrency
required
string

Currency that client wants to sell

sellAmount
required
number

Amount that client wants to sell. Required unless buyAmount is provided

date
string

[Optional] The value date of the exchange (YYYY-MM-DD)

header Parameters
Authorization
required
string

JWT Auth Token

X-Provider-Hash
string

Security Hash (Service Providers only)

Responses

Response samples

Content type
application/json
{
  • "content": {
    }
}

Send out

Provide the details of beneficiary for money transfer

query Parameters
id
required
integer

ID of created transfer template available from Book Quote request

beneficiaryId
integer

ID of existing beneficiary used for transfer

currency
required
string

Transfer currency. Should be equal to buy currency.

amount
required
number

Transfer amount

destinationCountryId
string

Two letter code of destination country. Required if no beneficiary ID provided.

name
string

The name of beneficiary. Required if no beneficiary ID provided.

accountNumber
string

Beneficiary account number. Required if no beneficiary ID provided.

bankIdentifier
string

Beneficiary bank identifier (Sort Code/SWIFT). Required if no beneficiary ID provided.

countryId
string

Two letter code of beneficiary country. Required for some currencies/countries.

thirdParty
boolean

Is beneficiary a third party? Required if no beneficiary ID provided.

reference1
required
string

Transfer reference

reason
required
number

Reason for transfer ID. See result of get reasons request

otherReason
string

Other reason text. Required if other reason choosen.

intermediaryBank
string

Intermediary bank identifier (Sort Code/SWIFT). Required for some currencies/countries.

address1
string

First line of beneficiary address. Required for some currencies/countries.

address2
string

Second line of beneficiary address. Required for some currencies/countries.

transitCode
string

Transit code. Required for some currencies/countries.

ifscCode
string

IFSC code. Required for some currencies/countries.

bsbCode
string

BSB code. Required for some currencies/countries.

mobileReference
string

Mobile phone confirmation reference. Used if user confirmed his mobile phone.

phoneCode
string

Mobile phone country code. Used if user confirmed his mobile phone.

mobile
string

Mobile phone number without country code. Used if user confirmed his mobile phone.

header Parameters
Authorization
required
string

JWT Auth Token

X-Provider-Hash
string

Security Hash (Service Providers only)

Responses

Response samples

Content type
application/json
{
  • "content": {
    }
}

Authorization

Send POST request to authorize user via login and password. Before using this method you have to obtain guest JWT token with your session data performing getToken request.

Notice: API users can use API JWT token. No additional authorization required.

query Parameters
email
required
string

Valid email address

password
required
string

Password

header Parameters
Authorization
string

Guest iClaus session JWT Token (if available)

Responses

Response samples

Content type
application/json
{
  • "content": {
    }
}

beneficiary

Work with beneficiaries

Get beneficiary by id

path Parameters
beneficiaryId
required
integer

The id of the beneficiary to retrieve

header Parameters
Authorization
required
string

JWT Auth Token

X-Provider-Hash
string

Security Hash (Service Providers only)

Responses

Response samples

Content type
No sample

Get beneficiaries list

Get all client beneficiaries

header Parameters
Authorization
required
string

JWT Auth Token

X-Provider-Hash
string

Security Hash (Service Providers only)

Responses

Response samples

Content type
application/json
{
  • "count": "1",
  • "items": [
    ],
  • "page": "1",
  • "per_page": "10"
}

Create a beneficiary

query Parameters
name
required
string

Name of beneficiary

accountNumber
required
string

Beneficiary account number

bankIdentifier
required
string

Bank identifier

intermediaryBank
string

Intermediary bank

address1
required
string

Address line 1

address2
required
string

Address line 2

countryId
required
string

Country short code

destinationCountryId
required
string

Destination country code

reference
string

Beneficiary reference

currency
required
string

Currency code

transitCode
required
string

Transit code

ifscCode
required
string

IFSC code

bsbCode
required
string

BSB code

header Parameters
Authorization
required
string

JWT Auth Token

X-Provider-Hash
string

Security Hash (Service Providers only)

Responses

Response samples

Content type
application/json
{
  • "id": "123",
  • "name": "Mr Smith",
  • "accountNumber": "GB19LOYD3096456470709943",
  • "bankIdentifier": "RBS",
  • "intermediaryBank": "BOFAUS3NXXX",
  • "address1": "SE1 2BG, 35 Hobbs Court",
  • "address2": "2 Jacob Street",
  • "countryId": "GB",
  • "destinationCountryId": "FR",
  • "reference": "For the property",
  • "confirmed": 0,
  • "currency": "GBP",
  • "thirdParty": "0",
  • "transitCode": "",
  • "ifscCode": "",
  • "bsbCode": ""
}

Update beneficiary by id

query Parameters
name
required
string

Name of beneficiary

accountNumber
required
string

Beneficiary account number

bankIdentifier
required
string

Bank identifier

intermediaryBank
string

Intermediary bank

address1
required
string

Address line 1

address2
required
string

Address line 2

countryId
required
string

Country short code

destinationCountryId
required
string

Destination country code

reference
string

Beneficiary reference

currency
required
string

Currency code

transitCode
required
string

Transit code

ifscCode
required
string

IFSC code

bsbCode
required
string

BSB code

header Parameters
Authorization
required
string

JWT Auth Token

X-Provider-Hash
string

Security Hash (Service Providers only)

Responses

Response samples

Content type
application/json
{
  • "id": "123",
  • "name": "Mr Smith",
  • "accountNumber": "GB19LOYD3096456470709943",
  • "bankIdentifier": "RBS",
  • "intermediaryBank": "BOFAUS3NXXX",
  • "address1": "SE1 2BG, 35 Hobbs Court",
  • "address2": "2 Jacob Street",
  • "countryId": "GB",
  • "destinationCountryId": "FR",
  • "reference": "For the property",
  • "confirmed": 0,
  • "currency": "GBP",
  • "thirdParty": "0",
  • "transitCode": "",
  • "ifscCode": "",
  • "bsbCode": ""
}

Delete beneficiary by id

path Parameters
id
required
integer

Id of beneficiary to delete

header Parameters
Authorization
required
string

JWT Auth Token

X-Provider-Hash
string

Security Hash (Service Providers only)

Responses

Response samples

Content type
{
  • "content": {
    }
}

client

Clients

Get balance list

Get all balances

header Parameters
Authorization
required
string

JWT Auth Token

X-Provider-Hash
string

Security Hash (Service Providers only)

Responses

Response samples

Content type
application/json
{
  • "data": [
    ]
}

Client registration

Request Body schema: application/json
required

Client basic information

title
required
string

Client's title

firstName
required
string

Client's first name

lastName
required
string

Client's last name

phoneCode
required
string

Client's phone code

mobile
required
string

Client's mobile phone number

mobileStatus
string

Client's mobile verification status

email
string

Client's email

emailConfirmed
bool
Enum: true false

Is client's email confirmed?

buyAmount
required
number

Amount that client wants to buy

buyCurrency
required
string

Currency that client wants to buy

transferFundsTo
string

Transfer funds to country

reasonForTransfer
string

Reason for transfer

enquiryId
int

Enquiry id (if present) or null

object (Address)
object (Address)
birthDate
required
string

Client's date of birth. Format: YYYY-MM-DD

birthPlace
string

Client's country code of birth

nationality
string

Client's nationality code

occupation
string

Client's occupation

question1
string

Secret question 1

answer1
string

Answer for secret question 1

question2
string

Secret question 2

answer2
string

Answer for secret question 2

password
string

Password

heardAboutUs
string

Heard about us

heardAboutUsDetails
string

Heard about us details

Responses

Request samples

Content type
application/json
{
  • "title": "Mr",
  • "firstName": "Alexander",
  • "lastName": "Ivanov",
  • "phoneCode": "44",
  • "mobile": "7490223344",
  • "mobileStatus": "",
  • "email": "some@email.com",
  • "emailConfirmed": true,
  • "buyAmount": "100",
  • "buyCurrency": "EUR",
  • "transferFundsTo": "RU",
  • "reasonForTransfer": "Want to buy house in Italy",
  • "enquiryId": "1234",
  • "currentAddress": {
    },
  • "previousAddress": {
    },
  • "birthDate": "1984-12-31",
  • "birthPlace": "UK",
  • "nationality": "GB",
  • "occupation": "Programmer",
  • "question1": "",
  • "answer1": "",
  • "question2": "",
  • "answer2": "",
  • "password": "",
  • "heardAboutUs": "",
  • "heardAboutUsDetails": ""
}

Response samples

Content type
application/json
{
  • "result": {
    }
}

Validate basic information

Request Body schema: application/json
required

Validate client's basic information

title
required
string

Client's title

firstName
required
string

Client's first name

lastName
required
string

Client's last name

phoneCode
required
string

Client's phone code

mobile
required
string

Client's mobile phone number

mobileStatus
string

Client's mobile verification status

email
string

Client's email

emailConfirmed
bool
Enum: true false

Is client's email confirmed?

buyAmount
required
number

Amount that client wants to buy

buyCurrency
required
string

Currency that client wants to buy

transferFundsTo
string

Transfer funds to country

reasonForTransfer
string

Reason for transfer

enquiryId
int

Enquiry id (if present) or null

Responses

Request samples

Content type
application/json
{
  • "title": "Mr",
  • "firstName": "Alexander",
  • "lastName": "Ivanov",
  • "phoneCode": "44",
  • "mobile": "7490223344",
  • "mobileStatus": "",
  • "email": "some@email.com",
  • "emailConfirmed": true,
  • "buyAmount": "100",
  • "buyCurrency": "EUR",
  • "transferFundsTo": "RU",
  • "reasonForTransfer": "Want to buy house in Italy",
  • "enquiryId": "1234"
}

Response samples

Content type
application/json
{
  • "message": "validation success"
}

Validate basic information

Request Body schema: application/json
required

Validate client's personal details

title
required
string

Client's title

firstName
required
string

Client's first name

lastName
required
string

Client's last name

phoneCode
required
string

Client's phone code

mobile
required
string

Client's mobile phone number

mobileStatus
string

Client's mobile verification status

email
string

Client's email

emailConfirmed
bool
Enum: true false

Is client's email confirmed?

buyAmount
required
number

Amount that client wants to buy

buyCurrency
required
string

Currency that client wants to buy

transferFundsTo
string

Transfer funds to country

reasonForTransfer
string

Reason for transfer

enquiryId
int

Enquiry id (if present) or null

Responses

Request samples

Content type
application/json
{
  • "title": "Mr",
  • "firstName": "Alexander",
  • "lastName": "Ivanov",
  • "phoneCode": "44",
  • "mobile": "7490223344",
  • "mobileStatus": "",
  • "email": "some@email.com",
  • "emailConfirmed": true,
  • "buyAmount": "100",
  • "buyCurrency": "EUR",
  • "transferFundsTo": "RU",
  • "reasonForTransfer": "Want to buy house in Italy",
  • "enquiryId": "1234"
}

Response samples

Content type
application/json
{
  • "message": "validation success"
}

Validate basic information

Request Body schema: application/json
required

Validate corporate details

object (Company)
id
integer

Client's registration id

clientId
integer

Client's id

kycStatus
string

Status of KYC check

sanctions
bool

is PEP or has sanctions

object (BasicInformation)
object (PersonalDetails)
object (Security)
authFlag
integer

Auth flag

createClient
integer

Create client

dealerId
integer

Dealer id

remoteaddr
string

Remote IP

status
string

Status

heardAboutUs
string

Heard about us

keywords
string

Keywords

source
string

Source

httpreferer
string

HTTP Referer

contact
string

Contact

Responses

Request samples

Content type
application/json
{
  • "company": {
    },
  • "id": "",
  • "clientId": "",
  • "kycStatus": "",
  • "sanctions": null,
  • "basicInformation": {
    },
  • "personal": {
    },
  • "security": {
    },
  • "authFlag": "",
  • "createClient": "",
  • "dealerId": "",
  • "remoteaddr": "",
  • "status": "",
  • "heardAboutUs": "",
  • "keywords": "",
  • "source": "",
  • "httpreferer": "",
  • "contact": ""
}

Response samples

Content type
application/json
{
  • "message": "validation success"
}

Validate security details

Request Body schema: application/json
required

Validate security details

question1
string

Secret question 1

answer1
string

Answer for secret question 1

question2
string

Secret question 2

answer2
string

Answer for secret question 2

password
string

Password

heardAboutUs
string

Heard about us

heardAboutUsDetails
string

Heard about us details

Responses

Request samples

Content type
application/json
{
  • "question1": "",
  • "answer1": "",
  • "question2": "",
  • "answer2": "",
  • "password": "",
  • "heardAboutUs": "",
  • "heardAboutUsDetails": ""
}

Response samples

Content type
application/json
{
  • "message": "validation success"
}

Postcode lookup

Get addresses by postcode

query Parameters
postcode
required
string

Postcode

country
required
string

Country short code

Responses

Response samples

Content type
application/json
{
  • "addressline1": [
    ],
  • "addressline2": [
    ],
  • "buildingname": [
    ],
  • "county": [
    ],
  • "postcode": [
    ],
  • "posttown": [
    ],
  • "premise": [
    ],
  • "street": [
    ],
  • "subbuildingname": [
    ],
  • "summaryline": [
    ]
}

trade

Work with trades

Get trade history

Get all client's trades

header Parameters
Authorization
required
string

JWT Auth Token

X-Provider-Hash
string

Security Hash (Service Providers only)

Responses

Response samples

Content type
application/json
{
  • "content": {
    }
}

transfer

Work with transfers

Get transfer list

Get client all transfers

path Parameters
per_page
required
integer

Items count

page
required
integer

Page number

header Parameters
Authorization
required
string

JWT Auth Token

X-Provider-Hash
string

Security Hash (Service Providers only)

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Get transfer by ID

Get transfer by id

header Parameters
Authorization
required
string

JWT Auth Token

X-Provider-Hash
string

Security Hash (Service Providers only)

Responses

Response samples

Content type
application/json
{
  • "id": 0,
  • "amount": "5000",
  • "currency": "USD",
  • "paymentId": 0,
  • "beneficiaryId": 0,
  • "date": "string",
  • "countryId": "string",
  • "status": "",
  • "transferOption": "SHA",
  • "reference1": "string",
  • "reference2": "string",
  • "reference3": "string",
  • "reason": 0,
  • "note": "string",
  • "beneficiary": [
    ],
  • "trade": [
    ]
}

Send out

Provide the details of beneficiary for money transfer

query Parameters
id
required
integer

ID of created transfer template available from Book Quote request

beneficiaryId
integer

ID of existing beneficiary used for transfer

currency
required
string

Transfer currency. Should be equal to buy currency.

amount
required
number

Transfer amount

destinationCountryId
string

Two letter code of destination country. Required if no beneficiary ID provided.

name
string

The name of beneficiary. Required if no beneficiary ID provided.

accountNumber
string

Beneficiary account number. Required if no beneficiary ID provided.

bankIdentifier
string

Beneficiary bank identifier (Sort Code/SWIFT). Required if no beneficiary ID provided.

countryId
string

Two letter code of beneficiary country. Required for some currencies/countries.

thirdParty
boolean

Is beneficiary a third party? Required if no beneficiary ID provided.

reference1
required
string

Transfer reference

reason
required
number

Reason for transfer ID. See result of get reasons request

otherReason
string

Other reason text. Required if other reason choosen.

intermediaryBank
string

Intermediary bank identifier (Sort Code/SWIFT). Required for some currencies/countries.

address1
string

First line of beneficiary address. Required for some currencies/countries.

address2
string

Second line of beneficiary address. Required for some currencies/countries.

transitCode
string

Transit code. Required for some currencies/countries.

ifscCode
string

IFSC code. Required for some currencies/countries.

bsbCode
string

BSB code. Required for some currencies/countries.

mobileReference
string

Mobile phone confirmation reference. Used if user confirmed his mobile phone.

phoneCode
string

Mobile phone country code. Used if user confirmed his mobile phone.

mobile
string

Mobile phone number without country code. Used if user confirmed his mobile phone.

header Parameters
Authorization
required
string

JWT Auth Token

X-Provider-Hash
string

Security Hash (Service Providers only)

Responses

Response samples

Content type
application/json
{
  • "content": {
    }
}

user

Work with users

Access Control List

Fetch allowed resources

header Parameters
Authorization
required
string

JWT Auth Token

X-Provider-Hash
string

Security Hash (Service Providers only)

Responses

Response samples

Content type
application/json
{
  • "content": [
    ]
}

Authorization

Send POST request to authorize user via login and password. Before using this method you have to obtain guest JWT token with your session data performing getToken request.

Notice: API users can use API JWT token. No additional authorization required.

query Parameters
email
required
string

Valid email address

password
required
string

Password

header Parameters
Authorization
string

Guest iClaus session JWT Token (if available)

Responses

Response samples

Content type
application/json
{
  • "content": {
    }
}

Sign out request

Request to sign logged user out

header Parameters
Authorization
required
string

JWT Auth Token

Responses

Response samples

Content type
content
{
  "data": {
    "status": "success"
  }
}

Get auth token

Request or renew authentication token

Responses

Response samples

Content type
application/json
{
  • "content": {
    }
}

Registration

Receive POST data to create new account

query Parameters
email
required
string

Valid email address

password
required
string

Password

passwordRepeat
required
string

Password repeat

Responses

User details

Request current logged user details

header Parameters
Authorization
required
string

JWT Auth Token

X-Provider-Hash
string

Security Hash (Service Providers only)

Responses

Response samples

Content type
application/json
{
  • "content": {
    }
}

User details

Request current logged user details

Responses

Reset password request

Reset password request

query Parameters
currentPassword
required
string

Current password

newPassword
required
string

New password

newPasswordRepeat
required
string

New password repeat

Responses

Response samples

Content type
No sample

Email confirmation

Send POST request to confirm user's email

query Parameters
userId
required
integer

User ID

token
required
string

Token

Responses

terms

Terms and Conditions

Terms and conditions

Fetch terms and conditions content

query Parameters
tmpl
integer

Specify terms and conditions. 1 => personal, 2 => corporate client

Responses

Response samples

Content type
application/json
{
  • "content": {
    }
}

general

Get list of currencies

Get full list of all available currencies with additional data

header Parameters
Authorization
required
string

JWT Auth Token

X-Provider-Hash
string

Security Hash (Service Providers only)

Responses

Response samples

Content type
application/json
{
  • "content": {
    }
}

Countries list

Fetch list of countries

header Parameters
Authorization
required
string

JWT Auth Token

X-Provider-Hash
string

Security Hash (Service Providers only)

Responses

Response samples

Content type
application/json
{
  • "content": [
    ]
}

SEPA countries list

Fetch list of SEPA countries

header Parameters
Authorization
required
string

JWT Auth Token

X-Provider-Hash
string

Security Hash (Service Providers only)

Responses

Response samples

Content type
application/json
{
  • "content": [
    ]
}

Address required countries list

List of the countries where address is required

header Parameters
Authorization
required
string

JWT Auth Token

X-Provider-Hash
string

Security Hash (Service Providers only)

Responses

Response samples

Content type
application/json
{
  • "content": [
    ]
}

Security questions list

List of security questions

header Parameters
Authorization
required
string

JWT Auth Token

X-Provider-Hash
string

Security Hash (Service Providers only)

Responses

Response samples

Content type
application/json
{
  • "content": [
    ]
}

Reasons for transfer list

List of reasons for transfer

header Parameters
Authorization
required
string

JWT Auth Token

X-Provider-Hash
string

Security Hash (Service Providers only)

Responses

Response samples

Content type
application/json
{
  • "content": [
    ]
}

Industry types list

List of industry types

header Parameters
Authorization
required
string

JWT Auth Token

X-Provider-Hash
string

Security Hash (Service Providers only)

Responses

Response samples

Content type
application/json
{
  • "content": [
    ]
}

Occupations list

List of occupations

header Parameters
Authorization
required
string

JWT Auth Token

X-Provider-Hash
string

Security Hash (Service Providers only)

Responses

Response samples

Content type
application/json
{
  • "content": [
    ]
}

statement

Get statement list

Get all statements

path Parameters
currency
required
string

Currency for which statements are required

bankDateFrom
required
string

Statement start date. A month from now by default

bankDateTo
required
string

Statement end date. Current date by default

Responses

Response samples

Content type
application/json
{
  • "data": [
    ]
}

notification

Get notifications

All notifications for a client

Responses

Response samples

Content type
application/json
{
  • "data": [
    ]
}

quote

Book quote

Before using this method you have to get a quote performing get quote request. Book currency exchange quote. All quote data is stored on server and can be retrieved by quoted currencies before quote has been expired.

query Parameters
buyCurrency
required
string

Buy Currency which was used on getQuote request

sellCurrency
required
string

Sell Currency which was used on getQuote request

header Parameters
Authorization
required
string

JWT Auth Token

X-Provider-Hash
string

Security Hash (Service Providers only)

Responses

Response samples

Content type
application/json
{
  • "content": {
    }
}

Get a currency quote

Get a quote for currency exchange

query Parameters
buyCurrency
required
number

Currency that client wants to buy

buyAmount
required
string

Amount that client wants to buy. Required unless sellAmount is provided

sellCurrency
required
string

Currency that client wants to sell

sellAmount
required
number

Amount that client wants to sell. Required unless buyAmount is provided

date
string

[Optional] The value date of the exchange (YYYY-MM-DD)

header Parameters
Authorization
required
string

JWT Auth Token

X-Provider-Hash
string

Security Hash (Service Providers only)

Responses

Response samples

Content type
application/json
{
  • "content": {
    }
}