Developers · API reference
API reference
Base URL: https://paysetu-api.theraphael.online · Authenticate server-side with Authorization: Bearer $VEXOLI_API_KEY. Never expose your API key in browser code.
Rules that matter
amount_paise is an integer. ₹499.00 is 49900. Do not send floats or rupee strings.
Idempotency: send a unique Idempotency-Key per order intent. Retrying with the same key returns the original order instead of creating a duplicate.
409 Conflict: reusing an idempotency key with a different request body, or creating an order that conflicts with an existing one, returns 409. Treat 409 as “fetch the existing order”, not as a reason to create another with a new key blindly.
| Method | Endpoint | Description |
|---|---|---|
| POST | /v1/orders | Create an order. Body: amount_paise (integer, required), reference, customer {name, phone}, notes. Header: Idempotency-Key recommended. |
| GET | /v1/orders/:id | Fetch one order and its current status. |
| GET | /v1/orders | List orders (pagination via limit / cursor where supported). |
| POST | /v1/demo/order | Create a test-mode demo order (used by the live cashier demo). |
| GET | /v1/pay/:token | Cashier data for a payment token (used by the hosted cashier). |
| POST | /v1/pay/:token/paid | Customer signals “I have paid” from the cashier. This does not confirm payment by itself. |
| POST | /v1/pay/:token/claim | Submit a claim with a UTR for a payment that needs manual review. |
| POST | /v1/track | Public tracking: { order_id, phone } → order status. |
Create order — example
curl -X POST https://paysetu-api.theraphael.online/v1/orders \
-H "Authorization: Bearer $VEXOLI_API_KEY" \
-H "Idempotency-Key: order-2481-v1" \
-H "Content-Type: application/json" \
-d '{"amount_paise": 49900, "reference": "ORD-2481"}'
# 201 Created
# { "id": "ord_...", "token": "pay_...", "payment_url": ".../pay/pay_...",
# "amount_paise": 49900, "payable_amount_paise": 49837, "status": "PENDING" }Order statuses
PENDING → SUCCESS (verified) · EXPIRED (not paid in time) · MANUAL_REVIEW (verification is taking longer; wait for the webhook) · FAILED. Only SUCCESS means the payment is verified.