Get review

GET
/providers/{providerID}/reviews/{reviewID}

Fetch one review. A payout review embeds the full payout detail plus the signals the authorize call carries: sender external ID, funding source, and fraud score. A request review embeds the request summary plus the requester external ID and fraud score. A review from another provider and a missing review both return 404.

Auth: API key or bearer token. Scoped to the calling provider.

Request
cURL
curl -X GET https://api.moov.money/providers/{providerID}/reviews/{reviewID} \
  -u "$MOOV_API_KEY_ID:$MOOV_API_KEY_SECRET" \
  -H "X-Moov-Version: v2026.10.00"
Responses
200 401 403 404
The request completed successfully.
{
  "review": {
    "assessmentDecision": "allow",
    "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",
    "fraudScore": 0,
    "fundingSource": "src_01HF5J9ZKQT4RXP8M2VYBN3D",
    "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"
      },
      "assessmentIDs": [
        "ras_01HF5J9ZKQT4RXP8M2VYBN3D"
      ],
      "claimedOn": "2026-10-06T15:04:00Z",
      "completedOn": "2026-10-06T15:05:00Z",
      "createdOn": "2026-10-06T15:00:00Z",
      "expiresOn": "2026-10-16T15:00:00Z",
      "fundedFrom": {
        "fundingType": "aft",
        "reference": "mmr-abc-123"
      },
      "hold": {
        "active": true,
        "expiresOn": "2026-10-06T17:00:00Z"
      },
      "memo": "Rent split",
      "operations": [
        {
          "externalReference": "aft-transfer-id",
          "failureCode": "denied",
          "occurredOn": "2026-10-06T15:00:01Z",
          "operationID": "op_01HF5J9ZKQT4RXP8M2VYBN3D",
          "rail": "aft",
          "status": "succeeded",
          "type": "collect"
        }
      ],
      "payoutID": "pay_01HF5J9ZKQT4RXP8M2VYBN3D",
      "recipient": {
        "displayName": "Jane Doe",
        "externalID": "C-2077",
        "funding": {
          "displayName": "Checking",
          "fundingType": "bank_account",
          "last4": "5612"
        },
        "participantID": "counterparty-id_user",
        "phoneNumber": "+15555551234"
      },
      "referenceNumber": "7K2Q9X4FC",
      "reviewIDs": [
        "prv_01HF5J9ZKQT4RXP8M2VYBN3D"
      ],
      "sender": {
        "displayName": "Jane Smith",
        "externalID": "C-1042",
        "funding": {
          "displayName": "Checking",
          "fundingType": "bank_account",
          "last4": "5612"
        },
        "participantID": "participant-id_user"
      },
      "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"
    },
    "requesterExternalID": "customer-abc-123",
    "resolutionNotes": "Verified account holder",
    "resolvedByDisplay": {
      "displayName": "Alex Reviewer"
    },
    "reviewID": "prv_01HF5J9ZKQT4RXP8M2VYBN3D",
    "reviewStatus": "pending",
    "riskAssessmentID": "ras_01HF5J9ZKQT4RXP8M2VYBN3D",
    "senderExternalID": "customer-abc-123",
    "type": "payout"
  }
}
Authentication missing, invalid, or insufficient.
Authentication present but the action is forbidden for this principal/claim.
The requested resource was not found.

Headers

X-Moov-Version

string
Set this header to the API version being targeted (e.g. v2026.10.00). When omitted, the server applies its default version.

Path parameters

providerID

string required
Your provider account ID.

reviewID

string required
Identifier of the review.

Response

Response envelope for get review; the review is nested under review.

review

object required
The full review detail.
Show child attributes

review

reviewID

string required
Unique system-assigned review identifier.

type

string<enum> required
Kind of payment under review. payout carries the full payout detail; request carries the request summary.
Possible values: payout, request

reviewStatus

string<enum> required
Current review status. Serialized as reviewStatus on the wire.
Possible values: pending, approved, rejected

reason

string
Human-readable reason the payment was placed in review.

riskAssessmentID

string
Risk assessment that produced this review, when available.

senderExternalID

string
Sender’s external ID: your identifier for the participant sending the payout. Present when the subject is a payout.

requesterExternalID

string
Requester’s external ID: your identifier for the participant who created the request. Present when the subject is a request.

fundingSource

string
Provider-issued token identifying the funding source the payout draws from. Opaque to Moov Money. Present when the subject is a payout.

fraudScore

number<double> required
Raw Sardine customer risk score from the assessment that produced this review, 0 to 100. Higher means riskier. Moov Money stores and returns the value as Sardine sends it, with no scaling or rounding. 0 when Sardine returns no customer score or when no assessment is linked to the review.

