> For the complete documentation index, see [llms.txt](https://docs.vpay.africa/vpay-api-specification-basic-gude/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.vpay.africa/vpay-api-specification-basic-gude/funding-methods.md).

# Funding Methods

Your VPay virtual accounts may be funded via Bank Transfer, USSD or Bank/Debit Card. Once successful, each option will notify your web hook endpoint with the previously specified success payload format.&#x20;

However, card and USSD notification payloads will not include the [`session_id`](#user-content-fn-1)[^1] property and may exclude other properties as well.

It is advised that you carefully study the payloads sent for each option and adjust your business logic accordingly.

<table><thead><tr><th width="163">Option</th><th width="349">Integration/Usage Steps</th><th>ETA For Webhook</th></tr></thead><tbody><tr><td>Bank Transfer</td><td>1) Provide or display VPay virtual account number (NUBAN) to paying customer.<br><br>2) To pay, a user is expected to visit her mobile or web banking app, input the NUBAN as beneficiary, then send desired amount to beneficiary.</td><td>10 to 120 seconds</td></tr><tr><td>USSD Short Code</td><td>1) Provide or display the USSD code format  in #2 below to the paying user.<br><br>2) To pay, user is expected to dial <strong>*User'sBankCode*000*5037+VPayNUBAN+Amount#</strong><br><br>For instance, a user wishing to fund virtual account with 200 Naira from GTBank would dial *737*000*5037+VPayNUBAN+200#<br><br><mark style="color:red;">Take note of all symbols (* and + and #)</mark></td><td>5 to 10 seconds</td></tr><tr><td>Bank/Debit Card</td><td>1) Display a button or link or QR code to the following URL:<br><br><a href="https://topup.vpay.africa/VPayNUBAN">https://topup.vpay.africa/VPayNUBAN</a><br> <br><mark style="color:red;">Ensure to replace VPayNUBAN with the actual virtual account NUBAN</mark><br><br>2) A payment form will be presented to the user to enter card details and authorise payment with OTP or PIN. <strong>Mastercard, VIsa and Verve cards are supported.</strong></td><td>&#x3C; 5 seconds</td></tr></tbody></table>

{% hint style="info" %}
Web hook notifications will be sent repeatedly (up to 10 times) at regular intervals until a successful response is received from your pre-registered web hook endpoint.
{% endhint %}

{% hint style="danger" %}
In the event of multiple notifications, to prevent duplicate updates to your  ledger, ALWAYs store and enforce a check on **session\_id** for new **bank transfer** notifications. **session\_id** is unique per transfer transaction and so a notification payload with an existing **session\_id** should be disregarded.
{% endhint %}

[^1]:


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.vpay.africa/vpay-api-specification-basic-gude/funding-methods.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
