Bulk Payments
This document outlines the standard (Happy-path) flow for the BPI - Bulk API. It explains how to initiate a payment and retrieve its status.
To test error scenarios, see Try it Out (Sandbox).
With Business Bulk Payment Initiation, you can you can send in PAIN001 files with batches directly or on behalf of your users with a Rabobank business payment account and retrieve the status of an initiated file.
We offer two variations of Business Bulk Payment Initiation (BBPI):
- Business Bulk Payment Initiation
- Available with signing for the Rabobank debtor in Rabo Business Banking.
- Business Bulk Payment Initiation – STP:
- Straight Through Processing (STP), without signing for the Rabobank debtor.
- Only available for Direct Connectors.
You can only use business current accounts as Ordering account/Debtor Account.
Bulk payments flow
-
The API user sends the payment order file(s) containing batches with payment orders using the Bulk Payment Initiation.
For some countries, special rules apply for World Payments. Read more information about countries here: Betalingsinformatie per land
-
Rabobank provides the third party with the status on the submitted bulk upload.
-
Flow in case of signing in RBB:
- The customer authorizes the payment batches in Rabo Business Banking or Rabo Business Banking Pro using Sign/Sign Orders from the menu.
- After successful authorization, Rabobank processes the payment batches following their payment process, same as if the payment is submitted using a Rabobank channel.
-
Flow in case of STP:
- Rabobank processes the payment batches following their payment process, same as if the payment is submitted using a Rabobank channel.
-
The API user can retrieve the status of the individual payments in the batches through PAIN-002.
Before you begin
Before you initiate a bulk payment, you should to meet the following requirements.
Sandbox Requirements
- Set up a sandbox account
- Set up sandbox application and subscription to either:
- Business Payment Initiation
- Set up your Mutual TLS connection, you can find our example certificates for sandbox here.
- Set up your signing flow, you can find our example certificates for sandbox here.
- Set up your Oauth flow
- Set up sandbox application and subscription to either:
Production Requirements
- Set up a production account. To get a production account, see Go to Production
- Set up production application and subscription to either:
- Business Payment Initiation
- Set up your Mutual TLS connection with your EV SSL certificate
- Set up your signing flow with your EV SSL certificate
- Set up your OAuth flow
- Set up production application and subscription to either:
Required headers
You are required to sign the payload for both the POST (creation of an instant payment order) and GET (retrieve status of an instant payment order) requests.
Read our Validate Signing Requests documentation for a detailed description of our signing method.
Required headers to include in your requests are:
| Name | Description | Format |
|---|---|---|
| Content-Type | Defines the type of the request. Only required for POST requests. | string |
| X-Request-ID | The X-Request-ID is a UUID generated by you. | UUID |
| PSU-IP-Address | The PSU-IP-Address consist of the IP address of the initiating party. | string |
| Signature-Certificate | The signature certificate is the public part of your EV SSL signing certificate. | string |
| Date | The date in a RFC-compliant date/time format. | string |
| Signature | The signature is the signing string signed with your private key. | string |
| Digest | The digest is a base64 encoded hash of the body. | string |
| X-IBM-Client-ID | The X-IBM-Client-ID is a UUID generated by your application. | UUID |
| Authorization | The Authorization header should include your access token. | String |
Step 1 - Create a payment order
The POST call requires a PAIN001 file, read more about it here.
Endpoints:
Creation of a bulk payment order of type Sepa Credit Transfer
POST /payments/bulk-stp/credit-transfers
Creation of a STP bulk payment order
POST /payments/bulk/credit-transfers
Purpose: These endpoints can be used to initiate a bulk payment order. A successful call returns a paymentId and an initial transactionStatus.
Step 2 — Retrieve status
Endpoints:
Status of a bulk sepa payment
GET /payments/bulk/credit-transfers/{paymentId}/status
Status of STP bulk payment
GET /payments/bulk-stp/credit-transfers/{paymentId}/status
Purpose: Retrieves the latest status for a previously initiated bulk payment using the paymentId.
