Bank Account Setup
Learn how to create and manage bank accounts for receiving fiat payments from crypto-to-fiat transactions
Before you can execute crypto-to-fiat transactions, you need to register at least one bank account. A bank account stores the banking details required to route fiat payments to a specific receiver. This tutorial covers creating, listing, updating, and deleting bank accounts on the Skyline Digital platform.
Prerequisites
Before starting this tutorial, complete the Beneficiary Management tutorial. You must have at least one receiver set up before you can create a bank account, as every bank account is associated with a receiver.
Creating a bank account for an existing receiver
To create a bank account for a receiver that already exists in your organisation, send a request to POST /bank-accounts with the required fields and any country-specific banking details.
The following fields are required for every bank account:
| Field | Description |
|---|---|
| bankCountry | The identifier of the country where the bank is located. |
| currency | The identifier of the currency for this bank account. |
| receiver | The identifier of the receiver this bank account belongs to. |
In addition to these base fields, you must provide the banking details that correspond to the country and currency of the account. The required fields vary by region as described in the next section.
Country-specific banking fields
Different countries and payment networks require different banking details. When creating a bank account, include the fields that match the bank's country and currency.
| Region | Currency | Required Fields | Description |
|---|---|---|---|
| EU / SEPA | EUR | iban, bicSwift | The International Bank Account Number and BIC/SWIFT code used for SEPA transfers across the European Economic Area. |
| United Kingdom | GBP | accountNumber, sortCode | The UK bank account number and six-digit sort code used for domestic transfers. |
| United States | USD | accountNumber, routingNumber, accountType | The bank account number, ABA routing number, and account type which must be either CHECKING or SAVINGS. You may optionally specify achSupport or fedSupport to indicate the preferred wire method. |
| India | INR | accountNumber, ifscCode | The bank account number and Indian Financial System Code used for domestic transfers in India. |
| Other countries | Various | accountNumber, bicSwift | For countries not listed above, provide the bank account number along with the BIC/SWIFT code as a general fallback. |
The API validates that the correct fields are present based on the selected country and currency. If required fields are missing, the request will be rejected with a validation error.
Creating a bank account with a new receiver
If you need to create both a receiver and a bank account in a single step, send a request to POST /bank-accounts/receiver. This endpoint combines receiver creation and bank account creation into one request, which is useful when you are onboarding a new beneficiary and want to set up their payment details at the same time.
The request body includes the receiver details (type, name, email, address, and country) alongside the bank account details (country, currency, and the appropriate banking fields for the region). The API creates the receiver first and then associates the new bank account with it, returning both objects in the response.
Listing bank accounts
To retrieve all bank accounts associated with your organisation, send a request to GET /bank-accounts/me. The response is paginated and supports filtering.
Pagination parameters
| Parameter | Description |
|---|---|
| page | The page number to retrieve. Defaults to the first page. |
| limit | The number of bank accounts to return per page. |
Filter parameters
| Parameter | Description |
|---|---|
| receiver | Filter bank accounts by a specific receiver identifier. |
| currency | Filter bank accounts by currency identifier. |
| bankCountry | Filter bank accounts by the country of the bank. |
Getting a specific bank account
To retrieve the full details of a single bank account, send a request to GET /bank-accounts/:id, replacing :id with the bank account's unique identifier. This is useful when you need to verify the banking details before initiating a transaction.
Updating a bank account
To modify an existing bank account, send a request to PATCH /bank-accounts/:id with only the fields you want to change. Partial updates are supported, so you do not need to include every field -- only the ones being modified. The API returns the updated bank account object.
Deleting a bank account
To remove a bank account, send a request to DELETE /bank-accounts/:id. Once deleted, the bank account can no longer be used for new transactions. Any existing transactions that reference the bank account are not affected.
Optional fields
In addition to the required country-specific fields, you can provide additional banking details when creating or updating a bank account. These fields are optional and may be useful for certain payment corridors or banking institutions.
| Field | Description |
|---|---|
| bankName | The name of the bank or financial institution. |
| bankCode | A bank-specific code used in certain countries. |
| channel | The payment channel or network preference. |
| branchName | The name of the specific bank branch. |
| branchCode | The code identifying the bank branch. |
| bankCity | The city where the bank is located. |
| bankAddress | The primary address of the bank. |
| bankAddress2 | A secondary address line for the bank. |
| bankZip | The postal or ZIP code of the bank. |
| bankState | The state or province where the bank is located. |
| intermediaryRoutingCode | The routing code for an intermediary bank, used in correspondent banking arrangements. |
| intermediaryBankName | The name of the intermediary bank. |
What's next
With your bank accounts set up, you can now add crypto wallets for sending and receiving digital assets. Continue to the Wallet Management tutorial.