PayLioDocs

API Reference

Payment Status

Look up a payment server-to-server. Use it to confirm every webhook before you fulfil an order.

GEThttps://paylio.org/api/v1/payment-status

Requires 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_idstring
The payment_id from Create Checkout. id is accepted as an alias.
ipn_tokenstring
The 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#

statusstring
unpaid, paid, underpaid or canceled. See payment statuses.
forward_statusstring
pending, ready, processing, completed, failed, manual_required or canceled. Card payments switch to completed as soon as they are paid.
amountstring
Amount charged to the customer.
original_amountstring | null
Requested amount before fee pass-through.
customer_fee_amountstring | null
Fee paid by the customer, if passed through.
currencystring
Checkout currency.
coinstring
Settlement asset, e.g. polygon_usdc.
value_coinstring
Amount received in the settlement asset.
forwarded_amountstring
Amount delivered to your wallet after fees.
txid_instring | null
Deposit transaction hash.
txid_outstring | null
Payout transaction hash to your wallet.
paid_at / created_atstring
ISO 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 Request
Neither payment_id nor ipn_token was sent.
401Unauthorized
Missing or invalid API key.
404Not Found
No payment with that ID on your account.
429Too Many Requests
Rate limit reached; wait for Retry-After.