Guides
SEPA Direct Debit
Charge customers directly via SEPA Direct Debit without a hosted checkout page.
SEPA Direct Debit allows you to collect payments directly from a customer's bank account using their IBAN. Unlike payment links, this is a server-to-server operation — no customer interaction is required at payment time.
Prerequisites
- A valid SEPA mandate from the customer (see SDD Mandates)
- EUR currency only
- Debtor name and IBAN
Creating a SEPA Charge
POST /api/v4/payments/sepa-direct
curl -X POST https://app.roxpay.eu/api/v4/payments/sepa-direct \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"Amount": 4999,
"Currency": "EUR",
"Purpose": "Monthly subscription - July 2026",
"DebtorIban": "IT60X0542811101000000123456",
"DebtorName": "Mario Rossi",
"MandateReference": "MAND-2026-001"
}'
Mandates
Before charging a customer, you need a SEPA mandate. Create one via the SDD endpoints:
# Create mandate
curl -X POST https://app.roxpay.eu/api/v4/sdd/mandates \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"DebtorIban": "IT60X0542811101000000123456",
"DebtorName": "Mario Rossi",
"MandateType": "CORE"
}'
# List mandates
curl -X GET https://app.roxpay.eu/api/v4/sdd/mandates \
-H "Authorization: Bearer YOUR_TOKEN"
# Get specific mandate
curl -X GET https://app.roxpay.eu/api/v4/sdd/mandates/MANDATE_UUID \
-H "Authorization: Bearer YOUR_TOKEN"
SEPA on Payment Links
You can also offer SEPA as a payment method on hosted checkout pages. See Payment Links — SEPA.
Constraints
| Rule | Detail |
|---|---|
| Currency | EUR only |
| Debtor details | DebtorIban and DebtorName always required |
| Mandate | Must be active before charging |
| Settlement | Async — status goes through PENDING before SETTLED |
| Refunds | Supported within 8 weeks (customer-initiated) or via API |