Client API IBANFIRST (1.1)

Download OpenAPI description
Languages
Servers
https://sandbox.ibanfirst.com/api/

Wallets

In the IBANFIRST API, what we call a "wallet" account can be either a physical iban account, or a virtual iban account with IBANFIRST. A virtual account is an administrative "subaccount" of one physical iban account (the "masteraccount"). Cash can be earmarked as belonging to a virtual account so that you can easily allocate funds per business unit, per client, or incoming/outgoing transactions).

Operations

Financial movements

The IBANFIRST Rest API allows you to get all financial movements from your Wallets.

Operations

External bank account

In the IBANFIRST API, what we call external bank account, can be either your own account in another bank or a third party recipient account.

Operations

Submit a new external bank account

Request

By submitting a new external bank account, you must supply the relevant details in order to pay a beneficiary. Caution. All your physical iban accounts hold with IBANFIRST will be automatically created when subscribing with us.

The Submit External Bank Account service allows to reference external bank accounts which can be either your own accounts in another bank or a third party account.

Adding an external bank has some rules :

  • If you have the BIC/SWIFT of the bank, just submit it, and we will recover informations of the bank on our own.
  • If you do not have the BIC/SWIFT of the bank, you have to refer at least its clearing code type, its clearing code and its name.
  • In both cases, if values are not mentionned above, they are not required.

This service include verifications on the format of the account created. The API has been made in order to accept local specification of cross-boarder payments.

The API accepts the following formats of external bank accounts :

  • Austrian Bankleitzahl
  • Australian Bank State Branch
  • German Bankleitzahl
  • Canadian Payments Association Payment Routing Number
  • Spanish Domestic Interbanking Code
  • Fedwire Routing Number
  • HEBIC (Hellenic Bank Identification Code)
  • Bank Code of Hong Kong
  • Irish National Clearing Code (NSC)
  • Indian Financial System Code (IFSC)
  • Italian Domestic Identification Code
  • New Zealand National Clearing Code
  • Polish National Clearing Code (KNR)
  • Portuguese National Clearing Code
  • Russian Central Bank Identification Code
  • UK Domestic Sort Code
  • Swiss Clearing Code
  • South African National Clearing Code

Of course, it is possible to reference third party wallet accounts and execute an instant and free wallet2wallet payment at this destination.

Bodyapplication/jsonrequired

the account to post

accountNumberstring<= 50 charactersrequired

The recipient account number or Iban.

currencystring(^[A-Z]{3}$)(Currency)^[A-Z]{3}$required

A String representing the Three-digit ISO 4217 Currency Code of a currency. This String only contains capitalized letters.

Example: "USD"
holderBankobject(HolderBank)required

Representation of a beneficiary bank.

holderBank.​bicstring<= 11 characters

Eight or eleven-digit ISO 9362 Business Identifier Code specifying the Recipient Bank. This field is optional only when the account number does not have an Iban format.

holderBank.​clearingCodeTypestring<= 2 characters

The two-digit code specifying the local clearing network. If you does not have a bic, this field is required.

holderBank.​clearingCodestring<= 15 characters

The code identifying the branch number on the local clearing network. If you does not have a bic, this field is required.

holderBank.​namestring<= 120 characters

The beneficiary bank name.

holderBank.​addressobject(Address)

Representation of an address

holderobject(Holder)required

What we call a Holder can be either an Individual or an Organisation that own the account. May also be referred to as: Beneficiary/Supplier/Vendor/Payee/Recipient.

In the beneficiary address, only the Country is mandatory, but you can specify all fields to be more precise.

holder.​namestring<= 100 charactersrequired

The name of the account owner.

holder.​typestring<= 10 charactersrequired

The code identifying the type of account owner.

Enum"Individual""Corporate"
holder.​addressobject(Address)

Representation of an address

tagstring<= 50 characters

Custom Data.

correspondentBicstring<= 50 characters

The intermediary bank identifier code.

