> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.epaygames.io/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.epaygames.io/_mcp/server.

# Overview

## What This Is

The **Epaygames Payments & Disbursement API** is a unified collection covering two related, but independently-hosted, APIs:

* **Payments API** — collects money **from** customers.
* **Disbursement API** — sends money **out to** recipients (payouts).

Each API has its own base host, its own authentication endpoint, and its own bearer token — they are not interchangeable, but they're designed to be used together to cover a full money-movement lifecycle: a customer pays in through the Payments API, and later your platform pays funds back out through the Disbursement API.

## The Payments API

Used to collect payments from customers. Its endpoints let you:

* **Authenticate** and obtain a bearer token (`Create Token`).
* **Discover available payment channels** — e.g., GCash, Maya, QR Ph — including logos, names, and payment instructions (`Get Channels`).
* **Pre-calculate fees** before committing to a transaction, so you can show the customer an accurate total (`Calculate Total w/ Fee`).
* **Generate a hosted web payment link** for a specific channel and amount, which you redirect the customer to in order to complete payment (`Generate Transaction`).
* **Check the status** of any transaction you've generated (`Get Transactions`).

Customers are redirected back to your site after paying (success or failure), and your backend can optionally be notified in real time via a webhook.

## The Disbursement API

Used to pay funds out to a recipient — a bank account, e-wallet, or similar. Its endpoints are grouped into four functional folders:

| Folder             | Purpose                                                                                                                                                                                  |
| ------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Authentication** | Obtain the bearer token required for every other Disbursement API call (`Create Access Token`).                                                                                          |
| **Wallet**         | Check your available balance and review wallet-level transaction history (`Get Wallets`, `Get Wallet Transactions`).                                                                     |
| **Disbursement**   | The core payout flow — discover channels and receiving banks, submit a payout, and track its status (`Get Channels`, `Get Receiving Banks`, `Process Disbursement`, `Get Transactions`). |
| **Authorization**  | Validate a user-initiated cash-out/withdrawal authorization code before paying it out (`Get Authorization`).                                                                             |

A fifth folder, **Testing**, contains sandbox-only utilities (currently `Repost Transaction`) for simulating webhook delivery during development — not for production use.

## Typical Flow

A common end-to-end integration looks like this:

1. **Payments API:** Authenticate → discover channels → (optionally) calculate the fee-inclusive total → generate a transaction/payment link → redirect the customer → receive a webhook or poll for status.
2. **Disbursement API:** Authenticate → check wallet balance → discover payout channels/banks → (optionally) validate an authorization code from a user-initiated withdrawal → process the disbursement → receive a webhook or poll for status.

## Who This Is For

This documentation is written for merchants and integrators who need to:

* Generate a hosted payment link for a customer and get notified when it's paid.
* Look up and display available payment channels and their fees before checkout.
* Check the real-time status of a customer payment.
* Check disbursement wallet balances before initiating a payout.
* Send payouts to banks (InstaPay/PESONet) or e-wallets.
* Validate a cash-out/withdrawal authorization code prior to disbursing funds.

## How the Rest of This Documentation Is Organized

#### [Environments & Setup](/environments-and-setup)

Hosts, environment variables, and sandbox credentials.

#### [Authentication](/authentication)

How to obtain and use bearer tokens for each API.

#### [Request & Response Format](/request-response-format)

The shared JSON envelope used across both APIs.

#### [Transaction & Payout Statuses](/transaction-statuses)

The status values you'll see and should handle.

#### [Webhooks & Redirects](/webhooks-and-redirects)

How asynchronous notifications work.

#### [Rate Limiting](/rate-limiting)

Documented guidance on call frequency.

#### [Pagination & Filtering](/pagination-and-filtering)

How to page through and filter list endpoints.

#### [Error Handling](/error-handling)

How failures are represented in responses.

#### [Testing & Sandbox](/testing-and-sandbox)

Sandbox-only utilities and their limitations.

After that, each endpoint (Create Token, Get Transactions, Generate Transaction, etc.) is documented individually with its parameters, sample requests, and sample responses.