Configuring Bancontact

Learn how to configure Bancontact for DigitalRiver.js with Elements.

If you're using DigitalRiver.js with Elements, you can create a Bancontact payment method for your app or website in four easy steps:

Step 1: Build a Bancontact Source Request and Details object

Build the Bancontact Source Request and Details objects. The Bancontact Source Request object requires the following fields.

Field
Value

type

bancontact

sessionId

The payment session identifier.

owner

Bancontact Source Details object

The Bancontact Source Details object requires the following fields.

{
    "returnUrl": "https://example.com"
}
Field
Required/Optional
Description

returnUrl

Required

If you choose to use the full redirect flow, this is where you will redirect your customer to after authorizing or canceling within the Bancontact experience.

Step 2: Create a Bancontact source using DigitalRiver.js

Use the DigitalRiver.js library to create and mount elements to the HTML container.

The address object must contain postal code and state/province data that adheres to a standardized format.

let bancontactSourceData = {
    "sessionId": "9f70082c-48ad-4fe2-a280-8e6ef2601076",
    "type": "bancontact",
    "owner": {
        firstName: "Sabri",
        lastName: "Odink",
        email: "sodink@acme.com",
        phoneNumber: "0481 40 39297",
        address: {
            line1: "Rue du Commerce 335",
            line2: "",
            city: "Wondelgem",
            state: "East Flanders",            
            postalCode: "9032",
            country: "BE"
        }
    },
    "bancontact": {
        "returnUrl": "https://example.com?action=paymentSuccess"
    }
}
 
digitalriver.createSource(bancontactSourceData).then(function(result) {
    if (result.error) {
        //handle errors as something went wrong
    } else {
        var source = result.source;
     
        //do something with the created source
    }
});

Bancontact source example

{
    "clientId": "gc",
    "channelId": "drdod15",
    "liveMode": false,
    "sessionId": "9f70082c-48ad-4fe2-a280-8e6ef2601076",
    "id": "bddccfc7-4fa8-401b-b661-421cd5047792",
    "clientSecret": "bddccfc7-4fa8-401b-b661-421cd5047792_bdddssccfc7-4fa8-401b-b661-421cd5047792",
    "type": "bancontact",
    "reusable": false,
    "owner": {
        "firstName": "Sabri",
        "lastName": "Odink",
        "email": "sodink@acme.com"",
        "phoneNumber": "0481 40 39297",
        "address": {
            "line1": "Rue du Commerce 335",
            "city": "Wondelgem",
            "state": "East Flanders",
            "country": "BE",
            "postalCode": "9032"
        }
    },
    "amount": "778.39",
    "currency": "EUR",
    "state": "pending_redirect",
    "creationIp": "209.87.178.4",
    "createdTime": "2019-05-22T01:48:42.168Z",
    "updatedTime": "2019-05-22T01:48:42.168Z",
    "flow": "redirect",
    "redirect": {
        "redirectUrl": "https://api.digitalriver.com:443/payments/redirects/4e478578-843a-48a5-beef-66c0dae99f5d?apiKey=pk_test_6cb0fe9ce3124093a9ad906f6c589e2d",
        "returnUrl": "https://example.com?action=paymentSuccess"
    },
    "bancontact": {}
}

Step 3: Authorize the Bancontact source

When you create a Bancontact source, the customer is required to authorize the charge through their payment provider. You can accomplish this by redirecting the customer to their payment provider.

Redirecting the customer for Bancontact authorization

To redirect your customer to the payment provider for authorization, use the redirectUrl parameter in your createSource response.

window.location.href = sourceResponse.redirect.redirectUrl;

The payment provider will present the customer with the transaction details and the customer can authorize, or cancel the transaction. A successful authorization redirects the customer to the Bancontact Return URL parameter you specified when you created the source.

Once authorized, the source state will change to chargeable.

{
    "clientId": "gc",
    "channelId": "drdod15",
    "liveMode": false,
    "id": "bdcf5832-fc2c-4c79-92e0-85b261s18ae0",
    "clientSecret": "bdcf5832-fc2c-4c79-92e0-85b261s18ae0_adcf5832-fc2c-4c79-92e0-85b261s18ae0",
    "type": "bancontact",
    "reusable": false,
    "owner": {
        "firstName": "Sabri",
        "lastName": "Odink",
        "email": "sodink@acme.com"",
        "phoneNumber": "0481 40 39297",
        "address": {
            "line1": "Rue du Commerce 335",
            "city": "Wondelgem",
            "state": "East Flanders",
            "country": "BE",
            "postalCode": "9032"
        }
    },
    "amount": "100.00",
    "currency": "KRW",
    "state": "chargeable",
    "creationIp": "209.87.178.4",
    "createdTime": "2019-05-22T02:40:53.631Z",
    "updatedTime": "2019-05-22T02:40:53.631Z",
    "flow": "redirect",
    "redirect": {
        "redirectUrl": "https://api.digitalriver.com:443/payments/redirects/06e428cf-e23e-4ee9-b64f-ce17de062fd1?apiKey=pk_test_6cb0fe9ce312d093a9ad906f6c589e2d",
        "returnUrl": "https://example.com"
    },
    "bancontact": {}
}

Step 4: Use the authorized source

Once authorized, you can use the source by attaching it to a checkout.

POST /checkouts/{id}
{
  "customerId": "5774321008",
  "sourceId": "src_a78cfeae-f7ae-4719-8e1c-d05ec04e4d37"
}

Testing Bancontact

See Testing redirect payment methods for testing instructions.

Last updated