resolvedBy

string
Subject that resolved the review. Omitted while pending.

resolutionNotes

string
Free-form notes supplied at resolution. Omitted when empty.

payout

object
Full payout detail for the reviewer’s decision. Present when the subject is a payout.
Show child attributes

review.payout

payoutID

string required
Unique system-assigned payout identifier.

referenceNumber

string required
Short support reference for the payout.

amount

object required
Payout amount and currency.
Show child attributes

review.payout.amount

value

string required
Decimal amount as a string.

currency

object required
ISO 4217 currency descriptor.
Show child attributes

review.payout.amount.currency

code

string required
Uppercase 3-letter ISO 4217 currency code.

decimalPlaces

integer<uint8> required
Number of minor-unit decimal places for code. Required.

numericCode

string
ISO 4217 numeric currency code, if known. Informational only.

name

string
Human-readable currency name, if known. Informational only.

memo

string
Free-form note shown to the recipient on the claim page.

status

string<enum> required
Current lifecycle status of the payout.
Possible values: initiated, authorized, accepted, claiming, completed, failed, payout_failed, cancelled, expired, denied

sender

object required
The participant who sent the payout.
Show child attributes

review.payout.sender

participantID

string required
The initiator’s participant ID.

externalID

string
Your external ID for the initiator.

displayName

string
The initiator’s current name (given + family). Omitted when unknown.

funding

object
The initiator’s instrument for this payment: the funding source a payout sends from, or the funding destination a request pays into. Omitted until the instrument is known.
Show child attributes

review.payout.sender.funding

fundingType

string<enum> required
Instrument discriminator.
Possible values: card, bank_account

displayName

string
Human-readable display label, such as the account nickname or card brand. Omitted when unknown.

last4

string
Last four digits of the card number for card, or of the bank account number for bank_account. Omitted when unknown. At most 4 characters.

recipient

object required
The recipient. Only the addressed phone is known until the recipient claims the payout.
Show child attributes

review.payout.recipient

displayName

string
Counterparty display name (given + family) when known.

phoneNumber

string
Counterparty phone number in E.164 form when known.

participantID

string
The party’s participant ID, once the party is bound to the payment. Omitted for an unbound party, such as the recipient of an unclaimed payout or the payer of an open request. The ID does not give access to the record of a participant that is not yours.

externalID

string
Your external ID for the party. Present only when the party is your participant.

funding

object
The instrument the party used for this payment. Omitted until the instrument is known.
Show child attributes

review.payout.recipient.funding

fundingType

string<enum> required
Instrument discriminator.
Possible values: card, bank_account

displayName

string
Human-readable display label, such as the account nickname or card brand. Omitted when unknown.

last4

string
Last four digits of the card number for card, or of the bank account number for bank_account. Omitted when unknown. At most 4 characters.

hold

object required
The current risk hold on the payout.
Show child attributes

review.payout.hold

active

boolean required
Whether a risk restriction blocks the payment now.

expiresOn

string<date-time>
When the blocking restriction ends: the latest expiry among the reviews that block the payment. Omitted when active is false, and when any blocking review has no expiry.

reviewIDs

array<string> required
The payment reviews opened for this payout, oldest first. Empty when none exist.

assessmentIDs

array<string> required
The risk assessments recorded for this payout, oldest first. Empty when none exist.

fundedFrom

object
Funding model of the latest approved funding attempt. Omitted when no approved attempt exists yet.
Show child attributes

review.payout.fundedFrom

fundingType

string<enum> required
Funding model used for the approved attempt.
Possible values: aft, core_ledger, unknown

reference

string
Money movement reference for the approved attempt, when projected. Omitted when the ref has not yet been written.

operations

array<object> required
The recorded money movements of the payout, oldest first: the AFT pay-in or ledger hold, the pay-out, and any capture, release, or refund. Empty before the first operation.
Show child attributes

review.payout.operations[]

operationID

string required
Identifier of the operation.

type

string<enum> required
The money movement the operation performs.
Possible values: collect, authorize, capture, release, disburse, refund

rail

string<enum> required
The external system that moves the money.
Possible values: aft, oct, core_hold, core_credit

status

string<enum> required
Current status of the operation.
Possible values: reserved, pending, succeeded, failed, unknown

occurredOn

string<date-time> required
When the operation reached its current status: the resolution time for succeeded and failed, otherwise the time of the latest recorded change.

externalReference

string
The reference that the rail returned: the Moov transfer ID of an aft or oct operation, or the hold, release, capture, or credit reference that your ledger returned for a core_hold or core_credit operation. rail identifies the kind. A ledger reference is not a transfer ID. Omitted until the rail returns one.

