Docs

Docs

x-cpod-domain: finance

Finance

Invoices, POs, expenses, budgets.

Try in explorer client.finance

Invoice

An invoice issued by or to the org.

REST path/api/v1/finance/invoices
Operations
listgetcreateupdatepay
SDK
// list — returns only your records; add filters/search:
await client.finance.invoices.list()

// create:
await client.finance.invoices.create({
  id: "rec_01HXEXAMPLE",
  tenant_id: "example tenant_id",
  created_at: "2026-01-01T00:00:00Z",
  updated_at: "2026-01-01T00:00:00Z",
  app_id: "example app_id",
  created_by: "rec_01HXEXAMPLE",
})
FieldTypeDescription
id*uuidServer-assigned ULID with type prefix (e.g. per_…).
tenant_id*stringTenant scope — auto-stamped from the caller's JWT.
app_idstringApp scope. Stamped ONLY when the caller's JWT was minted for a specific Application (integration API keys). Absent for human-user sessions. Filters reads when present.
created_at*date-timeServer stamp.
updated_at*date-timeServer stamp; updated on every patch.
created_byuuidPerson id from the caller's JWT (sub).
updated_byuuidPerson id from the last writer's JWT (sub).
sourcestringProvenance tag — defaults to 'edm'.
source_typeenumWhere the write originated. Defaults to 'api'.frontendbackendserversystemapi
is_deletedbooleanSoft-delete flag. Excluded from default list queries.
deleted_atdate-timeStamped when soft-deleted; null otherwise.
deleted_byuuidPerson id who soft-deleted; null otherwise.
schema_versionnumberDocument schema version. Bumped on incompatible writes.
numberstringHuman-readable unique invoice number (e.g. 'INV-2026-0042').
typestring'customer' = accounts receivable (AR); 'supplier' = accounts payable (AP).
statusstringLifecycle status of the invoice.
account_iduuidUUID of the customer Account (used when type='customer').
vendor_iduuidUUID of the Vendor (used when type='supplier').
issue_datedate-timeISO 8601 date the invoice was issued.
due_datedate-timeISO 8601 date the payment is due.
paid_datedate-timeISO 8601 date the invoice was fully paid. Null if unpaid.
currencystringISO 4217 three-character currency code.
subtotalnumberSum of all line item amounts before tax and discounts.
tax_amountnumberTotal tax amount applied to the invoice.
discount_amountnumberTotal discount amount applied to the invoice.
totalnumberFinal total: subtotal + taxAmount - discountAmount.
line_itemsjsonOrdered list of line items that make up this invoice.
notesstringFree-form notes or payment terms shown on the invoice.
project_iduuidUUID of the Project this invoice is billed against.
contract_iduuidUUID of the Contract that authorises this invoice.
document_refstringMinIO path or external URL of the invoice PDF or document.
created_by_iduuidUUID of the Person who created this invoice.
counterparty_iduuidCustomer (AR) or vendor (AP) the invoice is with.
directionenumAR (we are owed) vs AP (we owe).receivablepayable
amountnumberInvoice total.
paid_atdate-timeISO 8601 timestamp the invoice was paid.
po_iduuidPurchase order this invoice bills against.
tagsjsonFree-form tags for grouping and filtering.

PurchaseOrder

A purchase order issued to a vendor.

REST path/api/v1/finance/purchase-orders
Operations
listgetcreateupdateapprove
SDK
// list — returns only your records; add filters/search:
await client.finance.purchaseOrders.list()

