Initiate your first payment
Follow this step-by-step guide to create your first payment
This guide walks you through the process of making your first payment using our APIs. The payment will be initiated from one of your accounts to another.
Before You Start
Ensure you have the following:
- Successfully authenticated with the API (see Authenticate and retrieve accounts)
- Access to at least two company accounts in the sandbox environment
- The correct permissions to initiate payments
Step-by-Step Guide
Step 1: Check Your Available Accounts
Let's begin by checking your available accounts.
-
Prepare your request:
GET https://sandbox.bankingcircleconnect.com/api/v1/accounts
-
Include these headers:
Accept: application/json
Authorization: Bearer {your-access-token}
- Make the request:
curl --request GET \
--url 'https://sandbox.bankingcircleconnect.com/api/v1/accounts' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer {your-access-token}'
The response will look something like this:
{
"result": [
{
"accountId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"accountDescription": "string",
"accountIdentifiers": [
{
"account": "string",
"financialInstitution": "string",
"country": "string"
}
],
"ibans": [
"string"
],
"status": "Closed",
"currency": "string",
"openingDate": "2025-07-08",
"closingDate": "2025-07-08",
"ownedByCompanyId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"ownedByCompanyName": "string",
"ownedByCompanyNumber": "string",
"protectionType": "None",
"balances": [
{
"type": "CurrentBalance",
"currency": "string",
"beginOfDayAmount": 0,
"financialDate": "2025-07-08",
"intraDayAmount": 0,
"lastTransactionTimestamp": "2025-07-08T10:08:12.368Z",
"blockedBalanceAmount": 0
}
],
"friendlyName": "string",
"netInterestRate": 0,
"interestCalcMethod": "string",
"overdraftRate": 0,
"overdraftRateCalcMethod": "string"
}
],
"pageInfo": {
"currentPage": 0,
"pageSize": 0,
"rowCount": 0
}
}
Then, note down two different accounts from the response which we will use for the payment.
These are contained in the accountIdentifiers.account
field. This field will either contain an IBAN or a local account number.
If it contains a local account number, you will need to also note down the accountIdentifiers.financialInstitution
field.
Step 2: Initiate a Payment
-
Prepare your request:
POST https://sandbox.bankingcircleconnect.com/api/v1/payments/singles
-
Include these headers:
Content-Type: application/json
Authorization: Bearer {your-access-token}
- Create your payment request body:
Let's assume both accounts are in the same currency, EUR.
{
"requestedExecutionDate": "2024-06-14T00:00:00+00:00",
// Put today's date here. In the Sandbox, payments initiated with a future date will not be processed.
"debtorAccount": {
"account": "{source-account}", // the IBAN or account number you want to initiate the payment from
"financialInstitution": "{source-account-FI}", // Optional if using an IBAN in the field above
},
"currencyOfTransfer": "EUR", // Currency of the amount that will be remitted to the creditor
"amount": {
"currency": "EUR",
"amount": 11 // Ensure the account has enough funds
},
"chargeBearer": "SHA", // This sets which party bears the charges for the payment. SHA = shared
"creditorAccount": {
"account": "{destination-account}", // the IBAN or account number you want to initiate the payment to
"financialInstitution": "{destination-account-FI}", // Optional if using an IBAN in the field above
},
"creditorName": "Beneficiary Name", // The name of the account holder you want to initiate the payment to
"creditorAddress": {
"line1": "{creditor-address-line1}", // The address of the account you want to initiate the payment to
}
}
- Make the payment request:
curl --request POST \
--url 'https://sandbox.bankingcircleconnect.com/api/v1/payments/singles' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your-access-token}' \
--data '{your-payment-request-body}' // Replace with your actual payment request body above
A successful response will return a paymentId
and a status
of PendingProcessing
.
{
"paymentId": "d2404f75-e011-4683-9d2d-efd30943c6b8",
"status": "PendingProcessing"
}
Ensure you save the paymentId
from the response for tracking.
Step 3: Check Payment Status
-
Prepare your request:
GET https://sandbox.bankingcircleconnect.com/api/v1/payments/singles/{paymentId}/status
-
Include these headers:
Accept: application/json
Authorization: Bearer {your-access-token}
- Make the status request:
curl --request GET \
--url 'https://sandbox.bankingcircleconnect.com/api/v1/payments/singles/{paymentId}/status' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer {your-access-token}'
A successful response will return a status
of Processed
, and look like this:
{
"status": "Processed "
}
Congratulations! You have now successfully initiated your first payment.
Updated about 2 months ago
Learn how to download reports asynchronously to track your payment activity.