Get setup progress
What it returns
status— the context lifecycle status:DRAFT(being configured),ACTIVE(running),PAUSED(suspended), orARCHIVED(retired).sources— source counts split by matching side:total,left,right.fieldMaps.mappedSources— number of mapped sources: those with a field map, plus CAMT.053 sources, which are self-mapped (the parser embeds the ISO 20022 mapping and ignores field maps).matchRules.total— match-rule count for the context.schedules.total— schedule count for the context.lastRun— the most recent match run (id,statusofPROCESSING/COMPLETED/FAILED, andcompletedAt). It isnullwhen the context has never run.readiness— activation-readiness summary (see below).next— the deterministic next setup action to take, ornullwhen the context is ready (see below).
Readiness and the checklist
The
readiness block reports whether the context satisfies every activation requirement:
missing holds stable slugs you can map to per-requirement checklist items. The possible values are:
sources_left— the context needs at least one LEFT-side source.sources_right— the context needs at least one RIGHT-side source.field_maps— at least one source is unmapped: it has no field map and is not a self-mapped CAMT.053 source.match_rules— the context needs at least one match rule.fee_rules— the context enables fee normalization but has no fee rule. This requirement is conditional: it appears only whenfeeNormalizationis set (NETorGROSS), and it mirrors the run precondition, which gates on fee rules — not fee schedules — being non-empty.
When a context is transitioned to
ACTIVE before it is ready, the update is rejected with the generic configuration invalid-state 409. That response does not include the missing slugs. Re-read setup progress after the conflict and use readiness.missing to render the remaining setup guidance.The next action
next turns readiness.missing into a concrete call. It is derived from missing[0] — the first unsatisfied requirement in the stable order above — and is null when the context is ready:
slug— the readiness slug this action satisfies.action— a stable semantic label you can key UI copy on.operationId,method,path— the endpoint to call to satisfy the requirement.requiredFields— the names of the fields that create request requires. They never carry values; you supply those.forSource— present only for thefield_mapsaction, naming the first unmapped source so you can fill{sourceId}without a separate lookup.
Both source-side actions resolve to the same
createSource operation — the side field is what distinguishes them.
How to use it during setup
- Render the checklist. On each step of the wizard, GET setup-progress and use the counts (
sources,fieldMaps,matchRules,schedules) to tick off completed items. - Drive the primary button from
next. Instead of reimplementing the requirement order client-side, call the operationnextnames; re-read setup-progress afterwards to get the following action. - Gate the “Activate” button. Enable activation only when
readiness.readyistrue; otherwise listreadiness.missingas the remaining steps. - Show run health. Once
lastRunis present, surface itsstatusandcompletedAtso operators can confirm the context is producing results.

