Bancontact WIP

The Bancontact WIP (Wallet Initiated Payment) flow can be integrated on top of your standard flow. It allows you to offer a service where transaction initiation can be done by the merchant or the consumer of a card-not-present payment. The transaction is done on a Bancontact card account stored by the merchant and doesn’t require performing Strong Customer Authentication (SCA).

The service allows merchants that meet the eligibility criteria (see Boarding Information section below) to:

  • Initiate low-risk payments without the need for repeated Strong Customer Authentication on issuing side. This balances the security (for the Card Issuer Members) with consumer convenience at check-out.
  • Initiate recurring payments or installments without the need for Strong Cardholder Authentication on issuing side. The service is aimed at low-risk, high-volume e-commerce merchants who are able to maintain their fraud rate below a certain threshold. Small/Medium Enterprise (SME) merchants do not qualify to utilize Bancontact WIP at this time.

Payment Method Properties

Available country codesBE
Processing (Presentation) currenciesEUR
Settlement currenciesEUR
Consumer currenciesEUR
Channel member tagbancontactwip
Scheme name in the settlement fileBancontactWalletInitiatedPayments
Minimum transaction amountEUR 0.01
Maximum transaction amountEUR 500
Session timeout
RefundFull, partial and multiple partial are all available.
Refund ValiditySubject to SEPA dates
Chargeback
Integration Type
Sandbox

Transaction Flow

Link and Pay - workflow diagram

Link and Pay works by performing a successful, regular Bancontact transaction. Afterwards, the card token can be used as input for WIP transactions.

Pay with linked Bancontact card - subsequent transaction flow

Bancontact WIP Integration

Specific input parameters for the TRANSACTION call (initial transaction for link+pay)

Field NameM/O/CTypeDescription
specin.linkcardO (M if you want to perform subsequent transactions using Bancontact WIP)asciiSpecify if and how a link should be established between merchant and consumer.

- Empty: Regular Bancontact transaction, no link

- wiplinkandpay - regular transaction, card gets linked on successful paymen

Specific output parameters for the TRANSACTION call (initial transaction for link+pay)

Field NameTypeDescription
SPECOUT.CARDTOKENasciiUnique identifier of a card linked to the merchant. Can be used in subsequent WIP transactions only if the initial transaction has succeeded.

Caution
This token expires automatically after 365 days of not being used in a successful subsequent payment. Make sure you stop displaying the card link on the consumer’s payment options/applications before that time, and request the consumer to re-link a payment card - note that re-linking a card is a new payment flow; it is not possible to update an existing link.

Since Bancontact debit cards expire, the scheme recommends that the issuers don’t verify the expiry date for WIP transactions. Those transactions should continue working if the card number remains the same on card renewal. You are responsible for asking consumers to update the card details before expiry, and to re-link the renewed card if necessary. For this reason, we output SPECOUT.CARDBIN and SPECOUT.CARDLAST4DIGITS which can be displayed as e.g. 123456XXXXXX7890 in a confirmation dialog. The parameter SPECOUT.CARDEXPIRY should be used to confirm/update a consumer’s card before expiration.

Specific input parameters for the TRANSACTION call (WIP transaction)

Field NameM/OTypeDescription
specin.cardtokenMASCIIWallet link reference as returned during the initial link transaction with SPECOUT.CARDTOKEN.
specin.initiationMasciiThe party initiating the transaction:

- consumer - one-click payment

- merchant - recurring payment

Specific output parameters for the TRANSACTION call (WIP transaction)

Field NameTypeDescription
specout.cardexpirynumericYYMM expiry date of the card, as stored at time of initial transaction. Always shown in case of successful authorization.

TRANSACTION call input (initial transaction for link+pay)

tag=bcmc
&txtype=TRANSACTION
&countrycode=BE
&currency=EUR
&amount=1055
&merchanttxid=MYp3MF6zHDQm
&login=johndoe
&password=wXBrpVporFVjGO4R
&contractid=JOHNDOETESTCONTRACT
&channel=testchannel
&merchantredirecturl=https%3A%2F%2Fmerchant.com%2Fwork%2Fppro2%2Flanding.php
&notificationurl=https%3A%2F%2Fmerchant.com%2Fwork%2Fppro2%2Fnotification.php
&specin.dynamicdescriptor=DynDescriptor
&specin.linkcard=wiplinkandpay
&accountholdername=Tester+Doe
&returnmode=urlencodeext

TRANSACTION call output (initial transaction for link+pay)

