The custom fields endpoints are now generally available. You can create custom fields to extend your data model.

  • POST /fields - Create a custom field
  • PUT /fields/{id} - Update a custom field
  • POST /fields/{id}/values - Add a value to a custom field
  • PUT /fields/{fieldId}/values/{fieldValueId} - Update a field value
  • DELETE /fields/{fieldId}/values/{fieldValueId} - Delete a field value
  • Customer Update Behavior: When updating a customer via the API, fields that are not provided or set to null in the payload will no longer override existing values. This prevents accidental data loss when performing partial updates.
  • Customer Response Enhancement: The GET /customers/{id} endpoint now returns customer custom field values in the response.
  • Full field definitions are now returned in API responses that include custom fields.
  • Invoice Association: You can now assign an invoice_id when creating a credit memo, allowing you to directly link credit memos to specific invoices.
  • Custom Credit Memo Numbers: Added optional credit_memo_number field to credit memo creation requests, allowing you to specify your own credit memo numbers.

Subscribe to vendor lifecycle events:

  • vendor-created - Triggered when a vendor is created
  • vendor-updated - Triggered when a vendor is updated
  • vendor-deleted - Triggered when a vendor is deleted

Subscribe to bill lifecycle events:

  • bill-created - Triggered when a bill is created
  • bill-updated - Triggered when a bill is updated
  • bill-deleted - Triggered when a bill is deleted
  • POST /bills/{bill_id}/document - Upload and attach a PDF document to a bill using multipart/form-data.

The following entities now include an updated_at field in API responses:

  • Customer
  • Invoice
  • Payment
  • Credit Memo

This field contains a timestamp of when the entity was last modified, useful for synchronization and caching scenarios.

  • Breaking Change: The amending_reference field is now required when amending a contract item. Previously, amending was required. Update your integration to use amending_reference to identify the item being amended.