Flint Books APIDeveloper Reference

Flint Books REST API

Push and pull accounting data from external systems. Authenticate with a per-company API key, then send standard HTTP requests to the function endpoint.

Authentication

Every request must include an x-api-key header. Generate a key from Settings → API Access inside your Flint Books account. The key is scoped to a single company — it can only read and modify that company's records.

curl -H "x-api-key: <YOUR_API_KEY>" "<YOUR_FUNCTION_URL>?resource=transactions"

Endpoint

All requests go to a single endpoint — the deployed URL of the ledgerflowApi backend function. Find it under Dashboard → Code → Functions → ledgerflowApi. The desired resource is selected via a resource query param (GET / DELETE) or in the JSON body (POST / PUT).

POST / GET / PUT / DELETE   <YOUR_FUNCTION_URL>

Resources

transactionsTransaction

Bank feed and manual ledger entries

invoicesInvoice

Sales and purchase invoices

clientsClient

Customer / client contacts

suppliersSupplier

Supplier contacts

expensesExpense

Employee-submitted expenses

vat_returnsVatReturn

Period VAT returns

bank_accountsBankAccount

Connected and manual bank accounts

Operations

MethodPurposeWhere to specify
GETList records or get one by id?resource=&id=&limit=&cursor=&filters
POSTCreate a new recordbody: { resource, data }
PUTUpdate an existing recordbody: { resource, id, data }
DELETEDelete a record?resource=&id=

Pagination

List responses return up to limit records (max 500) and a cursor:

{
  "data": [ /* records */ ],
  "count": 50,
  "has_more": true,
  "next_cursor": "REC_ID_STR"
}

When has_more is true, request the next page by addingcursor=<next_cursor> to the URL.

Examples

List with filters
# List transactions (with pagination)
curl -H "x-api-key: <YOUR_API_KEY>" \
  "<YOUR_FUNCTION_URL>?resource=transactions&limit=50"

# Filter by status / type
curl -H "x-api-key: <YOUR_API_KEY>" \
  "<YOUR_FUNCTION_URL>?resource=transactions&status=uncategorised&transaction_type=debit"
Get a single record
# Get a single transaction
curl -H "x-api-key: <YOUR_API_KEY>" \
  "<YOUR_FUNCTION_URL>?resource=transactions&id=<ID>"
Create
# Create a transaction
curl -X POST -H "x-api-key: <YOUR_API_KEY>" \
  -H "Content-Type: application/json" \
  -d '{
    "resource": "transactions",
    "data": {
      "date": "2026-07-29",
      "description": "Office supplies",
      "amount_pence": 5000,
      "transaction_type": "debit",
      "status": "uncategorised"
    }
  }' \
  "<YOUR_FUNCTION_URL>"
Update
# Update an invoice to paid
curl -X PUT -H "x-api-key: <YOUR_API_KEY>" \
  -H "Content-Type: application/json" \
  -d '{
    "resource": "invoices",
    "id": "<INVOICE_ID>",
    "data": { "status": "paid" }
  }' \
  "<YOUR_FUNCTION_URL>"
Delete
# Delete a client
curl -X DELETE -H "x-api-key: <YOUR_API_KEY>" \
  "<YOUR_FUNCTION_URL>?resource=clients&id=<CLIENT_ID>"
Pagination
# Pagination — pass next_cursor to fetch the next page
curl -H "x-api-key: <YOUR_API_KEY>" \
  "<YOUR_FUNCTION_URL>?resource=transactions&limit=100&cursor=<next_cursor>"

Errors

StatusMeaning
400Malformed body or missing resource
401Missing or invalid API key
404Record not found, or belongs to another company
405Method not allowed
500Internal error

Flint Books API · provided by Flint Digital