Documentation

Aozo Accounting API

GST invoicing, quotations, inventory, expenses and GST reporting — the full REST surface behind accounting.aozo.in.

Base URLhttps://accounting.aozo.in/api
AuthBearer JWT or aozo_ API key
Formatapplication/json

Customers

MethodPathDescription
GET/customersList customers
POST/customersCreate a customer (gstin, outstandingBalance, …)
DELETE/customers/:idDelete a customer

Items

MethodPathDescription
GET/itemsList inventory items
POST/itemsCreate an item (hsnCode, sku, price, stock, unit)
DELETE/items/:idDelete an item

Expenses

MethodPathDescription
GET/expensesList expenses
POST/expensesLog an expense (category, amount, paymentMode)
DELETE/expenses/:idDelete an expense

Quotations

Estimates that convert straight into a GST invoice.

MethodPathDescription
GET/quotationsList quotations, with line items
POST/quotationsCreate a quotation — auto-numbered EST-YYYY-####
POST/quotations/:id/convertConvert into an invoice, adding 18% GST
curl -X POST https://accounting.aozo.in/api/quotations \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "orgId": "org_123",
    "customerName": "Acme Retail",
    "validUntil": "2026-08-15",
    "items": [
      { "itemName": "Consulting hours", "quantity": 10, "unitPrice": 2500 }
    ]
  }'

Invoices

Full GST invoicing — auto-computed tax, e-invoicing, pay links and payment reconciliation. Listing invoices is restricted to org ADMIN/OWNER.

MethodPathDescription
GET/invoicesList invoices — ADMIN/OWNER only
GET/invoices/:idInvoice details
POST/invoicesCreate an invoice — computes GST subtotal/tax, auto-numbers it
PUT/invoices/:idUpdate — recomputes totals, replaces line items
POST/invoices/:id/einvoiceGenerate a GST e-Invoice IRN, e-Way bill and UPI QR
POST/invoices/:id/pay-linkGenerate a UPI/checkout payment link
POST/invoices/webhook/paymentPayment-gateway webhook — no auth header required
PUT/invoices/:id/statusUpdate status only
DELETE/invoices/:idDelete an invoice
🔓 The payment webhook skips normal auth on purpose

POST /api/invoices/webhook/payment is built for payment gateways, not your app — it reconciles by invoiceNumber and accepts a Razorpay-shaped payload directly.

curl -X POST https://accounting.aozo.in/api/invoices \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "orgId": "org_123",
    "type": "invoice",
    "customerName": "Acme Retail",
    "customerGstin": "07AAACA1234B1Z5",
    "dueDate": "2026-08-30",
    "items": [
      { "itemName": "Office chairs", "hsnCode": "9401", "quantity": 4, "unitPrice": 5200, "gstRate": 18 }
    ]
  }'

Reports

Admin-restricted, same as invoices.

MethodPathDescription
GET/reportsSales, tax, expense and profit summary
GET/reports/gstr1GSTR-1 export, ready for GST filing
GET/reports/gstr3bGSTR-3B summary metrics

Organization

MethodPathDescription
GET/organizationList orgs you belong to
POST/organizationCreate an org
GET/organization/:idOrg details
PUT/organization/:idUpdate — includes GSTIN, UPI ID, invoice template — ADMIN only
GET/organization/:id/membersList members
POST/organization/:id/membersInvite a member — ADMIN only, seat-limited
GET/organization/:id/apikeysList API keys — ADMIN only
POST/organization/:id/apikeysGenerate an API key — ADMIN only