General

The Sepa Direct Debit transaction starts by sending the request for a direct debit to the BPE transaction gateway. The gateway processes the request and sends a response to the merchant. Additionally, a transaction push can be sent to the merchant as well (Both contain the current status of the transaction). The Payment Engine will then perform the direct debit on the account of the customer. This will take a few days and will either fail or succeed after which the status is again pushed to the merchant site. If it succeeds, it is still possible that at a later point a reversal occurs. This will create a new transaction with a credit amount, to deduct the previous amount from the merchant account. Again, this status is pushed to the merchant site.

Mandates SEPA Direct debit requires a merchant to obtain a mandate from a customer to be allowed to perform a direct debit. A reference to this mandate and the signing date of the mandate is then used for all direct debits.

Recurring SEPA direct debits It is possible to perform multiple direct debits, using the same mandate. Performing a recurring direct debit has several requirements:

The mandate must mention that it is given for recurring direct debits. The first transaction needs to be performed separately and needs to have the flag “StartRecurrent” set to true. The follow-up recurring transactions need to reference this original transaction. The maximum period between 2 recurring transactions is 36 months. (After 36 months of not using a mandate, it expires).

Notification of a direct debit To have the Payment Engine send a notification to the consumer, notifying the consumer of an impending direct debit, add the supplementary Notification service with the action ExtraInfo to the request. Also, use the notification type ‘PreNotification’. Reversals and Rejects

It is possible that direct debit initially appear to succeed, but after a few days actually turn out to have failed. This can be due to insufficient funds on a bank account or because a consumer has blocked his account for direct debit. Additionally, a consumer can contact his bank and reverse a specific direct debit. In all of these cases a reversal transaction is then created, to correct the merchant balance on his Buckaroo account. It is also possible that direct debit initially appear to succeed, but after the success we receive a reject due to a wrong account number. In this case a reject transaction is then created, to correct the merchant balance on his Buckaroo account. Lastly, if a reversal takes place 56 days or more after the original transaction there are additional bank costs. In this case we create a reversal and also a MOI transaction. The transactiontype of the MOI transaction is an informational transaction. This informational transaction has no influence on the balance since this is only a registration for the additional bank costs. MOIs cannot happen if the direct debit transaction was created in combination with an e-mandate. This is only possible for SEPA Direct Debit if you are using the ExtraInfo action to also send the mandatereference. For information on e-mandates, see the e-mandate manual. If you wish to use the e-mandate service, contact Buckaroo’s sales department.

Servicecodes and actions

Use the service code sepadirectdebit (b2c) or sepadirectdebitb2b (b2b).

The SEPA Direct Debit service supports the following actions: Pay, Refund, ExtraInfo, PayRecurrent, Authorize. For Refund and Authorize use channel 'Backoffice'. The rest uses channel 'Web' (default).

Pay

The pay action is used to register a direct debit and it will result in a pending transaction. After the direct debit has been processed by the bank, the transaction status is updated to success or failed. If this is the first direct debit of a series of recurrent direct debits, then also provide the basic gateway field StartRecurrent with its value set to true. To provide your own Mandate Reference and Mandate signing date, please use the supplementary action ExtraInfo. Otherwise, the transaction key and the transaction date are used for these.

View in playground

Request


JSON gateway request

customeraccountname
Required

The name of the accountholder for the account on which the direct debit should be performed.

customerbic

The BIC code for the customer bank account on which the direct debit should be performed.

customeriban
Required

The IBAN for the customer bank account on which the direct debit should be performed.

collectdate

The date (dd-mm-yyyy) on which the direct debit should be collected from the consumer account. Important note: if combined with Credit Management, the collect date should always precede the due date of the invoice, since you don't want to trigger a reminder step before debiting the customer. If however, the collect date is accidentally set after the due date, then the first reminder step will be postponed till the collect date, but only if it's set within 14 days after the due date. If it's set further than that, then our system will perform another check after 14 days and so on.

JSON

copy
{
   "Currency": "EUR",
   "AmountDebit": 10,
   "Invoice": "testinvoice 123",
   "Services": {
      "ServiceList": [
         {
            "Name": "SepaDirectDebit",
            "Action": "Pay",
            "Parameters": [
               {
                  "Name": "CollectDate",
                  "Value": "2017-06-01"
               },
               {
                  "Name": "customeraccountname",
                  "Value": "John Smith"
               },
               {
                  "Name": "CustomerIBAN",
                  "Value": "NL13TEST0123456789"
               },
               {
                  "Name": "customerbic",
                  "Value": "TESTNL2A"
               }
            ]
         }
      ]
   }
}

Response


JSON gateway response

If the request has a valid structure and a valid signature, a transaction will be created in the Payment Engine and a response will be returned. In this case, a pending status is returned. This means the amount has yet to be debited from the customers' account.

customerBIC

The BIC code for the customer bank account on which the direct debit will be performed.

customerIBAN

The IBAN for the customer bank account on which the direct debit will be performed.

mandatereference

The mandate reference used for the direct debit.

