Direct Debit

Direct Debit allows users to authorize transactions directly from their bank account, which is a popular international payment method.

You can find an example of integration here.

Configuring Direct Debit for DigitalRiver.js

Create a Direct Debit payment method for your app or website in four easy steps:

Step 1: Build a Direct Debit source request and details objects

Build the Direct Debit Source Request and Details objects.

Direct Debit source request object

A Direct Debit Source Request object requires the following fields.






The total value of the transaction.


The currency of the transaction.


An Owner object.


A Direct Debit Source Details object that includes the details of the transaction.

Direct Debit source details object

The Direct Debit Source Details object requires the following fields.

"returnUrl": ""






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

Step 2: Create a Direct Debit source using DigitalRiver.js

To create a Direct Debit payment source, you must use the createSource method exposed via DigitalRiver.js.

var data = {
"type": "directDebit",
"sessionId": "ea03bf6f-84ef-4993-b1e7-b7d5ecf71d1f",
"owner": {
firstName: "John",
lastName: "Doe",
phoneNumber: "000-000-0000",
address: {
line1: "123 Main Street",
line2: "",
city: "Paris",
postalCode: "14390",
country: "FR"
"directDebit": {
"returnUrl": ""
digitalriver.createSource(data).then(function(result) {
if (result.error) {
//handle errors
} else {
var source = result.source;
//send source to back end

Direct Debit source example

"clientId": "gc",
"channelId": "drdod15",
"liveMode": false,
"id": "bddccfc7-4fa8-401b-b661-421cd5047792",
"clientSecret": "bddccfc7-4fa8-401b-b661-421cd5047792_bdddssccfc7-4fa8-401b-b661-421cd5047792",
"type": "directDebit",
"reusable": false,
"owner": {
"firstName": "John",
"lastName": "Doe",
"email": "[email protected]",
"phoneNumber": "000-000-0000",
"address": {
"line1": "98 Boulevard Saint-Germain",
"city": "Paris",
"state": "Île-de-France",
"country": "FR",
"postalCode": "75005"
"amount": "778.39",
"currency": "EUR",
"state": "pending_redirect",
"creationIp": "",
"createdTime": "2019-05-22T01:48:42.168Z",
"updatedTime": "2019-05-22T01:48:42.168Z",
"flow": "redirect",
"redirect": {
"redirectUrl": "",
"returnUrl": ""
"directDebit": {}

Step 3: Authorize a Direct Debit source

When you create a Direct Debit 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 Direct Debit authorization

To redirect your customer 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 where they can authorize or cancel the transaction. A successful authorization redirects the customer to the Direct Debit Return URL parameter you specified when you created the source.

Step 4: Use the Authorized source

Once authorized, you can use the source by either attaching it to a checkout or attaching it to a customer for multiple uses.

Option 1. Attach the source to a checkout

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

Option 2. Attach the source to a customer

POST /customers/{id}/sources/{sourcesId}
POST /customers/{id}/sources/{sourcesId}
"id": "5774321008",
"sourceId": "src_a78cfeae-f7ae-4719-8e1c-d05ec04e4d37"

Supported markets

For information on supported markets and currencies for Drop-in and DigitalRiver.js, go to: