SEPA
A secure and globally accepted direct debit.
Make yourself familiar with our API Principles to ensure a resilient integration.
Product Overview
Why use SEPA
SEPA Direct Debit is an easy way to take bank payments from your customers, using an IBAN (International Bank Account Number).
The SEPA scheme is a set of rules that dictate how payments must be processed and settled in the SEPA (Single Euro Payment Area) region.
Feature summary
Payment type | Acceptance currency | Recurring | Reverse | Partial Reverse | Disputes |
---|---|---|---|---|---|
Bank Transfer | EUR (Euro) | ✅ |
|
| ✅ |
e-Mandates
As part of the SEPA scheme rules you must create an e-Mandate to show your customer consents to the payment.
Creditor Identifier, Creditor Name and Creditor Address
Creditor information is a set of mandatory information that you must display to your customers when the SEPA Direct Debit e-Mandate is present. We will act as a creditor for you and will collect the SEPA Direct Debit transactions.
You must display the following creditor information on your payment page:
Creditor Identifier: GB30ZZZSDDSELN00000031394541WPAY
Creditor Name: Worldpay Ltd
Creditor Address: Walbrook Building, London, EC4N 8AF
Worldpay appears as the creditor on your customer's bank statement, so you may want to advise your customers of this. This is because we hold the relationship between our bank (the creditor bank) and your customer's bank (the debtor bank). Your name will also appear on the statement narrative as the Creditor Reference Party.
Consent
Your customer must accept the e-Mandate using a tickbox.
You must display the official wording below to your customers so they can agree to be debited. This is the official wording you must use to constitute a SEPA-compliant mandate. Without this official wording, your customers can easily reverse the direct debit with their bank.
You can copy the below text:
By signing this mandate form, you authorise (A) Worldpay to send instructions to your bank to debit your account and (B) your bank to debit your account in accordance with the instructions from Worldpay. As part of your rights, you are entitled to a refund from your bank under the terms and conditions of your agreement with your bank. A refund must be claimed within 8 weeks starting from the date on which your account was debited. Your rights are explained in a statement that you can obtain from your bank.
You can find translations of the official wording here: https://www.europeanpaymentscouncil.eu/other/core-sdd-mandate-translations
Mandate IDs
Each SEPA e-Mandate must have its own unique mandate identifier (mandateId
). A unique reference which identifies each e-Mandate signed by your customer.
The mandateId
must:
- contain no more than 35 characters
- conform to the SEPA character requirements
- be unique by creditor (in this case Worldpay), as per SEPA regulations
Format for mandate IDs:
Because all mandateIds
must be unique by creditor, you must use an e-Mandate prefix that we (as your creditor) assign as part of your mandateId
.
M-\<your merchant number assigned by worldpay\>-\<a unique reference assigned by you\>
Example:
M-123456789-A79ZH34KJZ
- Prefix
M
tells us that this is amandateId
created by you - unique 9-digit number assigned by us - you can retrieve this from your Implementation Manager
- Your reference, which must be specifically unique for each new e-Mandate: Only use letters, numbers, and hyphens
Acceptance countries
- Austria
- Belgium
- Bulgaria
- Croatia
- Cyprus
- Czech Republic
- Denmark
- Estonia
- Finland
- France
- Germany
- Greece
- Hungary
- Ireland
- Italy
- Latvia
- Liechtenstein
- Lithuania
- Luxembourg
- Malta
- Norway
- Poland
- Portugal
- Romania
- Slovakia
- Slovenia
- Sweden
- Switzerland
- Spain
- The Netherlands
- UK
Your customer language codes
Language | Code |
---|---|
Dutch | nl |
English | en |
French | fr |
German | de |
Italian | it |
Spanish | es |
Get Started
Get started using our API Reference and set your headers.
Request
POST
https://try.access.worldpay.com/apmPayments
Example requests
- Try https://try.access.worldpay.com/apmPayments
- Live https://access.worldpay.com/apmPayments
- Payload
- curl
- Python
- Java
- Node.js
- Go
- PHP
- Ruby
- C#
{ "transactionReference": "Memory265-13/08/1876", "merchant": { "entity": "default" }, "instruction": { "method": "sepa", "value": { "amount": 250, "currency": "GBP" }, "narrative": { "line1": "MindPalace" }, "paymentInstrument": { "type": "direct", "iban": "DE36200400000628808808", "accountHolderName": "Shelock Holmes", "language": "en", "billingAddress": { "address1": "221B Baker Street", "postalCode": "NW1 6XE", "city": "London", "state": "Greater London", "countryCode": "GB" } }, "customerAgreement": { "mandate": { "type": "oneTime", "mandateId": "M-100229092-1727782857791" } }, "customer": { "email": "moriarty@example.com" } } }
Parameters
Used to route the request in Access Worldpay, created as part of on-boarding.
Object that contains the payment type and details.
The type of instrument.
The value of the payment.
The amount in the lowest denomination of the currency e.g. pennies for GBP, cents for USD.
The supported ISO 4217 currency codes.
The description shown on your customer's bank statement for the payment.
The type of instruction.
Indicates whether the transaction should be sent for settlement now = true
, or later = false
at a time of your choosing.
Response
Successful response
- an HTTP code
201
- an
id
which is unique to the payment - we recommend storing the "id" as this can be used to manage the payment later - a link to query the payment status
Example response
{ "paymentId": "uK9Oh5zz4yKhGuFofhhnC7KnABEsnvjTFefo7uUYYarwh_KRcHUrrs1qJtQso9gjnhxT5oAgkJfCp1iX6U1upLOpzqHmhG8uXdBKXQ0rnmce4brW4F54BCV6GtAu0zUbgUZHQIK3iu8VcHfOiFVHyN-y7ZDRr24t7o6s_bHlZxo9g_WHOCgZdL-FywMmqkQA", "lastEvent": "sentForAuthorization", "_links": { "self": { "href": "https://preprod.access.worldpay.com/apmPayments/uK9Oh5zz4yKhGuFofhhnC7KnABEsnvjTFefo7uUYYarwh_KRcHUrrs1qJtQso9gjnhxT5oAgkJfCp1iX6U1upLOpzqHmhG8uXdBKXQ0rnmce4brW4F54BCV6GtAu0zUbgUZHQIK3iu8VcHfOiFVHyN-y7ZDRr24t7o6s_bHlZxo9g_WHOCgZdL-FywMmqkQA" } }, "_actions": {}, "redirect": "", "paymentInstrument": { "method": "sepa", "type": "direct" } }
Errors
Check out our API reference for the full error code schema.
Next Steps