Invoices
Every recharge generates a Zoho Billing invoice. We cache a thin row
in rcs_invoices so the list endpoint is fast; the PDF is streamed
from Zoho on demand.
GET /api/v1/rcs/invoices
POST /api/v1/rcs/invoices/sync
GET /api/v1/rcs/invoices/{id}/downloadList (cached)
GET /api/v1/rcs/invoices{
"success": true,
"invoices": [
{
"invoice_id": "1234567890",
"invoice_number": "INV-001234",
"status": "paid",
"total": 5000.00,
"balance": 0.00,
"invoice_date": "2026-05-27",
"due_date": "2026-05-27",
"customer_id": "60005…",
"customer_name": "Acme Corp",
"currency_code": "INR",
"currency_symbol": "₹",
"synced_at": "2026-05-27T08:31:24Z"
}
]
}Force re-sync
POST /api/v1/rcs/invoices/syncPulls every invoice for your Zoho customer record and upserts. Returns the freshly-cached list so a UI can drop the GET → POST → GET dance and just take the response of /sync directly.
Download PDF
GET /api/v1/rcs/invoices/{id}/downloadStreams application/pdf with Content-Disposition: attachment and
the invoice number as the filename. Returns 404 if the invoice
doesn’t belong to your account (we check against the local cache so
this is fast).