Overview
VTech Wallet
# 1.0 Authorization
The Wallet APIs can be authenticated by using a generated access token which would be shared via an email along with other necessary credentials like consumer key and consumer secret. This is shared after all necessary discussions with the product team has been concluded.
NB: In order to call our endpoints it’s necessary to pass the access token as an authorization header and wallet credentials as a request param for every request. To get the wallet credentials, simply use base64 to encrypt the consumer key and consumer secret. For example, say your consumer key is **oD9LoxJuaLbLGPX** and your consumer secret is **57uRYb7HCvgMkbbsqTQSl**. Your wallet credentials can be determined as follows:
Wallet Credentials= Base64(**oD9LoxJuaLbLGPX**:**57uRYb7HCvgMkbbsqTQSl**), therefore your wallet credentials is **b0Q5TG94SnVhTGJMR1BYOjU3dVJZYjdIQ3ZnTWtiYnNxVFFTbA==**
NB: In order to regenerate the access token call this url: [https://api-apps.vfdbank.systems/v-token/v1/oauth2/token](https://api-apps.vfdbank.systems/v-token/v1/oauth2/token) in postman, you would need to pass grant-type, Authorization Basic (consumerKey:consumerSecret) and validityPeriod as request params. The grant-type value should be client-credentials.
# 2.0 Base Url
All requests to the Wallet API must be done using the web API URL below.
{{url}}: [https://api-devapps.vfdbank.systems/vtech-wallet/api/v1/wallet2/](https://api-devapps.vfdbank.systems/vtech-wallet/api/v1/wallet2/)
Note: This Base URL is used for the sandbox environment only. Also ensure you call the
onboarding endpoint first to ensure your wallet is set up properly after receiving the consumer key and consumer secret.
# 3.0 Allowed Operations
The following operation types are supported.
**Transfer Services** - Allows outward transactions from accounts.
1. /**account/enquiry** - This endpoint allows you to get your pool, or 1-1 account information needed to initiate a transfer request 2. **/bank** – This endpoint retrieves all banks 3. /**transfer**/**recipient** - This endpoint allows you to get beneficiary details 4. /**transfer** - This endpoint allows you to initiate an intra or inter funds transfer 5. /**transactions** - This endpoint allows you to retrieve details of a transaction 6. /**notice** – This endpoint allows you simulate an inward credit to your pool account
**Account** **Creation** - Allows a client to set up a new account/wallet.
1. /**client**/**create** - This endpoint allows you to create a client with BVN as mandatory 2. /**clientdetails**/**create** - This endpoint allows you create a client with phone as mandatory 3. /**corporateclient**/**create** - This endpoint allows you to create a corporate collections account 4. /**virtualaccount** - This endpoint allows you create a one time temporary virtual account 5. /**virtualaccount**/**amountupdate** - This endpoint allows you update a virtual account transaction amount
**BVN** **Enquiry** – Allows a client retrieve the bvn details of a customer
1. /**client** – This endpoint allows you retrieve the bvn details of a customer
**Account** **Enquiry**
1. “/**client**/**account**” – This endpoint allows you to retrieve clients information using their account number. 2. “/**inward**/**nameenquiry**” – This endpoint allows you retrieve a customer’s account details including his available balance, minimum required balance, etc.
**Transaction** **Enquiry**
1. /transaction/limit – This endpoint allows you modify a customer’s daily transaction and withdrawal limits 2. /account/transactions – This endpoint allows you retrieve all transactions from your pool account or a sub account. 3. /inward/transactions – This endpoint allows you fetch all transactions for a wallet account no
**QR** **Code** **Services**
1. /qrcode/generate – – This endpoint allows you generate a qr code and create a customer on the qr code platform 2. /qrcode/query – This endpoint allows you retrieve a merchant details using a qr code 3. /qrcode/pay - This endpoint allows customers on the qrcode platform make payment
# 4.0 Notifications
For notifications, a webhook is shared with us so you can be notified for inward credit transactions. The webhook is to be shared both in the testing and production environment. Its request will be sent in this format.
{
``` "reference": "Vfd-weiuubui3b3n4", "amount": "1000", "account_number": "1010123498", "originator_account_number": "2910292882", "originator_account_name": "AZUBUIKE MUSA DELE", "originator_bank": "000004", "originator_narration": "test", "timestamp": "2021-01-11T09:34:55.879Z", "sessionId": "00001111222233334455"
```
}
"reference" — This is prefixed by your wallet name followed by a random string.
“amount” — This is the amount sent to the wallet account.
“account_number” — This is the account number credited with the inward transfer.
“originator_account_number” — This is the initiator’s account number.
“originator_account_name” — This is the initiator’s name.
"originator_narration" – This is the narration or remark from the sender.
“originator_bank” — This is the initiator’s bank code.
“timestamp” — Timestamp of the transaction.
NB: When sharing a web hook with us, security measures such as Authentication or IP whitelisting are advised to be in place.