Resolve Field Review
Resolve one held field: approve keeps the value, correct or override promotes a replacement. Writes a promotion cell, appends to the decision log, and resumes the field.
Resolve one held field. The action is approve to keep the held value, or correct / override to promote a replacement supplied in corrected_value. Every action writes a promotion cell version so the value becomes canonical, appends a row to the per-field decision log, and resumes the field. A gate-blocked field re-runs its remaining phases; a declarative hold completes directly.
The promotion cell is written synchronously before the field-state flip, so a data product never reads a resolved-but-still-held value. The decision is attributed to the api actor in the decision log, which keeps API-driven resolutions auditable without forging a user record. The reason note is recorded against the decision and is recommended for overrides.
The field must currently be in review (blocked or pending_review); resolving a field that is not in review returns 400. There is a re-block loop guard: an approve or override decision for a field and gate suppresses re-blocking on re-validation, while a correct does not, since a corrected value that still fails is a genuinely new review item. This endpoint requires an API key with the write scope.
correct when you are supplying the right value (it is required for correct). Use override to force a value past a gate you judge wrong; corrected_value is optional for override and, when omitted, the held value is promoted as-is./v1/field-reviews/{docId}/{fieldKey}/resolveResponse
Response fields
Response
{
"fieldKey": "total_amount",
"status": "progressing",
"currentPhaseId": "validation",
"blockedAtStageId": null,
"blockedByField": null,
"reviewTrigger": null,
"reviewRouting": null,
"reviewRequestedAt": null,
"resolveAction": "correct",
"resolvedAt": "2024-09-14T11:20:05.000Z",
"deliveredAt": null
}Errors
Error responses