Resolve review
Resolve a pending review. Approve to let the payment proceed; reject to
block it. Rejecting the last pending review on a cancellable payout
(authorized or accepted) cancels that payout. Rejecting a request
review cancels nothing: the request blocks new pay attempts, and a funded
request is returned to the payer before disbursement.
Returns 201 with the resolved review. Re-resolving an already-resolved
review returns 409. A review from another provider returns 404 without
side effects. An invalid resolution value returns 400.
Auth: API key or bearer token. Scoped to the calling provider.
curl -X POST https://api.moov.money/providers/{providerID}/reviews/{reviewID}/resolutions \
-u "$MOOV_API_KEY_ID:$MOOV_API_KEY_SECRET" \
-H "X-Moov-Version: v2026.10.00" \
-H "Content-Type: application/json" \
-d '{
"notes": "Verified account holder",
"resolution": "approved"
}'{
"review": {
"assessmentScore": 0,
"counterparty": {
"displayName": "Jane Doe",
"externalID": "C-2077",
"funding": {
"displayName": "Checking",
"fundingType": "bank_account",
"last4": "5612"
},
"participantID": "counterparty-id_user",
"phoneNumber": "+15555551234"
},
"createdOn": "2026-08-31T12:00:00Z",
"flaggedParticipantID": "3v2whagmwvbujhwbt7v3nl6ffq_user",
"flaggedRole": "sender",
"initiator": {
"displayName": "Jane Smith",
"externalID": "C-1042",
"funding": {
"displayName": "Checking",
"fundingType": "bank_account",
"last4": "5612"
},
"participantID": "participant-id_user"
},
"payout": {
"amount": {
"currency": {
"code": "USD",
"decimalPlaces": 2,
"name": "US Dollar",
"numericCode": "840"
},
"value": "100.00"
},
"payoutID": "pay_01HF5J9ZKQT4RXP8M2VYBN3D",
"recipientName": "Jane Doe",
"status": "initiated"
},
"reason": "Payout amount above review threshold",
"request": {
"amount": {
"currency": {
"code": "USD",
"decimalPlaces": 2,
"name": "US Dollar",
"numericCode": "840"
},
"value": "100.00"
},
"createdOn": "2026-08-31T12:00:00Z",
"requestID": "01HF5J9ZKQT4RXP8M2VYBN3D_req",
"status": "created"
},
"reviewID": "prv_01HF5J9ZKQT4RXP8M2VYBN3D",
"riskAssessmentID": "ras_01HF5J9ZKQT4RXP8M2VYBN3D",
"status": "pending",
"type": "payout"
}
}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.Path parameters
providerID
string
requiredreviewID
string
requiredRequest
resolution must be approved or
rejected.resolution
string<enum>
requiredapproved or rejected.approved,
rejectednotes
stringResponse
review.review
object
requiredShow child attributes
review
reviewID
string
requiredtype
string<enum>
requiredpayout carries the payout summary; request carries the request summary.payout,
requeststatus
string<enum>
requiredpending,
approved,
rejectedreason
stringriskAssessmentID
stringpayout
objectShow child attributes
review.payout
payoutID
string
requiredamount
object
requiredShow child attributes
review.payout.amount
value
string
requiredcurrency
object
requiredShow child attributes
review.payout.amount.currency
code
string
requireddecimalPlaces
integer<uint8>
requiredcode. Required.numericCode
stringname
stringrecipientName
stringstatus
string<enum>
requiredinitiated,
authorized,
accepted,
claiming,
completed,
failed,
payout_failed,
cancelled,
expired,
deniedrequest
objectShow child attributes
review.request
requestID
string
requiredamount
object
requiredShow child attributes
review.request.amount
value
string
requiredcurrency
object
requiredShow child attributes
review.request.amount.currency
code
string
requireddecimalPlaces
integer<uint8>
requiredcode. Required.numericCode
stringname
stringstatus
string<enum>
requiredcreated,
authenticated,
declined,
cancelled,
expired,
paying,
funded,
disbursing,
disbursement_failed,
completed,
reversing,
reversal_failed,
reversed,
deniedmemo
stringexpiresOn
string<date-time>
requiredcreatedOn
string<date-time>
requiredcreatedOn
string<date-time>
requiredholdExpiresOn
string<date-time>resolvedOn
string<date-time>assessmentScore
number<double>flaggedParticipantID
stringflaggedRole
string<enum>sender,
requester,
payerinitiator
objectShow child attributes
review.initiator
participantID
string
requiredexternalID
stringdisplayName
stringfunding
objectShow child attributes
review.initiator.funding
fundingType
string<enum>
requiredcard,
bank_accountdisplayName
stringlast4
stringcard, or of the bank account number for bank_account. Omitted when unknown. At most 4 characters.counterparty
objectinitiator applies. Fields that are unbound or
not known are omitted. Omitted when no counterparty is recorded.Show child attributes
review.counterparty
displayName
stringphoneNumber
stringparticipantID
stringexternalID
stringfunding
objectShow child attributes
review.counterparty.funding
fundingType
string<enum>
requiredcard,
bank_accountdisplayName
stringlast4
stringcard, or of the bank account number for bank_account. Omitted when unknown. At most 4 characters.