// create:
await client.finance.purchaseOrders.create({
  id: "rec_01HXEXAMPLE",
  tenant_id: "example tenant_id",
  created_at: "2026-01-01T00:00:00Z",
  updated_at: "2026-01-01T00:00:00Z",
  app_id: "example app_id",
  created_by: "rec_01HXEXAMPLE",
})
FieldTypeDescription
id*uuidServer-assigned ULID with type prefix (e.g. per_…).
tenant_id*stringTenant scope — auto-stamped from the caller's JWT.
app_idstringApp scope. Stamped ONLY when the caller's JWT was minted for a specific Application (integration API keys). Absent for human-user sessions. Filters reads when present.
created_at*date-timeServer stamp.
updated_at*date-timeServer stamp; updated on every patch.
created_byuuidPerson id from the caller's JWT (sub).
updated_byuuidPerson id from the last writer's JWT (sub).
sourcestringProvenance tag — defaults to 'edm'.
source_typeenumWhere the write originated. Defaults to 'api'.frontendbackendserversystemapi
is_deletedbooleanSoft-delete flag. Excluded from default list queries.
deleted_atdate-timeStamped when soft-deleted; null otherwise.
deleted_byuuidPerson id who soft-deleted; null otherwise.
schema_versionnumberDocument schema version. Bumped on incompatible writes.
numberstringHuman-readable unique purchase order number (e.g. 'PO-2026-0018').
vendor_iduuidUUID of the Vendor this PO is raised against.
statusstringLifecycle status of the purchase order.
requested_by_iduuidUUID of the Person who raised this purchase order.
approved_by_iduuidUUID of the Person who approved this purchase order. Null until approved.
issued_datedate-timeISO 8601 date the PO was formally issued to the vendor.
expected_delivery_datedate-timeISO 8601 expected date for delivery or fulfilment.
currencystringISO 4217 three-character currency code.
totalnumberTotal value of the purchase order.
line_itemsjsonOrdered list of line items for this purchase order.
notesstringFree-form notes or delivery instructions.
linked_contract_iduuidUUID of the Contract that covers this PO.
cost_center_iduuidUUID of the CostCenter to which this PO is charged.
supplier_iduuidSupplier / vendor the PO is raised against.
amountnumberPO total value.
order_datedate-timeISO 8601 date the PO was placed.
budget_iduuidBudget this PO draws down.
requested_byuuidPerson who raised this purchase order.
approved_byuuidPerson who approved this purchase order.
tagsjsonFree-form tags for grouping and filtering.

Expense

An expense claim.

REST path/api/v1/finance/expenses
Operations
listgetcreateupdateapprove
SDK
// list — returns only your records; add filters/search:
await client.finance.expenses.list()

// create:
await client.finance.expenses.create({
  id: "rec_01HXEXAMPLE",
  tenant_id: "example tenant_id",
  created_at: "2026-01-01T00:00:00Z",
  updated_at: "2026-01-01T00:00:00Z",
  app_id: "example app_id",
  created_by: "rec_01HXEXAMPLE",
})
FieldTypeDescription
id*uuidServer-assigned ULID with type prefix (e.g. per_…).
tenant_id*stringTenant scope — auto-stamped from the caller's JWT.
app_idstringApp scope. Stamped ONLY when the caller's JWT was minted for a specific Application (integration API keys). Absent for human-user sessions. Filters reads when present.
created_at*date-timeServer stamp.
updated_at*date-timeServer stamp; updated on every patch.
created_byuuidPerson id from the caller's JWT (sub).
updated_byuuidPerson id from the last writer's JWT (sub).
sourcestringProvenance tag — defaults to 'edm'.
source_typeenumWhere the write originated. Defaults to 'api'.frontendbackendserversystemapi
is_deletedbooleanSoft-delete flag. Excluded from default list queries.
deleted_atdate-timeStamped when soft-deleted; null otherwise.
deleted_byuuidPerson id who soft-deleted; null otherwise.
schema_versionnumberDocument schema version. Bumped on incompatible writes.
submitted_by_iduuidUUID of the Person who submitted this expense.
approved_by_iduuidUUID of the Person who approved or rejected this expense. Null until actioned.
categorystringExpense category for grouping and policy enforcement.
descriptionstringHuman-readable description of what was purchased and why.
amountnumberExpense amount in the stated currency.
currencystringISO 4217 three-character currency code.
expense_datedate-timeISO 8601 date the expense was incurred.
statusstringLifecycle status of the expense claim.
receipt_refstringMinIO path or external URL of the receipt image or PDF.
project_iduuidUUID of the Project this expense is charged against.
cost_center_iduuidUUID of the CostCenter this expense is charged against.
notesstringAdditional notes from the submitter or approver.
person_iduuidThe person who incurred the expense.
datedate-timeISO 8601 date of the expense.
merchantstringMerchant or vendor the expense was paid to.
receipt_urlstringExternal URL of the receipt image or PDF.
approved_byuuidPerson who approved this expense.
tagsjsonFree-form tags for grouping and filtering.

Budget

A budget envelope for a period and owner.

REST path/api/v1/finance/budgets
Operations
listgetcreateupdate
SDK
// list — returns only your records; add filters/search:
await client.finance.budgets.list()

