Skip to main content

Recurring Payment Mandate (TS12)

The Recurring Payment Mandate extension enables an organisation to obtain consent for recurring or merchant-initiated payments using an e-mandate SCA Attestation presented from the customer's EUDI Wallet. The flow uses the urn:eudi:sca:emandate:1 transaction data type defined in the TS12 Electronic Payments SCA Implementation with Wallet specification.

How it works

  1. The organisation enables the Recurring Payment Mandate extension from the dashboard.
  2. An administrator configures the mandate details (creditor identity, purpose, validity window, recurrence).
  3. When a customer sets up a recurring payment, a presentation request with an urn:eudi:sca:emandate:1 transaction data payload is triggered using the configured presentation definition.
  4. The customer reviews the mandate in their EUDI Wallet and presents an SCA Attestation to grant consent.
  5. The system verifies the presentation, stores the signed mandate and returns the PSD2 Authentication Code that anchors subsequent recurring charges.

Configuration

Supported SCA Attestation types

Select which SCA Attestation is accepted to anchor the mandate. Only the account and card attestations are supported:

Payment Account Credential

AttributeDescription
ibanInternational Bank Account Number
bicBank Identifier Code
currencyAccount currency

Payment Card Credential

AttributeDescription
pan_last_fourLast four digits of the card's Primary Account Number
schemeCard scheme (e.g. Visa, Mastercard)
scheme_logoLogo of the card scheme

Transaction data

The verification request carries an urn:eudi:sca:emandate:1 transaction data object describing the mandate and the payment payload it anchors:

FieldTypeDescription
transaction_idStringUnique identifier for the mandate transaction
date_timeDateTimeTimestamp of the mandate request
start_dateDateTimeFirst date the mandate is valid
end_dateDateTimeLast date the mandate is valid
reference_numberStringMandate reference number
creditor_idStringSEPA Creditor Identifier or equivalent
purposeStringShort description of what the mandate covers
payment_payloadObjectThe anchored payment
├─ transaction_idStringIdentifier of the anchored payment
├─ date_timeDateTimeTimestamp of the anchored payment
├─ payeeObjectRecipient of the payment
│ ├─ nameStringName of the recipient
│ ├─ idStringIdentifier of the recipient
│ ├─ logoStringLogo of the recipient
│ └─ websiteStringWebsite of the recipient
├─ pispObjectPayment Initiation Service Provider
│ ├─ legal_nameStringLegal name of the PISP
│ ├─ brand_nameStringBrand name of the PISP
│ └─ domain_nameStringDomain of the PISP
├─ execution_dateDateTimeRequested execution date
├─ currencyStringISO 4217 currency code
├─ amountNumberPayment amount
├─ amount_estimatedBooleanTrue if the amount is an estimate
├─ amount_earmarkedBooleanTrue if funds are earmarked
└─ sct_instBooleanTrue if SEPA Instant Credit Transfer
recurrenceObject (optional)Fixed-schedule charges
├─ start_dateDateTimeFirst date the recurrence is valid
├─ end_dateDateTimeLast date the recurrence is valid
├─ numberNumberNumber of occurrences
└─ frequencyStringFrequency of the recurrence
mit_optionsObject (optional)Merchant-Initiated Transaction parameters
├─ amount_variableBooleanTrue if the charged amount can vary between occurrences
├─ min_amountNumberMinimum amount per charge
├─ max_amountNumberMaximum amount per charge
├─ total_amountNumberTotal amount across all charges
├─ initial_amountNumberAmount of the first charge
├─ initial_amount_numberNumberNumber of initial charges at initial_amount
└─ aprNumberAnnual percentage rate

Integration

Once configured, the system automatically generates a Presentation Definition bound to the urn:eudi:sca:emandate:1 transaction data type. This presentation definition can be viewed from the extension configuration page and is used when initiating mandate requests via the API.

API endpoints:

  • GET/v3/config/extension/recurring-payment-mandate - Retrieve current configuration
  • PUT/v3/config/extension/recurring-payment-mandate - Update mandate settings
Caution: Disabling the Recurring Payment Mandate extension deletes its configuration. Mandates already signed remain valid at the receiving ASPSP but cannot be renewed or replaced from this extension. This action is not reversible.