Scheme | SEPA Core | Bacs |
---|---|---|
Region | Eurozone | UK |
Currencies | EUR | GBP |
Refunds | Supported, after 7 days and within 13 months | Supported, after 7 days and within 13 months |
Disputes | Supported – Non-contestable | Supported – Non-contestable |
DK
or SE
) may not be supported.
Register the user's bank account
Id
of the user as the UserId
path parameter, register their bank account using the relevant endpoint. The scheme of the mandate is determined automatically by the type of bank account you create.Active
property should be true
and its Id
allows you to create the mandate.Create the mandate
Id
as the BankAccountId
and defining a ReturnURL
to which the user is returned after confirming the mandate.For SDD, IBANs that are not SEPA Core are not accepted (read more).Let the user confirm the mandate
RedirectURL
to which you must redirect the user so they can validate the mandate. After confirming, the user is returned on the URL you provided for ReturnURL
.Status
changes from CREATED
to SUBMITTED
, indicating that it has been submitted to the issuing bank. It becomes ACTIVE
:MANDATE_SUBMITTED
and MANDATE_ACTIVE
event types to receive webhook notifications.Request the first pay-in
Status
is SUBMITTED
, request the first pay-in using the POST Create a Direct Debit PayIn endpoint, specifying the Id
of the mandate as the MandateId
.Wait for the pay-in to be processed
Status
changes to SUCCEEDED
.You can be notified of this by setting up a webhook for the PAYIN_NORMAL_SUCCEEDED
event type.You can then use the GET View a PayIn endpoint to confirm the successful payment and other details.Request subsequent pay-ins
Status
becomes FAILED
)Status
becomes EXPIRED
)ChargeDate
. The charge date is used to provide advance notice to the user of the future charge, and is set at midnight (00:00) on the given day.
When the issuer confirms the scheduled payment, the pay-in Status
changes to SUCCEEDED
and the wallet is credited. The user’s account is usually debited the following day, but it depends on their bank.
ChargeDate
in . Note that for Bacs, the first pay-in against a mandate takes an extra day as shown.
SEPA | Bacs | ||
---|---|---|---|
First pay-in | Subsequent pay-ins | ||
Pay-in creation cutoff | D-1, 5:30 am CET | D-4, 4:00 pm GMT | D-3, 4:00 pm GMT |
Pay-in ChargeDate | D | D | D |
Pay-in SUCCEEDED | D+1 | D+1 | D+1 |
Total business days | 3 | 6 | 5 |
SEPA | Bacs | ||
---|---|---|---|
First pay-in | Subsequent pay-ins | ||
Pay-in creation cutoff | Fri, 5:30 am CET | Tue, 4:00 pm GMT | Wed, 4:00 pm GMT |
Pay-in ChargeDate | Mon | Mon | Mon |
Pay-in SUCCEEDED | Tue | Tue | Tue |
Total business days | 3 | 6 | 5 |
Email
parameter) when a mandate is first confirmed and when a pay-in is created.
While Mangopay’s emails can’t be customized, it is possible to deactivate them so you can put in place your own flow in accordance with scheme rules.
Status
is SUCCEEDED
but the funds are not subsequently debited from the account.
When a late failure happens, Mangopay creates a Dispute object (and corresponding Repudiation) in the same way as for a regular .
The Dispute DisputeReasonType
parameter indicates the reason for the late failure:
LATE_FAILURE_BANKACCOUNT_CLOSED
LATE_FAILURE_BANKACCOUNT_INCOMPATIBLE
LATE_FAILURE_BANKACCOUNT_INCORRECT
LATE_FAILURE_CONTACT_USER
LATE_FAILURE_INSUFFICIENT_FUN
CreationDate
, so if the pay-in was created on a Monday (at any time), the refund can be requested on the Tuesday of the following week.If you attempt to initiate a refund within 7 full calendar days, the refund fails with the error 001405. In Sandbox, you can avoid this limitation using the available mock value for testing.Refunds are possible for 13 months following the initiation transaction’s CreationDate
, after which time the initial transaction is archived and a refund is no longer possible.