Pool Account Integration
Digital wallets require a sponsor bank with deposit-taking licences in the country in which the wallet is issued. Ukheshe partners with Banks to provide this backing. The sponsor bank holds a pool account which 100% backs the value sitting in the individual digital wallets. Nett credits into digital wallets have an associated transfer into the pool account, while nett debits have a transfer out of the pool account.
In order for a pool account to back the digital wallets, certain interfaces are required with the bank in order to keep the sum of all digital wallets in sync with the pool account balance. These interfaces are as follows:
- Real-time deposit notifications from Bank to Eclipse
- EFT interface to request an EFT out from the pool account to any other bank account within the country
- Merchant settlement notification when the sponsor bank does card acquiring for an Eclipse tenant so that Eclipse is aware that the actual settlement has happened and can make the amount available to the sub-merchant.
The details of each interface are as follows:
Deposit Notifications
Whenever a credit is received in the pool account due to an incoming EFT or ATM deposit, Eclipse needs to be notified so that an associated wallet can be credited. This should happen in near real-time so that the end customer does not need to wait for their wallet balance to reflect the credit once the amount hits the pool account. These notifications are published by the bank and processed by Eclipse. Eclipse can be notified over HTTP, Email or similar push notification from the bank to Eclipse. The notifications must contain at least the following data:
- The last few digits of the pool account that was credited
- The amount
- The transaction date
- The beneficiary reference captured by the sender on their side when doing the EFT/ATM deposit.
- The payment type (EFT/ATM)
EFT Interface
In order for customers to get money out of digital wallets, Eclipse or the customer needs to be able to send money to another partner or customer bank account by EFT. Eclipse thus requires a reliable means of instructing the sponsor bank to EFT from a pool account out to another bank account. As EFT rails are long-running transactions, Eclipse would submit an EFT (or batch of EFT’s) and then at a later date (typically the next day), be notified or pull the results to know which of the EFT’s succeeded or failed.
The interface to the bank could be over batch (SFTP), HTTP or similar. Preference would be an HTTP interface with a callback mechanism back to Eclipse with results. The EFT interface to the bank would need to accept the following fields at least:
- Source pool bank account number
- Destination bank name
- Destination branch code
- Destination account number
- Destination account name
- Amount
- Beneficiary reference
- Unique EFT identifier for Idempotency checks
When the EFT has succeeded or failed, Eclipse would need to be notified by stipulating the unique EFT identifier and its result.
Merchant Settlement Notification
As and when inter-bank settlement takes place for card acquiring transactions into an Eclipse tenants merchant account, Eclipse needs to process these and make the funds available to the merchant. These notifications can be via email, SFTP or HTTP and for each settlement transaction, the following fields are required:
- The date and time of the card transaction (not the settlement date but the transaction date)
- Transaction Amount
- 6 character auth code as per the card transaction
- UTI field as per the card transaction
Eswatini Revenue Services Deposit Notification
The webhook implemented for the Eswatini Revenue Services (ERS) enables the notification and allocation of tax deposits. Deposits are first received and credited to a system wallet, after which they are allocated to the relevant CRM wallet for reconciliation. Once funds are successfully allocated, a notification is sent to the CRM applications, ORMB and Asycuda, to complete the process.
This webhook can handle both ZAR (Rand) and SZL (Lilangeni) currencies. However, no currency conversion is performed. The amount is allocated in the currency it was received in.
To enable the transfer of funds the following tenant configs are required:
- source.wallet.config.GLOBAL_BANK.EFT.SERVER.ERS_DEPOSITS=
- destination.wallet.config.ERS_DEPOSIT.EFT.SERVER.ORMB=
- destination.wallet.config.ERS_DEPOSIT.EFT.SERVER.Asycuda=
The deposit notification adheres to the format below.
POST /eclipse-conductor/rest/v1/ers/webhooks/deposits?tenantId=<tenantId>
{
"destinationAccountNumber": "8000020000000",
"bankName": "ABCD",
"currency": "ZAR",
"amount": "10.00",
"transactionId": "000FTIN00000000007",
"reference": "100100100CU",
"taxType": "ORMB",
"transactionDate": "2024/08/28 14:20:23 GMT +02:00"
}
Response on Success: HTTP 200
Updated 24 days ago