// create:
await client.finance.budgets.create({
  id: "rec_01HXEXAMPLE",
  tenant_id: "example tenant_id",
  created_at: "2026-01-01T00:00:00Z",
  updated_at: "2026-01-01T00:00:00Z",
  app_id: "example app_id",
  created_by: "rec_01HXEXAMPLE",
})
FieldTypeDescription
id*uuidServer-assigned ULID with type prefix (e.g. per_…).
tenant_id*stringTenant scope — auto-stamped from the caller's JWT.
app_idstringApp scope. Stamped ONLY when the caller's JWT was minted for a specific Application (integration API keys). Absent for human-user sessions. Filters reads when present.
created_at*date-timeServer stamp.
updated_at*date-timeServer stamp; updated on every patch.
created_byuuidPerson id from the caller's JWT (sub).
updated_byuuidPerson id from the last writer's JWT (sub).
sourcestringProvenance tag — defaults to 'edm'.
source_typeenumWhere the write originated. Defaults to 'api'.frontendbackendserversystemapi
is_deletedbooleanSoft-delete flag. Excluded from default list queries.
deleted_atdate-timeStamped when soft-deleted; null otherwise.
deleted_byuuidPerson id who soft-deleted; null otherwise.
schema_versionnumberDocument schema version. Bumped on incompatible writes.
namestringDescriptive name for this budget (e.g. 'Engineering Q1 2026').
fiscal_yearstringFiscal year label (e.g. '2026' or 'FY2026').
periodstringBudget period granularity.
cost_center_iduuidUUID of the CostCenter this budget belongs to. Null for company-wide budgets.
owner_iduuidUUID of the Person responsible for this budget.
total_amountnumberTotal budget amount allocated for this period.
currencystringISO 4217 three-character currency code.
statusstringLifecycle status of the budget.
notesstringFree-form notes about this budget.
amountnumberTotal budgeted amount.
start_datedate-timeISO 8601 start date of the budget period.
end_datedate-timeISO 8601 end date of the budget period.
tagsjsonFree-form tags for grouping and filtering.

BudgetLine

A line item under a Budget.

REST path/api/v1/finance/budget-lines
Operations
listgetcreateupdate
SDK
// list — returns only your records; add filters/search:
await client.finance.budgetLines.list()

// create:
await client.finance.budgetLines.create({
  id: "rec_01HXEXAMPLE",
  tenant_id: "example tenant_id",
  created_at: "2026-01-01T00:00:00Z",
  updated_at: "2026-01-01T00:00:00Z",
  app_id: "example app_id",
  created_by: "rec_01HXEXAMPLE",
})
FieldTypeDescription
id*uuidServer-assigned ULID with type prefix (e.g. per_…).
tenant_id*stringTenant scope — auto-stamped from the caller's JWT.
app_idstringApp scope. Stamped ONLY when the caller's JWT was minted for a specific Application (integration API keys). Absent for human-user sessions. Filters reads when present.
created_at*date-timeServer stamp.
updated_at*date-timeServer stamp; updated on every patch.
created_byuuidPerson id from the caller's JWT (sub).
updated_byuuidPerson id from the last writer's JWT (sub).
sourcestringProvenance tag — defaults to 'edm'.
source_typeenumWhere the write originated. Defaults to 'api'.frontendbackendserversystemapi
is_deletedbooleanSoft-delete flag. Excluded from default list queries.
deleted_atdate-timeStamped when soft-deleted; null otherwise.
deleted_byuuidPerson id who soft-deleted; null otherwise.
schema_versionnumberDocument schema version. Bumped on incompatible writes.
budget_iduuidUUID of the parent Budget.
categorystringCategory label for this budget line (e.g. 'Software Licenses', 'Travel').
allocated_amountnumberAmount allocated to this budget line category.
spent_amountnumberComputed total actuals charged against this line. Read-only — maintained by the platform.
remaining_amountnumberComputed remaining balance (allocatedAmount - spentAmount). Read-only — maintained by the platform.
notesstringFree-form notes about this budget line.
descriptionstringWhat this budget line covers.
amountnumberBudgeted amount for this line.
currencystringISO 4217 three-character currency code.
spentnumberAmount spent to date.
cost_center_iduuidUUID of the CostCenter this budget line belongs to.
tagsjsonFree-form tags for grouping and filtering.