mandatedate

The signing date of the mandate that was used.

collectdate

The expected date on which the direct debit will be collected from the consumer account. This can differ from the input field collectdate, due to a correction for the needed work days to process a direct debit.

directdebittype

Returns the type of direct debit that is going to be performed. Possible values: OnOff: A single directdebit. First: The first of a recurrent sequence. Recurring: The next direct debit in a recurring sequence.

JSON

copy
{
    "Key": "3D175524FCF94C94A23B67E8DCXXXXXX",
    "Status": {
        "Code": {
            "Code": 791,
            "Description": "Pending processing"
        },
        "SubCode": {
            "Code": "C620",
            "Description": "Awaiting transfer to bank."
        },
        "DateTime": "2017-03-30T15:52:40"
    },
    "RequiredAction": null,
    "Services": [
        {
            "Name": "SepaDirectDebit",
            "Action": null,
            "Parameters": [
                {
                    "Name": "MandateReference",
                    "Value": "02Q3D175524FCF94C94A23B67E8DCE48E43"
                },
                {
                    "Name": "MandateDate",
                    "Value": "2017-03-30"
                },
                {
                    "Name": "CustomerIBAN",
                    "Value": "NL13TEST0123456789"
                },
                {
                    "Name": "CustomerBIC",
                    "Value": ""
                },
                {
                    "Name": "CollectDate",
                    "Value": "2017-06-01"
                },
                {
                    "Name": "DirectDebitType",
                    "Value": "OneOff"
                }
            ]
        }
    ],
    "CustomParameters": null,
    "AdditionalParameters": null,
    "RequestErrors": null,
    "Invoice": "testinvoice 123",
    "ServiceCode": "SepaDirectDebit",
    "IsTest": true,
    "Currency": "EUR",
    "AmountDebit": 10,
    "TransactionType": "C004",
    "MutationType": 1,
    "RelatedTransactions": null,
    "ConsumerMessage": {
        "MustRead": true,
        "CultureName": null,
        "Title": "Your SEPA Direct Debit has been scheduled.",
        "PlainText": "We have processed your request. The SEPA Direct Debit is scheduled to be collected from you bank account on Thursday, June 1, 2017. It will be done using the mandate reference 02Q3D175524FCF94C94A23B67E8DCXXXXXX.",
        "HtmlText": "We have processed your request. The SEPA Direct Debit is scheduled to be collected from you bank account on Thursday, June 1, 2017. It will be done using the mandate reference <b>02Q3D175524FCF94C94A23B67E8DCXXXXXX</b>."
    },
    "Order": null,
    "IssuingCountry": null,
    "StartRecurrent": false,
    "Recurring": false,
    "CustomerName": "John Smith",
    "PayerHash": null,
    "PaymentKey": "F9CE03A59C954A869649C04C75XXXXXX"
}

Push


JSON push response

The initial transaction status will be 'pending', which will be pushed first. When the amount has been debited from the consumer's bank account, a second push with the final status will be performed.

customerBIC

The BIC code for the customer bank account on which the direct debit will be performed.

customerIBAN

The IBAN for the customer bank account on which the direct debit will be performed.

mandatereference

The mandate reference used for the direct debit.

mandatedate

The signing date of the mandate that was used.

collectdate

The expected date on which the direct debit will be collected from the consumer account. This can differ from the input field collectdate, due to a correction for the needed work days to process a direct debit.

directdebittype

Returns the type of direct debit that is going to be performed. Possible values: OnOff: A single directdebit. First: The first of a recurrent sequence. Recurring: The next direct debit in a recurring sequence.

JSON

copy
{
  "Transaction": {
    "Key": "3D175524FCF94C94A23B67E8DCXXXXXX",
    "Invoice": "testinvoice 123",
    "ServiceCode": "SepaDirectDebit",
    "Status": {
      "Code": {
        "Code": 791,
        "Description": "Pending processing"
      },
      "SubCode": {
        "Code": "C620",
        "Description": "Awaiting transfer to bank."
      },
      "DateTime": "2017-03-30T15:52:40"
    },
    "IsTest": true,
    "Order": null,
    "Currency": "EUR",
    "AmountDebit": 10,
    "TransactionType": "C004",
    "Services": [
      {
        "Name": "SepaDirectDebit",
        "Action": null,
        "Parameters": [
          {
            "Name": "MandateReference",
            "Value": "02Q3D175524FCF94C94A23B67E8DCXXXXXX"
          },
          {
            "Name": "MandateDate",
            "Value": "2017-03-30"
          },
          {
            "Name": "CustomerIBAN",
            "Value": "NL13TEST0123456789"
          },
          {
            "Name": "CustomerBIC",
            "Value": ""
          },
          {
            "Name": "CollectDate",
            "Value": "2017-06-01"
          },
          {
            "Name": "DirectDebitType",
            "Value": "OneOff"
          }
        ],
        "VersionAsProperty": 1
      }
    ],
    "CustomParameters": null,
    "AdditionalParameters": null,
    "MutationType": 1,
    "RelatedTransactions": null,
    "IsCancelable": true,
    "IssuingCountry": null,
    "StartRecurrent": false,
    "Recurring": false,
    "CustomerName": "John Smith",
    "PayerHash": null,
    "PaymentKey": "F9CE03A59C954A869649C04C75XXXXXX"
  }
}

