DailyAPI Documentationv1

Expenses, categories, and payments

Manage expense fields, revisions, approval, voiding, categories, and payment allocations.

View OpenAPI

Permissions and routes

Use expenses:read for reads and expenses:write for writes. Writes are available when the expense system is enabled.

ResourceReadCreateUpdateDelete or void
ExpensesGET /expenses, GET /expenses/{id}POST /expensesPATCH /expenses/{id}DELETE /expenses/{id} for a draft; POST /expenses/{id}/void to void
CategoriesGET /expense-categories, GET /expense-categories/{id}POST /expense-categoriesPATCH /expense-categories/{id}DELETE /expense-categories/{id}
Expense paymentsGET /expense-payments, GET /expense-payments/{id}POST /expense-paymentsReverse and record a corrected paymentPOST /expense-payments/{id}/reverse

POST /expenses/{id}/approve approves an expense and requires confirmed: true and expected_revision. Voiding and deletion also require reason and confirmed: true. A deleted draft is hidden from the list; a previously approved expense remains available in the voided state. POST /expenses/{id}/credit-allocations allocates credit from another expense.

All writes require Idempotency-Key. Updates, deletion, approval, and allocations require the version fields in the schema. Deleting a category accepts an ExpenseCategoryDto body with its current version and does not delete historical expenses.

Complete fields

The reference schemas CreateExpenseDto, UpdateExpenseDto, ExpenseLineDto, ExpenseCategoryDto, ExpensePaymentDto, and ExpenseCreditDto define all writable fields: supplier and identifying details, supplier document number, document type, dates, currency, amounts, VAT, notes, category, lines and classification, business-use ratios, expense recognition, and VAT recovery.

The response also includes revision, review status, calculations, issues blocking approval, amount due, credits, and payment allocations. Amounts are calculated from the lines and system rules; calculated fields cannot be overridden in the request body.

Create an expense draft

: "${DAILY_API_KEY:?API key required}"
operation_id="$(uuidgen)"
curl --fail-with-body --silent --show-error \
  'https://api.godaily.co.il/v1/expenses' \
  -H "Authorization: Bearer $DAILY_API_KEY" \
  -H 'Content-Type: application/json' \
  -H "Idempotency-Key: $operation_id" \
  --data '{"supplier_name":"Local supplier","description":"Equipment purchase","currency":"ILS","review_status":"DRAFT"}'

Before approval, complete the fields required by validation, fetch revision, and pass it as expected_revision. Payments and allocations are recorded in a transaction and verify that every expense and supplier belongs to the same business.

Pagination and filtering

Lists return data, page.has_more, page.next_cursor, and request_id. The default page size is 50 records and the maximum is 100. Expenses and categories are ordered by updated_at and then ID, descending. Payments are ordered by created_at and then ID; they do not support updated_after or search.

Expenses support status=draft|needs_review|approved|voided and search by supplier name, description, or supplier document number. Filter only on fields listed for the operation in the reference.

Reference for all fields · Write rules

Imported expenses

Historical Morning expenses are available separately through GET /imported-expenses/morning and GET /imported-expenses/morning/{id} with expenses:read. The list supports pagination, time filtering, and search by supplier name or document number. Responses include amounts, VAT, currency, and imported ILS values; historical source data is read-only.

Payment and reversal operations return payment_id and an expenses array with updated revisions. Payment creation also returns unallocated_amount. Credit allocation returns allocation_id and expenses. Use the updated revisions for the next operation.

On this page