Integrating 's Wallet for a Marketplace
I am developing a Marketplace. How to implement Wallet ?
This document specifies the workflow and basic functionalities used by marketplaces to process payments
with 's Wallet API. For specific needs, please contact our team at
.
INTRODUCTION
is a payment solution which enables marketplaces to easily process
third-party payments.
Wallet Master Account Set-up
Your first step is to register your platform and create a sandbox account.
Please request our support team in order to setup your Master Account.
Once your master account is created, you will have the access to ’s wallet API and dashboard.
Please request our support team in order to setup your Master Account.
Once your master account is created, you will have the access to ’s wallet API and dashboard.
AUTHENTICATION
For Authentication you need to pass verification hash generated using SHA256 algorithm and the secret
key shared by us.
Parameters to be included while calculating the hash are different for each API. Kindly refer API docs for more details.
Parameters to be included while calculating the hash are different for each API. Kindly refer API docs for more details.
INTEGRATION
Register sellers
1. Create a seller
Users can be:
Store the received user information, particularly the
- Individual: a natural person
- Legal: a business, organization, sole trade
User Type can be Individual or Legal .
If user type is legal then entity type can be Business/ Organization/ Public Company/
Private Company/Sole Trader.
Account type has to be Merchant in the request.
Create sellers with the following API call, please refer to our documentation in details
regarding
createAccount
(for individual) &
createBusinessAccount (for legal
entity).
Sample Request
Sample Response
Store the received user information, particularly the
customerId
, as it is required
for all user actions
2. Add Business Person
To complete the due diligence requirements for a legal entity, you also need to collect details of
business person. Number of business person required depends on your due diligence requirements.
For Example : You may require at least 2 persons with the role of director and one primaryContact of
the business. You can add these business person using the
addBusinessPerson API.
One of the Business person need to be the Primary Contact. If your business has only 1 Director, you
will be able to create only 1 person and the same person can be identified as both a director and a
primaryContact.
If any person owns more than 25% in the business, you can set their role as a ubo (ultimate
beneficial owner).
Sample Request
Sample Response
Store the received information, particularly the
personid
, as it is required for
other actions.
3. Create a seller's e-wallet
Use the
customerId
to createWallet
which enables the user to store e-money. The e-wallet is owned by the respective user.
The e-wallet will be identified by its currency and user can create only 1 e-wallet for each
currency. In order to get the list of e-wallets for each customer, you can call the
getWalletList API.
Sample Request
Sample Response
4. Register a seller's bank account
Register the seller’s bank account API to
payout the funds from his e-wallet(s).
Sample Request
Sample Response
Store the received information, particularly the
bankAccountId
, as it is required for
other actions. Also you can get the list of Bank Account Details using our
listBankAccounts API.
5. Create and submit KYC documents
Seller refers to any individuals or businesses that are selling goods on your platform. Given that
you control the entire experience of the sellers on your platform, and never interacts
directly with them, you will need to build flows to collect the necessary information required for
performing Due Diligence on the sellers and submit the same on platform.
List of KYC required for Seller (Merchant) can be configured using Wallet Owner Interface. Example
List.
Each Business Person | Company Documents |
---|---|
IDENTITY PROOF | ARTICLES OF ASSOCIATION |
ADDRESS PROOF | SHAREHOLDER DECARATION |
REGISTRATION PROOF |
The documents need to be validated by your compliance team using wallet owner dashboard.
Find more technical information here.
Register Buyers
1. Create a seller
Create a buyer by repeating the seller creation process.
Once again, buyers and sellers can be a natural person (natural user) or a legal entity (legal
user).
User Type can be individual or legal.
Account type has to be Customer.
2. Create a buyer's e-wallet
Create a buyers wallet account by using the createWallet
API.
The e-wallet will be identified by its currency and user can create only 1 e-wallet for each
currency. In order to get the list of e-wallets, you can call the
getWalletList API.
3. Register a buyer's bank account
Register the buyer’s bank account to payout
the refunds from his e-wallet(s) by repeating the buyer’s e-wallet creation process.
4. Register a buyer's Card Details
Create a card registration token to store reusable and non-sensitive card details (tokens) within
’s environment. This object is linked to the user with the
customerID
.
For more details please refer addCard API.
Also you can get the list of card details using our listCards
API.
Sample Request
Sample Response
The registered card may be used multiple times. You need to store the cardId in the response for one click pay-in. Also you can get the list of Card Details using our listCards .
Payment execution (pay-in)
Sellers and buyers have now been registered within our API. The next step is to send funds to a user’s
e-wallet.
1. Pay-In by registered card
We recommend using our Direct Load
endpoint for a seamless integration and one-click payments.
The API call contains the
cardID, currency, amount
(in cents), and other
additional information as mentioned in the API.
Sample Request
Sample Response
Once the funds are credited on the buyer’s account, call our purchase API endpoint from the buyer’s account to the seller’s account.
Sample Request
Sample Response
2. Pay-In using web load SDK
Web load end point returns
the payment
page URL in return. You should display payment page to the buyer. Once the payment is successful
user account get updated.
The API call contains
currency, amount
(in cents), and additional
information as mentioned in the Web load SDK
Sample Request
String params =" merchantTransactionId="TD32434553454" &amount="50.00" ¤cy="USD" &descriptor="TD32434553454" &customerId="189405" &walletOwnerId="1" &verificationHash="8416e8c5cf8cecc7325d19c5b12015863d37f18f2ee9b669c975bf2db2be6125" &transactionType="LOAD" &mobilePlatform="android/iOS/web" &paymentMode="CC" &paymentBrand="VISA";
Sample Response
Once the funds are credited on the buyer’s account, call our purchase API endpoint from the buyer’s account to the seller’s account.
3. Pay-In by bank transfer
Bank transfer payments involve buyers sending funds to their account on
which are then
credited to the seller’s account as a separate transaction.
The first step is to get the buyer to make a bank transfer to their account on
.
Call the Bank Pay-IN API as below.
Sample Request
Sample Response
The API call will return the bank details to which the buyer will need to make a transfer. This also
includes a reference which will need to be provided on the bank transfer. You should display these
bank details to the buyer instructing them to make a transfer with the reference provided. It is
recommended that you highlight to your buyers the importance of sending the transfer with the
accurate reference as otherwise the transaction will automatically be returned to the sender.
Allowing users to easily copy the reference on your UI is often useful.
Once the funds are credited on the buyer’s account, call our
purchase API endpoint
from the buyer’s account to the seller’s account.
4. Splitting payments to multiple Seller
Payment can split a buyer to multiple sellers in a single step while calling Purchase API.
Purchase API gives option to send multiple seller
details and respective amount.
Please find the below sample request for the same.
Sample Request
Sample Response
The registered card may be used multiple times. You need to store the cardId in the response for one click pay-in. Also you can get the list of Card Details using our listCards .
Funds Management
As a marketplace, you may manage funds between buyers and sellers.
1. Refund
gives the possibility to refund payments, either partially or
totally.
Create one or several transfer refunds
to allow the buyers to purchase different products.
Alternatively, refund the credit card payment (transfer refund then pay-in refund ).
Alternatively, refund the credit card payment (transfer refund then pay-in refund ).
- Transfer refund : reimbursement to a user e-wallet
- Pay-in refund : reimbursement to a user card
Create a refund using the
transactionId
returned during purchase.
Sample Request
Sample Response
Create PayIn Refund using pay in
transactionId
returned during direct load or web
load.
Sample Request
Sample Response
2. Transfer funds between buyers and sellers
A transfer request allows you to move funds from one e-wallet to another. In the marketplace flow,
funds will be transferred from the buyer’s e-wallet to the seller’s using
transfer
API.
Sample Request
Sample Response
3. Pay-out to the seller's bank account
The last step of the marketplace transaction flow is the
bankPayout .
Sample Request
Sample Response
GLOSSARY
MARKETPLACE | Online platform where products and services are exchanged by third parties. Transactions are processed by the platform. (You) |
USER | Natural person (natural user) or a legal person (legal user). |
SELLER | User selling a product or a service. |
BUYER | User buying a product or a service. |
ENTITY TYPE | Business type if the user is a legal user. Can be Business/ Organization/ Public Company/ Private Company/Sole Trader. |
BUSINESS PERSON | Business person linked to legal user. Can be Director, UBO , primary Contact . |
E-WALLET | Digital wallet on which electronic money is stored. |
PAYIN / LOAD | Deposit of funds by a user on an e-wallet. |
TRANSFER | Movement of funds from one e-wallet to another. |
PAYOUT | Withdrawal of funds from an e-wallet to a end-user’s bank account. |
FEE | Commission calculated and collected by the marketplace. |
FEE E-WALLET | E-wallet owned by the marketplace to collect fees. |
REFUND | Reimbursement to a user. |
KYC (Know your customer) | Verification process of your users’ identity, part of European anti-money laundering regulation. |
WALLET OWNER ID | ID of the platform operator in environment. |
CUSTOMER ID | ID of the end-user in environment. |
TRANSACTION ID | ID of any load / pay-in /purchase / transfer done by user. |