Refund

To refund a successful direct debit transaction, use the action Refund. A bank transfer is then initiated which transfers (some of) the amount of the original transaction to the consumer.

View in playground

Request


JSON gateway response

OriginalTransactionKey
Required

Transaction key of the original transaction that needs to be refunded. Please note: This is a basic request variable, not a service specific variable.

JSON

copy
{
  "Currency": "EUR",
  "AmountCredit": 1.00,
  "Invoice": "testinvoice 123",
  "OriginalTransactionKey": "3D175524FCF94C94A23B67E8DCXXXXXX",
  "Services": {
    "ServiceList": [
      {
        "Name": "sepadirectdebit",
        "Action": "Refund",
      }
    ]
  }
}

Response


JSON gateway response

This is a response example of a failed refund. The reason is because the channel 'WEB' is not supported on action Refund for service SepaDirectDebit. The solution is to change it to a supported channel.

This action does not have service specific response variables.

JSON

copy
{
    "Key": "3997D8A96D9E480FBE8C81E813XXXXXX",
    "Status": {
        "Code": {
            "Code": 491,
            "Description": "Validation failure"
        },
        "SubCode": null,
        "DateTime": "2017-03-30T19:11:56"
    },
    "RequiredAction": null,
    "Services": null,
    "CustomParameters": null,
    "AdditionalParameters": null,
    "RequestErrors": {
        "ChannelErrors": [
            {
                "Service": "SepaDirectDebit",
                "Action": "Refund",
                "Name": "WEB",
                "Error": "ChannelUnsupported",
                "ErrorMessage": "Channel 'WEB' not supported on action Refund for service SepaDirectDebit."
            }
        ],
        "ServiceErrors": [],
        "ActionErrors": [],
        "ParameterErrors": [],
        "CustomParameterErrors": []
    },
    "Invoice": "testinvoice 123",
    "ServiceCode": null,
    "IsTest": true,
    "Currency": "EUR",
    "AmountCredit": 1,
    "TransactionType": null,
    "MutationType": 0,
    "RelatedTransactions": null,
    "ConsumerMessage": null,
    "Order": null,
    "IssuingCountry": null,
    "StartRecurrent": false,
    "Recurring": false,
    "CustomerName": null,
    "PayerHash": null,
    "PaymentKey": null
}

Push


JSON push response

This is a push example of a succesful refund.

customeraccountname

The name of the accountholder for the account on which the direct debit should be performed.

CustomerIBAN

The IBAN for the customer bank account on which the direct debit will be performed.

JSON

copy
{
  "Transaction": {
    "Key": "4CE60140C0104BF78A741216C6XXXXXX",
    "Invoice": "testinvoice 123",
    "ServiceCode": "SepaDirectDebit",
    "Status": {
      "Code": {
        "Code": 190,
        "Description": "Succes"
      },
      "SubCode": {
        "Code": "S001",
        "Description": "Transactie succesvol uitgevoerd"
      },
      "DateTime": "2017-03-30T16:24:23"
    },
    "IsTest": true,
    "Order": null,
    "Currency": "EUR",
    "AmountCredit": 10,
    "TransactionType": "C500",
    "Services": [
      {
        "Name": "SepaDirectDebit",
        "Action": null,
        "Parameters": [
          {
            "Name": "customeraccountname",
            "Value": "John Smith"
          },
          {
            "Name": "CustomerIBAN",
            "Value": "NL13TEST0123456789"
          }
        ],
        "VersionAsProperty": 1
      }
    ],
    "CustomParameters": null,
    "AdditionalParameters": null,
    "MutationType": 1,
    "RelatedTransactions": [
      {
        "RelationType": "refund",
        "RelatedTransactionKey": "3D175524FCF94C94A23B67E8DCXXXXXX"
      }
    ],
    "IsCancelable": false,
    "IssuingCountry": null,
    "StartRecurrent": false,
    "Recurring": false,
    "CustomerName": "John Smith",
    "PayerHash": null,
    "PaymentKey": "EC1076FE6870481EB8FFF45D34XXXXXX"
  }
}

Authorize

The Authorize action is used to import the data of a previously perform SEPA direct debit into the payment engine, so that new recurrent payments can be performed using the payment engine. Because it is the used to enable recurrent payment, please remember to also provide the basic gateway field StartRecurrent with its value set to true.

View in playground

Request


JSON gateway request

customeraccountname
Required

The name of the accountholder for the account on which the direct debit should be performed.

customeriban
Required

The IBAN for the customer bank account on which the direct debit should be performed.

customerbic

The BIC code for the customer bank account on which the direct debit should be performed. This is required when CustomerIBAN is not Dutch.

