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.

Payment Provider Integration

  • 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.

1291

📘

Interested parties can send an email to [email protected] or https://developers.vendy.money to get started.

Payment Provider Integration Requirement

DescriptionParametersExpected Response
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]
Response body

- 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 synchronouslyThis 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 OTPotp, 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 accountamount, merchant account number, reference, summary, pinResponse Body

- status
- 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
{vendy-api}/payments/{bankname}
reference (sent by Vendy during debit),
response (debit status),
response code ()
Response Body

- status
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 renderedreference, 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