Create a Virtual Account
Set up a virtual IBAN or local account attached to a wallet
Note – One account purpose per wallet
A wallet can only have either COLLECTION or USER_OWNED virtual accounts attached, but not both.
It is, however, possible to attach multiple virtual accounts of the same VirtualAccountPurpose to a single wallet.
Authentication
Bearer authentication of the form Bearer <token>, where token is your auth token.
If your platform is using a proxy to take SCA-triggering action on behalf of users, you also need to integrate mTLS authentication and use the api-mtls base URL.
Path parameters
Request
Allowed values: The two-letter ISO 3166-1 country code (LU, FR, GB, etc.) of an available country (depends on contract and activation settings): AU, CA, DK, DE, ES, FR, GB, LI, LU, US
The country of the Virtual Account. The country must correspond to the currency of the wallet. See the virtual account guide for details.
Allowed values: COLLECTION, USER_OWNED
The type of the virtual account:
COLLECTION- Owned by Mangopay and usable by platforms and/or users for the purpose of collecting and reconciling incoming funds paid by users.USER_OWNED- Owned by the wallet owner, enabling them to accept and store funds and make payments. Offering User-Owned Accounts requires your platform to sign the VOP contract amendment.
For more information, see the virtual account guide.
Max. length: 255 characters
Custom data that you can add to this object, such as unique identifiers in your system. To store multiple values, you can serialize them into a single string, for example a JSON object: "{\"id_1\":AB123,\"id_2\":DE456}".
Response
Australian Virtual Account with Country AU.
LocalAccountDetails.Account uses the AU-specific format (BSBCode, AccountNumber).
InternationalAccountDetails is always null because Capabilities.InternationalPayinAvailable is always false.
Canadian Virtual Account with Country CA.
LocalAccountDetails.Account uses the CA-specific format (BranchCode, InstitutionNumber, AccountNumber).
InternationalAccountDetails is always null because Capabilities.InternationalPayinAvailable is always false.
German Virtual Account with Country DE.
LocalAccountDetails.Account uses the IBAN format.
InternationalAccountDetails is populated if Capabilities.InternationalPayinAvailable is true.
Danish Virtual Account with Country DK.
LocalAccountDetails.Account uses the DK-specific format (BankCode, AccountNumber).
InternationalAccountDetails is populated if Capabilities.InternationalPayinAvailable is true.
Spanish Virtual Account with Country ES.
LocalAccountDetails.Account uses the IBAN format.
InternationalAccountDetails is populated if Capabilities.InternationalPayinAvailable is true.
French Virtual Account with Country FR.
LocalAccountDetails.Account uses the IBAN format.
InternationalAccountDetails is populated if Capabilities.InternationalPayinAvailable is true.
United Kingdom (UK) Virtual Account with Country GB.
LocalAccountDetails.Account uses the GB-specific format (AccountNumber, SortCode).
InternationalAccountDetails is populated if Capabilities.InternationalPayinAvailable is true.
Liechtenstein Virtual Account with Country LI.
LocalAccountDetails.Account uses the LI-specific format (BCNumber, AccountNumber).
InternationalAccountDetails is populated if Capabilities.InternationalPayinAvailable is true. For LI, InternationalAccountDetails.Account uses the same format as LocalAccountDetails.Account.
Luxembourg Virtual Account with Country LU.
LocalAccountDetails.Account uses the IBAN format.
InternationalAccountDetails is populated if Capabilities.InternationalPayinAvailable is true.
United States Virtual Account with Country US.
LocalAccountDetails.Account uses the US-specific format (AccountNumber, AchNumber, FedWireNumber, AccountType).
InternationalAccountDetails is always null because Capabilities.InternationalPayinAvailable is always false.