MandateReference
Required

The mandate reference for the SEPA Direct Debit. It is possible to provide your own unique reference, or use the mandateID from an Emandate, In any case, the MandateReference should always begin with a three digit prefix which can be found in the Sepadirectdebit subscription details in your Buckaroo account.

mandatedate
Required

The signing date of the mandate (dd-mm-yyyy).

JSON

copy
{
   "Currency": "EUR",
   "AmountDebit": 10,
   "Invoice": "testinvoice 123",
   "Services": {
      "ServiceList": [
         {
            "Name": "SepaDirectDebit",
            "Action": "Authorize",
            "Parameters": [
               {
                  "Name": "customeraccountname",
                  "Value": "John Smith"
               },
               {
                  "Name": "CustomerIBAN",
                  "Value": "NL13TEST0123456789"
               },
               {
                  "Name": "customerbic",
                  "Value": "TESTNL2A"
               },
               {
                  "Name": "MandateReference",
                  "Value": "02Qtestreference"
               },
               {
                  "Name": "MandateDate",
                  "Value": "2017-01-01"
               }
            ]
         }
      ]
   }
}

Response


JSON gateway response

This is a response example of a failed refund. The reason is because the channel 'WEB' is not supported on action Authorize for service SepaDirectDebit. The solution is to change it to a supported channel.

JSON

copy
{
   "Key": "034CF63421E640D0955C1020A8XXXXXX",
   "Status": {
      "Code": {
         "Code": 491,
         "Description": "Validation failure"
      },
      "SubCode": null,
      "DateTime": "2017-06-01T10:12:27"
   },
   "RequiredAction": null,
   "Services": null,
   "CustomParameters": null,
   "AdditionalParameters": null,
   "RequestErrors": {
      "ChannelErrors": [
         {
            "Service": "SepaDirectDebit",
            "Action": "Authorize",
            "Name": "WEB",
            "Error": "ChannelUnsupported",
            "ErrorMessage": "Channel 'WEB' not supported on action Authorize for service SepaDirectDebit."
         }
      ],
      "ServiceErrors": [],
      "ActionErrors": [],
      "ParameterErrors": [],
      "CustomParameterErrors": []
   },
   "Invoice": "testinvoice 123",
   "ServiceCode": null,
   "IsTest": true,
   "Currency": "EUR",
   "AmountDebit": 10,
   "TransactionType": null,
   "MutationType": 0,
   "RelatedTransactions": null,
   "ConsumerMessage": null,
   "Order": null,
   "IssuingCountry": null,
   "StartRecurrent": false,
   "Recurring": false,
   "CustomerName": null,
   "PayerHash": null,
   "PaymentKey": null
}

PayRecurrent

The PayRecurrent action is used to perform a recurrent direct debit payment. The action is used to register a direct debit and it will result in a pending transaction. After the direct debit has been processed by the bank, the transaction status is updated to success or failed. To be able to perform this transaction, an original transaction is needed, that was performed with the StartRecurrent set to true. This can be an iDEAL, SepaDirectDebit, Bancontact, Sofort, EPS, Giropay and Payconiq transaction. You can provide it's original transaction key with your SDD payrecurrent request, or you can use a mandate reference (if available) as an original transaction reference .

View in playground

Request


JSON gateway request

CollectDate

The date (dd-mm-yyyy) on which the direct debit should be collected from the consumer account. Important note: if combined with Credit Management, the collect date should always precede the due date of the invoice, since you don't want to trigger a reminder step before debiting the customer. If however, the collect date is accidentally set after the due date, then the first reminder step will be postponed till the collect date, but only if it's set within 14 days after the due date. If it's set further than that, then our system will perform another check after 14 days and so on.

JSON

copy
{
   "Currency": "EUR",
   "AmountDebit": 1,
   "Invoice": "testinvoice 123",
   "OriginalTransactionKey": "8402A480031D43B395EE78AE2BXXXXXX",
   "Services": {
      "ServiceList": [
         {
            "Name": "SepaDirectDebit",
            "Action": "PayRecurrent"
         }
      ]
   }
}

Response


JSON gateway response

If the request has a valid structure and a valid signature, a transaction will be created in the Payment Engine and a response will be returned. In this case, a pending status is returned. This means the amount has yet to be debited from the customers' account.

customerBIC

The BIC code for the customer bank account on which the direct debit will be performed.

customerIBAN

The IBAN for the customer bank account on which the direct debit will be performed.

mandatereference

The mandate reference used for the direct debit.

mandatedate

The signing date of the mandate that was used.

collectdate

The expected date on which the direct debit will be collected from the consumer account. This can differ from the input field collectdate, due to a correction for the needed work days to process a direct debit.

directdebittype

Returns the type of direct debit that is going to be performed. Possible values: OnOff: A single directdebit. First: The first of a recurrent sequence. Recurring: The next direct debit in a recurring sequence.

JSON

