Bancontact
Intro
Bancontact (formerly known as MisterCash BCMC) is a Belgian debit card scheme.
It is the most frequently used payment method in Belgium.
Bancontact allows your customers to make immediate online payments. They can choose between the online payment system of their home bank or the Payconiq by Bancontact app. Either option offers them to pay quickly and in their preferred way.
Bancontact cards are most often co-badged with Maestro cards. Following the introduction of EU regulations, you need to offer your Belgian customers Bancontact in addition to Maestro. This empowers your customers to choose between the different brands.
Learn in our dedicated guides how comply with this regulation:
Key benefits
- Real-time authorisation approval/decline response
- Supports mobile payments through Payconiq by Bancontact app
- Fast settlement cycle
- Easy authentication process for your customers to ensure Fraud-proof payments
Onboarding
To use this payment method, we need to pre-configure your account for you. Contact us so we can take care of this.
Integration
We offer this payment methods for the following integration modes. Learn in our dedicated guides about their individual differences:
Find a high level overview in the "Process flows" chapter.
Depending on the integration mode, differences apply:
- To use this payment method, we need to pre-configure your account for you. Contact us so we can take care of this.
- If you process transactions via Hosted Checkout Page or Mobile/Client Integration, we recommend configuring the available payment modes for mobile/tablet/desktop devices in your account after we have finalised the pre-configuration.
- All JSON object examples feature only the mandatory properties for a valid request.
- Check out the respective chapter in our API Reference for the API calls to learn which other properties you can add.
Hosted Checkout Page
Before you start processing transactions, set up the payment method in your account:
Configuration in the Back Office
Are you using the Back Office?
You can configure Bancontact there as well. Learn here how to do it.
- Log in to the Merchant Portal. Go to Business > Payment methods > Bancontact.
- (De) flag the available payment modes your customers can choose from on the Hosted Checkout Page:
Mode Description Display QR code Allow your customers to pay by scanning a QR code. Display URL intent Allow your customers to pay with the Payconiq by Bancontact app. - Click on "Update Bancontact" to confirm your choices
- Depending on your choice, the following modes are now available for the respective devices:
Mobile Tablet Desktop QR code No Yes Yes URL intent Yes Yes No PAN Bancontact card Yes Yes Yes
Regardless of your choice, the option to pay with the Bancontact card (PAN) is always available.
Now you are ready to integrate the payment method into your webshop or mobile app.
Add the following properties to a standard CreateHostedCheckout request:
{
"cardPaymentMethodSpecificInput":{
"authorizationMode":"SALE",
"paymentProductId":3012,
"threeDSecure":{
},
"transactionChannel":"ECOMMERCE"
},
"hostedCheckoutSpecificInput":{
"locale":"en_EN",
"returnUrl":"https://yourReturnUrl.com"
},
"order":{
"additionalInput":{
},
"amountOfMoney":{
"amount":1000,
"currencyCode":"EUR"
},
"customer":{
"billingAddress":{
"countryCode":"BE"
}
},
"references":{
"merchantReference":"Your reference"
}
}
}
Properties | Remarks |
---|---|
order.amountOfMoney |
amount: The gross amount you want to charge for this order. |
hostedCheckoutSpecificInput |
returnURL: The URL we redirect your customers to after the payment has been finalised. |
cardPaymentMethodSpecificInput.paymentProductId |
paymentProductId: The numeric identifier of the payment method on our platform. Find this id in the "Overview" chapter. It instructs our platform to send your customers directly to the Bancontact-branded version of our Hosted Checkout Page. If left out, our platform sends your customers to the Hosted Checkout Page instead, allowing them to choose this or any other payment method in your account. |
Find detailed information about this object and its properties in our CreateHostedCheckoutAPI.
Server-to-server
Add the following properties to a standard CreatePayment request:
{
"cardPaymentMethodSpecificInput":{
"card":{
"cardholderName":"BCMC Buyer",
"cardNumber":"0000000000000000",
"expiryDate":"0130"
},
"threeDSecure":{
"redirectionData":{
"returnUrl":"https://yourReturnUrl.com"
}
},
"authorizationMode":"SALE",
"recurring":{
},
"transactionChannel":"ECOMMERCE",
"paymentProductId":3012
},
"fraudFields":{
"customerIpAddress":"40.91.241.131"
},
"order":{
"additionalInput":{
},
"amountOfMoney":{
"amount":1000,
"currencyCode":"EUR"
},
"customer":{
"billingAddress":{
"countryCode":"BE"
}
},
"references":{
"merchantReference":"BDD_20230118060724344_UNNERD0101E1_SS_00"
}
}
}
Properties | Remarks |
---|---|
order.amountOfMoney |
amount: The gross amount you want to charge for this order |
cardPaymentMethodSpecificInput |
card: The credentials of the card used for the payment paymentProductId: The numeric identifier of the payment method on our platform. Find this id in the "Overview" chapter |
Find detailed information about this object and its properties in our CreatePaymentAPI.
Mobile/Client Integration
As this payment method is available only via Hosted Checkout Page for mobile payments, your app needs to implement the respective flow/request.
Check out the "Process flows" chapter / Hosted Checkout Page chapter to learn more.
Find detailed information about this object and its properties in our CreateHostedCheckoutAPI.
Process flows
The process flow depends on these factors:
- The integration mode you choose for this payment method:
Hosted Checkout Page
Server-to-server
Mobile/Client Integration - The payment mode you offer to your customers:
QR code
URL intent
PAN Bancontact card - The device your customers use for the payment:
Mobile/Tablet
Desktop
To help you understand the resulting payment flows involving these factors, have a look at this table leading you to individual chapters:
Hosted Checkout Page | Server-to-server | Mobile/Client Integration | |
---|---|---|---|
Available payment modes |
QR code URL intent PAN |
PAN | URL intent (via Hosted Checkout Page) |
Hosted Checkout Page
This integration mode allows you to process transactions via payment modes
QR code process flow
This flow involves both your customers’ mobile/tablet and desktop device interacting with each other.
- Your customers finalise an order on their desktop device in your shop and select this payment method.
- You send this CreateHostedCheckout request to our platform.
- You redirect your customers on their desktop device via the redirectUrl to the Hosted Checkout Page. Your customers scan the displayed QR code with their mobile/tablet device.
- The mobile/tablet device opens the Payconiq app. Your customers confirm the payment in the app.
- We receive the transaction result.
- The mobile/tablet device opens the standard browser and redirects your customers to your returnURL. We redirect your customers to your returnURL on their desktop device.
- You request the transaction result from our platform via GetHostedCheckout or receive the result via webhooks.
- If the transaction was successful, you can deliver the goods / services.
URL intent process flow
This flow involves only your customers’ mobile device.
- Your customers finalise an order on their mobile device in your shop and select this payment method.
- You send this CreateHostedCheckout request to our platform.
- You redirect your customers on their mobile device via the redirectUrl to the Hosted Checkout Page. Your customers click on the "Open your app" button.
- The mobile device opens the Payconiq app. Your customers confirm the payment in the app.
- We receive the transaction result.
- The mobile device opens the standard browser and redirects your customers to your returnURL
- You request the transaction result from our platform via GetHostedCheckout or receive the result via webhooks.
- If the transaction was successful, you can deliver the goods / services.
PAN Bancontact process flow
This flow involves only one device (either your customers’ mobile/tablet or desktop device).
- Your customers finalise an order in your shop and select this payment method.
- You send this CreateHostedCheckout request to our platform.
- You redirect your customers via the redirectUrl to the Hosted Checkout Page.
- Your customers provide their Bancontact card number. We redirect them to their issuer for 3-D Secure authentication.
- Our system receives the 3-D authentication result from the issuer. We process the transaction and receive the result from the acquirer.
- We redirect your customers to your returnURL
- You request the transaction result from our platform via GetHostedCheckout or receive the result via webhooks.
- If the transaction was successful, you can deliver the goods / services.
Read our Hosted Checkout Page guide for a general overview about the payment flow for this integration mode.
Server-to-server
This integration mode allows you to process transactions via payment mode PAN.
PAN Bancontact process flow
This flow involves only one device (either your customers’ mobile/tablet or desktop device).
- Your customers finalise an order in your shop and select this payment method.
- Your customers go to your check-out page and enter their Bancontact card data.
- You send this CreatePayment request to our platform.
- Our platform sends a response containing a merchantAction object, instructing you to redirect your customers to their issuer for 3-D Secure authentication.
- Our system receives the 3-D authentication result from the issuer. We process the transaction and receive the result from the acquirer.
- We redirect your customers to your returnURL
- You request the transaction result from our platform via GetPaymentDetails or receive the result via webhooks.
- If the transaction was successful, you can deliver the goods / services.
Read our Server-to-server guide for a general overview about the payment flow for this integration mode.
Mobile/Client Integration
This integration mode allows you to process transactions via payment mode URL intent.
Bancontact is available only via Hosted Checkout Page for mobile apps.
URL intent process flow
This flow involves only your customers’ mobile device.
- Your customers finalise an order in your app and select this payment method.
- Your e-commerce server sends this CreateHostedCheckout request to our platform.
- You redirect your customers in your app to the Hosted Checkout Page via the redirectUrl. Your customers click on the "Open your app" button. Your app stores the identifier of the hosted checkout session (hostedcheckoutsessionid) when the payment starts.
- The mobile device opens the Payconiq app. Your customers confirm the payment in the app.
- We receive the transaction result.
- You request the transaction result from our platform via GetHostedCheckout or receive the result via webhooks.
- The Payconiq app opens your app using the identifier provided in step 3), displaying the transaction result.
- If the transaction was successful, you can deliver the goods / services.
- When redirecting back to your app, we do not add identifiers (i.e. payment or hostedcheckoutsessionid) to the returnUrl. It is possible for you to add one of these identifiers with values on your own, as we will pass them through to your mobile app.
- Read our Mobile/Client Integration guide for a general overview about the payment flow for this integration mode.
Testing
Refer to our Test cases for test data and detailed instructions.
Make sure to use the right endpoint and switch back to the live URL as soon as you have finished your tests.
Additional information
Process refunds
You can process full and partial refunds if you have processed the original transaction via our Full Service model.
The following options/conditions apply:
- The refund value does not exceed 100% of the value of the original transaction.
- Your business does not fall under merchant category code 7995. If it does, you need to refund the transaction offline.
- You can perform the refund either via the Merchant Portal or our API. When using our API, always send the original transaction reference number in your request.
- The refund can only be paid back to the bank account linked to the card used to make the original transaction.