List participant reviews
List the participant reviews scoped to your provider, newest first. Each review belongs to one participant’s relationship with your provider. Reviews from other providers are never returned. Returns an empty list when none match. Participant reviews are separate from payment reviews.
status defaults to pending, the active review queue.
Pagination is cursor-based. Omit cursor to fetch the first page; use
nextCursor from each response to fetch the next page. A cursor is bound
to the filters that produced it.
Auth: API key or bearer token. Scoped to the calling provider. Requires participant-review read access.
curl -X GET https://api.moov.money/providers/{providerID}/participant-reviews \
-u "$MOOV_API_KEY_ID:$MOOV_API_KEY_SECRET" \
-H "X-Moov-Version: v2026.10.00"{
"hasMore": false,
"reviews": [
{
"assessmentIDs": [
"ras_01HF5J9ZKQT4RXP8M2VYBN3D"
],
"assigneeUserID": "4d7c1b9e-2f3a-4e5b-8c6d-7e8f9a0b1c2d",
"createdOn": "2026-10-06T15:00:00Z",
"externalID": "customer-abc-123",
"participantID": "3v2whagmwvbujhwbt7v3nl6ffq_user",
"reason": "Investigate sign-in activity",
"reviewID": "8b1f6c2e-4d3a-5e7f-9a0b-1c2d3e4f5a6b",
"status": "pending",
"versionID": "review-v2"
}
]
}{
"hasMore": false,
"reviews": [
{
"assessmentIDs": [
"ras_01HF5J9ZKQT4RXP8M2VYBN3D"
],
"assigneeUserID": "4d7c1b9e-2f3a-4e5b-8c6d-7e8f9a0b1c2d",
"createdOn": "2026-10-06T15:00:00Z",
"externalID": "customer-abc-123",
"participantID": "3v2whagmwvbujhwbt7v3nl6ffq_user",
"reason": "Investigate sign-in activity",
"resolution": {
"action": "suspend",
"actor": {
"callingAccountID": "acc_01HF5J9ZKQT4RXP8M2VYBN3D",
"kind": "user",
"userID": "4d7c1b9e-2f3a-4e5b-8c6d-7e8f9a0b1c2d"
},
"reason": "Unresolved identity concern",
"reasonCode": "suspected-fraud",
"resolvedByDisplay": {
"displayName": "Jordan Lee",
"email": "[email protected]"
},
"resolvedOn": "2026-10-06T16:00:00Z"
},
"reviewID": "8b1f6c2e-4d3a-5e7f-9a0b-1c2d3e4f5a6b",
"status": "resolved",
"versionID": "review-v3"
},
{
"assessmentIDs": [
"ras_01HF5J9ZKQT4RXP8M2VYBN3E"
],
"createdOn": "2026-10-05T12:00:00Z",
"externalID": "customer-def-456",
"participantID": "7k4xr2mqp9bujhwbt7v3nl6aaz_user",
"resolution": {
"action": "no_action",
"actor": {
"callingAccountID": "acc_01HF5J9ZKQT4RXP8M2VYBN3D",
"kind": "user",
"userID": "4d7c1b9e-2f3a-4e5b-8c6d-7e8f9a0b1c2d"
},
"reason": "Concern cleared after investigation",
"resolvedByDisplay": {
"displayName": "Jordan Lee",
"email": "[email protected]"
},
"resolvedOn": "2026-10-05T14:00:00Z"
},
"reviewID": "8b1f6c2e-4d3a-5e7f-9a0b-1c2d3e4f5a6c",
"status": "resolved",
"versionID": "review-v3"
}
]
}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
requiredHeaders
X-Moov-Version
stringv2026.10.00). When omitted, the server applies its default version.Path parameters
providerID
string
requiredQuery parameters
status
stringpending when omitted; unrecognized values return 400.pending,
resolvedq
stringSearch text. Moov Money trims it, and the trimmed value is at most 100
characters. A value that is the exact reviewID of one of your
participant reviews matches that review. Otherwise, a review matches
when one of these is true for the participant under review:
- The value is a case-insensitive substring of their given, family, or full name.
- The value is a phone fragment: only digits, spaces, and the
characters
+,(,),., and-, with at least three digits. Its digits are a substring of their phone number. - The value ends with
_userand is their exactparticipantID. - The value does not end with
_userand is the exactexternalIDyou assigned.
Email addresses are not searched. Returns a 422 problem of type
invalid-request when the trimmed value is longer than 100 characters,
or when a phone fragment has fewer than three digits.
participantID
stringparticipantID, or your
externalID for them. Both resolve to the same participant.limitGroupID
stringcursor
stringnextCursor. Omit to fetch the first page.limit
integer
<int32>Response
reviews
array<object>
requiredShow child attributes
reviews[]
reviewID
string
requiredparticipantID
string
requiredexternalID
string
requiredstatus
string<enum>
requiredpending,
resolvedversionID
string
requiredexpectedVersionID on your next note, assignment, or resolution.reason
stringassessmentIDs
array<string>
requiredassessmentID here. Empty when none are linked.assigneeUserID
stringcreatedOn
string<date-time>
requiredresolution
objectstatus is resolved.Show child attributes
reviews[].resolution
action
string<enum>
requiredno_action,
suspendreason
string
requiredreasonCode
string<enum>action is
suspend. When the relationship was already suspended, the relationship
keeps its original classification and this field records your decision
only.suspected-fraud,
account-compromise,
customer-request,
compliance-review,
legal-hold,
policy-violation,
otherresolvedOn
string<date-time>
requiredactor
object
requiredShow child attributes
reviews[].resolution.actor
kind
string<enum>
requireduser,
application,
systemuserID
stringkind is user. Omitted when kind is application or system.applicationKeyID
stringkind is application. Omitted when kind is user or system.callingAccountID
stringkind is user or application. Omitted when kind is system.resolvedByDisplay
objectactor when the review was resolved. A person shows
the name and email recorded then. An application actor and a system
actor show a fixed label. Omitted when no display was recorded; actor
still identifies who resolved the review.Show child attributes
reviews[].resolution.resolvedByDisplay
displayName
string
requireduser actor uses the name recorded at
resolution. An application actor uses the fixed label
API application. A system actor uses the fixed label Moov Money.stringnextCursor
stringhasMore
boolean
required