copy
{
   "Key": "150FE29DB67F48E7B15EDFFD75XXXXXX",
   "Status": {
      "Code": {
         "Code": 791,
         "Description": "Pending processing"
      },
      "SubCode": {
         "Code": "C620",
         "Description": "Awaiting transfer to bank."
      },
      "DateTime": "2017-06-01T10:34:35"
   },
   "RequiredAction": null,
   "Services": [
      {
         "Name": "SepaDirectDebit",
         "Action": null,
         "Parameters": [
            {
               "Name": "MandateReference",
               "Value": "02Q8402A480031D43B395EE78AE2B0F0F7E"
            },
            {
               "Name": "MandateDate",
               "Value": "2017-06-01"
            },
            {
               "Name": "CustomerIBAN",
               "Value": "NL13TEST0123456789"
            },
            {
               "Name": "CustomerBIC",
               "Value": ""
            },
            {
               "Name": "CollectDate",
               "Value": "2017-06-06"
            },
            {
               "Name": "DirectDebitType",
               "Value": "Recurring"
            }
         ]
      }
   ],
   "CustomParameters": null,
   "AdditionalParameters": null,
   "RequestErrors": null,
   "Invoice": "testinvoice 123",
   "ServiceCode": "SepaDirectDebit",
   "IsTest": true,
   "Currency": "EUR",
   "AmountDebit": 1,
   "TransactionType": "C005",
   "MutationType": 1,
   "RelatedTransactions": null,
   "ConsumerMessage": null,
   "Order": null,
   "IssuingCountry": null,
   "StartRecurrent": false,
   "Recurring": true,
   "CustomerName": "John Smith",
   "PayerHash": null,
   "PaymentKey": "1F3D4980A663449BA4F4328FAAXXXXXX"
}

Push


JSON push response

The initial transaction status will be 'pending', which will be pushed first. When the amount has been debited from the consumer's bank account, a second push with the final status will be performed.

customerBIC

The BIC code for the customer bank account on which the direct debit will be performed.

customerIBAN

The IBAN for the customer bank account on which the direct debit will be performed.

mandatereference

The mandate reference used for the direct debit.

mandatedate

The signing date of the mandate that was used.

collectdate

The expected date on which the direct debit will be collected from the consumer account. This can differ from the input field collectdate, due to a correction for the needed work days to process a direct debit.

directdebittype

Returns the type of direct debit that is going to be performed. Possible values: OnOff: A single directdebit. First: The first of a recurrent sequence. Recurring: The next direct debit in a recurring sequence.

JSON

copy
{
   "Transaction": {
      "Key": "150FE29DB67F48E7B15EDFFD75XXXXXX",
      "Invoice": "testinvoice 123",
      "ServiceCode": "SepaDirectDebit",
      "Status": {
         "Code": {
            "Code": 190,
            "Description": "Succes"
         },
         "SubCode": {
            "Code": "C000",
            "Description": "Succes"
         },
         "DateTime": "2017-06-01T10:38:34"
      },
      "IsTest": true,
      "Order": null,
      "Currency": "EUR",
      "AmountDebit": 1,
      "TransactionType": "C005",
      "Services": [
         {
            "Name": "SepaDirectDebit",
            "Action": null,
            "Parameters": [
               {
                  "Name": "MandateReference",
                  "Value": "02Q8402A480031D43B395EE78AE2B0F0F7E"
               },
               {
                  "Name": "MandateDate",
                  "Value": "2017-06-01"
               },
               {
                  "Name": "CustomerIBAN",
                  "Value": "NL13TEST0123456789"
               },
               {
                  "Name": "CustomerBIC",
                  "Value": ""
               },
               {
                  "Name": "CollectDate",
                  "Value": "2017-06-06"
               },
               {
                  "Name": "DirectDebitType",
                  "Value": "Recurring"
               }
            ],
            "VersionAsProperty": 1
         }
      ],
      "CustomParameters": null,
      "AdditionalParameters": null,
      "MutationType": 1,
      "RelatedTransactions": null,
      "IsCancelable": false,
      "IssuingCountry": null,
      "StartRecurrent": false,
      "Recurring": true,
      "CustomerName": "John Smith",
      "PayerHash": null,
      "PaymentKey": "1F3D4980A663449BA4F4328FAAXXXXXX"
   }
}

ExtraInfo

The ExtraInfo action can be used to optionally provide the mandate information under which a direct debit should be executed. This action should only be provided on the Pay action , because it determines extra information for the Pay action. It is used to provide additional mandate information, that is then used for the direct debit, instead of having the service use defaults for this.

View in playground

Request


JSON gateway request

mandatereference

The mandate reference for SEPA Direct Debits. It is possible to provide your own unique reference, or use the mandateID from an Emandate, In any case, the MandateReference should always begin with a three digit prefix which can be found in the Sepadirectdebit subscription details in your Buckaroo account.

mandatedate

The signing date of the mandate (dd-mm-yyyy).

customercode

The customer ID, giving a unique ID to the customer for the merchant.

customername

The name of the customer.

customerreferencepartycode

The customer referenceparty ID, giving a unique ID to the customer reference party for the merchant.

