Bancontact
Overview - Bancontact
The Bancontact debit card (formerly also know as Mister Cash) is a popular payment method in Belgium and the most commonly used card in that country. It lets customers make real-time card transactions to buy products and services. A Bancontact card with a PIN number is issued to customers who open a Belgian bank account. It is linked to a customer’s current account and is accepted in most retail stores in Belgium.
Additionally customers can pay with their Bancontact app where they can place their Bancontact debit cards behind.
Customer Experience - Bancontact
The Bancontact payments via web always require a 3DS authentication.
Optionally a user could also execute the payment via the Bancontact app (step 3) either scanning a QR-code or opening the app directly while shopping with the mobile device.
Mobile payment options (QR code / open payment app via link i.e. URL intent) are only available for transactions up to 500EUR (due to scheme limitation).
Feature Details - Bancontact
General
Name | Details |
---|---|
Product | Bancontact |
Channels | ECOM |
Currencies | EUR |
Countries | BE |
Technical Flow | Asynchronous |
Recurring | No |
Chargebacks | No |
Supported Features and Services
Name | Details |
---|---|
Debit | Yes |
Preauthorization | No |
Cancelation | No |
Capture | No |
Refunds | Yes |
Notifications | Yes (webhook and email) |
Settlement Reporting | Yes (Unified Settlement Reporting) |
Name | Details |
---|---|
API | Yes |
Widget | Yes |
Bridge | No |
Shop Plugin | No |
Integration via API - Bancontact
Technical Flow
Webhook notifications
As it is not ensured at the time of the redirect to the shop that the payment was 100% successful the Payengine waits for the final asynchronous notification from the bank before a status is moved from PENDING into SUCCESS or FAILURE.
A merchant should register for the Payengine webhook notifications in order to receive this final status update. A GET on the order or DEBIT transaction would also work, but it is not ensured that the final status will be available immediately after the redirect and a merchant might have to query the GET multiple times. Therefore it is strongly recommended that the asynchronous notifications from the Payengine are used insetad.
The notifications could be subscribed:
- via the payengine API (link to API documentation)
- via the Payengine Merchant Center (link to Merchant Center notifications documentation)
The following events have to be subscribed for in order to receive the Bancontact notifications, depending on the preferred source of notification.
Source | Event |
---|---|
API | notificationState = UPDATED |
Merchant Center | event type = order update success event type = order update failure
|
Specifications - Bancontact
Bancontact input parameters
The following input parameters are required for initiating an Bancontact payment via direct API integration.
Parameter | Mandatory/Optional (M/O) | Description | Example |
---|---|---|---|
payment.accountHolder | O | Name of the bank account holder | John Doe |
async.successUrl | M | Redirect URL for successful payment | http://my.shop.com/success |
async.failureUrl | M | Redirect URL for unsuccessful payment | http://my.shop.com/fail |
async.cancelUrl | M | Redirect URL when payment is canceled | http://my.shop.com/cancel |
Samples
Debit transaction
POST /orders/debit
Bancontact Debit Request
{ "product" : "bancontact", "terms": 1468590412476, "privacy": 1468590412476,
Bancontact Debit Response
{ "createdAt": 1555313635979, "modifiedAt": 1555313636041, "merchantId": "merchant_f9tpollbia",
Refund transaction
POST /orders//transactions//refund
Bancontact Refund Request
{ "initialAmount": 2380, "currency": "EUR", "basket": [
Bancontact Refund Response
{ "createdAt": 1555313878801, "modifiedAt": 1555313878807, "type": "REFUND",
Settlements
All settlement information will be provided in the Unified Settlement Report. The format and mappings can be found in the corresponding documentation (see Unified Settlement Report).