payos

Developers

Integration in four steps

REST API, JSON, signed requests. The docs with Node.js examples are open without sign-up.
  1. Step 1

    Sign the request

    HMAC-SHA256 of the timestamp, method, path and body hash. The key lives only on your server.

    X-Shop-Id:    shop_…
    X-Timestamp:  1793400000
    X-Signature:  hex(HMAC-SHA256(secret_key,
      timestamp ⏎ METHOD ⏎ path ⏎ sha256(body)))
  2. Step 2

    Create a payment

    Amount in minor units. Repeating with the same Idempotency-Key returns the same payment.

    POST /v1/payments
    Idempotency-Key: 4f1c…
    
    { "orderId": "A-1001", "amount": 24990,
      "currency": "EUR",
      "returnUrl": "https://shop.example/thanks" }
  3. Step 3

    Send the customer to pay

    The payment page shows methods for the country and currency, takes the payment and returns the customer to you.

    → 201
    { "id": "pay_…", "status": "created",
      "checkoutUrl": "https://pay…/c/…" }
  4. Step 4

    Receive the webhook

    Verify the signature and mark the order as paid. No 2xx response — we retry for two days.

    POST https://shop.example/payos/webhook
    X-Payos-Signature: v1=…
    
    { "type": "payment.succeeded",
      "data": { "orderId": "A-1001", … } }

Start accepting payments

Sign up and verify your company in the dashboard. API keys are issued as soon as your shop is approved.