Integrating 's Wallet for a Crowdfunding platform
I am developing a Crowdfunding Platform. How to implement Wallet ?
This document specifies the workflow and basic functionalities used by crowdfunding to process payments
with 's Wallet API. For specific needs, please contact our team at
.
INTRODUCTION
is a payment solution which enables crowdfunding platform 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 project owner
1. Create a project owner user
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 project owner 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 project owner'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 project owner's bank account
Register the project owner’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
Project Owner refers to any individuals or businesses. Given that you control the entire experience
of the project owner 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 project owner and submit the same on platform.
List of KYC required for Project Owner 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 Contributors
1. Create a contributor
Create a contributor by repeating the project owner creation process.
Once again, contributor and project owner 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 contributor's e-wallet
Create a contributer's 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 contributor's bank account
Register the contributor’s bank account to
payout the refunds from his e-wallet(s) by repeating the project owner’s e-wallet creation process.
4. Register 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)
Project Owner and contributors 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
User contributors pay into their respective e-wallets but funds should NOT be escrowed there. You
should directly transfer the funds to the project's e-wallet.
Once the funds are credited on the contributor’s e-wallet, call our
purchase API endpoint from
the contributor’s account to the project owner’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
contributor. 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
User contributors pay into their respective e-wallets but funds should NOT be escrowed there. You
should directly transfer the funds to the project's e-wallet.
Once the funds are credited on the contributor’s e-wallet, call our
purchase API endpoint
from the contributor’s account to the project owner’s account.
3. Pay-In by bank transfer
Bank transfer payments involve contributor sending funds to their account on
which are then credited to the project owner’s account as a
separate transaction.
The first step is to get the contributor 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 contributor will need to make a transfer.
This also includes a reference which needs to be provided on the bank transfer. You should display
these bank details to the contributor instructing them to make a transfer with the reference
provided. It is recommended that you highlight to your contributors 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.
User contributors pay into their respective e-wallets but funds should NOT be escrowed there. You
should directly transfer the funds to the project's e-wallet.
Once the funds are credited on the contributor’s e-wallet, call our
purchase API endpoint
from the contributor’s account to the project owner’s account.
Funds Management
As a crowdfunding platform, you may manage funds between contributors and project owners.
1. Refund
as a crowdfunding platform, you may manage funds between
contributors and project owners.
Create one or several transfer refunds
to allow the contributor to reinvest into another project.
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 Transfer Refund by 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 contributor and project owner
A transfer request allows you to move funds from one e-wallet to another. In the crowdfunding
flow, funds will be transferred from the contributor’s e-wallet to the project owner’s using
transfer API.
Sample Request
Sample Response
3. Pay-out to the project owner's bank account
The last step of the crowdfunding transaction flow is the
bankPayout .
Sample Request
Sample Response
GLOSSARY
CROWDFUNDING PLATFORM | Online platform where projects are funded by contributors. Transactions are processed by the platform. (You) |
USER | Natural person (natural user) or a legal person (legal user). |
PROJECT OWNER | User who owns a project. |
CONTRIBUTOR | User who contributes to a project. |
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 , primaryContact |
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 crowdfunding platform. |
FEE E-WALLET | E-wallet owned by the crowdfunding platform 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. |