Create your first Direct Debit Collection

This guide walks you through the process of creating your first SEPA Direct Debit collection, paid out to one of your settlement accounts.

Before You Start

Requirement checklist

You will need to have the following in place in order to successfully complete this guide:

Base URLs

The Direct Debit Collections service uses some base URLs that are different to other Banking Circle endpoints. The API reference displays the correct production URL.


  • Authentication

    • Sandbox: https://authorizationsandbox.bankingcircleconnect.com/
    • Production: https://www.bankingcircleconnect.com/api/v1/authorizations/authorize
    • Notes: See the Get token endpoint.
  • Collection requests and management

    • Sandbox: https://sepaexpress-sand-fx.azurewebsites.net/
    • Production: https://sepaexpress-prod-fx.azurewebsites.net/
    • Notes: Endpoints are under the Direct Debit section in the API reference. Examples include Create a new bank account and related endpoints.
  • Payment status and refunds

    • Sandbox: https://sandbox.bankingcircleconnect.com/
    • Production: https://www.bankingcircleconnect.com
    • Notes: After a collection is initiated, payments can be tracked via standard payment endpoints, e.g., Single payments and Get status of a payment.

Merchant, Creditor and Connector IDs

Every SEPA Direct Debit (SDD) request must be linked to a valid Creditor ID. The Creditor ID uniquely identifies the entity legally responsible for the collection of funds.

There are two possible configurations:

  1. PSP Creditor ID

    • Used when the merchant does not have an entity in the EU.
    • In this case, collections are initiated under the PSP’s Creditor ID.
    • The end-customer mandate will show the PSP as the creditor of record.
  2. Merchant Creditor ID

    • Used when the merchant has a legal entity in the EU and has obtained their own Creditor ID from a local bank.
    • The merchant is listed as the creditor of record on mandates and assumes liability for refunds/chargebacks.

If you do not have a Creditor ID, please reach out to your implementation manager. We can provision one for you so you can start collecting.

Once this step is complete, you will be issued with a merchant ID and connector ID.

Sandbox Testing

When testing in the sandbox, you may bypass the step above and use the following static values:

  • Merchant ID: ed2a8e8a87f2e7a6093a8969b3874d65
  • Connector ID: 6f1cebbb863ffe22d4f73ac2aebedaf3

Settlement accounts

If you have multiple EUR settlement account with Banking Circle and only specific ones should be used for SDD requests, provide the exact IBAN (including the country code you want the IBAN denominated in) as part of your set up request.


Step-by-Step Guide

Step 1: Understand the Process

There are four steps to initiate a Direct Debit Collection with BC Connect:

  1. Create a new customer
  2. Create a new bank account for this customer
  3. Create a new mandate for this bank account
  4. Create a new payment request referencing this mandate

You can either perform each step individually or use our optimized workflow to combine all steps in a single request. In this guide, we will use the optimized workflow and make a single request.

Learn more about different Collection workflows.

Step 2: Prepare Your Credentials

For sandbox testing, use these credentials:

  • Merchant ID: ed2a8e8a87f2e7a6093a8969b3874d65
  • Connector ID: 6f1cebbb863ffe22d4f73ac2aebedaf3

Step 3: Create the Payment

  1. Prepare your request:
    POST https://sepaexpress-sand-fx.azurewebsites.net/api/services/v2/Payments
  2. Include these headers:
    Content-Type: application/json
    Accept: application/json
    Authorization: Bearer {your-access-token}
    
  3. Create the payment request body:
{
      "mandate":{
          "bankAccount":{
              "customer":{
                  "merchantId": "ed2a8e8a87f2e7a6093a8969b3874d65",
                  "givenName": "Max",
                  "familyName": "Mustermann",
                  "addressLine1": "Musterstraße 1",
                  "postalCode": "54321",
                  "city": "Musterstadt",
                  "countryCode": "DE",
                  "languageCode": "de",
                  "emailAddress": "[email protected]"
             },
              "memo": "test999",
              "iban": "DE86100000001234400013"
          },
      "connectorId": "6f1cebbb863ffe22d4f73ac2aebedaf3"
      },
      "currencyCode": "EUR",
      "amount": 1,
      
  }

