Skip to main content
GET
Get ingestion job status

Authorizations

Authorization
string
header
required

Bearer token authentication (format: "Bearer {token}")

Headers

X-Request-Id
string

A unique identifier for tracing the request across services.

Path Parameters

contextId
string<uuid>
required

The unique identifier of the reconciliation context. Context ID

jobId
string<uuid>
required

Job ID

Response

Indicates that the request was successful and the response contains the expected data.

completedWithErrors
boolean
required

True when the job COMPLETED but at least one row failed — distinguishes a partially-failed import from a clean one

Example:

true

contextId
string<uuid>
required

Reconciliation context this job belongs to

Example:

"550e8400-e29b-41d4-a716-446655440000"

createdAt
string<date-time>
required

Creation timestamp (RFC 3339)

Example:

"2025-01-15T10:30:00Z"

droppedDuplicateRows
integer<int64>
required

Number of rows kept out of the import as duplicates (rows repeating the source's duplicate key within the upload or already persisted); see flaggedDuplicateRows for how many were also raised as exceptions

Required range: x >= 0
Example:

60

failureRatePercent
integer<int64>
required

Percentage of rows that failed, ceiling-rounded so any failure registers as at least 1%; 0 when no rows failed

Required range: 0 <= x <= 100
Example:

100

flaggedDuplicateRows
integer<int64>
required

Number of dropped duplicate ROWS raised as DUPLICATE_TRANSACTION exceptions on the transaction they repeated, under the FLAG_AS_EXCEPTION duplicate policy — the default (subset of droppedDuplicateRows). Not a queue-item count: repeats of the same transaction share one exception, which carries how many times it was repeated

Required range: x >= 0
Example:

15

id
string<uuid>
required

Unique identifier for the job

Example:

"550e8400-e29b-41d4-a716-446655440000"

persistedRows
integer<int64>
required

Number of transactions actually persisted by this job (additive diagnostics field; see also droppedDuplicateRows)

Required range: x >= 0
Example:

940

reviewRows
integer<int64>
required

Number of rows imported with status PENDING_REVIEW under the blank_external_id=NEEDS_REVIEW source policy — successful imports awaiting operator review, never counted as failures

Required range: x >= 0
Example:

9

sourceId
string<uuid>
required

Source this job ingests data into

Example:

"550e8400-e29b-41d4-a716-446655440000"

status
enum<string>
required

Job lifecycle status: QUEUED (awaiting a worker), PROCESSING (parsing/normalizing rows), COMPLETED (finished), FAILED (aborted wholesale)

Available options:
QUEUED,
PROCESSING,
COMPLETED,
FAILED
Example:

"PROCESSING"

completedAt
string<date-time>

When the job completed (RFC 3339); null until completed

Example:

"2025-01-15T10:35:00Z"

diagnosis
string

Safe one-line diagnosis of anything the parser found worth reporting about the file (dialect mismatch, degraded settlement re-join, zero-detail file), the rate-policy message for policy-FAILED jobs, or a generic safe message for other FAILED jobs. Present on COMPLETED jobs too, including ones with zero failed rows; empty when there is nothing to report — internal error detail is never surfaced here

Example:

"file appears semicolon-delimited but the source declares comma; declare delimiter semicolon in the source dialect"

droppedDuplicateReason
string

Display-only explanation of why droppedDuplicateRows rows were kept out of the import: names the source's duplicate key as the identity that collided, says the repeats were attached as exceptions to the rows they repeated when the job flagged any (repeats of one row share one exception, so the queue holds one item per repeated row), and names the repeats that raised nothing when fewer were flagged than dropped, so the count does not read as silent data loss and the customer is sent to the configuration that decides it. Empty unless droppedDuplicateRows > 0

Example:

"Rows repeated the duplicate key this source deduplicates on and were kept out of the import. This source flags duplicates, so each repeat whose original was found was attached to that original as a duplicate exception in the exceptions queue. Repeats of the same original share one exception, so the queue holds one item per repeated row, not one per repeat. The rest found no imported row to attach to (another import of this source may still have been in progress), so no exception was raised for them and they are not in the queue: re-upload those rows once every import of this source has finished. If unexpected, review the source's duplicate key and the fields it names (a coarse or truncated mapping collapses distinct rows onto one key)."

failedRows
integer<int64>

Number of rows that failed parsing or normalization

Required range: x >= 0
Example:

5

fileName
string

Original uploaded file name

Example:

"transactions_2024.csv"

startedAt
string<date-time>

When the job started (RFC 3339); null for QUEUED jobs

Example:

"2025-01-15T10:30:00Z"

totalRows
integer<int64>

Total number of data rows detected in the file

Required range: x >= 0
Example:

1000