API access is a White-label plan feature. Keys are issued per workspace in Settings → API. See the plan or talk to us about your integration.
Authentication
Every request carries a bearer token. Keys are scoped read-only or read-write, and can be rotated without downtime (old key stays valid for 24h).
curl https://api.payana.today/v1/trips \
-H "Authorization: Bearer pay_live_••••••••••••" \
-H "Content-Type: application/json"
Base URL is https://api.payana.today/v1. Rate limit: 120 requests/minute per key; responses include X-RateLimit-Remaining.
Resources
Trips
GET/tripsList trips · filter by status, date range
GET/trips/{id}Full trip: itinerary, travelers, balances
POST/tripsCreate a trip (draft)
PATCH/trips/{id}Update status, dates, itinerary days
Leads
GET/leadsList pipeline leads by stage
POST/leadsPush a lead from your own form or CRM
PATCH/leads/{id}Move stage, assign, set value
Customers
GET/customersDirectory with trip history
POST/customersCreate or upsert by phone number
Documents & payments
POST/trips/{id}/documentsGenerate itinerary PDF / invoice / voucher
POST/trips/{id}/payment-linksCreate a Razorpay link for advance or balance
GET/trips/{id}/ledgerPayments, refunds, GST & TCS lines
Webhooks
Register an HTTPS endpoint in Settings → API → Webhooks. Events are signed with an HMAC header (X-Payana-Signature) and retried with backoff for 24 hours.
| Event | Fires when |
|---|---|
| lead.created | A new enquiry lands from any channel |
| lead.stage_changed | A lead moves across the pipeline |
| trip.confirmed | A trip flips to Confirmed (first payment or manual) |
| payment.received | A Razorpay link is paid or a manual payment is recorded |
| document.generated | A PDF/invoice/voucher is produced (includes signed URL) |
| itinerary.updated | A published itinerary changes (app already synced) |
// payment.received payload (abridged)
{
"event": "payment.received",
"trip_id": "KER-1042",
"amount": 96000,
"currency": "INR",
"method": "upi",
"balance_remaining": 0,
"received_at": "2026-06-12T11:42:08+05:30"
}
Versioning & support
- Versioned path (
/v1) — breaking changes only ever arrive as/v2, with 12 months of overlap. - Changelog entries tagged API announce additions — see the changelog.
- Sandbox: every workspace gets a test key (
pay_test_…) that writes to an isolated sandbox. - Integration questions go to api@payana.today — answered by engineers.