Bulk payment

👍

Feature activation

To enable this feature on your app, please contact us.

Payment link integration

We suggest you use Payment Link to create a bulk payment. You will a get an end-to-end bulk payment experience.

  1. Creation of the payment link - POST Create a payment link
  2. The user can check the details of the transactions
  3. The user selects his bank and is redirected on the bank for authentication
  4. The user selects the account on the bank interface
  5. An SCA is requested via a device attached to the account
  6. The user comes back to the payment link to see the results of his bulk payment

📘

If you want to manage the bank selection experience in your interface, you can create a payment link with a pre-filled bank. Use the bank capabilities to only show the banks which support the bulk payment.

Get bulk payment status

First, you can follow the payment link status to know if the user has finished the payment initiation - please check Payment links statuses.

In order to retrieve the status of a bulk payment transaction you will need to make an API call on this endpoint GET a single payment request.

The payment request and the payment transactions will have a status. Regarding the status of a payment request these are the different status :

Please refer to this page for all the different status and if the payment is in RJCT to the status_reason.

For bulk payment you might have another status for payment request that is PART which is a final status. In this case, please check the transactions statuses because it means some of them might be successful and some might be rejected.

Qonto specification

Qonto has a specific flow on bulk payment. When the user is redirected to the bank:

  1. The user authenticates himself
  2. The user is redirected to Bridge to select the sender account
  3. Bridge page waiting for confirmation of the SCA that is requested via a device attached to the Qonto account
  4. Redirection of the user

🚧

Querying the status of a payment request via a GET simply retrieves the current status stored within the system. It does not initiate any actions that could refresh or update the status in real-time.

Bulk payment tests

You can use the Demo Bank to test the bulk feature in your integration.

The list of available test cases is presented in the section Testing your payment flow. The test identifiers can be used either:

  • As a login in the front-end flow: it will apply the same test case to the payment request and for each payment transaction.
  • Or as a label in each payment transaction: this will allow you to test different test cases within the same payment request (bulk).

Payment request integration

If your integration doesn't use the payment link, the bulk payment will go through different steps that are described below :

  1. Creation of the payment request - POST Create a payment request
  2. The user has a Bridge loading page
  3. The user is redirected on the bank for authentication
  4. The user selects the account on the bank interface
  5. An SCA is requested via a device attached to the account
  6. Redirecting the user to the successful_callback_url

In order to initiate a bulk payment you will need to provide the necessary details in the body of the endpoint POST Create a payment request.

Example of the body for a bulk payment :

{
  "successful_callback_url": "https://bridgeapi.io",
  "transactions": [
    {
      "currency": "EUR",
      "label": "label test 1",
      "amount": 1000,
      "beneficiary": {
          "name": "Company name" ,
          "iban": "FR0912739000302281214822O48"
      },
      "client_reference": "ABCDE_FG-HI_12345",
      "end_to_end_id": "E2E_TEST-123"
    },
    {
      "currency": "EUR",
      "label": "label test 2",
      "amount": 2000,
      "beneficiary": {
          "name": "Company name" ,
          "iban": "FR2012739000407524676274Z96"
      },
      "client_reference": "ABCDE_FG-HI_12345",
      "end_to_end_id": "E2E_TEST-123"
    },
    {
      "currency": "EUR",
      "label": "label test 3",
      "amount": 3000,
      "beneficiary": {
          "name": "Company name" ,
          "iban": "FR2714508000403277953994H75"
      },
      "client_reference": "ABCDE_FG-HI_12345",
      "end_to_end_id": "E2E_TEST-123"
    }
  ],
  "user": {
    "first_name": "John",
    "last_name": "Smith",
    "external_reference": "AEF142536-890"
  },
  "bank_id": 421
}

Once you confirmed a payment in the bank interface, if everything went well, you will be redirect to the success callback url you set up in the v2/payment-requests call.