Developer

API Reference

Every route on the v1 surface, generated from the same contracts the API validates with.

Base URL: https://api.trabalance.com/api/v1 · OpenAPI 3.1: https://api.trabalance.com/api/v1/openapi.json

ℹ️The document is the reference

These tables are a reading aid. The OpenAPI document is generated from the request contracts the boundary enforces, so it can never describe a body the API would reject. Import it into Postman, Insomnia, or your generator of choice.

Customers — scope sales_customers

MethodEndpointPurpose
GET/customersList (page, page_size, search)
POST/customersCreate — name required; 409 if the email already belongs to a customer
GET/customers/{id}Detail
GET/customers/{id}/statementStatement of account (startDate, endDate)

Vendors — scope purchases_vendors

MethodEndpointPurpose
GET/vendorsList (page, page_size, search)
POST/vendorsCreate — name required
GET/vendors/{id}Detail
GET/vendors/{id}/statementStatement of account

Invoices — scope sales_invoices

MethodEndpointPurpose
GET/invoicesList (page, page_size, search, from, to, derived_status)
POST/invoicesCreate — receiver, date, items[] required; posts through the same producer as the app
GET/invoices/{id}Detail
GET/invoices/{id}/pdfThe customer-facing PDF (application/pdf)

Items — scope ops_products

MethodEndpointPurpose
GET/itemsList (type, status)
POST/itemsCreate — name required; sku unique
GET/items/{id}Detail
PATCH/items/{id}Update
GET/items/{id}/stockStock on hand by location — from the inventory producer, never recomputed
GET/items/{id}/pricingPricing (PATCH to update)

Receipts — scope sales_receipts

MethodEndpointPurpose
GET/receiptsList (page, page_size, search, from, to)
POST/receiptsRecord money received against open invoices
GET/receipts/{id}Detail

Payments — scope purchases_payments

MethodEndpointPurpose
GET/paymentsList (page, page_size, search, from, to)
POST/paymentsRecord money paid against open bills
GET/payments/{id}Detail

Bank feeds — scope finance_banking

MethodEndpointPurpose
GET/bank-feeds/accountsThe business's bank and cash accounts — the ids /receipts, /payments and the line push need
POST/bank-feeds/{accountId}/linesPush statement lines for reconciliation (up to 5,000 per call)

Webhooks — the Webhooks key option, not a data scope

MethodEndpointPurpose
GET/webhooks/eventsThe event catalogue
GET/webhooks/endpointsThis business's endpoints (the secret is never returned)
POST/webhooks/endpointsSubscribe — { url, events[] }; the signing secret is returned once
DELETE/webhooks/endpoints/{id}Unsubscribe
POST/webhooks/endpoints/{id}/testQueue a ping event

API keys only — an OAuth token cannot reach these.

Discovery

MethodEndpointPurpose
GET/Resources, scopes, limits, webhook events (no auth)
GET/openapi.jsonOpenAPI 3.1 (no auth)
GET/llms.txtThe API described for an agent (no auth)