Skip to main content

Get Entry Sync Inspection

GET 

/api/ledger/entries/:entry/sync-inspection

Explain why a journal entry is (or is not) syncing to the accounting provider. Read-only — never writes.

Authentication: Requires Bearer token.

Response fields:

  • eligible (boolean) — the entry will sync automatically as it stands
  • enableable (boolean) — the entry won't auto-sync, but a manual sync (or a force_enabled override) will push it: its only blockers are settings opt-outs
  • can_sync_now (boolean) — eligible OR enableable; whether a manual sync would succeed right now
  • reasons (array of strings) — why automatic sync is blocked (empty when eligible). Possible codes: override_disabled, type_disabled, channel_disabled, granularity_off, before_type_sync_start_date, before_provider_sync_start_date, batch_member, batch_open, internal_only, connection_inactive, no_accounting_connection
  • structural_reasons (array of strings) — the subset that blocks even a manual sync (empty when the entry is eligible or enableable)
  • sync_override (string|null) — the entry's durable override (force_enabled / force_disabled), if any
  • sync_override_provenance (object|null) — who or what set the override: source (user, legacy_cutover, or system), set_at (ISO 8601), set_by ({id, name} of the user, or null)

Notes: channel_disabled blocks scheduled sync only — a manual sync still pushes the entry. Structural codes (connection_inactive, batch_member, batch_open, internal_only, before_provider_sync_start_date) cannot be bypassed.

Returns 404 when the entry does not exist.

Request

Responses

OK

Response Headers
    Content-Type