curl -i -X POST \
  https://sandbox.ibanfirst.com/api/externalBankAccounts/ \
  -H 'Content-Type: application/json' \
  -d '{
    "accountNumber": "string",
    "currency": "USD",
    "holderBank": {
      "bic": "string",
      "clearingCodeType": "st",
      "clearingCode": "string",
      "name": "string",
      "address": {
        "street": "string",
        "postCode": "string",
        "city": "string",
        "province": "st",
        "country": "string"
      }
    },
    "holder": {
      "name": "string",
      "type": "Individual",
      "address": {
        "street": "string",
        "postCode": "string",
        "city": "string",
        "province": "st",
        "country": "string"
      }
    },
    "tag": "string",
    "correspondentBic": "string"
  }'

Responses

OK

Bodyapplication/json
idstring(^[A-Za-z0-9]{*}$)(ID)^[A-Za-z0-9]{*}$

A String representing the id of an object. This string contains alpha-numeric characters, including the capital ones.

Example: "Na5Dv6E"
currencystring(^[A-Z]{3}$)(Currency)^[A-Z]{3}$

A String representing the Three-digit ISO 4217 Currency Code of a currency. This String only contains capitalized letters.

Example: "USD"
tagstring<= 50 characters

Custom reference of the account.

accountNumberstring<= 40 characters

The code specifying the account (can be either an Iban or an account number).

correspondentBankobject(CorrespondantBank)

Representation of a correspondant bank.

holderBankobject(HolderBank)

Representation of a beneficiary bank.

holderobject(Holder)

What we call a Holder can be either an Individual or an Organisation that own the account. May also be referred to as: Beneficiary/Supplier/Vendor/Payee/Recipient.

In the beneficiary address, only the Country is mandatory, but you can specify all fields to be more precise.

Response
application/json
{ "id": "Na5Dv6E", "currency": "USD", "tag": "string", "accountNumber": "string", "correspondentBank": { "bic": "string", "name": "string", "address": {} }, "holderBank": { "bic": "string", "clearingCodeType": "st", "clearingCode": "string", "name": "string", "address": {} }, "holder": { "name": "string", "type": "Individual", "address": {} } }

Get external bank accounts list

Request

With the IBANFIRST API, you can list all the external bank accounts referenced with your account.

Query
sortstring

A code representing the order of rendering external bank accounts with their creation date.

Enum"ASC""DESC"
pagestring

Index of the page.

Default "1"
per_pagestring

Inumber of items returned.

Default "50"
curl -i -X GET \
  'https://sandbox.ibanfirst.com/api/externalBankAccounts/?page=1&per_page=50&sort=ASC'

Responses

OK

Bodyapplication/jsonArray [
idstring(^[A-Za-z0-9]{*}$)(ID)^[A-Za-z0-9]{*}$

A String representing the id of an object. This string contains alpha-numeric characters, including the capital ones.

Example: "Na5Dv6E"
currencystring(^[A-Z]{3}$)(Currency)^[A-Z]{3}$

A String representing the Three-digit ISO 4217 Currency Code of a currency. This String only contains capitalized letters.

Example: "USD"
tagstring<= 50 characters

Custom reference of the account.

accountNumberstring<= 40 characters

The code specifying the account (can be either an Iban or an account number).

correspondentBankobject(CorrespondantBank)

Representation of a correspondant bank.

holderBankobject(HolderBank)

Representation of a beneficiary bank.

holderobject(Holder)

What we call a Holder can be either an Individual or an Organisation that own the account. May also be referred to as: Beneficiary/Supplier/Vendor/Payee/Recipient.

In the beneficiary address, only the Country is mandatory, but you can specify all fields to be more precise.

]
Response
application/json
[ { "id": "Na5Dv6E", "currency": "USD", "tag": "string", "accountNumber": "string", "correspondentBank": {}, "holderBank": {}, "holder": {} } ]

Get external bank account details

Request

This request allows you to see the details related to an external bank account.

Path
idstringrequired

The ID of the external bank account you want. As ID's are listed with the External Bank Account Objects, You can retrieve this by listing all external bank accounts for the current user.

curl -i -X GET \
  'https://sandbox.ibanfirst.com/api/externalBankAccounts/-{id}'

