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.

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.

INTEGRATION
Register sellers
1. Create a seller
Users can be:
  • 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"
    &currency="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 ).
  • 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.