RoxPay API
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"

You can also offer SEPA as a payment method on hosted checkout pages. See Payment Links — SEPA.

Constraints

RuleDetail
CurrencyEUR only
Debtor detailsDebtorIban and DebtorName always required
MandateMust be active before charging
SettlementAsync — status goes through PENDING before SETTLED
RefundsSupported within 8 weeks (customer-initiated) or via API

On this page