The POST /journal-entries endpoint now accepts an optional related_entity field, allowing you to attach a customer or vendor to a journal entry at creation time.

{
  "related_entity": {
    "id": "<customer-or-vendor-uuid>",
    "type": "CUSTOMER"
  }
}

The type field accepts CUSTOMER or VENDOR. The entity ID is validated against your organization — invalid IDs will return a 400 error. V3 only.

  • Fix: Custom field assignments on revenue recognition only invoice items were not supported. The fields property is now accepted on create and update requests for revenue recognition only invoice items and is returned in GET responses.

A new endpoint to retrieve an executive profit and loss report:

  • GET /reports/executive-pl - Returns an executive P&L report with margins for a specified date range

Supports optional subsidiary_id, breakdown_by, consolidated, and currency parameters.

Full bank transaction lifecycle management:

  • POST /bank-transactions - Create a bank transaction
  • GET /bank-transactions - List all bank transactions
  • GET /bank-transactions/{bank_transaction_id} - Retrieve a bank transaction
  • PUT /bank-transactions/{bank_transaction_id} - Update a bank transaction
  • DELETE /bank-transactions/{bank_transaction_id} - Delete a bank transaction

Filter reporting journal entries by their posting date:

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

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

New endpoints to create and delete bank accounts:

  • POST /bank-accounts - Create a new bank account
  • DELETE /bank-accounts/{bank_account_id} - Delete a bank account

Added account mask and name fields to bank account responses.

A new endpoint to retrieve a cash flow statement report for a specified date range:

  • GET /reports/cash-flow-statement - Returns a cash flow statement report

Supports optional subsidiary_id and breakdown_by parameters.

A new endpoint to retrieve an income statement report for a specified date range:

  • GET /reports/income-statement - Returns an income statement report

Supports optional subsidiary_id and breakdown_by parameters.

Improved error handling for invalid input on Products and Contracts endpoints:

  • Invalid account codes on product creation/update now return 400 Bad Request instead of 500 Internal Server Error
  • Invalid contract status filter values now return 400 Bad Request instead of 500 Internal Server Error