ERP sync

Get a sync run

Returns one ERP sync run (read-only operational visibility). Poll it after starting a pull, to follow that pull to completion. A run removed from the retained history answers not_found, like an unknown id.

Available to admin and readonly API keys (no side effects).

get/v1/sync-runs/{syncRunId}

Request

  • Base URL: https://api.getfinero.com/functions/v1/api
  • URL: https://api.getfinero.com/functions/v1/api/v1/sync-runs/{syncRunId}
  • Auth: HTTP bearer

Path parameters

syncRunIdstring uuid required

Sync run id.

Response

Success

idstring uuid required

Sync run id — poll this run until status is terminal.

connection_idstring uuid required

The ERP connection that ran.

direction'pull' | 'push' required

Sync direction. Every new run is pull — Finero no longer writes invoices back to an ERP. push remains in the enum because historical runs carry it.

trigger'manual' | 'scheduled' | 'api' required

How the run started: manual (a person, in the Finero app), scheduled (the connection's own cadence), or api (POST /v1/erp-connections/{connectionId}/sync). Until 2026-08-11 API-started runs were recorded as manual; they are api now, because reporting a machine-started run as a human one misattributes it.

status'running' | 'success' | 'partial' | 'failed' required

running is non-terminal; success/partial/failed are terminal. partial means the run ended with some invoices processed and some not: what WAS processed is applied and trustworthy. error_summary says why the rest was not — a failure on some items, or a pause at a per-run limit that the next sync resumes from; null means it only skipped invoices (items_skipped).

started_atstring date-time required

Run start time (ISO 8601 UTC).

finished_atstring date-time nullable required

Run finish time (null while running) (ISO 8601 UTC).

items_processedinteger required

Invoices durably processed by this run, including correctness-preserving boundary rechecks. This is operational work, not the number of ERP changes; use items_changed for that. Judge completion by status and freshness by the connection's last_successful_sync_at.

items_changedinteger nullable required

New invoices or invoices whose persisted ERP source_updated_at changed in this run. Zero is valid when positive items_processed only rechecks an inclusive cursor boundary. Null means the historical count is unknown.

items_failedinteger required

Invoices this run read but could not process.

items_skippedinteger required

Invoices NOT imported because the ERP sent them without a required value (named in skipped_invoices). Not a failure: the rest was imported, and the run is partial (success before 2026-10-02).

error_summarystring nullable required

Categorical failure summary (never raw provider payloads).

Changes

No recorded changes to this operation across all 1 revision of this API.