customerreferencepartyname

The name of the customer reference party. (The person on whose behalf the customer is making a payment)

street

The street name of the consumer.

housenumber

The house number of the consumer.

housenumbersuffix

The house number suffix of the consumer.

zipcode

The zipcode of the consumer.

city

The city of the consumer.

state

The state of the consumer.

country

The country of the consumer.

contractID

The contract identifier for which the payment is being done.

JSON

copy
{
   "Currency": "EUR",
   "AmountDebit": 10,
   "Invoice": "testinvoice 123",
   "Services": {
      "ServiceList": [
         {
            "Name": "SepaDirectDebit",
            "Action": "Pay,ExtraInfo",
            "Parameters": [
               {
                  "Name": "customeraccountname",
                  "Value": "John Smith"
               },
               {
                  "Name": "CustomerIBAN",
                  "Value": "NL13TEST0123456789"
               },
               {
                  "Name": "customerbic",
                  "Value": "TESTNL2A"
               },
               {
                  "Name": "MandateDate",
                  "Value": "2017-01-01"
               },
               {
                  "Name": "Country",
                  "Value": "NL"
               },
               {
                  "Name": "HouseNumberSuffix",
                  "Value": ""
               },
               {
                  "Name": "CustomerReferencePartyCode",
                  "Value": ""
               },
               {
                  "Name": "CustomerName",
                  "Value": "T.Tester"
               },
               {
                  "Name": "City",
                  "Value": "Heerenveen"
               },
               {
                  "Name": "CustomerCode",
                  "Value": ""
               },
               {
                  "Name": "HouseNumber",
                  "Value": "90"
               },
               {
                  "Name": "ContractID",
                  "Value": ""
               },
               {
                  "Name": "ZipCode",
                  "Value": "844ER"
               },
               {
                  "Name": "MandateReference",
                  "Value": "02Q3D175524FCF94C94A23B67E8DCE48E43"
               },
               {
                  "Name": "Street",
                  "Value": "Hoofdstraat"
               },
               {
                  "Name": "State",
                  "Value": ""
               },
               {
                  "Name": "CustomerReferencePartyName",
                  "Value": ""
               }
            ]
         }
      ]
   }
}

Response


JSON gateway response

If the request has a valid structure and a valid signature, a transaction will be created in the Payment Engine and a response will be returned. In this case, a pending status is returned. This means the amount has yet to be debited from the customers' account.

customerBIC

The BIC code for the customer bank account on which the direct debit will be performed.

customerIBAN

The IBAN for the customer bank account on which the direct debit will be performed.

mandatereference

The mandate reference used for the direct debit.

mandatedate

The signing date of the mandate that was used.

collectdate

The expected date on which the direct debit will be collected from the consumer account. This can differ from the input field collectdate, due to a correction for the needed work days to process a direct debit.

directdebittype

Returns the type of direct debit that is going to be performed. Possible values: OnOff: A single directdebit. First: The first of a recurrent sequence. Recurring: The next direct debit in a recurring sequence.

JSON

copy
{
   "Key": "8A535904648F4A90A2A9A97824XXXXXX",
   "Status": {
      "Code": {
         "Code": 791,
         "Description": "Pending processing"
      },
      "SubCode": {
         "Code": "C620",
         "Description": "Awaiting transfer to bank."
      },
      "DateTime": "2017-06-01T11:41:08"
   },
   "RequiredAction": null,
   "Services": [
      {
         "Name": "SepaDirectDebit",
         "Action": null,
         "Parameters": [
            {
               "Name": "MandateReference",
               "Value": "02Q3D175524FCF94C94A23B67E8DCE48E43"
            },
            {
               "Name": "MandateDate",
               "Value": "2017-01-01"
            },
            {
               "Name": "CustomerIBAN",
               "Value": "NL13TEST0123456789"
            },
            {
               "Name": "CustomerBIC",
               "Value": ""
            },
            {
               "Name": "CollectDate",
               "Value": "2017-06-06"
            },
            {
               "Name": "DirectDebitType",
               "Value": "OneOff"
            }
         ]
      }
   ],
   "CustomParameters": null,
   "AdditionalParameters": null,
   "RequestErrors": null,
   "Invoice": "testinvoice 123",
   "ServiceCode": "SepaDirectDebit",
   "IsTest": true,
   "Currency": "EUR",
   "AmountDebit": 10,
   "TransactionType": "C004",
   "MutationType": 1,
   "RelatedTransactions": null,
   "ConsumerMessage": {
      "MustRead": true,
      "CultureName": null,
      "Title": "Your SEPA Direct Debit has been scheduled.",
      "PlainText": "We have processed your request. The SEPA Direct Debit is scheduled to be collected from you bank account on Tuesday, June 6, 2017. It will be done using the mandate reference 02Q3D175524FCF94C94A23B67E8DCE48E43.",
      "HtmlText": "We have processed your request. The SEPA Direct Debit is scheduled to be collected from you bank account on Tuesday, June 6, 2017. It will be done using the mandate reference <b>02Q3D175524FCF94C94A23B67E8DCE48E43<\/b>."
   },
   "Order": null,
   "IssuingCountry": null,
   "StartRecurrent": false,
   "Recurring": false,
   "CustomerName": "John Smith",
   "PayerHash": null,
   "PaymentKey": "6AC8A96E26BD4F7D8D200C53BEXXXXXX"
}

