Skip to content

API reference

All endpoints of the v1 merchant API. Base URL: https://gatway.hunario.com/api/v1. Every request needs Authorization: Bearer sk_….

MethodPathScopeDescription
POST/paymentspayments:writeCreate a payment. Needs Idempotency-Key.
GET/paymentspayments:readList payments
GET/payments/{id}payments:readRetrieve a payment
POST/payments/{id}/verifypayments:writeRe-check an open payment with the provider
POST/payoutspayouts:writeRequest a payout. Needs Idempotency-Key.
GET/payoutspayouts:readList payouts
GET/payouts/{id}payouts:readRetrieve a payout
POST/payouts/{id}/cancelpayouts:writeCancel a payout before approval
GET/balancebalance:readBalances per currency
GET/transactionspayments:readLedger history (every balance change)
GET/feesanyFee rules that apply to you
GET/fees/quoteanyCalculate the fee for an amount
GET/currenciesanySupported providers, currencies and networks

Request fields and status values for payments and payouts are described in Pay In and Pay Out.

Conventions

  • Amounts are strings with 8 decimals in responses, for example "49.90000000". Send them as strings too. Numbers are accepted but converted to strings before validation.
  • IDs are prefixed: pay_ payments, po_ payouts, txn_ ledger transactions, evt_ webhook events.
  • Timestamps are ISO 8601 with a time zone.
  • Single objects are returned inside data. Lists return data (an array), links and meta.
  • Every response has an X-Request-Id header. Include it when you contact support.

Pagination

Lists use cursor pagination, newest first. Pass limit (1–100, default 25). To get the next page, pass cursor = meta.next_cursor from the previous response. When meta.next_cursor is null, there are no more pages.

{
  "data": [ { "id": "pay_...", ... } ],
  "links": { "first": null, "last": null, "prev": null, "next": "https://gatway.hunario.com/api/v1/payments?cursor=eyJ..." },
  "meta": { "path": "https://gatway.hunario.com/api/v1/payments", "per_page": 25, "next_cursor": "eyJ...", "prev_cursor": null }
}

GET /balance

Balances per currency. Different currencies are never added together.

{
  "object": "balance",
  "mode": "live",
  "balances": [
    { "currency": "USDT", "available": "1520.40000000", "reserved": "253.50000000", "pending": "100.00000000" }
  ]
}
  • available: funds you can pay out now.
  • reserved: held for payouts that are not final yet.
  • pending: gross amount of payments seen by the provider but not yet confirmed. Not yet credited.

GET /transactions

Every change to your balance, from the ledger. Filters: currency, created_from, created_to, limit, cursor.

{
  "data": [{
    "id": "txn_...",
    "object": "transaction",
    "mode": "live",
    "type": "payin_settlement",
    "currency": "USDT",
    "description": "...",
    "source": { "object": "payment", "id": "pay_..." },
    "entries": [
      { "balance": "available", "direction": "in", "amount": "49.40100000", "balance_after": "1520.40000000" }
    ],
    "posted_at": "2026-10-16T12:05:00+00:00"
  }]
}

GET /fees

For each enabled provider, direction and currency, the fee rule that currently applies to your account.

{ "object": "list", "data": [
  { "direction": "payin", "provider": "cryptomus", "currency": "USDT",
    "percentage": "1.0000", "fixed_amount": "0.00000000", "min_fee": null, "max_fee": null }
] }

GET /fees/quote

Query parameters (all required): direction (payin or payout), provider, currency, amount.

GET /fees/quote?direction=payin&provider=cryptomus&currency=USDT&amount=10000

{ "object": "fee_quote", "direction": "payin", "provider": "cryptomus", "currency": "USDT",
  "amount": "10000.00000000", "service_fee": "100.00000000", "net_amount": "9900.00000000", "note": null }

For payouts, net_amount is null and note explains that a provider network fee may be added when the payout is created.

GET /currencies

Enabled providers with their capabilities, plus every currency and network you can use, with minimum and maximum amounts.

{
  "object": "list",
  "providers": [
    { "code": "cryptomus", "name": "Cryptomus", "pay_in": true, "pay_out": true, "capabilities": { "pay_in": true, "pay_out": true, ... } }
  ],
  "data": [
    { "provider": "cryptomus", "direction": "payin", "currency": "USDT", "network": "tron", "min_amount": "1.00000000", "max_amount": null }
  ]
}