API Reference
Payment Status
Look up a payment server-to-server. Use it to confirm every webhook before you fulfil an order.
GET
https://paylio.org/api/v1/payment-statusRequires an API key. You can only look up payments that belong to your account.
Query parameters#
Send one of the two. If both are sent, ipn_token is used.
payment_idstringipn_tokenstringThe
ipn_token from Create Checkout.Example#
Request#
curl "https://paylio.org/api/v1/payment-status?payment_id=3f6c2a1e-8b4d-4c7a-9e21-5d0b7f9a1c34" \
-H "Authorization: Bearer plio_live_YOUR_KEY"Response#
Response · JSON
{
"payment_id": "3f6c2a1e-8b4d-4c7a-9e21-5d0b7f9a1c34",
"status": "paid",
"forward_status": "completed",
"amount": "54.34",
"original_amount": "49.99",
"customer_fee_amount": "4.35",
"pass_fee_to_customer": true,
"currency": "USD",
"coin": "polygon_usdc",
"value_coin": "53.9",
"forwarded_amount": "49.6",
"txid_in": "0xa22a82b4...",
"txid_out": "0x94c2c3e8...",
"address_in": "0x32e854bD1270670C832634CA87858fFd9F3e2c78",
"paid_at": "2026-10-14T13:01:42.000Z",
"created_at": "2026-10-14T12:59:11.000Z"
}Response fields#
statusstringforward_statusstringpending, ready, processing, completed, failed, manual_required or canceled. Card payments switch to completed as soon as they are paid.amountstringAmount charged to the customer.
original_amountstring | nullRequested amount before fee pass-through.
customer_fee_amountstring | nullFee paid by the customer, if passed through.
currencystringCheckout currency.
coinstringSettlement asset, e.g.
polygon_usdc.value_coinstringAmount received in the settlement asset.
forwarded_amountstringAmount delivered to your wallet after fees.
txid_instring | nullDeposit transaction hash.
txid_outstring | nullPayout transaction hash to your wallet.
paid_at / created_atstringISO 8601 timestamps.
Polling
Webhooks are delivered once. If you missed one, poll this endpoint for open orders, for example every few minutes for the first hour. Stay within 120 requests per minute.Errors#
400Bad RequestNeither
payment_id nor ipn_token was sent.401UnauthorizedMissing or invalid API key.
404Not FoundNo payment with that ID on your account.
429Too Many RequestsRate limit reached; wait for
Retry-After.