Resolve participant review
Resolve a pending participant review with no action. The relationship’s suspension state does not change. To suspend the relationship and resolve the review, use the suspensions route instead.
Resolution without action is asynchronous. Returns 202 when Moov Money
accepts the request. A 202 does not mean the review is resolved. Moov
Money checks expectedVersionID when it applies the resolution and
rejects a stale version. The 202 body is not defined yet. An applied
resolution appears in the review detail. The completion and rejection
reporting contract is not defined yet (ADR 024 Q10).
Send an X-Idempotency-Key header so a retried request is processed once.
Replaying the same key with the same body returns 202 again. Replaying it
with a different body returns a 409 with error code
idempotency-key-reused. Returns a 409 with error code
idempotency-request-in-progress when a request with this key is still
running. Returns 400 when the header is missing or malformed.
A review from another provider and a missing review both return 404. Returns 422 when the body fails validation.
Auth: API key or bearer token. Scoped to the calling provider. Requires participant-review write access.
curl -X POST https://api.moov.money/providers/{providerID}/participant-reviews/{reviewID}/resolutions \
-u "$MOOV_API_KEY_ID:$MOOV_API_KEY_SECRET" \
-H "X-Moov-Version: v2026.10.00" \
-H "X-Idempotency-Key: $(uuidgen)" \
-H "Content-Type: application/json" \
-d '{
"expectedVersionID": "review-v2",
"reason": "Concern cleared after investigation"
}'Response body application/problem+json
application/problem+json.
From v2026.10.00, every error response that has a body uses this schema.type
string
requiredhttps://api.moov.money/errors#<code> (for
example invalid-request, idempotency-key-reused, or
idempotency-request-in-progress). Treat the value as
an opaque constant and do not fetch it. about:blank means the HTTP
status code says everything there is to know.title
string
requiredstatus
integer<int32>
requireddetail
stringinstance
stringerrors
array<object>Show child attributes
errors[]
pointer
string
requireddetail
string
requiredResponse body application/problem+json
application/problem+json.
From v2026.10.00, every error response that has a body uses this schema.type
string
requiredhttps://api.moov.money/errors#<code> (for
example invalid-request, idempotency-key-reused, or
idempotency-request-in-progress). Treat the value as
an opaque constant and do not fetch it. about:blank means the HTTP
status code says everything there is to know.title
string
requiredstatus
integer<int32>
requireddetail
stringinstance
stringerrors
array<object>Show child attributes
errors[]
pointer
string
requireddetail
string
requiredResponse body application/problem+json
application/problem+json.
From v2026.10.00, every error response that has a body uses this schema.type
string
requiredhttps://api.moov.money/errors#<code> (for
example invalid-request, idempotency-key-reused, or
idempotency-request-in-progress). Treat the value as
an opaque constant and do not fetch it. about:blank means the HTTP
status code says everything there is to know.title
string
requiredstatus
integer<int32>
requireddetail
stringinstance
stringerrors
array<object>Show child attributes
errors[]
pointer
string
requireddetail
string
requiredHeaders
X-Moov-Version
stringv2026.10.00). When omitted, the server applies its default version.X-Idempotency-Key
string
requiredPath parameters
providerID
string
requiredreviewID
string
requiredRequest
reason
string
[1 to 512] characters
requiredexpectedVersionID
string
requiredversionID from your latest read.