Step 4: Process the Response

A successful response will look like this:

{
      "payment": {
          "id": "b0109fa3a03aa48bb0691d007a04b2cc",
          "merchantId": "ed2a8e8a87f2e7a6093a8969b3874d65",
          "customerId": "b51191d7a45296d61e4c645b2113638b",
          "customer": {
              "id": "b51191d7a45296d61e4c645b2113638b",
              "merchantId": "ed2a8e8a87f2e7a6093a8969b3874d65",
              "createdAt": "2020-03-12T08:19:05.1010008Z",
              "state": "created",
              "givenName": "Max",
              "familyName": "Mustermann",
              "addressLine1": "Musterstraße 1",
              "postalCode": "54321",
              "city": "Musterstadt",
              "countryCode": "DE",
              "languageCode": "de",
              "emailAddress": "[email protected]"
          },
          "bankAccountId": "e209fc86d8e9eec3dbb7a8f54dba5e8b",
          "bankAccount": {
              "id": "e209fc86d8e9eec3dbb7a8f54dba5e8b",
              "merchantId": "ed2a8e8a87f2e7a6093a8969b3874d65",
              "customerId": "b51191d7a45296d61e4c645b2113638b",
              "createdAt": "2020-03-12T08:19:05.0839413Z",
              "state": "created",
              "accountHolder": "Max Mustermann",
              "iban": "DE86100000001234400013",
              "currencyCode": "EUR",
              "countryCode": "DE",
              "memo": "test999"
          },
          "mandateId": "ffe1af72ba4dc9599bfad042cae9407e",
          "mandate": {
              "id": "ffe1af72ba4dc9599bfad042cae9407e",
              "merchantId": "ed2a8e8a87f2e7a6093a8969b3874d65",
              "connectorId": "6f1cebbb863ffe22d4f73ac2aebedaf3",
              "customerId": "b51191d7a45296d61e4c645b2113638b",
              "bankAccountId": "e209fc86d8e9eec3dbb7a8f54dba5e8b",
              "createdAt": "2020-03-12T08:19:05.0496901Z",
              "state": "created",
              "scheme": "sepa",
              "reference": "e0c2a3058798aa82f44f6e610cfd6615",
              "type": "recurring",
              "mandateUrl": "https://sepaexpress-sand-fx.azurewebsites.net/api/services/v2/Resources/ed2a8e8a87f2e7a6093a8969b3874d65/6f1cebbb863ffe22d4f73ac2aebedaf3/Mandates/ffe1af72ba4dc9599bfad042cae9407e.pdf",
              "approvalDate": "2020-03-12T08:19:05.0496901Z"
          },
          "createdAt": "2020-03-12T08:19:05.0049479Z",
          "state": "created",
          "currencyCode": "EUR",
          "amount": 1,
          "reference": "150e7aa92784e0df56363f0f1bf7211c",
          "softDescriptor": "SEPA Direct Debit End2End-Ref: 150e7aa92784e0df56363f0f1bf7211c Mandate-Ref: e0c2a3058798aa82f44f6e610cfd6615",
          "refundCount": 0,
          "refundAmount": 0,
          "submitAfter": "2020-03-12T08:19:05.0049479Z"
      }
  }

Important note:

  1. Reference: unique payment identification, perpetrated in the payment chain as end-to-end id and in reporting as user reference
  2. Soft descriptor: text will be printed on the bank statement and reports. If empty, a scheme compliant soft description will be provided. Recommendation to include shop URL, mandate reference and hotline number or email.
  3. Mandate id: confirming signature of direct debit authorization.
  4. Idempotency key: we recommend sending a unique ID for each of your requests to prevent duplicate payments. The key needs to be unique for each connector id.
  5. If any rejection happens to your POST request, your API response will be unsuccessful. A successful POST call will give you a 200 response
  6. If you have an account check with an AIS provider, you are subject to an additional validation after a valid 200 response. This rejection can be monitored via webhook.

Next steps

You have successfully initiated your first direct debit request, which will now be forwarded to the SEPA CORE scheme. You can now follow the guide to check the status of your first Direct Debit request.