Contract usage billing configuration has been restructured into a single usage_configuration object:

  • Breaking Change: The usage_overage_invoicing and usage_commitment top-level fields on the Contract response have been replaced by usage_configuration
  • The new usage_configuration object contains:
    • usage_invoicing - Usage invoicing frequency, payment terms, invoice date, and cycle
    • minimum_commitment_invoicing - Commitment invoicing frequency and payment terms (only present when a minimum commitment is configured)
    • minimum_commitment_cycle - How often the minimum commitment resets (MONTHLY or CONTRACT)
    • contract_level_minimum_commitment - Shared minimum commitment across all usage items
  • Item-level minimum commitments: Contract items with usage pricing now support usage_minimum_commitment for per-item commitments
  • The interval field has been removed from UsageCommitment; use minimum_commitment_cycle instead

List journal entries with line item amounts converted to the subsidiary's reporting currency:

  • GET /reports/journal-entries - Returns reporting journal entries with local and reporting currency amounts
  • Supports pagination via limit and cursor parameters
  • Filter by subsidiary_id or updated.gt timestamp
  • Sort by created (default) or updated

List all available tax rates via the API:

  • GET /tax-rates - Returns all tax rates with their IDs, codes, country, description, and percentage
  • GET /tax-rates?country=US - Filter tax rates by country using a two-letter country code (ISO 3166-1 alpha-2)

Use the returned tax rate IDs when creating bills with specific tax codes.

Bill line items now accept an optional tax_code to reference a predefined tax rate:

  • Added optional tax_code field to the tax rate object on bill line items
  • When provided, the predefined rate's percentage, country, and description are used instead of the inline values

Filter journal entries by their posting date (the date the entry impacts the general ledger):

  • GET /journal-entries?date.gte=2023-12-01&date.lte=2023-12-31 - All JEs posted in December 2023

Supports date.gte and date.lte parameters, which can be combined to define a date window.

Subscribe to journal entry lifecycle events:

  • journal-entry-created - Triggered when a journal entry is created
  • journal-entry-updated - Triggered when a journal entry is updated
  • journal-entry-deleted - Triggered when a journal entry is deleted

Custom fields now include timestamps and support filtering by last update time:

  • Fields now include an updated_at field in API responses showing when the field was last modified
  • GET /fields?updated.gt={timestamp} - Filter fields updated after a specific timestamp

This allows you to efficiently synchronize custom field definitions by fetching only recently modified fields.

Filter accounts by their last update time using the updated.gt parameter:

  • GET /accounts?updated.gt={timestamp} - Accounts updated after timestamp

This allows you to efficiently synchronize account data by fetching only recently modified accounts.

Accounts now include an updated_at field in API responses. This field contains a timestamp of when the account was last modified.

This aligns accounts with other entities (Customer, Invoice, Payment, Credit Memo, Journal Entry) that already include updated_at.

A new endpoint to retrieve a balance sheet report as of a specified date:

  • GET /reports/balance-sheet - Returns a balance sheet report with assets, liabilities, and equity sections

Supports optional subsidiary_id and breakdown_by parameters.