Skip to content

API overview

https://api.unizpay.com/v1

All requests use HTTPS. Request and response bodies are JSON (Content-Type: application/json).

  • Authentication: Authorization: Bearer <secret key or checkout token>; see Authentication.
  • Amounts are decimal strings, never numbers: "25.00" for USD, "0.0412" for tokens. Token amounts have no trailing zeros ("25", not "25.000000").
  • Times are ISO 8601 strings in UTC: "2026-10-31T12:03:41.512Z".
  • IDs: payments pay_…, events evt_…. payment_id is your own reference.
  • Networks are names ("polygon"); chain_id fields use CAIP-2 ("eip155:137").
  • Request IDs: every response has a Request-Id header. Include it when you contact support.

Creating a payment is idempotent on your payment_id, per mode:

  • The first request creates the payment and returns 201.
  • Repeating the same request returns the existing payment with 200.
  • Reusing a payment_id with different details returns 409 conflict.

Requesting a deposit address is also safe to repeat: the same method returns the same address while its quote is valid.

List payments returns { "object": "list", "data": [...], "has_more": true }, newest first. To get the next page, pass the last payment’s id as starting_after.

MethodPathCredential
POST/v1/paymentsSecret key
GET/v1/paymentsSecret key
GET/v1/payments/{id}Secret key or checkout token
GET/v1/payments/{id}/methodsSecret key or checkout token
POST/v1/payments/{id}/addressSecret key or checkout token
POST/v1/payments/{id}/cancelSecret key
GET/v1/methodsSecret key
GET/v1/networksSecret key