Digital Wallet
Let’s take an example of a generic digital wallet to see how the Flagright API can be seamlessly used as the compliance and anti-fincrime infrastructure. For a generic wallet, there are three types of transactions:
1. Deposit
A deposit is when a User
transfers money from external source (ex: Bank, credit card) to their wallet.
For deposits, the origin payment method is the external source, for example a SWIFT transfer and the destination payment method is the wallet type. In this case, the originUserId
would be empty and the destinationUserId
would be the userId
of the user.
originPaymentMethod
would contain information on the SWIFT transaction and the destinationPaymentMethod
would contain payload for the wallet details on the user where the money is being deposited to.
To make the following request, you’ll need an API Key. Please reach out if you don’t have one.
You would make an API call to the POST /transactions
to verify this transacation before processing, with the payload like so:
2. Withdrawal
A withdrawal is when a User
transfers money from wallet to external source.
For withdrawal, the destination payment method is the external source, for example a SWIFT transfer and the origin payment method is the wallet type. In this case, the originUserId
would be the userId of the user and the destinationUserId
would be empty.
originPaymentMethod
would contain information on the Wallet and the destinationPaymentMethod
would contain payload for the SWIFT details on the user where the money is being withdrawn to.
To make the following request, you’ll need an API Key. Please reach out if you don’t have one.
You would make an API call to the POST /transactions
to verify this transaction before processing, with the payload like:
3. Wallet to Wallet Transfer
For peer-to-peer transfer, the destination payment method and the origin payment method are of wallet type. In this case, the originUserId would be the userId of the user making the payment and the destinationUserId would be the userId of the user receiving the payment.
originPaymentMethod
would contain information on the Wallet and the destinationPaymentMethod
would contain payload for the Wallet details on the user where the money is being transferred to.
You would make an API call to the POST /transactions to verify this transacation before processing, with the payload like: