# Bancontact
source: https://developer.mastercard.com/mastercard-gateway/documentation/payment-methods/cards/domestic-schemes/bancontact/index.md

Bancontact is a Belgium-based real-time online bank transfer payment method. Bancontact is a supported browser payment method on the Mastercard Gateway. This page describes integration details specific to Bancontact.

It is recommended that you read the [integration guidelines for browser payments](https://developer.mastercard.com/mastercard-gateway/documentation/payment-methods/imp-brow-pay-int/index.md) before building the Bancontact integration.

Bancontact browser payments are only supported for transactions in the EUR currency.

## Prerequisites {#prerequisites}

To offer the Bancontact payment method through the Mastercard Gateway,

* Be registered with your browser payments service provider
* your merchant profile on the Mastercard Gateway must be configured using the details of your account with the browser payments service provider, and
* you must have a bank account in one of the supported currencies that are registered against your merchant account at your browser payments service provider.

## Bancontact integration {#bancontact-integration}

### Bancontact through Hosted Checkout {#bancontact-through-hosted-checkout}

Hosted Checkout integration allows you to collect payment details from your payer through an interaction that the Mastercard Gateway hosts and displays.

From Mastercard Gateway API version 65 and later, Bancontact is automatically available as a payment method once your payment service provider enables and configures you for this payment method.

For details, see [Browser Payments through Hosted Checkout Integration](https://developer.mastercard.com/mastercard-gateway/documentation/payment-methods/imp-brow-pay-int/index.md#browser-payments-through-hosted-checkout-integration).

### Bancontact through Direct Payment {#bancontact-through-direct-payment}

Direct Payment integration allows you to offer the Bancontact payment method on your own checkout page.
Alert: Bancontact is supported from Mastercard Gateway API version 64 and later.

In addition to the [standard fields](https://developer.mastercard.com/mastercard-gateway/documentation/payment-methods/imp-brow-pay-int/index.md#browser-payments-through-direct-payment-integration) that are required in a browser payment request, provide the following fields in the [Initiate Browser Payment](https://developer.mastercard.com/mastercard-gateway/documentation/api-reference/v100/rest/api-ops/index.md#browser-payment) request:

#### Common fields {#common-fields}

* `sourceOfFunds.type` = BANCONTACT
* `browserPayment.operation` = PAY (Bancontact does not support the Authorize operation)
* `customer.email` = Email address of a payer
* `sourceOfFunds.provided.bancontact.bankAccountHolder`= Name of the bank account holder for the payer's bank account

##### Preferred Language {#preferred-language}

You can set the language that you prefer Bancontact to use for the pages that are displayed to the payer by providing the `browserPayment.preferredLanguage` field in the Initiate Browser Payment request. However, the language will be used only if Bancontact supports it.

### Sample Code to initiate Bancontact Payment {#sample-code-to-initiate-bancontact-payment}

```json
{
  "apiOperation": "INITIATE_BROWSER_PAYMENT",
  "browserPayment": {
    "operation": "PAY",
    "returnUrl": "&lt;your_merchant_URL&gt;"
  },
  "order": {
    "amount": "10.00",
    "currency": "EUR"
  },
  "sourceOfFunds": {
    "type": "BANCONTACT",
    "provided": {
      "bancontact": {
        "bankAccountHolder": "George Smith"
      }
    }
  }
}
```

## How to Interpret the Transaction Result {#how-to-interpret-the-transaction-result}

This table specifies the transaction Response Codes for the possible scenarios that you may encounter after initiating the Bancontact payment.

|                      Initiate Browser Payment Response                      |                                                                                                                     What This Means...                                                                                                                      |
|-----------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `response.gatewayCode=SUBMITTED` `result=SUCCESS`                           | Redirect the payer using the URL provided in the response.                                                                                                                                                                                                  |
| **Retrieve Transaction/Retrieve Order Response**                            | **What This Means...**                                                                                                                                                                                                                                      |
| `response.gatewayCode=APPROVED` `result=SUCCESS`                            | The payment is successful.                                                                                                                                                                                                                                  |
| `response.gatewayCode=PENDING` `result=PENDING`                             | The Mastercard Gateway is waiting for a notification from the acquirer about the payment result. Try `RETRIEVE_TRANSACTION` again later or listen to notifications from the Mastercard Gateway.                                                             |
| `response.gatewayCode=CANCELLED` `result=FAILURE`                           | The payer has canceled the interaction for this payment. Offer the payer the option to try another payment method.                                                                                                                                          |
| `response.gatewayCode=DECLINED` or `ACQUIRER_SYSTEM_ERROR` `result=FAILURE` | The payment was declined. Offer the payer the option to try another payment method. In case of an `ACQUIRER_SYSTEM_ERROR`, you may want to inquire with the acquirer about the reason for the payment failure, or you can try `RETRIEVE_TRANSACTION` again. |
| `response.gatewayCode=TIMED_OUT` `result=FAILURE`                           | Treat this as a declined payment. The Mastercard Gateway will attempt ensure that the transaction is not successful or will revert the transaction.                                                                                                         |

## Refunds {#refunds}

You can refund the Bancontact payments in installments or in full. Ensure that you are configured for refunds on the Mastercard Gateway on your merchant account at your browser payments service provider.

## Testing your Integration {#testing-your-integration}

The Mastercard Gateway provides a browser payments emulator that allows you to [test your Bancontact integration](https://developer.mastercard.com/mastercard-gateway/documentation/payment-methods/test-brow-pay-int/index.md#for-other-browser-payments-alipay-boleto-bancário-bancontact-grabpay-ideal-klarna-financing-klarna-pay-later-klarna-pay-now-multibanco-oxxo-poli-sepa-wechat-pay-afterpay).
