Build on your books with the Nummio API.
Read what is in your books and write the few things worth automating. An Owner creates a key in Settings → API keys, and you send it as a bearer token. Every request goes to https://www.numm.io/api/v1/..., takes JSON, and gives JSON back.
Start here
Rules that apply to every request
- A request body larger than 1,048,576 bytes is refused.
- A request body with anything in it needs
Content-Type: application/json. A POST that sends no body at all needs no content type. - A path parameter repeated in the query or the body is refused, rather than one of the two quietly winning.
- An
Idempotency-Keyheader on a GET is ignored. - A field the endpoint does not know is refused, never ignored.
- JSON field names are camelCase, in both directions.
- A
PUT,PATCHorDELETE, and aGETorPOSTon a path that does not take it, are all 404, the same as a path that does not exist.
Reference
Businesses
Your account, and the businesses inside it.
- GET /businessesLists the businesses in your account that this key may use.
Accounts
The accounts you can post to on a business's chart of accounts.
- GET /accountsLists the accounts you can post to, each with its place in the chart of accounts.
Customers
The people and companies you bill, and how to add one.
- GET /customersLists the customers in your account, the billing contacts invoices go to.
- POST /customersCreates a customer, a billing contact invoices go to.
Vendors
The people and companies you pay.
- GET /vendorsLists the vendors in your account, who expenses are paid to.
Transactions
Money you have spent, and how each one was recorded in the books.
- GET /transactionsLists expenses and bank-feed transactions for one business, newest first.
- GET /transactions/{id}Returns full detail for one transaction, including how it was recorded in the books.
Expenses
Spending you record yourself, posted the moment you send it.
- POST /expensesRecords and immediately posts a manual expense.
Invoices
Invoices you bill customers for, from draft to paid.
- GET /invoicesLists customer invoices for one business, newest first.
- GET /invoices/{id}Returns full detail for one invoice, including its lines, payments, and pay link.
- POST /invoicesCreates a draft invoice for a customer. Nothing is sent and nothing is emailed.
- POST /invoices/{id}/sendFinalizes a draft invoice and emails it to the customer.
- POST /invoices/{id}/remindSends a payment reminder email for one sent (or overdue) invoice.
- POST /invoices/{id}/paymentsRecords a payment received against a sent invoice: check, cash, wire, or other.
Review queue
Receipts and bills waiting for someone to confirm the category, and the call that confirms one.
- GET /review-queueReturns pending AI-categorized expenses awaiting human review.
- POST /review-queue/{id}/acceptPosts a pending review-queue expense, under the proposed account or one you name.
Today
The one screen that says what needs attention right now.
- GET /todayReturns the Today homepage for one business: the headline and its ranked signal cards.
Reports
The five statements an owner or an accountant asks for.
- GET /reports/profit-and-lossReturns the profit and loss statement for one business over a date range.
- GET /reports/balance-sheetReturns the balance sheet for one business as of a date.
- GET /reports/trial-balanceLists every account's balance as of a date; accountants ask for this.
- GET /reports/ar-agingReturns unpaid customer invoices bucketed by how overdue they are.
- GET /reports/ap-agingReturns what one business owes, bucketed by how long it has been outstanding.
The OpenAPI file
The whole surface as one OpenAPI 3.1.0 document, for generating a client or loading into whatever tool you test with. Download the OpenAPI file (/openapi/v1.json).
Every change to this surface is written down, dated, in the changelog.