Declare a payment mandate for SEPA Direct Debit
Before accepting payments with SEPA Direct Debit B2B or Core, you need to declare a payment mandate to your Swan account. Each debtor must have their own payment mandate.
Review the requirements for SEPA Direct Debit payment mandates if needed.
Prerequisites
- Debtor's account status: any except
ClosingorClosed - Merchant profile status:
Enabled - SEPA Direct Debit B2B payment method status:
Enabled - [B2B only] Debtor's account type:
Company
Guide​
- Confirm you have a project access token or, if you're an account member, a user access token with
CanManageAccountMembershippermissions, and confirm the prerequisites are met. - Call the
addSepaDirectDebitPaymentMandatemutation. You don't need consent from the debtor. - Replace
$YOUR_PAYMENT_METHOD_IDwith the ID for your payment method, from your Dashboard (line 4). - Choose
RecurrentorOneOff(line 5).OneOffpayment mandates can only be used once.
- Choose the language and signature date for the mandate (lines 6-7).
- Add information about the debtor, including
name,IBAN, and theircountryof residence (lines 9-11). - Choose either Core or B2B in your mandate name (line 13).
- Add validations and rejections that are helpful for you, as well as optional information such as a
referencefor your internal use. - The payment mandate is ready to be created with the status
Enabled. Creating the mandate is finalized after it's used for the first time.
B2B
For B2B, declare the mandate to the debtor's bank as well.
Mutation​
🔎 Open the mutation in API Explorer
mutation AddSddMandate {
addSepaDirectDebitPaymentMandate(
input: {
paymentMethodId: "$YOUR_PAYMENT_METHOD_ID"
sequence: Recurrent
language: it
signatureDate: "2023-10-10"
debtor: {
name: "Francesca Verrilli"
IBAN: "IT75M0300203280692352275489"
address: { country: "ITA" }
}
name: "B2B/Core SEPA Direct Debit Mandate"
}
) {
... on AddSepaDirectDebitPaymentMandateSuccessPayload {
__typename
paymentMandate {
id
statusInfo {
status
}
}
}
... on InternalErrorRejection {
__typename
message
}
... on PaymentMethodNotCompatibleRejection {
__typename
message
}
... on ValidationRejection {
__typename
message
fields {
code
message
path
}
}
... on PaymentMandateReferenceAlreadyUsedRejection {
__typename
message
}
... on SchemeWrongRejection {
__typename
message
}
... on DebtorAccountNotAllowedRejection {
__typename
message
}
... on DebtorAccountClosedRejection {
__typename
message
}
... on NotFoundRejection {
id
message
}
... on ForbiddenRejection {
__typename
message
}
}
}
Payload​
Note the id (line 6) for your SEPA Direct Debit payment mandate.
{
"data": {
"addSepaDirectDebitPaymentMandate": {
"__typename": "AddSepaDirectDebitPaymentMandateSuccessPayload",
"paymentMandate": {
"id": "$YOUR_MANDATE_ID",
"statusInfo": {
"status": "Enabled"
}
}
}
}
}