curl --request GET \
--url https://api.c2cpayment.net/api/merchant/orders/balance \
--header "C2C-API-Key: $C2C_API_KEY"
const response = await fetch(
'https://api.c2cpayment.net/api/merchant/orders/balance',
{ headers: { 'C2C-API-Key': process.env.C2C_API_KEY } }
);
const { data } = await response.json();
console.log(`Available: ${data.availableBalance} ${data.currency}`);
import os, requests
response = requests.get(
"https://api.c2cpayment.net/api/merchant/orders/balance",
headers={"C2C-API-Key": os.environ["C2C_API_KEY"]},
)
data = response.json()["data"]
print(f"Available: {data['availableBalance']} {data['currency']}")
{
"data": {
"availableBalance": 48530.0000,
"reservedBalance": 1010.0000,
"frozenBalance": 0.0,
"currency": "PKR"
}
}
HTTP/1.1 401 Unauthorized
Content-Length: 0
Account Balance
Query Wallet Balance
Retrieve the available and frozen balance of your C2C merchant wallet.
GET
/
api
/
merchant
/
orders
/
balance
curl --request GET \
--url https://api.c2cpayment.net/api/merchant/orders/balance \
--header "C2C-API-Key: $C2C_API_KEY"
const response = await fetch(
'https://api.c2cpayment.net/api/merchant/orders/balance',
{ headers: { 'C2C-API-Key': process.env.C2C_API_KEY } }
);
const { data } = await response.json();
console.log(`Available: ${data.availableBalance} ${data.currency}`);
import os, requests
response = requests.get(
"https://api.c2cpayment.net/api/merchant/orders/balance",
headers={"C2C-API-Key": os.environ["C2C_API_KEY"]},
)
data = response.json()["data"]
print(f"Available: {data['availableBalance']} {data['currency']}")
{
"data": {
"availableBalance": 48530.0000,
"reservedBalance": 1010.0000,
"frozenBalance": 0.0,
"currency": "PKR"
}
}
HTTP/1.1 401 Unauthorized
Content-Length: 0
Overview
Returns the current balance of your merchant wallet. The merchant is identified by the API key. Your wallet changes when orders complete:| Event | Effect on available balance |
|---|---|
Deposit order Completed | + amount − fee (the fee is capped at the deposit amount, so the credit is never negative) |
Withdrawal order Completed | − (amount + fee) |
| Balance adjustment by C2C, for example a top-up or correction | As recorded by C2C |
| API key | Required |
| Signature | Not required. Read-only requests are authenticated by the API key alone. |
This endpoint has no side effects, so it is ideal for testing your API key.
Headers
string
required
mk_live_..., your merchant API key. Authorization: Bearer mk_live_... is also accepted.Response
object
Hide properties
Hide properties
number
Funds you can use now for new withdrawals (amount + fee) and settlements. Withdrawals in progress are already taken out.
number
Amount + fee of your withdrawals still in progress. Each is debited when its payout is confirmed, or returns to
availableBalance if it fails.number
Funds held for your settlement requests.
string
Wallet currency. Merchant wallets are held in
PKR.curl --request GET \
--url https://api.c2cpayment.net/api/merchant/orders/balance \
--header "C2C-API-Key: $C2C_API_KEY"
const response = await fetch(
'https://api.c2cpayment.net/api/merchant/orders/balance',
{ headers: { 'C2C-API-Key': process.env.C2C_API_KEY } }
);
const { data } = await response.json();
console.log(`Available: ${data.availableBalance} ${data.currency}`);
import os, requests
response = requests.get(
"https://api.c2cpayment.net/api/merchant/orders/balance",
headers={"C2C-API-Key": os.environ["C2C_API_KEY"]},
)
data = response.json()["data"]
print(f"Available: {data['availableBalance']} {data['currency']}")
{
"data": {
"availableBalance": 48530.0000,
"reservedBalance": 1010.0000,
"frozenBalance": 0.0,
"currency": "PKR"
}
}
HTTP/1.1 401 Unauthorized
Content-Length: 0
Error responses
| Status | When | Body |
|---|---|---|
401 | API key missing, invalid or revoked | Empty body |
404 | The API key was revoked while the request was in flight | {"error": "API key not found or inactive."} |
Usage tips
- Check
availableBalancebefore submitting withdrawals. A new withdrawal is accepted only ifavailableBalancecovers its amount + fee; otherwise it’s rejected with422 Insufficient merchant balance. You don’t need to subtract withdrawals in progress yourself: they are inreservedBalance, not inavailableBalance. - Fees come from fee rules C2C configures for your account, per order type and payment method. A rule for
JazzCashalso pricesJazzCashTillIDandJazzCashQRdeposits that have no rule of their own, and a rule forEasypaisaalso pricesEasypaisaQRdeposits;TillIDkeeps its own rules. The fee for an order is applied when it completes. - For a per-transaction history, use the Merchant Portal (Transactions). The API exposes only the current balance.