Accounting

Create accounting integration

Changed on

Create a new accounting integration. The behavior depends on the existing active integration:

  • If no active integration exists: Creates and returns new integration
  • If active integration exists with same vendor and vendor_account_id: Returns the existing active integration
  • If active integration exists with same vendor but different vendor_account_id: Returns 409 error
  • If active integration exists with different vendor: Returns 409 error

This ensures only one active integration exists per account.

Set amortization: true to also provision the amortization fields and enable the AMORTIZATION capability for the integration. Amortization is not available to every account yet; when it is unavailable, the request returns 403. The ERP opts into amortization by having these fields provisioned, so this works for any accounting integration created through this endpoint. Omitting the field (or passing false) leaves integration behavior unchanged.

Optionally accepts subsidiaries to enable/disable VAT per subsidiary on creation, so VAT can be turned on in the same call instead of a follow-up PATCH.

post/v3/accounting/integration

Request

Headers

Idempotency-Keystring

Caller-generated key (recommend a v4 UUID) that uniquely identifies this logical request. Reuse the same value when retrying so the request is de-duplicated.

Request body

amortizationboolean

When true, provisions the amortization fields (amortization template, template start/end dates, and amortize toggle) and enables the AMORTIZATION capability for the integration. Returns 403 when amortization is not available to the account. The ERP opts into amortization by having these fields provisioned, so this works for any accounting integration created through this endpoint. Omitting the field, or passing false, leaves the integration unchanged — the same provisioning also happens on the first POST /accounting/integration/{integration_id}/amortization, so this field only decides whether it happens up front.

vendor'CAMPFIRE' | 'DUALENTRY' | 'HANOVER_PARK' | 'INKLE' | 'RILLET' required

The accounting vendor/system

vendor_account_idstring required

The vendor account ID to tie this integration to

Example request

{
  "vendor": "RILLET",
  "vendor_account_id": "vendor_account_id"
}

Response

Integration created successfully

created_atstring date-time required

Timestamp when the integration was created

integration_idstring required

Unique identifier for the integration

status'ACTIVE' | 'DISABLED' required

Current status of the integration

vendor'CAMPFIRE' | 'DUALENTRY' | 'HANOVER_PARK' | 'INKLE' | 'RILLET' required

The accounting vendor/system

vendor_account_idstring required

The vendor account ID this integration is tied to

Example response

{
  "created_at": "2025-08-15T10:00:00Z",
  "integration_id": "int_abc123",
  "status": "ACTIVE",
  "vendor_account_id": "rillet_account_id"
}

Changes

    • breaking

      request property was restricted to a list of enum values

    • breaking

      the response's property type changed from no type to object for status

    • breaking

      the response's property type changed from no type to object for status

    • breaking

      the response's property type changed from no type to object for status

    • breaking

      the response's property type changed from no type to object for status

    • breaking

      the response's property type changed from no type to object for status

    • warning

      added the new AMORTIZATION_PROVISIONING_FAILED enum value to the response property for the response status

    • warning

      added the new AMORTIZATION_PROVISIONING_FAILED enum value to the response property for the response status

    • warning

      added the new AMORTIZATION_PROVISIONING_FAILED enum value to the response property for the response status

    • warning

      added the new AMORTIZATION_PROVISIONING_FAILED enum value to the response property for the response status

    • warning

      added the new AMORTIZATION_PROVISIONING_FAILED enum value to the response property for the response status

    • warning

      added the new CAMPFIRE enum value to the response property for the response status

    • warning

      added the new DUALENTRY enum value to the response property for the response status

    • warning

      added the new HANOVER_PARK enum value to the response property for the response status

    • warning

      added the new INKLE enum value to the response property for the response status

    • warning

      added the new RILLET enum value to the response property for the response status

    • info

      the endpoint scheme security bearer was added to the API

    • info

      api tag Accounting added

    • info

      api tag Accounting Integrations removed

    • info

      added the new optional header request parameter Idempotency-Key

    • info

      added the new optional request property

    • info

      added the new CAMPFIRE enum value to the request property

    • info

      added the new DUALENTRY enum value to the request property

    • info

      added the new HANOVER_PARK enum value to the request property

    • info

      added the new INKLE enum value to the request property

    • info

      added the new RILLET enum value to the request property