Regions | See IBAN countries and currencies |
---|---|
Currencies | |
Refunds | Supported via payouts |
Disputes | Not supported |
Country
is FR
), Mangopay accepts payments via the SEPA Instant Credit Transfer (SCT Inst) scheme.
This means that when your users initiate the payment with their bank, they can use SCT Inst if it is offered by their bank, and funds should arrive in about 25 seconds.
Country
is GB
), users can make payments via the UK’s Faster Payment System, meaning funds typically arrive in a matter of seconds (possible delay up to 2 hours).
You create a wallet for the account
You create the virtual account
Country
and VirtualAccountPurpose
, whether COLLECTION
or USER_OWNED
(see types for details).The response shows the details of the account and its Status
, which must be ACTIVE
to receive funds.GB
virtual accounts, it takes approximately 48 hours for the account to be fully recognized by all banks through the UK’s Confirmation of Payee (CoP) scheme.Once the virtual account is ACTIVE
it can technically receive funds. Depending on the user’s bank, during the first 48 hours they may be shown a CoP alert but be able to ignore it, or be prevented from proceeding with the wire transfer.Status
must be ACTIVE
to receive funds, otherwise any funds sent to the account details are returned.Therefore, you are strongly advised to set up a webhook for the VIRTUAL_ACCOUNT_ACTIVE
event type to be notified that the account is ready for use.You should also set up the other webhooks for the other status changes.Status
is Active
, the user can wire funds to it.
The payment flow is as follows:
You obtain the account details and create a reference
ACTIVE
You must always ensure the account is ACTIVE
before inviting a payment, otherwise the funds will be returned.See also the note about delayed UK CoP recognition for GB
accounts.You present the payment details to the user
The user makes the payment via online banking
Mangopay creates the pay-in and credits the wallet
PAYIN_NORMAL_SUCCEEDED
event type.You can then use the GET View a PayIn endpoint to get the custom WireReference
you provided to the user, as well as confirm the amount and status.The pay-in’s BankingAliasId
contains the unique identifier of the Virtual Account.Status
of the Virtual Account can have the following values:
PENDING
– The account creation request is being processed and full account details may not yet be returned. Any funds sent to the account are returned (if account details exist). PENDING
can transition to ACTIVE
or FAILED
.ACTIVE
– The account is active and can receive funds (see note about delayed UK CoP recognition for GB
accounts). ACTIVE
can transition to BLOCKED
or CLOSED
.BLOCKED
– The account is blocked and is not active. Any funds sent to the account are returned. This temporary status may be used during processes relating to user verification or fraud screening. BLOCKED
can transition to ACTIVE
or CLOSED
.CLOSED
– The account has been deactivated and is closed. Any funds sent to the account are returned. This is a final state.FAILED
– The account creation request failed or was rejected. This final state is rare. Any funds sent to the account are returned (if account details exist). Depending on when the failure occurred, the following fields may be null
:
AccountOwner
LocalAccountDetails.Address
LocalAccountDetails.Account
InternationalAccountDetails.Address
InternationalAccountDetails.Account
Status
changes are summarized in this diagram:
VIRTUAL_ACCOUNT_ACTIVE
VIRTUAL_ACCOUNT_BLOCKED
VIRTUAL_ACCOUNT_CLOSED
VIRTUAL_ACCOUNT_FAILED
PENDING
status.
PENDING
to ACTIVE
immediately or within a few seconds. You are strongly advised to rely on the VIRTUAL_ACCOUNT_ACTIVE
webhook.
In some rare cases, a USER_OWNED
Virtual Account object can be created (the POST endpoint returns 200) but then subsequently fail with the following ResultCode
errors because the user doesn’t meet the requirements:
Country
parameter of both the Virtual Account object and the legacy Banking Alias object.
When you create an account, the Country
must correspond to the Currency
of the account’s Wallet. If a payment is attempted to the account in a different currency than the wallet currency, the payment is returned to the payer and the wallet is not credited.
The following tables summarize the account coverage available to platforms who have contracted with Mangopay S.A. (in the EEA) and Mangopay UK Ltd. (in the UK). It also shows a comparison between the Virtual Account endpoints and the legacy Banking Alias (on which no further coverage changes are planned).
IBAN country | Wallet currency | Virtual Account | Banking Alias |
---|---|---|---|
AU - Australia | AUD | Planned | |
CA - Canada | CAD | ||
DK - Denmark | DKK | ||
DE - Germany | EUR | ||
ES - Spain | EUR | ||
FR - France | EUR | ||
LI - Lichtenstein | CHF | Planned | |
LU - Luxembourg | EUR | ||
GB - UK | GBP | ||
NO - Norway | NOK | Planned | |
PL - Poland | PLN | Planned | |
SE - Sweden | SEK | Planned | |
US - USA | USD |
LocalAccountDetails
– An object containing the Address
and Account
details in local format, based on the Virtual Account Country
. Note that the properties of the Account
object vary depending on the Country
.InternationalAccountDetails
– An array of objects containing the Address
and Account
in international format (typically IBAN/BIC but this may change). Where country-specific IBANs exist for the account, multiple objects are returned.LocalAccountDetails
and InternationalAccountDetails
to present to the user.The properties of these objects may vary, so dynamic retrieval allows you to ensure that details are always presented correctly.VirtualAccountPurpose
on creation:
COLLECTION
– Owned by Mangopay and usable by platforms and/or users for the purpose of collecting and reconciling incoming funds paid by users. Payouts are generally prohibited from the associated wallet except for refunds. The user can be categorized as a Payer or an Owner. The AccountOwner
is “MGP PlatformTradingName
”USER_OWNED
– Owned by the user owning the wallet, enabling them to accept and store funds and make payments. KYC verification is required and the user must be categorized as an Owner. The AccountOwner
is Natural User’s “FirstName
LastName
” or Legal User’s “Name
”.COLLECTION
or USER_OWNED
).Collection account | User-owned account | |
---|---|---|
Purpose | Collection and reconciliation of funds by the platform | User’s acceptance and storing of funds |
Account owner | Mangopay S.A. or Mangopay UK Ltd. | Wallet owner |
Account holder name example | ”MGP PlatformTradingName " | "FirstName LastName ” (Natural user) or “Name ” (Legal user) |
Allowed user category | Owner or Payer | Owner |
KYC verification | Not required | Required |
Payouts | Prohibited from the associated wallet, except for refunds returning funds to their origin | Authorized from the associated wallet |
USER_OWNED
accountUser-owned virtual accounts require the following data to be provided in the corresponding User object:Address
for a Natural UserLegalRepresentativeAddress
for a Legal UserUSER_OWNED
Virtual Account. This data is not required for COLLECTION
accounts.