Introduction to Payouts
Overview of PayOrc payout system for fund transfers to beneficiaries.
Introduction to Payouts
API Version: 3.0.0
PayOrc's payout system enables merchants to transfer funds from their PayOrc payout account to external bank beneficiaries in India. You can send a single payout or upload a batch via Excel.
What You Can Do
| Feature | Description |
|---|---|
| Single Payout Transfer | Transfer funds to one beneficiary (POST /v1/transfer) |
| Bulk Payout Transfer | Upload an Excel file with multiple payouts |
| Balance Enquiry | Query your available payout account balance |
| Payout Statement | Retrieve historical payout records with filters |
| Payout Status | Check the status of an individual payout by reference number |
| Webhooks | Receive status updates on your callback_url |
Generate API keys under Payouts → API Keys → Add new API key. Payout APIs are live-only — test/sandbox API keys are rejected at the token endpoint.
Prerequisites
- API Key — Create a Payouts API key and note the
merchant-keyandmerchant-secret. - IP Whitelist — Your server IP must be whitelisted in the PayOrc dashboard.
- Sufficient Balance — Your payout account must cover the transfer amount plus fees.
- Beneficiary Details — Bank account number, IFSC, account type, and other fields depending on payment mode (
NEFT,RTGS,IFT,IMPSP2A,IMPSP2P).
Authentication Flow
Every payout API call (except token creation) requires a Bearer token.
Step 1 — Request a token (GET /v1/token with headers):
curl -X GET "https://payout.payorc.com/v1/token" \
-H "merchant-key: live-YOUR_MERCHANT_KEY" \
-H "merchant-secret: sec-YOUR_MERCHANT_SECRET"Step 2 — Use the token on all other endpoints:
Authorization: Bearer YOUR_GENERATED_TOKENTokens are valid for 24 hours. Generate a fresh token when expired.
Test API keys return E0402 (Test key is not allowed to access this endpoint). Use live credentials only.
Base URL
| Environment | Base URL |
|---|---|
| Production | https://payout.payorc.com/v1 |
Supported Payment Modes
| Mode | Description | Minimum amount |
|---|---|---|
NEFT | National Electronic Funds Transfer | — |
RTGS | Real Time Gross Settlement | ₹2,00,000 |
IFT | Internal Fund Transfer (same bank) | — |
IMPSP2A | IMPS using account number + IFSC | — |
IMPSP2P | IMPS using mobile + MMID | — |
Supported modes depend on your merchant MID configuration.
Checksum
Single and bulk payout requests require a SHA-256 checksum (64-character lowercase hex).
Single transfer canonical string:
reference_no|amount|currency|payment_mode|account_number|account_type|callback_urlBulk upload canonical string:
request_id|callback_url|remarkSee Single Payout Transfer and Bulk Payout Transfer for full field details.
Typical Flow
- Create Token —
GET /v1/tokenwithmerchant-key/merchant-secret. - Check Balance —
GET /v1/balance(optional). - Initiate Transfer —
POST /v1/transfer(single) orPOST /v1/bulk/payouts(batch). - Check Status —
GET /v1/status/:referenceor pollGET /v1/statement. - Webhook — Receive asynchronous updates on your
callback_url.
Response Format
All APIs return a consistent wrapper:
{
"data": { },
"message": "Human-readable message",
"status": "success",
"code": "00"
}Errors use "status": "fail" with an error code (e.g. E0021, E0401).