Responses

OK

Bodyapplication/json
idstring(^[A-Za-z0-9]{*}$)(ID)^[A-Za-z0-9]{*}$

A String representing the id of an object. This string contains alpha-numeric characters, including the capital ones.

Example: "Na5Dv6E"
currencystring(^[A-Z]{3}$)(Currency)^[A-Z]{3}$

A String representing the Three-digit ISO 4217 Currency Code of a currency. This String only contains capitalized letters.

Example: "USD"
tagstring<= 50 characters

Custom reference of the account.

accountNumberstring<= 40 characters

The code specifying the account (can be either an Iban or an account number).

correspondentBankobject(CorrespondantBank)

Representation of a correspondant bank.

holderBankobject(HolderBank)

Representation of a beneficiary bank.

holderobject(Holder)

What we call a Holder can be either an Individual or an Organisation that own the account. May also be referred to as: Beneficiary/Supplier/Vendor/Payee/Recipient.

In the beneficiary address, only the Country is mandatory, but you can specify all fields to be more precise.

Response
application/json
{ "id": "Na5Dv6E", "currency": "USD", "tag": "string", "accountNumber": "string", "correspondentBank": { "bic": "string", "name": "string", "address": {} }, "holderBank": { "bic": "string", "clearingCodeType": "st", "clearingCode": "string", "name": "string", "address": {} }, "holder": { "name": "string", "type": "Individual", "address": {} } }

Delete an external bank account

Request

Delete an external bank account.

Path
idstringrequired

The ID of the external bank account you want to delete.

curl -i -X DELETE \
  'https://sandbox.ibanfirst.com/api/externalBankAccounts/-{id}'

Responses

OK

Bodyapplication/json
resultboolean

The result of the operation. true if the operation is successful, else false

Response
application/json
{ "result": true }

Payments

Sending funds from your IBANFIRST wallet account to your own bank account or a third-party recipient involves two steps:

  1. Generate the payment object with the Submit Payment method. When you submit a payment to be scheduled, you assign a unique id to that payment.
    Caution: The payment created will be automatically rolled to the next closest working days if not confirmed in the scheduled date of operation.

  2. Confirm the payment to the API for processing, using the Confirm Payment method. When you confirm a payment for processing, make sure you have sufficient funds in your wallet account balance.
    Caution: If the balance of your wallet account is not sufficient to cover the payment amount, funds may be locked-in by IBANFIRST.

Operations

Trades

IBANFIRST provides a deliverable FX facility and deliverable FX liquidity via the IBANFIRST-REST API. You will become counterparty to IBANFIRST and can market and sell deliverable FX services to corporate and private clients as well as using such services on their behalf.

The IBANFIRST-rest API supports online trading for the following contracts: TOD (Same-day), TOM (next-day), SPOT (T+2) and forward contracts up to one year.

FX trades are always made between two wallet accounts of a unique counterparty. IBANFIRST will automatically debit the source wallet account and credit the delivery wallet account at the date specified in the FX trade instructions. If the delivery date has been scheduled, the delivery is automatically processed in the morning before 00:30 am Paris time. If the delivery date is today (TOD), the funds is available on your wallet account by the next 20mn.

A FX trades also involves an amount, which includes both the numeric amount and the currency in order to define if this amount is the nominal to be bought or sold, for example: '100000.00+GBP'.

Operations

Documents

The IBANFIRST API let you acces your online documents stored on the IBANFIRST platform.
Note that the API do not send the document content, but a one-time link to access it.
This one-time link is only available once. So if you need another access to the document, you have to request another link by listing documents or getting document result.

Operations

Logs

As a developper, you might want to go further than sending request and recieve responses.
The IBANFIRST API allows you to access the logs of its own services, to provide you some details about what you send, and what it's done on the platform.

You can retrieve informations during a certain time.
This time passed, your log entry will be lost.

HTTP MethodTime
GET1 hour
POST, PUT1 week
Operations

Auth

This service is intended to authenticate users on the API for certain cases

Operations