Bancontact

Start accepting payments using Bancontact, a favorite payment method in Belgium.

To start accepting Bancontact payments, please contact your customer success manager.

Process a Bancontact payment

Bancontact payments follow a two-step process:

  1. Request a Bancontact payment
  2. Redirect the customer

Step 1: Request a Bancontact payment

The request

Use the following details to set up your payment request.

Endpoints

Live

https://api.checkout.com/payments

Sandbox

https://api.sandbox.checkout.com/payments

Header parameters

Header
Value

Authorization
Required

secret key

Use the valid secret key of your Checkout.com account. You can find this in the Hub.

Content-Type
Required

application/json

Body parameters

The table below describes the minimum recommended fields. You can find the full list, as well as complete request and response examples, in our API reference.

Field name
Description

amount
Integer
required

The payment amount in the major currency.

currency
string
required

The currency in which the payment is being made (three-letter ISO 4217 code). Set this to EUR.

source
Object
required

Details about the payment source.

source.type
String
required

The type of payment source. Set this to bancontact.

source.payment_country
String
required

The country in which the payment instrument is issued/operated (two-letter ISO 3166 code).

source.account_holder_name
String
required

The name of the account holder.

source.billing_descriptor
String
optional

Typically, the trading name of your company or the name of your service.

Request example

{
  "amount": 100,
  "currency": "EUR",
  "source": {
    "type": "bancontact",
    "account_holder_name": "Bruce Wayne",
    "payment_country": "BE",
    "billing_descriptor": "CKO Demo - bancontact"
  }
}

The response

If you receive a 202 Success response with a status field set to Pending, your request was successful.

Response example

{
  "id": "pay_scoqartlkpzerp45c5ujmj6uue",
  "status": "Pending",
  "customer": {
    "id": "cus_wqzgcjuiwucudpmfu7kn5mukh4"
  },
  "_links": {
    "self": {
      "href": "https://api.sandbox.checkout.com/payments/pay_scoqartlkpzerp45c5ujmj6uue"
    },
    "redirect": {
      "href": "https://trusted.girogate.de/ti/dumbdummy?tx=455332564&rs=O34Tn460YM76zZzI7yfXXPIsVnnWAhaV&cs=bb716499d072a5adfb314437c5965e1150b15550aac7a298b5d9d317653427a1"
    },
    "bancontact:mobile": {
      "href": "BEPGenApp://DoTx?TransId=1BC.GIROGATE.DE/BCMC/123456789$ICAE3BUIH5P9U53Y5HKA9CRT"
    }
  }
}

Step 2: Redirect the customer

Redirect your customer to the redirect link’s href in the response. This will allow the customer to authorize the payment, before they are transferred to your predefined success or failure URL.

Alternatively, use the bancontact:mobile redirection link in the response to take them to the Bancontact mobile app. This mobile redirection link, however, is only provided in the live environment and only when the amount <= 5000.

Get details about a Bancontact payment

You can retrieve details about an existing Bancontact payment with the following endpoint.

The request

Use the details below to set up your request.

Endpoint

Live

GEThttps://api.checkout.com/payments/{payment_id}

Sandbox

GEThttps://api.sandbox.checkout.com/payments/{payment_id}

Header and path parameters

Header
Value

Authorization
Required

secret key

Use the valid secret key of your Checkout.com account. You can find this in the Hub.

Content-Type
Required

application/json

Path
Value

payment_id
Required

The payment ID found in the response of the initial payment.

The response

Response example

{
  "id": "pay_zvamjy6rl3pehdeufoqaygbjzm",
  "requested_on": "2019-05-17T15:17:06Z",
  "source": {
    "type": "bancontact"
  },
  "amount": 100,
  "currency": "EUR",
  "payment_type": "Regular",
  "status": "Captured",
  "approved": true,
  "risk": {
    "flagged": false
  },
  "customer": {
    "id": "cus_t4rcgkbd2keuzeoo3p36u2xqcu"
  },
  "_links": {
    "self": {
      "href": "https://api.sandbox.checkout.com/payments/pay_zvamjy6rl3pehdeufoqaygbjzm"
    },
    "actions": {
      "href": "https://api.sandbox.checkout.com/payments/pay_zvamjy6rl3pehdeufoqaygbjzm/actions"
    },
    "refund": {
      "href": "https://api.sandbox.checkout.com/payments/pay_zvamjy6rl3pehdeufoqaygbjzm/refunds"
    }
  }
}

Refund a Bancontact payment

Bancontact supports both partial and full refunds. You can refund a payment through the Hub or by using the refund API.

Cancel a Bancontact payment

If the customer fails to complete their payment, we will automatically void the payment and send a payment_expired webhook.
If the customer cancels their payment, we will send a payment_canceled webhook.

Testing Bancontact

Before testing, please ensure that your account has been enabled to support Bancontact payments. Contact your customer success manager for more information.

  1. Create a Bancontact transaction as above, following the redirect link in the response to Bancontact's website.

  2. Set the payment response and payment delay as necessary.

  3. Click "Submit".

  4. You should then be redirected to your predefined success URL.

Can we help?

Thanks for using Checkout.com. If you need any help or just have a question, please get in touch with our support team at support@checkout.com.

Bancontact


Suggested Edits are limited on API Reference Pages

You can only suggest edits to Markdown body content, but not to the API spec.