Push


JSON push response

The initial transaction status will be 'pending', which will be pushed first. When the amount has been debited from the consumer's bank account, a second push with the final status will be performed.

customerBIC

The BIC code for the customer bank account on which the direct debit will be performed.

customerIBAN

The IBAN for the customer bank account on which the direct debit will be performed.

mandatereference

The mandate reference used for the direct debit.

mandatedate

The signing date of the mandate that was used.

collectdate

The expected date on which the direct debit will be collected from the consumer account. This can differ from the input field collectdate, due to a correction for the needed work days to process a direct debit.

directdebittype

Returns the type of direct debit that is going to be performed. Possible values: OnOff: A single directdebit. First: The first of a recurrent sequence. Recurring: The next direct debit in a recurring sequence.

JSON

copy
{
   "Transaction": {
      "Key": "8A535904648F4A90A2A9A97824XXXXXX",
      "Invoice": "testinvoice 123",
      "ServiceCode": "SepaDirectDebit",
      "Status": {
         "Code": {
            "Code": 190,
            "Description": "Succes"
         },
         "SubCode": {
            "Code": "C000",
            "Description": "Succes"
         },
         "DateTime": "2017-06-01T11:43:45"
      },
      "IsTest": true,
      "Order": null,
      "Currency": "EUR",
      "AmountDebit": 10,
      "TransactionType": "C004",
      "Services": [
         {
            "Name": "SepaDirectDebit",
            "Action": null,
            "Parameters": [
               {
                  "Name": "MandateReference",
                  "Value": "02Q3D175524FCF94C94A23B67E8DCE48E43"
               },
               {
                  "Name": "MandateDate",
                  "Value": "2017-01-01"
               },
               {
                  "Name": "CustomerIBAN",
                  "Value": "NL13TEST0123456789"
               },
               {
                  "Name": "CustomerBIC",
                  "Value": ""
               },
               {
                  "Name": "CollectDate",
                  "Value": "2017-06-06"
               },
               {
                  "Name": "DirectDebitType",
                  "Value": "OneOff"
               }
            ],
            "VersionAsProperty": 1
         }
      ],
      "CustomParameters": null,
      "AdditionalParameters": null,
      "MutationType": 1,
      "RelatedTransactions": null,
      "IsCancelable": false,
      "IssuingCountry": null,
      "StartRecurrent": false,
      "Recurring": false,
      "CustomerName": "John Smith",
      "PayerHash": null,
      "PaymentKey": "6AC8A96E26BD4F7D8D200C53BEXXXXXX"
   }
}

PayWithEmandate

Create a Sepadirectdebit using only the mandatereference of a valid Emandate. All bankinformation needed for the transaction will be retrieved from the Emandate.

View in playground

Request


JSON gateway request

Important note: if you plan on using the transaction for recurring payments, then provide an Emandate mandatereference that's activated for recurring direct debits (please see the CreateMandate action in the Emandates section). Secondly, also provide the basic parameter Startrecurrent with value TRUE.

MandateReference
Required

This is the MandateID retrieved from a successful Emandate request.

Collectdate

The date (dd-mm-yyyy) on which the direct debit should be collected from the consumer account. Important note: if combined with Credit Management, the collect date should always precede the due date of the invoice, since you don't want to trigger a reminder step before debiting the customer. If however, the collect date is accidentally set after the due date, then the first reminder step will be postponed till the collect date, but only if it's set within 14 days after the due date. If it's set further than that, then our system will perform another check after 14 days and so on.

Startrecurrent

This is a basic parameter, not a service specific parameter. Required to be TRUE if the transaction should be able to be used as a reference for recurring payments. If not then the parameter can be left out or have value FALSE.

JSON

copy
{
   "Currency": "EUR",
   "AmountDebit": 10,
   "Invoice": "testfactuur123",
   "Services": {
      "ServiceList": [
         {
            "Name": "SepaDirectDebit",
            "Action": "PayWithEmandate",
            "Parameters": [
               {
                  "Name": "MandateReference",
                  "Value": "001D284C4A887F84756A1425A369997xxxx"
               }
            ]
         }
      ]
   }
}

Response


JSON gateway response

MandateReference

This is the MandateID from the Emandate.

MandateDate

The signing date of the mandate that was used.

CustomerIBAN

The IBAN number of the customer bank account

CustomerBIC

The BIC code for the customer bank account on which the direct debit will be performed.

CollectDate

The expected date on which the direct debit will be collected from the consumer account. This can differ from the input field collectdate, due to a correction for the needed work days to process a direct debit.

DirectDebitType

