Users who have previously signed up with a payment provider, such as a bank or a thrift platform, will be able to conduct transactions through Vendy because the Vendy Payment Gateway allows regulated payment service providers to add their services to the payment options available to customers.
JSON is the primary method by which the Vendy payment gateway communicates with external providers.
When querying available payment providers, Vendy uses the customer's phone number as a unique identifier; therefore, it is expected that a payment provider can identify its customers through their phone number and subsequently allow debit on their account when the debit request is authorized by the account owner.
We recommend allowing your customers to use their already existing secure code or pin to perform transactions on Vendy, which eliminates the need for users to be onboarded and reduces friction.
Vendy does not conduct any form of debit authorization, this is the sole responsibility of the payment provider.
Vendy Payment Gateway will treat all valid debit authorization responses for debit requests in good faith. The failed authorization will be respected as well as a customer's request to use the Vendy platform.
A payment provider is intended to have a response time of less than one second because communication with the Vendy Payment gateway is handled simultaneously and in real time.
Vendy Payment Gateway has support for asynchronous debit requests, that is to say, if it's configured as such, the Payment Gateway would send a debit request, the payment provider is expected to send a status of the debit request via callback or webhook at a later time.
|Phone Number Validation||An endpoint to determine if a phone number has an account with the bank and if a user has boarded on the bank’s USSD platform.||Request Body|
- msisdn (eg. 23481000000) [String]
- status (e.g true) [boolean]
true if msisdn has an account with the bank and false if otherwise
- onboarded (e.g true) [boolean]
true if msisdn
|Account List Request||An endpoint to retrieve all account numbers associated with a particular phone number.||Response body|
A list of bank accounts
|PIN Verification and Debit||This enables Vendy validate pin supplied by customers during a USSD session synchronously||This enables Vendy validate pin supplied by customers during a USSD session synchronously|
|OTP Verification and Debit||This enables Vendy validate transaction during a WhatsApp or Telegram session synchronously by validating transaction using a bank generated OTP||otp, accountNumber, amount, reference, callback_url|
|User Onboarding||An endpoint to onboard user to the bank’s USSD platform if required|
|Credit Merchant||This API allows Vendy debit it’s position(account) with the bank and credit merchant’s bank account either domiciled within the bank or other bank account||amount, merchant account number, reference, summary, pin||Response Body|
- bank tracking reference
|Payment Webhook||This allows the bank to notify Vendy of a successful or failed vendor as an alternative in case of failure when (3 Pin verification endpoint or 4 OTP Verification and Debit) fails.|
Bank can reach us on
|reference (sent by Vendy during debit),|
response (debit status),
response code ()
|Reversal Endpoint||This allows Vendy conduct a reversal of debited amount back into user’s account when an error occurs, charge bank is initiated or service was which payment was made isn’t rendered||reference, amount, failureReason|
|Wallet Generation||This endpoint allows customers to generate a bank wallet, which can be funded via transfer. This wallet can subsequently be used to make payment on Vendy|