# EllyPay Gateway API

## EllyPay GW API Documentation

- [Introduction](https://developer.ellypayapp.com/introduction.md): The EllyPay 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.ellypayapp.com/getting-started/registration.md): Any entity interested in the EllyPay  API needs to register and fulfil the compliance/KYC requirements before they are granted access to the platform.
- [Error Handling](https://developer.ellypayapp.com/getting-started/error-handling.md): The EllyPay 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.ellypayapp.com/getting-started/authentication.md): The EllyPay 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.ellypayapp.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.ellypayapp.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.ellypayapp.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](https://developer.ellypayapp.com/getting-started/supported-countries.md): The EllyPay platform supports multiple 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.ellypayapp.com/getting-started/transaction-limits.md): For some of the transaction currencies supported, 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.ellypayapp.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.
- [RSA Public Keys](https://developer.ellypayapp.com/getting-started/rsa-public-keys.md): This section shares the two public keys used 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.ellypayapp.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.ellypayapp.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.ellypayapp.com/utility-functions/payout-bank-codes.md): For all countries/currencies where EllyPay 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
- [Transaction Status Verification](https://developer.ellypayapp.com/utility-functions/transaction-status-verification.md): In some situations, the merchant might wish to confirm the status of the transaction. This document resource describes the process of retrieving the transaction details (status inclusive)
- [Handling Notifications/Callbacks](https://developer.ellypayapp.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.ellypayapp.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.
- [Getting Started](https://developer.ellypayapp.com/funds-collection/getting-started.md): Collections are payments that the merchant receives into their account. The sections here will highlight how the EllyPay platform supports these.
- [Mobile Money Collection](https://developer.ellypayapp.com/funds-collection/mobile-money-collection.md): The API supports mobile money as described in the Supported Countries section. The section below will guide you through the process of accepting Mobile Money
- [Getting Started](https://developer.ellypayapp.com/funds-payout/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.ellypayapp.com/funds-payout/mobile-money-payouts.md): The 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.ellypayapp.com/funds-payout/bank-account-transfers.md): The API enables you to transfer funds directly from your available balance to supported bank accounts. The documentation below explains further.
- [Getting Started](https://developer.ellypayapp.com/service-payments/getting-started.md): Service payments is a term EllyPay uses to describe outbound (mostly) payments from your merchant account to supported service accounts e.g. UMEME, URA, mobile services etc.
- [Services List](https://developer.ellypayapp.com/service-payments/services-list.md): This section of the documentation describes how the list of services can be retrieved. Services are categorised and can be retrieved based on the category
- [Service Packages List](https://developer.ellypayapp.com/service-payments/service-packages-list.md): Some services have packages OR a price list that describes the available items for payment/subscription. This section describes how a service's price/package list can be obtained.
- [Service Choices List](https://developer.ellypayapp.com/service-payments/service-choices-list.md): Some service items have choice lists that support their purchase. This section describes how a service's choice list can be obtained.
- [Account Validation](https://developer.ellypayapp.com/service-payments/account-validation.md): The EllyPay API platform has a pre-requisite that before a payment is made for any of the products, the recipient account needs to be validated to confirm the name. The section describes as follows;
- [Payment Confirmation](https://developer.ellypayapp.com/service-payments/payment-confirmation.md): After the account validation has successfully responded with the account details. You can proceed to confirm the payment for the service
- [HMAC Signature Verification](https://developer.ellypayapp.com/callbacks/hmac-signature-verification.md): The section describes how the hmac signature sent in the callback header can be verified
- [RSA Signature Verification](https://developer.ellypayapp.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 an RSA Signing. For verification to succeed, the public key is required.
- [API Reference](https://developer.ellypayapp.com/knowledge-base/api-reference.md)
- [Availing Payout Funds](https://developer.ellypayapp.com/knowledge-base/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
- [Availing Service Payment Funds](https://developer.ellypayapp.com/knowledge-base/availing-service-payment-funds.md): Some merchants wish that collected funds can be used for processing service payments. This section describes what the merchant needs to do to avail balance for handling service payments.
- [Funds Settlement](https://developer.ellypayapp.com/knowledge-base/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.
- [Cross Currency Transactions](https://developer.ellypayapp.com/knowledge-base/cross-currency-transactions.md): The 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.ellypayapp.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.
