Getting Started
The Pay.io Payment Gateway API enables merchants to build a full cashier solution directly into your websites or applications. With a single integration, you can:
Trigger deposits and withdrawals
Show real-time balances and transaction history
Access multiple crypto payment providers through native MESH integration
While business owners manage their accounts and configurations in the Merchant Console, the Payment Gateway API is what powers the end-user cashier experience.
Prerequisites
Before you start making API calls, you'll need to:
Onboard as a merchant with Pay.io - our team will configure your account, including enabling key currencies, according to your needs.
Obtain your API key - Found in the Merchant Console or provided by our support team.
Generate RSA key pair - You’ll provide Pay.io your public key during setup (see Authorisation for details).
Set up request signing — Each API call requires a nonce and RSA-SHA256 signature.
Pay.io APIs Overview
Merchant API
Used by your backend to configure cashier options:
Currencies API - Used to retrieve the list of enabled currencies for you.
Transactions API - Access transaction history across users and retry payouts requiring approval.
User Payment API
Used to serve your end-users inside the cashier through our payment gateway experience:
Deposits API - Generate unique deposit addresses or create wallet deposit links.
Withdrawals API - Allow users to request withdrawals to personal wallets.
User Transactions API - Display a user’s transaction history in your cashier UI.
Making Your First API Call: List Currencies
Once your merchant account is onboarded, your first step is to list which currencies are available for your cashier to set up the Payment Gateway.
Request
curl --location 'https://pgw.stage.pay.io/v1/merchant/currencies' \
--header 'X-API-Key: YOUR_API_KEY' \
--header 'X-API-Nonce: YOUR_UUID_NONCE' \
--header 'X-API-Signature: SIGNATURE'Response (example)
{
"currencies": [
{
"id": "1270e0a2-593b-5272-8c0e-90ba5552d921",
"name": "SOL",
"currency_code": "SOL",
"symbol": "◎",
"network": "Solana",
"currency_icon": "https://cdn.hub88.io/hub-wallet/SOL-ic.svg"
},
{
"id": "990cd2f7-b169-5665-b0e1-05cc46ae4209",
"name": "USDC",
"currency_code": "USDC",
"symbol": "$",
"network": "Base Chain"
}
]
}Next Steps For Payment Gateway
Once you have your supported currencies, you can:
Request a deposit address for a user (
POST /v1/user/deposit/address)Initiate a withdrawal (
POST /v1/user/withdraw)Fetch transactions for a user (
POST /v1/user/transactions) or across your merchant (POST /v1/merchant/transactions)
See the Authorisation for details on how to sign and authenticate your requests.
Last updated