Transfers
Introduction
A transfer is the movement of funds between two wallet accounts. Each transfer consists of two transactions.
TRANSFER_OUT
- debit transaction for moving money from sender customer balanceTRANSFER_IN
- credit transaction for moving money into the recipient customer's balance
There are three types of participants in a transfer:
- Customer wallets - regular users onboarded on embedded wallets solution
- Legal Entity wallets - wallets, that belong to legal entities
- Merchant wallets - wallets belonging to the merchant
These types of participants are treated differently from a regulatory perspective but used the same way for performing transfers.
For performing a transfer you need the following parameters:
amount
- the amount in minor unitscurrencyCode
- must match the sending account currencysender.customerId
- wallet customer id of the sendersender.accountId
- wallet account id of the sender accountrecipient.customerId
- wallet customer id of the recipientrecipient.accountId
- wallet customer id of the recipientscreeningId
- required for transfers related to Third Party deposits or withdrawals
Optional parameters:
fee
(optional) - (In Development) fee collected by the merchant for this transfer. The fee is always collected in sending account currency.
Currency conversion
The transfer currency must always match the sender account currency. By default, the recipient account also must be in the same currency.
Currency conversion is not explicitly enabled. For currency conversion during transfers, contact a Paysafe sales representative.
Transfer types
Customer-to-merchant transfer
Set recipient field to the Merchant customer id and account id. These are set up during merchant onboarding.
Merchant-to-customer transfer
Set sender field to the Merchant customer id and account id. These are set up during merchant onboarding.
Customer-to-customer transfer
Set sender and recipient fields with the respective customer and account ids of the transfer participants.
Transfer Async behavior
The transfers are executed asynchronously.
- The response will contain the submitted information, without the
deviceInfo
,risk
, andcustomerIp
properties. - The response will not contain transactions, since they are not yet created.
- Merchant must wait for the webhook for this transaction to confirm the final status of the operation - successful or not.
- Until the webhook is received, the Merchant can query the transfer using the Transactions endpoint, using
merchantRefNum
. While the transfer is still in the queue, an empty response will be returned.
Merchant Fee collection
(In Development)
A fee can be collected by the merchant for the transfer. The fee
parameter is passed in minor units and is always collected in sending account currency.
Fees are collected in preconfigured merchant fee collection account in the corresponding fee currency.