One Stop Invoice API

Versioned JSON REST for clients, all document types (invoices, quotations, proforma, debit/credit notes), inventory, expenses, sendouts, mobile notifications, analytics, TDS, settings, and Shopify — the same data as your dashboard.

Clients & documents

Client CRUD with dedupe, plus invoices, quotations, proforma, debit notes, and credit notes. PDF download, share links, convert-to-invoice.

Inventory & expenses

Keep stock and costs aligned with your books and PDFs.

Send & analytics

Email document PDFs, sendout history, FY-scoped analytics, TDS reports, and account settings via API.

Secure by API key

Per-account keys with the same subscription rules as the web app.

Authentication

Send your key as Authorization: Bearer <api_key> or X-API-Key: <api_key>. Create or rotate it under Dashboard → API access .

?api_key= is for quick tests only, not production.

Response shape

Success: {"ok": true, "data": …}

Error: {"ok": false, "error": {"code", "message", "details"}}

Quick test
curl -sS -H "Authorization: Bearer YOUR_API_KEY" "https://api.onestopinvoice.com/v1/me"
Methods Path Notes
GET /v1/me Account summary
GETPOST /v1/clients List & create · dedupe on phone / email / GSTIN · POST bulk-delete
GETPATCHDELETE /v1/clients/{id} Read, update, delete (?cascade=1)
GETPOST /v1/invoices FY/search/status filters · POST bulk-delete
GETPATCHDELETE /v1/invoices/{id} Optional TDS fields on create/update
POST /v1/invoices/bulk-pdf ZIP of invoice PDFs (binary)
GET /v1/invoices/recent-payments Paid invoices since ?since= timestamp
GETPOST /v1/quotations List filters · POST bulk-delete · convert-to-invoice
GETPATCHDELETE /v1/quotations/{id}
GETPOST /v1/debit-notes List filters · POST bulk-delete
GETPATCHDELETE /v1/debit-notes/{id}
GETPOST /v1/credit-notes List filters · source_invoice_id on create
GETPATCHDELETE /v1/credit-notes/{id} POST bulk-delete on collection
GETPOST /v1/proforma-invoices Dedicated proforma table · convert-to-invoice
GETPATCHDELETE /v1/proforma-invoices/{id}
GET /v1/documents/{type}/{id}/pdf Download PDF (binary)
GETPOSTDELETE /v1/documents/{type}/{id}/share Public share links
GETPOST /v1/inventory POST bulk-delete
GETPATCHDELETE /v1/inventory/{id}
GET /v1/expenses/categories Static expense category list
GET /v1/expenses/{id}/repeat Prefill for repeat expense entry
GETPOST /v1/expenses POST bulk-delete
GETPATCHDELETE /v1/expenses/{id}
GETPOSTDELETE /v1/sendouts Email PDF · history · templates
POST /v1/auth/login Mobile sign-in → access_token
POST /v1/auth/refresh Rotate mobile access token
GET /v1/auth/me Current mobile user
GETPATCHPOST /v1/notifications In-app feed · unread count · mark read · prefs
POSTDELETE /v1/devices Register / unregister FCM token
GET /v1/analytics/summary Dashboard aggregates · ?fy_start_year=
GET /v1/analytics/full Extended insights (expenses, TDS, inventory, GST)
GETPOSTPATCHDELETE /v1/tds/sections TDS section CRUD
GETPATCH /v1/tds/deductions Deductions · deposit / undo-deposit
POST /v1/tds/certificates Issue Form 16A
GET /v1/tds/reports FY TDS reports
POST /v1/tds/calculate TDS amount calculator
GETPATCH /v1/settings/business Business profile
GETPOSTPATCHDELETE /v1/settings/users Sub-user management
GETPATCH /v1/settings/templates Document template prefs
GETPATCHPOST /v1/settings/ca-sync CA sync · test-send
GET /v1/settings/api-key Masked API key (read-only)
GETPOSTDELETE /v1/integrations/shopify Connect · backfill · webhooks · logs