Returns the type of direct debit that is going to be performed. Possible values: OnOff: A single directdebit. First: The first of a recurrent sequence. Recurring: The next direct debit in a recurring sequence.

JSON

copy
{
   "Key": "A96C49E911D647019AD4FFAF2C65xxx",
   "Status": {
      "Code": {
         "Code": 791,
         "Description": "Pending processing"
      },
      "SubCode": {
         "Code": "C620",
         "Description": "Awaiting transfer to bank."
      },
      "DateTime": "2017-09-05T08:37:24"
   },
   "RequiredAction": null,
   "Services": [
      {
         "Name": "SepaDirectDebit",
         "Action": null,
         "Parameters": [
            {
               "Name": "MandateReference",
               "Value": "001D284C4A887F84756A1425A369997xxxx"
            },
            {
               "Name": "MandateDate",
               "Value": "2017-08-10"
            },
            {
               "Name": "CustomerIBAN",
               "Value": "NL44RABO012345xxxx"
            },
            {
               "Name": "CustomerBIC",
               "Value": "INGBNL2A"
            },
            {
               "Name": "CollectDate",
               "Value": "2017-09-08"
            },
            {
               "Name": "DirectDebitType",
               "Value": "OneOff"
            }
         ]
      }
   ],
   "CustomParameters": null,
   "AdditionalParameters": null,
   "RequestErrors": null,
   "Invoice": "testfactuur123",
   "ServiceCode": "SepaDirectDebit",
   "IsTest": true,
   "Currency": "EUR",
   "AmountDebit": 10,
   "TransactionType": "C004",
   "MutationType": 1,
   "RelatedTransactions": null,
   "ConsumerMessage": {
      "MustRead": true,
      "CultureName": null,
      "Title": "Your SEPA Direct Debit has been scheduled.",
      "PlainText": "We have processed your request. The SEPA Direct Debit is scheduled to be collected from you bank account on Friday, September 8, 2017. It will be done using the mandate reference 001D284C4A887F84756A1425A369997F732.",
      "HtmlText": "We have processed your request. The SEPA Direct Debit is scheduled to be collected from you bank account on Friday, September 8, 2017. It will be done using the mandate reference <b>001D284C4A887F84756A1425A369997xxxx<\/b>."
   },
   "Order": null,
   "IssuingCountry": null,
   "StartRecurrent": false,
   "Recurring": false,
   "CustomerName": "J. de Tèster",
   "PayerHash": null,
   "PaymentKey": "793DB44B0B1D4E0FB2E97862ABF2xxxx"
}

Push


JSON push response

Once the money has been collected from the consumer, the transaction will receive a success status and will be pushed.

MandateReference

This is the MandateID from the Emandate.

MandateDate

The signing date of the mandate that was used.

CustomerIBAN

The IBAN number of the customer bank account

CustomerBIC

The BIC code for the customer bank account on which the direct debit will be performed.

CollectDate

The expected date on which the direct debit will be collected from the consumer account. This can differ from the input field collectdate, due to a correction for the needed work days to process a direct debit.

DirectDebitType

Returns the type of direct debit that is going to be performed. Possible values: OnOff: A single directdebit. First: The first of a recurrent sequence. Recurring: The next direct debit in a recurring sequence.

JSON

copy
{
   "Transaction": {
      "Key": "A96C49E911D647019AD4FFAF2C65xxxx",
      "Invoice": "testfactuur123",
      "ServiceCode": "SepaDirectDebit",
      "Status": {
         "Code": {
            "Code": 190,
            "Description": "Succes"
         },
         "SubCode": {
            "Code": "C000",
            "Description": "Succes"
         },
         "DateTime": "2017-09-05T08:41:05"
      },
      "IsTest": true,
      "Order": null,
      "Currency": "EUR",
      "AmountDebit": 10,
      "TransactionType": "C004",
      "Services": [
         {
            "Name": "SepaDirectDebit",
            "Action": null,
            "Parameters": [
               {
                  "Name": "MandateReference",
                  "Value": "001D284C4A887F84756A1425A369997xxxx"
               },
               {
                  "Name": "MandateDate",
                  "Value": "2017-08-10"
               },
               {
                  "Name": "CustomerIBAN",
                  "Value": "NL44RABO012345xxxx"
               },
               {
                  "Name": "CustomerBIC",
                  "Value": "INGBNL2A"
               },
               {
                  "Name": "CollectDate",
                  "Value": "2017-09-08"
               },
               {
                  "Name": "DirectDebitType",
                  "Value": "OneOff"
               }
            ],
            "VersionAsProperty": 1
         }
      ],
      "CustomParameters": null,
      "AdditionalParameters": null,
      "MutationType": 1,
      "RelatedTransactions": null,
      "IsCancelable": false,
      "IssuingCountry": null,
      "StartRecurrent": false,
      "Recurring": false,
      "CustomerName": "J. de Tèster",
      "PayerHash": null,
      "PaymentKey": "793DB44B0B1D4E0FB2E97862ABF2xxxx"
   }
}