Bancontact Wallet Initiated Payment (WIP)

📘

This feature is only available in EMEA and limited to certain acquirers.

🚧

Account settings

This feature can only be used if your account has been enabled with the respective service and the Bancontact Wallet ID as well as the Bancontact Token ID set in our system.

At the same time the Bancontact switch verifies whether the merchant is allowed to execute One-Click and/or Recurring WIP transactions as per the flags that were indicated in the WIP Application Form.

WIP Registration

You must complete a one-time registration by conducting a sale transaction that includes authentication via 3-D Secure. Alternatively, you may perform a transaction with a zero amount.

WIP registration can be completed using the Hosted Payment Page (Connect), the Checkout solution, or the REST API.

In payment REST API you will need to send the following objects under createToken object:

AttributePresenceDescription
valueOClient-supplied payment token value. Only applicable for DataVault tokenization scheme.
reusableMIf the token is reusable.
If this object is sent, then use value 'true'.
declineDuplicatesODecline duplicate payment info if client token is supplied.
If this object is sent, then use value 'false'.
customWalletRegistration.walletTypeOUse value 'BANCONTACT_WALLET'
customWalletRegistration.authenticationMethodsCIndicating how the Cardholder was authenticated by the Merchant Wallet for transaction initiation.

An array of strings can be sent in case multiple authentication methods have been performed.

If this object is absent, then 'USERNAME_PASSWORD_PIN' will be applied.

This value can also be set during account boarding.

The following JSON message represents an example of a transaction request including minimal set of elements:

{
  "requestType":"PaymentCardSaleTransaction",
  "transactionAmount":{
    "total":26.00,
    "currency":"EUR",
    "components":{
      "subtotal":21,
      "vatAmount":2,
      "shipping":3
    }
  },
  "paymentMethod":{
    "paymentCard":{
      "number":"606005XXXXXXX9064",
      "expiryDate":
      {
        "month":"01",
        "year":"29"
      }
    }
  }
  ,"authenticationRequest":{
    "authenticationType":"Secure3DAuthenticationRequest",
    "termURL":"https://test-url",
    "methodNotificationURL":"https://test-url-2",
    "challengeIndicator":"01",
    "challengeWindowSize":"05"
  },
  "storeId":"23xxxxx919",
  "order":{
    "orderId":"1234567890",
  },
  "transactionOrigin":"ECOM",
  "createToken":{
    "reusable":true,
    "declineDuplicates":false,
    "customWalletRegistration":{
      "walletType":"BANCONTACT_WALLET",
      "authenticationMethods":["USERNAME_PASSWORD_PIN"]
    }
  }
}

WIP Initiation

The initiation of a WIP itself can be done through REST API by using this endpoint: https://docs.fiserv.dev/public/reference/submitprimarytransaction

You need to send the token that was created during registration by using the requestType ="PaymentTokenSaleTransaction". The token itself needs to be send in this object paymentMethod.paymentToken.

According to Bancontact specification a WIP can be executed either as OneClick payment (aka Express Checkout payment) or recurring payment / installment from a customer wallet loaded with a Bancontact card.

One-click payment be authorised up to 500 EUR, recurring or installment up to 1500 EUR.

Please send the following elements in the WIP to the Gateway:

AttributeValue for OneClick payment
(customer initiated)
Value for Recurring or installment
(merchant initiated transaction)
initiatorCARDHOLDERMERCHANT
sequenceSUBSEQUENTSUBSEQUENT
scheduledfalsetrue or false
authenticationRequestObject to be sent in case you want to ask the customer to authenticate via 3D-SecureN/A

Please find below the JSON examples for the different user scenarios:

{
    "storeId": "2338102919",
    "requestType": "PaymentTokenSaleTransaction",
    "merchantTransactionId": "Merchant-1234",
    "transactionAmount": {
        "total": "20.0",
        "currency": "EUR"
    },
    "paymentMethod": {
        "paymentToken": {
            "value": "780A33E9-5CA1-4682-8B6B-6877EAC83326"
        }
    },
    "storedCredentials": {
        "sequence": "SUBSEQUENT",
        "scheduled": false,
        "initiator": "CARDHOLDER"
    },
     "authenticationRequest": {
        "authenticationType": "Secure3DAuthenticationRequest",
        "termURL": "https://test3.ipg-online.com/webshop/simulator/secure3d/return",
        "methodNotificationURL": "https://test3.test/notify",
        "challengeIndicator": "04",
        "challengeWindowSize": "01"
    }
}
{
    "storeId": "2338102919",
    "requestType": "PaymentTokenSaleTransaction",
    "merchantTransactionId": "Merchant-1234",
    "transactionAmount": {
        "total": "20.0",
        "currency": "EUR"
    },
    "paymentMethod": {
        "paymentToken": {
            "value": "780A33E9-5CA1-4682-8B6B-6877EAC83326"
        }
    },
    "storedCredentials": {
        "sequence": "SUBSEQUENT",
        "scheduled": false,
        "initiator": "CARDHOLDER"
    },
}
{
    "storeId": "2338102919",
    "requestType": "PaymentTokenSaleTransaction",
    "merchantTransactionId": "Merchant-1234",
    "transactionAmount": {
        "total": "20.0",
        "currency": "EUR"
    },
    "paymentMethod": {
        "paymentToken": {
            "value": "780A33E9-5CA1-4682-8B6B-6877EAC83326"
        }
    },
    "storedCredentials": {
        "sequence": "SUBSEQUENT",
        "scheduled": false,
        "initiator": "MERCHANT"
    },
}

Want a quick overview?