status field on an identity is the single source of truth for what it can do. The status_details object — available on Get Identity and List Identities responses — gives a structured breakdown of why an identity is in a given state and what, if anything, needs to happen next. Use it to drive onboarding flows, surface actionable messaging to your users, and respond to lifecycle events.
Summary Status
An identity has five possible states:
The onboarding decision —
APPROVED or DENIED — is made asynchronously after you submit the identity. The decision is based on the identity’s risk rating and the outcome of its verification checks. Use webhooks to be notified when the decision is made rather than polling.
status to gate access to your integration — only identities in APPROVED status can transact.
This status determines what the identity can do:
*Crypto deposits received by identities in
DISABLED or ERROR status are held for review.
summary_statusreturns the same values and is deprecated. Usestatusgoing forward.
Requirements
status_details.requirements lists all outstanding requirements affecting an identity. Use it to understand what is blocking or pending, drive onboarding flows, and determine whether your application needs to take action.
Requirement Status
Requirement Types
Who Needs to Act
Useawaiting_action_from to decide whether to wait or take action:
Surfacing Requirements to Users
You are responsible for crafting user-facing copy. Use the combination oftype, awaiting_action_from, and status to determine what to show. The messages below are illustrative examples only — tailor them to your product’s tone and your users’ context:
Error Codes
Theerrors[].code field is a machine-readable enum for logging and routing logic. Do not expose code or description directly to end users — both are intended for developer use only.
IDENTITY_VERIFICATION_REQUIREDIDENTITY_VERIFICATION_FAILEDDOCUMENT_UPLOAD_REQUIREDDOCUMENT_VERIFICATION_FAILEDSCREENING_IN_PROGRESSSCREENING_FAILEDCOMPLIANCE_REVIEW_REQUIREDCOMPLIANCE_REVIEW_FAILEDEDD_DOCUMENTATION_REQUIREDMEMBER_VERIFICATION_PENDINGMEMBER_VERIFICATION_FAILEDTIN_NOT_FOUNDKYC_REFRESH_REQUIREDKYC_REFRESH_OVERDUE
The MEMBERS Requirement
Whentype is MEMBERS, check the top-level institution_members array in the response to identify which members are failing or pending:
identity_id to retrieve their individual status_details and requirements.
Active Controls
Controls allow Paxos or your application to restrict what an identity can do — independently of its compliance status. An identity that has passed all requirements can still have a control applied to limit its activity.status reflects the outcome of the compliance review; active_controls reflects operational restrictions layered on top.
Controls are applied by two parties:
- Paxos (
SET_BY_PAXOS) — applied for compliance or risk reasons. Contact Support if you believe a control was applied in error. - Your application (
SET_BY_CLIENT) — applied programmatically via the Identity Controls API, for example to mark an inactive account as dormant.
status_details.active_controls lists all controls currently in effect:
An empty
active_controls array means no controls are in effect.
Sub-statuses
The following fields may still appear in identity responses and reflect the outcome of individual verification checks.Sanctions Verification (sanctions_verification_status)
PENDING— Sanctions check in progress.APPROVED— No sanctions hit found.DENIED— Sanctions hit found. Cannot proceed.ERROR— Possible sanctions hit, held for manual review.
Additional Screening (additional_screening_status)
PENDING— Screening checks in progress.APPROVED— Passed all screening checks.DENIED— Failed screening checks.ERROR— Possible screening hit, held for manual review.
Additional screening covers negative news and politically exposed person checks. Sanctions checks are reported separately in sanctions_verification_status.
ID Verification (id_verification_status, persons only)
PENDING— Verification in progress.APPROVED— Identity confirmed.DENIED— Unable to verify the person’s identity.
When using Passthrough IDV,id_verification_statusreflects thepassthrough_verification_statusprovided at identity creation. Note thatpassthrough_verification_statuscan only be set to a terminal status —APPROVEDorDENIED.
Staying Current with Webhooks
Theidentity_summary_status_change webhook fires when an identity’s status changes and includes status_details.requirements in the Event API response.
This webhook fires on status changes only — not on every individual requirement change within a stable status. Call Get Identity to retrieve the latest requirements at any point.
Migrating from Deprecated Fields
The following fields are deprecated and will be removed in a future release. Migrate tostatus and status_details instead.
Questions? Contact Support.