REQUESTSTATUS=SUCCEEDED
&STATUS=PENDING
&TXID=600520459
&ERRMSG=
&CHANNEL=testchannel
&TAG=bcmc
&REDIRECTSECRET=d6rSVahlxK0t0Du8tpD12VRE3PosHBUA
&REDIRECTURL=https%3A%2F%2Fbancontact.girogate.be%2Fbi%2Ft2
bc%3Ftx%3D600520459%26rs%3D...%26cs%3D...
&SPECOUT.BEPURL=BEP://1BC.GIROGATE.DE/BCMC/123456789$ICAE3BUIH5P9U53Y5HKA9CRT
&SPECOUT.SRCCOUNTRY=BE

GETTXSTATUS call output (once the initial transaction for link+pay has succeeded)

REQUESTSTATUS=SUCCEEDED
&STATUS=SUCCEEDED
&TXID=600520459
&CHANNEL=testchannel
&TAG=bcmc
&REDIRECTSECRET=d6rSVahlxK0t0Du8tpD12VRE3PosHBUA
&SPECOUT.BEPURL=BEP://1BC.GIROGATE.DE/BCMC/123456789$ICAE3BUIH5P9U53Y5HKA9CRT
&SPECOUT.CARDBIN=670999
&SPECOUT.CARDEXPIRY=2027-05
&SPECOUT.CARDLAST4DIGITS=9999
&SPECOUT.CARDTOKEN=ABCDE-FGH-IJKLOM123456
&SPECOUT.PAYMENTPURPOSE=2G2B9HU
&SPECOUT.SRCBIC=GKCCBEBB
&SPECOUT.SRCCOUNTRY=BE
&SPECOUT.SRCIBAN=BE12561483558692
&SPECOUT.TRANSACTIONFLOW=ecommerce

TRANSACTION call input (subsequent one-click payment)

Only the same merchant can perform a WIP transaction using a previously linked card.

tag=bancontactwip
&txtype=TRANSACTION
&countrycode=BE
&currency=EUR
&amount=1500
&merchanttxid=LdY6ENK71eNk
&login=johndoe
&password=wXBrpVporFVjGO4R
&contractid=JOHNDOETESTCONTRACT
&channel=testchannel
&merchantredirecturl=https%3A%2F%2Fmerchant.com%2Fwork%2Fppro2%2Flanding.php
&notificationurl=https%3A%2F%2Fmerchant.com%2Fwork%2Fppro2%2Fnotification.php
&specin.dynamicdescriptor=DynDescriptor
&specin.cardtoken=ABCDE-FGH-IJKLOM123456
&specin.initiation=consumer
&accountholdername=Tester+Doe
&returnmode=urlencodeext

TRANSACTION call output (subsequent one-click payment)

WIP transactions succeed or fail synchronously. There is no redirect and no consumer interaction. In the healthy case, the status is immediately SUCCEEDED and no notification is sent (unlike PENDING > SUCCEEDED status changes).

REQUESTSTATUS=SUCCEEDED
&STATUS=SUCCEEDED
&TXID=600520470
&ERRMSG=
&CHANNEL=testchannel
&TAG=bancontactwip
&REDIRECTSECRET=d6rSVahlxK0t0Du8tpD12VRE3PosHBUA
&SPECOUT.PAYMENTPURPOSE=2S2TJXC
&SPECOUT.SRCBIC=GKCCBEBB
&SPECOUT.SRCCOUNTRY=BE
&SPECOUT.SRCIBAN=BE12561483558692

TRANSACTION call input/output (subsequent recurring payment or instalment)

Same as above, but using specin.initiation=merchant when initializing the transaction.

Boarding Information

The boarding process for activating merchants with the Bancontact WIP flow is manual.

The merchants which will be activated with this service must be screened and approved by Bancontact. The merchant will be informed of the decision within 15 business days of the application time.

The WIP service is only available to large merchants who are operating with low-risk goods and services. The merchant has to process or have the potential to process at least 25,000 Bancontact transactions per quarter.

Dispute Information

Disputes for WIP payments will be handled in the same manner as any other non-WIP dispute case, i.e. the Cardholder should contact the Merchant to try to resolve the dispute bilaterally. If this does not resolve the dispute, then the Cardholder has to introduce a claim at their Issuer. Should a Cardholder initiate such a dispute is it required of the merchant to provide specific supporting information consisting of documentary evidence that the Merchant has rightfully and correctly debited the right Cardholder’s account following their explicit approval. If the Merchant is unable to prove that the Cardholder’s claim is unjustified, they shall refund the Cardholder for the full amount of the disputed transaction within a reasonable timeframe. This refund can be facilitated via the standard PPRO refund API interfaces.