# DusuPay API Documentation

## DusuPay API Documentation

- [Introduction](https://developer.dusupay.com/introduction.md): The DusuPay platform enables merchants (businesses and online platforms) to process payments across multiple payment options. The document describes the current version of the API.
- [Registration](https://developer.dusupay.com/getting-started/registration.md): Any entity interested in the DusuPay  API needs to register and fulfil the compliance/KYC requirements before they are granted access to the platform.
- [Error Handling](https://developer.dusupay.com/getting-started/error-handling.md): The DusuPay API uses HTTP status codes to indicate the success or failure of the API requests. The section describes the summary of these codes and what they mean in our context.
- [Authentication](https://developer.dusupay.com/getting-started/authentication.md): The DusuPay API uses a key pair (Public and Secret Keys) for authentication. To make an authenticated request to our API, you need to pass custom headers as described in this section.
- [Merchant Account Credentials](https://developer.dusupay.com/getting-started/merchant-account-credentials.md): For every approved merchant account, a set of credentials is automatically generated and stored on the record. This section describes how the merchant can manage credentials after the account creation
- [Generate Secret Key](https://developer.dusupay.com/getting-started/merchant-account-credentials/generate-secret-key.md): The section below describes (with screenshots) how to generate and store a new secret key. The process assumes that you're already logged in to the merchant dashboard.
- [Regenerate Security Keys](https://developer.dusupay.com/getting-started/merchant-account-credentials/regenerate-security-keys.md): The section below describes (with screenshots) how to generate a new set of security keys. The process assumes that you're already logged in to the merchant dashboard.
- [Supported Countries/Regions](https://developer.dusupay.com/getting-started/supported-countries-regions.md): The DusuPay platform supports a wide variety of payment methods, transaction types and currencies across a number of countries or regions. Merchant accounts will be enabled for only what they request.
- [Transaction Limits](https://developer.dusupay.com/getting-started/transaction-limits.md): For some of the transaction currencies that DusuPay supports, there are limits that control what a single transaction account is able to do per transaction and in a 24hr period.
- [Sandbox Test Accounts](https://developer.dusupay.com/getting-started/sandbox-test-accounts.md): The table below describes the test account numbers that can be used for tests on the sandbox to simulate transactions. Two scenarios (success and failure) can be simulated based on the account number.
- [DusuPay Public Keys](https://developer.dusupay.com/getting-started/dusupay-public-keys.md): This section shares the two public keys used by DusuPay for the two environments (Sandbox and Production). The keys can be copied and stored as files to later be used in transaction processing.
- [Balance Inquiry](https://developer.dusupay.com/utility-functions/balance-inquiry.md): The API allows the merchant to check the balance(s) for the different currencies they might hold.
- [Payment Options](https://developer.dusupay.com/utility-functions/payment-options.md): Before any transaction request is performed, it's recommended that the payment options available to the merchant account are known. This endpoint returns that list.
- [Payout Bank Codes](https://developer.dusupay.com/utility-functions/payout-bank-codes.md): For all countries/currencies where DusuPay supports bank payouts, there's need to specify the unique code for the bank to which the funds are to be sent. These codes are available via the API
- [Mobile Money Operator Prefixes](https://developer.dusupay.com/utility-functions/mobile-money-operator-prefixes.md): All the telecoms that provide the mobile money options to DusuPay have different prefixes that identify the mobile money numbers. These prefixes usually come right after the international country code
- [Handling Notifications/Callbacks](https://developer.dusupay.com/utility-functions/handling-notifications-callbacks.md): Whenever the status of the transaction changes (to processing, failure or success), we notify your service via callbacks. Below are the hints to take note of as regards these payment notifications.
- [Callback Events](https://developer.dusupay.com/utility-functions/handling-notifications-callbacks/callback-events.md): Every callback payload has a parameter named event and its purpose is to communicate the reason for the callback. The section below describes the various values the parameter can take.
- [Transaction Status Verification](https://developer.dusupay.com/utility-functions/transaction-status-verification.md): In some situations, the merchant account might to confirm the status of the transaction. This document resource describes the process of retrieving the transaction details (status inclusive)
- [Getting Started](https://developer.dusupay.com/funds-collection/getting-started.md): Collections are payments that the merchant receives into their account. The sections here will highlight how the DusuPay platform supports these.
- [Mobile Money Collection](https://developer.dusupay.com/funds-collection/mobile-money-collection.md): The DusuPay API supports mobile money as described in the Supported Countries section. The API allows for direct charge or making use of the hosted page that's powered by DusuPay (recommended).
- [Mobile Money - Direct Charge](https://developer.dusupay.com/funds-collection/mobile-money-collection/mobile-money-direct-charge.md): This is one of the ways to process payments using Mobile Money. The section below will guide you through the process of accepting Mobile Money using the direct API method.
- [Mobile Money - Hosted Page](https://developer.dusupay.com/funds-collection/mobile-money-collection/mobile-money-hosted-page.md): The hosted page workflow is the other way of accepting Mobile Money payments. The merchant initiates a request and in response is given a URL to which the user is redirected to complete the payment
- [NGN Bank Transfers](https://developer.dusupay.com/funds-collection/ngn-bank-transfers.md): The DusuPay API supports for funds collections from NGN bank accounts. Customers complete payments by transferring funds to a specified bank account. The guide describes the two supported modes
- [NGN Bank Transfers - Direct Charge](https://developer.dusupay.com/funds-collection/ngn-bank-transfers/ngn-bank-transfers-direct-charge.md): This is one of the ways to process NGN payments using bank transfers. The section below will guide you through the process of accepting NGN payments using the direct API method.
- [NGN Bank Transfers - Hosted Page](https://developer.dusupay.com/funds-collection/ngn-bank-transfers/ngn-bank-transfers-hosted-page.md): The hosted page workflow is the other way of accepting NGN bank payments. The merchant initiates a request and in response is given a URL to which the user is redirected to complete the payment
- [ZAR Bank Collections](https://developer.dusupay.com/funds-collection/zar-bank-collections.md): ZAR bank EFT transactions are supported on the DusuPay API. The customer is redirected to the payment URL and there, they're allowed to log into their online banking and complete the transaction.
- [Card Payments](https://developer.dusupay.com/funds-collection/card-payments.md): The DusuPay API supports card payment as described in the Supported Countries section. The API allows for direct charge (sending card details directly) or the hosted page that's powered by DusuPay.
- [Hosted Payment Page](https://developer.dusupay.com/funds-collection/card-payments/hosted-payment-page.md): The hosted page workflow is our recommended way of accepting card payments. The merchant initiates a request and in response is given a URL to which the user is redirected to complete the payment.
- [Direct Card Payment (S2S)](https://developer.dusupay.com/funds-collection/card-payments/direct-card-payment-s2s.md): Another way to accept card payments is by using our server-to-server workflow. The detailed guide below will show you how to successfully charge cards on DusuPay using our APIs.
- [Getting Started](https://developer.dusupay.com/payouts-disbursements/getting-started.md): Payouts, also sometimes called Disbursements, are outbound fund transfers from your merchant account to supported mobile money channels or bank accounts.
- [Mobile Money Payouts](https://developer.dusupay.com/payouts-disbursements/mobile-money-payouts.md): The DusuPay API enables you to transfer funds directly from your available balance to a mobile money account. The documentation below explains further.
- [Bank Account Transfers](https://developer.dusupay.com/payouts-disbursements/bank-account-transfers.md): Send money quickly to different bank accounts across multiple supported countries with DusuPay. The document below explains further.
- [HMAC Signature Verification](https://developer.dusupay.com/callbacks/hmac-signature-verification.md): The section describes how the HMAC signature sent in the callback header OR in the redirect data can be verified
- [RSA Signature Verification](https://developer.dusupay.com/callbacks/rsa-signature-verification.md): The section describes how the RSA signature sent in the callback header can be verified. The signature is generated using RSA Signing. For verification to succeed, the public key is required.
- [API Reference](https://developer.dusupay.com/appendix/api-reference.md)
- [Merchant Account Transfers](https://developer.dusupay.com/appendix/merchant-account-transfers.md): The process of Merchant Account Transfers involves the movement of funds from one merchant Account (From Account) to another  Merchant Account (To Account). Here are the steps;-
- [Availing Payout Funds](https://developer.dusupay.com/appendix/availing-payout-funds.md): Some merchants wish that collected funds can be used for processing payouts/disbursements. This section what the merchant needs to do to avail balance for handling payouts
- [Sub Account Transfers](https://developer.dusupay.com/appendix/sub-account-transfers.md): Merchants holding more than one balance are allowed the ability to transfer funds between currency wallets. The section below describes the steps.
- [Funds Settlement](https://developer.dusupay.com/appendix/funds-settlement.md): Some merchants wish that collected fund can be settled every so often. This section describes how the merchant can initiate a funds settlement request to the finance team for handling.
- [Transaction Audit Logs](https://developer.dusupay.com/appendix/transaction-audit-logs.md): This section describes the detailed description of how a given transaction was handled on the platform until it received a final status.
- [Cross Currency Transactions](https://developer.dusupay.com/appendix/cross-currency-transactions.md): The DusuPay API allows for cross currency transactions whereby the request currency does not match the currency of the selected payment option. The platform handles the conversion appropriately.


---

# 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, you can query the documentation dynamically by asking a question.
Perform an HTTP GET request on a page URL with the `ask` query parameter:
```
GET https://developer.dusupay.com/introduction.md?ask=<question>
```
The question should be specific, self-contained, and written in natural language.
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.
