Skip to main content

Initiate a SEPA Direct Debit transaction

Prerequisites
  • Debtor's account status: any except Closing or Closed
  • Merchant profile status: Enabled
  • Payment method status: Enabled
  • Direct debit payment mandate status: Enabled
  • [B2B only] Debtor's account type: Company

Guide​

  1. Confirm you have a project access token or, if you're an account member, a user access token with CanManageAccountMembership permissions.
  2. Call the initiateMerchantPaymentCollection mutation.
  3. Include the amount value and currency.
  4. Choose sepaDirectDebit (line 5), and add the payment mandate ID (line 6) from the declare a payment mandate guide.
  5. Recommended: include your merchant's name in the label field (line 9).
  6. Add validations and rejections that are helpful for you, as well as optional information such as a reference for your internal use.

Mutation​

Dates

Dates for this mutation use ISO 8601 convention: YYYY-MM-DDTHH-mm-ssZ.

If the date is left empty, the transaction will be executed as soon as possible. If the date indicated is a non-business day, the transaction will be executed on the next business day.

🔎 Open the mutation in API Explorer

mutation InitiateSdd {
initiateMerchantPaymentCollection(
input: {
amount: { value: "75", currency: "EUR" }
sepaDirectDebit: {
mandateId: "$YOUR_MANDATE_ID"
requestedExecutionAt: "2024-04-12T16:28:22.867Z"
}
label: "Your Merchant's Name"
}
) {
... on InitiateMerchantPaymentCollectionSuccessPayload {
__typename
merchantPaymentCollection {
statusInfo {
status
... on PaymentRejected {
__typename
status
reason
}
... on PaymentInitiated {
__typename
status
}
... on PaymentConsentPending {
__typename
status
}
}
}
}
... on ValidationRejection {
__typename
message
fields {
path
message
code
}
}
... on InternalErrorRejection {
__typename
message
}
... on NotFoundRejection {
id
message
}
... on ForbiddenRejection {
__typename
message
}
}
}

Payload​

Note the id (line 10) for your Internal Direct Debit payment.

{
"data": {
"initiateMerchantPaymentCollection": {
"__typename": "InitiateMerchantPaymentCollectionSuccessPayload",
"merchantPaymentCollection": {
"statusInfo": {
"status": "Initiated",
"__typename": "PaymentInitiated"
},
"id": "$YOUR_PAYMENT_ID"
}
}
}
}

Next steps​

  1. An incoming SEPA Direct Debit (SepaDirectDebitIn) is created in the merchant's account with the status Upcoming.
  2. On the settlement date, the transaction status changes automatically to Booked and rolling reserve begins.
  3. After the indicated rolling reserve period, the merchant receives the payment.