This use case involves end-users depositing funds to unique bank accounts associated to them on the backend, using a user’s unique Rehive account reference to identify the account to assign the deposit to.
This deposit method will have the same end-user experience as the existing “Deposit to omnibus bank account” flow. Feel free to test this flow on your test project in the Rehive Wallet apps.
Requirements
- To support this deposit method, you will need to consider two separate flows - one where a bank account is created for each new user-profile created on your Rehive project and another for the actual deposit flow.
- The accounts created for the users must support all currencies in which deposits are expected to be received.
- You will need to configure a webhook to notify your extension when a new user profile is created
- Monitoring of incoming deposits to the bank account will need to be implemented per requirements from your banking partner. This can be in the form of polling done by your extension, or webhooks triggered by your banking partner. In this guide we assume that the banking partner notifies your extension of a new transaction.
- In order to receive deposits, each user must be on a Tier which allows deposit transactions. Tiers are configured per Group using the Rehive Admin Dashboard.
When the user selects “Deposit” from either their web or mobile wallet, they will be shown the information for the bank account listed above as well as a reference which the user must include in the reference field of their bank transfer. This reference indicates the account reference for allocation of the deposit.
Flows:
Create user-allocated bank account
- The end-user creates and their profile.
- Your extension receives a webhook from Rehive Platform triggered by the
user.create
event. - Your extension makes an API call to the payment processor/ banking-as-a-service provider to create a unique deposit account for the user
- Your extension creates a bank account for the user on Rehive Platform using the
admin/users/bank-accounts
endpoint, methodPOST
with theaction
field set to“deposit”
. - Your extension adds the currency to the bank account on Rehive using the Rehive currency code that corresponds to the currency on the bank account by doing calling the
/admin/users/bank-accounts/{id}/currencies/
endpoint with methodPOST
, and a data payload of{currency: “USD”}
The deposit bank account details will be visible to the user on the relevant screens in the web and mobile apps as shown in the wallet user flow above.
NOTE: Should you wish to add qualifying criteria, you can create a user.update
webhook and use the data returned to qualify when to create the bank account.
Deposit funds into segregated bank account
- The user selects “Deposit” and is shown details of the the unique bank account created in the previous flow with a unique reference for the Rehive account to which the funds will be allocated.
- The user makes a bank transfer to the bank account provided and includes the unique reference in the reference field
- Your custom extension polls the transaction history of the company bank account
- When a new transaction is detected, your custom extension creates a credit transaction on the Rehive Platform Admin API endpoint
admin/transactions/credit/
with
{
"status": "complete",
"subtype": "deposit_bank",
"account": "{unique_reference}"
}
Recommended additional configurations:
- Create and customize notifications using the Notifications Extension to ping users when a new deposit transaction is created. This is included in the flow above as the final step. The Rehive Expressions Guide is useful for creating notifications with specific trigger variables.