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.

  1. Prepare your request:
    GET https://sandbox.bankingcircleconnect.com/api/v1/accounts

  2. Include these headers:

Accept: application/json
Authorization: Bearer {your-access-token}
  1. 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

  1. Prepare your request:
    POST https://sandbox.bankingcircleconnect.com/api/v1/payments/singles

  2. Include these headers:

Content-Type: application/json
Authorization: Bearer {your-access-token}
  1. 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
  }
}
  1. 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

  1. Prepare your request:
    GET https://sandbox.bankingcircleconnect.com/api/v1/payments/singles/{paymentId}/status

  2. Include these headers:

Accept: application/json
Authorization: Bearer {your-access-token}
  1. 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.


What’s Next

Learn how to download reports asynchronously to track your payment activity.