Skip to content
English
  • There are no suggestions because the search field is empty.

Bancontact

Bancontact is a Belgian payment method for payments through the customer's trusted banking environment.

bancontact-logoWith Bancontact customers in Belgium can pay securely and directly online and in stores via their bank account. This popular payment method in Belgium offers a fast and reliable payment experience on both desktop and mobile. Pay.nl also supports features such as refunds and easy integration via modern APIs, allowing businesses to process payments flexibly and efficiently.

Category Details
Category Regional payment options
Available country codes: BE
Supported currencies EUR
Supported API Order: create
Minimum transaction amount €0.01
Maximum transaction amount €10,000.00
Time-out 30 minutes
Order operations Multiple (partial) refunds per transaction allowed, up to 100% of the order amount + €30
Refund validity 13 months
Recurring Yes - Via WIP
Guaranteed payment method Dispute possible
Chargeback risk Dispute possible (low chance)
Chargeback period 13 months
Surcharging Not allowed

Customer identifier

When a Bancontact payment is successfully authorized, you receive a CustomerID. This value is stored in the field CustomerKEY. By default, this value consists of the IBAN, optionally, you can choose the PAN (Primary Account Number) instead — a masked card number used as the customerID and KEY. 

Current processing of the customer identifier and CustomerKey

Route CustomerID CustomerKEY
Standard IBAN (BE2349399887723) Tokenized IBAN
Optimization opportunity PAN (670431 ******** 123) Tokenized PAN

As explained above, the route determines whether you receive an IBAN or PAN in the CustomerID and CustomerKEY field. Please contact Pay. Support to change the route to your preference.

Card network or Account2Account payment?

Although a Bancontact payment often feels to the consumer like a account-to-account payment (Account-to-Account), technically, Bancontact is a card network. The payment is processed via Bancontact's card infrastructure and follows the same principles as other card payments, such as authorization, clearing, and settlement.

What makes Bancontact special is that, upon a successful payment, the issuing bank often also provides the payer's IBAN. This allows the merchant to see directly which bank account the payment came from. This gives Bancontact several advantages comparable to an Account-to-Account solution, such as easier reconciliation and a clear link between the payment and the customer's bank account.

For the merchant, this means that Bancontact combines the advantages of both worlds:

  • The reliability and acceptance of a card network, including authorization before the payment is approved.
  • The transparency of an account payment, because the IBAN is often included in the payment information.

It's important to know that providing the IBAN depends on the issuing bank. In most cases it is available, but this is not guaranteed for every transaction. Technically, the payment always remains a card transaction and never a SEPA Credit Transfer or other Account-to-Account payment.

Extra security for online Bancontact payments

Technically, Bancontact is a card payment method. Although a Bancontact payment often feels to the consumer like a direct account payment, the transaction is processed via the Bancontact card network. As a result, Bancontact supports the same security standards as other card networks, including EMV 3-D Secure (3DS).

When a payment carries an increased fraud risk, or when the issuing bank requires it, the cardholder may be asked to confirm the payment with an extra step. This usually happens via the mobile banking app, biometric verification (fingerprint or facial recognition), or a PIN code.

How does 3D Secure work?

During authorization, the issuing bank assesses whether additional verification is needed. In many cases, this happens entirely in the background (frictionless). Only when extra assurance is needed is the consumer asked to authenticate themselves.

This process complies with the European PSD2 Strong Customer Authentication (SCA) requirements.

Apple Pay and Google Wallet

Because Bancontact is a card network, Bancontact cards can also be added to Apple Pay and Google Wallet when the issuing bank supports this.

When a consumer pays with a Bancontact card via Apple Pay or Google Wallet, the security mechanisms of the card network are also used. The cardholder's identity is usually confirmed via Face ID, Touch ID, fingerprint, or the device passcode. This verification counts as Strong Customer Authentication, so a separate 3D Secure challenge is no longer needed.

For the merchant, the payment is processed in the same way as any other card payment.

Benefits for merchants

By supporting EMV 3-D Secure, you benefit from:

  • Stronger protection against fraud.
  • Compliance with PSD2 SCA regulations.
  • A higher chance of successful authorizations.
  • Fewer chargebacks thanks to authenticated transactions.
  • Support for Apple Pay and Google Wallet with Bancontact cards.

Support for wallets

The protocol supports more extensive functionality for digital wallets, including:

  • OneClick payments
  • Recurring payments
  • Wallet Initiated Payments (payments initiated from a wallet)

Support for modern payment flows

Bancontact supports various payment forms, including:

  • online payments;
  • physical card payments;
  • refunds;
  • wallet payments;
  • deferred authorisations (authorize later); 
  • deferred sales (finalize later);
  • card validity checks (not available at PAY)

Deffered Authroisation is used within Merchant Approved Transactions, Deferred Sales for Auth/Capture changes. 


Response codes for Bancontact

According to the official Bancontact BSP Protocol  Bancontact uses P39 (Action Code) as the response code. This is based on ISO 8583 but differs from Visa/Mastercard on some points.

Code Meaning Remark
000 Approved Payment approved
100 Do not honor Generic rejection by issuer
101 Expired card Card expired
104 Restricted card Card restricted/blocked
106 Allowable number of PIN tries exceeded Maximum number of PIN attempts reached
110 Invalid amount Invalid amount
111 Invalid card number Invalid card number
116 Insufficient funds Insufficient balance
120 Invalid transaction Invalid transaction / also used by Switch validations
121 Exceeds withdrawal amount limit Limit exceeded
123 Security violation Security flaw
125 Card not effective Card not yet or no longer valid
181 Card blocked Card blocked
182 No CVM/Frictionless transaction velocity limit exceeded Limit for No-CVM/Frictionless exceeded
185 Product(s) not allowed Product or service not allowed
200 Card picked up by ATM ATM only
202 Suspected fraud Suspicion of fraud
208 Lost card Lost card
209 Stolen card Stolen map
210 Suspected counterfeit card Suspected forged card
211 Card in opposition Card blocked
212 Account in opposition Account blocked
500 Reconciliation successfully processed Settlement/reconciliation
800 Accepted (Network messages) Network management
902 Invalid transaction Invalid transaction
905 Acquirer not supported by Switch Acquirer not supported
908 Transaction destination cannot be found Routing problem
909 System malfunction System error
911 Time out of Issuer response Timeout issuer
912 Card Issuer unavailable Issuer unreachable
940 Problem or timeout at card reset ATM problem
941 Cardholder forgot card Card left in ATM

These codes are defined in P39 – Action Code of the Bancontact BSP Protocol.

Key differences with Visa/Mastercard

Bancontact uses, among others:

  • 100 = Do not honor (instead of the ISO code 05 you often see with Visa/Mastercard)
  • 116 = Insufficient funds
  • 181 = Card blocked
  • 182 = No CVM/Frictionless velocity exceeded
  • 902–912 for technical and routing errors

This means that when you process a Bancontact transaction, you 100 should interpret as the generic "Do not honor" decline, not 05.

  • Success: 000
  • Hard declines: 100, 101, 104, 106, 111, 181, 202, 208–212
  • 🔄 Soft declines / Retry: 116, 121, 909, 911, 912
  • ⚙️ Technical errors: 500, 800, 902, 905, 908, 909, 911, 912