failureCode

string
Machine-readable code for the latest failure. Can be present when status is failed, and while Moov Money retries the call. Omitted when no failure was recorded. Treat an unknown value as opaque.

createdOn

string<date-time> required
Timestamp when the payout was created.

expiresOn

string<date-time> required
Timestamp when the payout expires and can no longer be claimed.

claimedOn

string<date-time>
Timestamp when the recipient initiated the payout claim. Present only once the payout has been claimed.

completedOn

string<date-time>
Timestamp when the payout transfer settled. Present only when the payout has completed.

request

object
Request summary for the reviewer’s decision. Present when the subject is a request.
Show child attributes

review.request

requestID

string required
Unique system-assigned request identifier.

amount

object required
Request amount and currency.
Show child attributes

review.request.amount

value

string required
Decimal amount as a string.

currency

object required
ISO 4217 currency descriptor.
Show child attributes

review.request.amount.currency

code

string required
Uppercase 3-letter ISO 4217 currency code.

decimalPlaces

integer<uint8> required
Number of minor-unit decimal places for code. Required.

numericCode

string
ISO 4217 numeric currency code, if known. Informational only.

name

string
Human-readable currency name, if known. Informational only.

status

string<enum> required
Current lifecycle status of the request.
Possible values: created, authenticated, declined, cancelled, expired, paying, funded, disbursing, disbursement_failed, completed, reversing, reversal_failed, reversed, denied

memo

string
Requester-authored message, when present.

expiresOn

string<date-time> required
When the request expires. Always set: a request carries a fixed expiry from creation.

createdOn

string<date-time> required
When the request was created.

createdOn

string<date-time> required
When the review was created.

holdExpiresOn

string<date-time>
When the review hold stops blocking the payment. Omitted when the hold has no expiration. Expiration does not resolve the review.

resolvedOn

string<date-time>
When the review was resolved. Omitted while pending.

assessmentScore

number<double>
Known assessment score from 0 to 100. A recorded zero is a real score. Omitted when no score was recorded. fraudScore stays 0 when no legacy score was recorded.

assessmentDecision

string<enum>
Recorded decision of the linked assessment. Omitted when it was not recorded.
Possible values: allow, review, deny

assessmentReasons

array<string>
Recorded reasons from the linked assessment. Omitted when none were recorded.

resolvedByDisplay

object
Display recorded for the actor who resolved the review. Omitted when the actor is unknown. resolvedBy still identifies that actor.
Show child attributes

review.resolvedByDisplay

displayName

string required
Name shown for the actor. A user 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.

email

string
Email recorded for a person at resolution. Omitted for an application actor, a system actor, or when no email was recorded.

initiator

object
The participant who started the payment: the sender of a payout or the requester of a request. A name comes from your relationship with the party or from the name recorded on the payment, never from the profile of a participant that is not yours. Fields that are not known are omitted. Omitted when no initiator is recorded.
Show child attributes

review.initiator

participantID

string required
The initiator’s participant ID.

externalID

string
Your external ID for the initiator.

displayName

string
The initiator’s current name (given + family). Omitted when unknown.

funding

object
The initiator’s instrument for this payment: the funding source a payout sends from, or the funding destination a request pays into. Omitted until the instrument is known.
Show child attributes

review.initiator.funding

fundingType

string<enum> required
Instrument discriminator.
Possible values: card, bank_account

displayName

string
Human-readable display label, such as the account nickname or card brand. Omitted when unknown.

last4

string
Last four digits of the card number for card, or of the bank account number for bank_account. Omitted when unknown. At most 4 characters.

counterparty

object
The other party: the recipient of a payout or the payer of a request. The same name rule as initiator applies. Fields that are unbound or not known are omitted. Omitted when no counterparty is recorded.
Show child attributes

review.counterparty

displayName

string
Counterparty display name (given + family) when known.

phoneNumber

string
Counterparty phone number in E.164 form when known.

participantID

string
The party’s participant ID, once the party is bound to the payment. Omitted for an unbound party, such as the recipient of an unclaimed payout or the payer of an open request. The ID does not give access to the record of a participant that is not yours.

externalID

string
Your external ID for the party. Present only when the party is your participant.

funding

object
The instrument the party used for this payment. Omitted until the instrument is known.
Show child attributes

review.counterparty.funding

fundingType

string<enum> required
Instrument discriminator.
Possible values: card, bank_account

displayName

string
Human-readable display label, such as the account nickname or card brand. Omitted when unknown.

last4

string
Last four digits of the card number for card, or of the bank account number for bank_account. Omitted when unknown. At most 4 characters.