Skip to content

Every change to the API, dated.

Entries are added, never edited. If something you built against changes, it gets its own entry here rather than a quiet rewrite of an old one.

Version 1

  • The first published version of the API: 22 endpoints, 15 of them reads and 7 of them writes.
  • Keys are created in Settings → API keys, sent as a bearer token, and scoped to Read only or Read and write.
  • Every write accepts an Idempotency-Key header.
  • The whole surface is published as an OpenAPI document and as this reference.

22 endpoints added

businesses.list, accounts.list, customers.list, customers.create, vendors.list, transactions.list, transactions.get, expenses.create, invoices.list, invoices.get, invoices.create, invoices.send, invoices.remind, invoices.recordPayment, review.list, review.accept, today.get, reports.profitAndLoss, reports.balanceSheet, reports.trialBalance, reports.arAging, reports.apAging

Before general availability

  • POST /customers answers 200 when it returns a customer that already existed. A customer it creates still answers 201, and `created` in the body still says which happened.
  • POST /invoices takes an optional `currency`. Leave it out and the draft is in US dollars, the same default the app's own invoice form opens with.
  • GET /businesses returns your account's name alongside the businesses. It used to wrap the account in the businesses array and call the businesses entities.
  • A PUT, PATCH or DELETE answers the same JSON 404 as a path that does not exist, instead of an empty response with no body to read.
  • Text fields have a maximum length. Names, vendor names and address lines take up to 200 characters, an email address up to 320, a phone number up to 40, and a memo or an invoice line description up to 2,000. Anything longer answers 422 `validation_failed` and names the field. Every field's own maximum is on its reference page.
Changelog — Nummio API