General information to be known for SEPA Direct Debit:
- The customer’s bank needs to be enrolled in the SEPA Direct Debit CORE scheme or this service needs to be activated on the customer’s bank account.
- Ask customer to make sure they have the necessary funds in their account. Up to 80% of payments failures are caused by insufficient amount.
- According to SEPA Direct Debit rules, the customers can Reverse/Cancel a Direct Debit (claim the money back) in 8 weeks, no questions asked and up to 13 months, if his bank agrees. If this happens, you will receive a Reversed notification with ReasonCode and Reason (R-Transaction) which you should properly handle on your side.
- For B2B transactions please add the CompanyName parameter.
- The currency for SEPA Direct Debit CORE is EUR, however the customers can use their account although this is not an EUR account as long as the bank is enrolled in SEPA Direct Debit CORE scheme. In this case, some exchange fees might be charged by their bank.
- Merchants/Users can decide the actual ExecutionDate of a mandate – they can send the date on which the amount will actually be debited from the Debtor’s account.
Checkout the below example of a preapproval request for SEPA Direct Debit (84), where MethodOptionID parameter is mandatory to be sent in the initial payment request.
Please note that if you have a Company, you also need to send the Company parameter in the request.
A 201 HTTP response (Created) is returned if the payment was correctly initialized.
Request:
POST https://paytest.smart2pay.com/v1/preapprovals
Authorization: Basic MzAyMDE6aEo1Um9iWXg5cjdGZk53Q3ZIWTlMWEhxcXIrRkV6cmM3YUp2UVFrNEdhejFtZzdSeXk=
{
"Preapproval": {
"MerchantPreapprovalID": "s2ptest_h11",
"Description": "SEPA DD preapproval request",
"ReturnURL": "http://demo.smart2pay.com/redirect.php",
"MethodID": 84,
"Customer": {
"FirstName": "John",
"LastName": "Doe",
"Email": "youremail@gmail.com",
"Phone": "+31651111111"
},
"BillingAddress": {
"Street": "Brink",
"StreetNumber": "27c",
"ZipCode": "1251",
"City": "Laren",
"Country": "NL"
},
"MethodOptionID": 1
}
}
{"Preapproval":{"hint":"Preapproval structure","regexp":"","type":"object","MerchantPreapprovalID":{"hint":"Merchant Preapproval ID, a number that uniquely identifies a preapproval in your system.","regexp":"","type":"string"},"MethodID":{"hint":"The ID of the payment method.","regexp":"^\\d{1,12}$","type":"int"},"MethodOptionID":{"hint":"The ID of the payment option; can be used when the payment method has multiple payment options (e.g. ING bank is an option for iDEAL).","regexp":"^([0-9]{1,10})$","type":"int"},"ExecutionDate":{"hint":"Executed at a specific date","regexp":"","type":"date"},"RecurringPeriod":{"hint":"Preapproval recurring period","regexp":"^\\d{1,12}$","type":"int"},"Description":{"hint":"Text describing the subscription sold; will be displayed on the automatic debit confirmation page.","regexp":"^.{1,255}$","type":"string"},"PreapprovedMaximumAmount":{"hint":"Preapproval maximum amount. Please be aware that data type string is also accepted as long as it contains only digits.","regexp":"^\\d{1,12}$","type":"int"},"Currency":{"hint":"The currency in which you sell the services or products. Format is according to ISO 4217, a three-letter code.","regexp":"^[A-Z]{3}$","type":"string"},"ReturnURL":{"hint":"An URL where the customer will be redirected after the approval process ends.","regexp":"^(http(s)?(:\\\/\\\/|%3A%2F%2F).+){1,512}$","type":"string"},"Customer":{"hint":"Customer details","regexp":"","type":"object","ID":{"hint":"Customer ID, a unique number that identifies the customer in the GlobalPay system.","regexp":"^\\d{1,12}$","type":"int"},"MerchantCustomerID":{"hint":"The ID of the customer in your system.","regexp":"^([0-9a-zA-Z_-]{1,50})?$","type":"string"},"Email":{"hint":"Customer\u2019s email","regexp":"^[a-zA-Z0-9\\._%+-]{1,100}@[a-zA-Z0-9\\.-]{1,40}\\.[a-zA-Z]{1,8}$","type":"string"},"FirstName":{"hint":"Customer\u2019s first name","regexp":"","type":"string"},"LastName":{"hint":"Customer\u2019s last name","regexp":"","type":"string"},"Gender":{"hint":"Customer\u2019s gender. It can have the following values: 1 - Male, 2 - Female.","regexp":"","type":"string"},"DateOfBirth":{"hint":"Customer date of birth","regexp":"^(((19|20)\\d\\d)(0[1-9]|1[012])(0[1-9]|[12][0-9]|3[01]))$","type":"date"},"SocialSecurityNumber":{"hint":"Customer\u2018s social or fiscal identifier","regexp":"","type":"string"},"Phone":{"hint":"Customer\u2019s phone including prefix","regexp":"","type":"string"},"Company":{"hint":"Company name (for legal entities)","regexp":"","type":"string"},"InputDateTime":{"hint":"Customer creation date","regexp":"","type":"datetime"}},"BillingAddress":{"hint":"Billing Address details","regexp":"","type":"object","ID":{"hint":"Address ID, a unique number that identifies an address in the GlobalPay system.","regexp":"^\\d{1,12}$","type":"int"},"Country":{"hint":"Customer\u2018s country. Recommended to be sent in order to increase the conversion. If MethodID is missing, this field (taken from BillingAddress object) controls which payment methods are shown on the hosted payment pages. Format is according to ISO-3166-1 alpha-2, a two-letter code.","regexp":"^([A-Za-z]{2})?$","type":"string"},"City":{"hint":"City name","regexp":"^(.{1,255})?$","type":"string"},"ZipCode":{"hint":"Postal code","regexp":"^(.{1,255})?$","type":"string"},"State":{"hint":"State name","regexp":"^(.{1,255})?$","type":"string"},"Street":{"hint":"Street name","regexp":"^(.{1,255})?$","type":"string"},"StreetNumber":{"hint":"Street Number","regexp":"^(.{1,255})?$","type":"string"},"HouseNumber":{"hint":"House Number","regexp":"^(.{1,255})?$","type":"string"},"HouseExtension":{"hint":"House Extension","regexp":"^(.{1,255})?$","type":"string"}}}}
Response:
HTTP/1.1 201 Created
Content-Type: application/json; charset=utf-8
{
"Preapproval": {
"ID": 13199,
"Created": "20181101142508",
"MethodID": 84,
"SiteID": 30201,
"MerchantPreapprovalID": "s2ptest_h11",
"RecurringPeriod": 0,
"PreapprovedMaximumAmount": null,
"Currency": null,
"ReturnURL": "http://demo.smart2pay.com/redirect.php",
"Description": "SEPA DD preapproval request",
"Customer": {
"ID": 135127,
"MerchantCustomerID": null,
"Email": "youremail@gmail.com",
"FirstName": "John",
"LastName": "Doe",
"Gender": null,
"SocialSecurityNumber": null,
"SocialSecurityNumber2": null,
"Phone": "+31651111111",
"Company": null,
"DateOfBirth": null
},
"BillingAddress": {
"ID": 5103,
"City": "Laren",
"ZipCode": "1251",
"State": null,
"Street": "Brink",
"StreetNumber": "27c",
"HouseNumber": null,
"HouseExtension": null,
"Country": "NL"
},
"Status": {
"ID": 1,
"Info": "Pending",
"Reasons": null
},
"RedirectURL": "https://europaytest.smart2pay.com/SlimPay/Landing/PreapprovalLanding.aspx?ID=10084&Hash=CD71CA781BD1F59F52F8F0B2D20A807E",
"MethodOptionID": 1,
"PreapprovedFrequency": null,
"MandateReference": null
}
}
{"Preapproval":{"hint":"Preapproval structure","regexp":"","type":"object","ID":{"hint":"GlobalPay preapproval ID, a unique number that identifies the preapproval in the GlobalPay system; you will need to store this id in order to initiate recurring payments.","regexp":"^\\d{1,12}$","type":"int"},"Created":{"hint":"Date and time when the preapproval was created.","regexp":"","type":"datetime"},"MethodID":{"hint":"The ID of the payment method.","regexp":"^\\d{1,12}$","type":"int"},"SiteID":{"hint":"The ID of the site","regexp":"^\\d{1,12}$","type":"int"},"MerchantPreapprovalID":{"hint":"Merchant Preapproval ID, a number that uniquely identifies a preapproval in your system.","regexp":"","type":"string"},"RecurringPeriod":{"hint":"Preapproval recurring period","regexp":"^\\d{1,12}$","type":"int"},"PreapprovedMaximumAmount":{"hint":"Preapproval maximum amount. Please be aware that data type string is also accepted as long as it contains only digits.","regexp":"^\\d{1,12}$","type":"int"},"Currency":{"hint":"The currency in which you sell the services or products. Format is according to ISO 4217, a three-letter code.","regexp":"^[A-Z]{3}$","type":"string"},"ReturnURL":{"hint":"An URL where the customer will be redirected after the approval process ends.","regexp":"^(http(s)?(:\\\/\\\/|%3A%2F%2F).+){1,512}$","type":"string"},"Description":{"hint":"Text describing the subscription sold; will be displayed on the automatic debit confirmation page.","regexp":"^.{1,255}$","type":"string"},"Customer":{"hint":"Customer details","regexp":"","type":"object","ID":{"hint":"Customer ID, a unique number that identifies the customer in the GlobalPay system.","regexp":"^\\d{1,12}$","type":"int"},"MerchantCustomerID":{"hint":"The ID of the customer in your system.","regexp":"^([0-9a-zA-Z_-]{1,50})?$","type":"string"},"Email":{"hint":"Customer\u2019s email","regexp":"^[a-zA-Z0-9\\._%+-]{1,100}@[a-zA-Z0-9\\.-]{1,40}\\.[a-zA-Z]{1,8}$","type":"string"},"FirstName":{"hint":"Customer\u2019s first name","regexp":"","type":"string"},"LastName":{"hint":"Customer\u2019s last name","regexp":"","type":"string"},"Gender":{"hint":"Customer\u2019s gender. It can have the following values: 1 - Male, 2 - Female.","regexp":"","type":"string"},"DateOfBirth":{"hint":"Customer date of birth","regexp":"^(((19|20)\\d\\d)(0[1-9]|1[012])(0[1-9]|[12][0-9]|3[01]))$","type":"date"},"SocialSecurityNumber":{"hint":"Customer\u2018s social or fiscal identifier","regexp":"","type":"string"},"Phone":{"hint":"Customer\u2019s phone including prefix","regexp":"","type":"string"},"Company":{"hint":"Company name (for legal entities)","regexp":"","type":"string"},"InputDateTime":{"hint":"Customer creation date","regexp":"","type":"datetime"}},"BillingAddress":{"hint":"Billing Address details","regexp":"","type":"object","ID":{"hint":"Address ID, a unique number that identifies an address in the GlobalPay system.","regexp":"^\\d{1,12}$","type":"int"},"Country":{"hint":"Customer\u2018s country. Recommended to be sent in order to increase the conversion. If MethodID is missing, this field (taken from BillingAddress object) controls which payment methods are shown on the hosted payment pages. Format is according to ISO-3166-1 alpha-2, a two-letter code.","regexp":"^([A-Za-z]{2})?$","type":"string"},"City":{"hint":"City name","regexp":"^(.{1,255})?$","type":"string"},"ZipCode":{"hint":"Postal code","regexp":"^(.{1,255})?$","type":"string"},"State":{"hint":"State name","regexp":"^(.{1,255})?$","type":"string"},"Street":{"hint":"Street name","regexp":"^(.{1,255})?$","type":"string"},"StreetNumber":{"hint":"Street Number","regexp":"^(.{1,255})?$","type":"string"},"HouseNumber":{"hint":"House Number","regexp":"^(.{1,255})?$","type":"string"},"HouseExtension":{"hint":"House Extension","regexp":"^(.{1,255})?$","type":"string"}},"Status":{"hint":"Preapproval status","regexp":"","type":"object","ID":{"hint":"The ID of the preapproval status. It can have the following values: 1 - Pending, 2 - Open, 4 - Closed.","regexp":"","type":"int"},"Info":{"hint":"The description of the status","regexp":"","type":"string"},"Reasons":{"hint":"The reasons why the payment got to this status.","regexp":"","type":"array of objects","Code":{"hint":"The id of the message type transmitted in the response. See our section GlobalPay Return Codes for a complete description.","regexp":"","type":"int"},"Info":{"hint":"The message body","regexp":"","type":"string"}}},"RedirectURL":{"hint":"The URL where you need to redirect the customer in order to approve the automatic debit.","regexp":"^(http(s)?(:\\\/\\\/|%3A%2F%2F).+){1,512}$","type":"string"},"MethodOptionID":{"hint":"The ID of the payment option; can be used when the payment method has multiple payment options (e.g. ING bank is an option for iDEAL).","regexp":"^([0-9]{1,10})$","type":"int"},"PreapprovedFrequency":{"hint":"Preapproved frequency - how often is the customer going to be billed. It can be onetime\/daily\/weekly\/monthly depending on the country and the mobile carrier.","regexp":"","type":"string"},"MandateReference":{"hint":"Preapproval mandate reference","regexp":"","type":"string"}}}
Redirect the customer to the RedirectURL where he will approve the automatic debit. Once the Customer approves the debit, he will receives via email the digital signed mandate.