Update external verification status
Records an external identity verification result for a user in EXTERNAL_ATTESTATION mode.
The status, provider name, and reference from the external verification process are stored
and used to determine the user's payment eligibility.
| Time | Status | User Agent | |
|---|---|---|---|
Retrieving recent requests… | |||
Records an externally-sourced identity verification result for an individual user that is in external-attestation mode. The endpoint stores the decision, the optional provider label, and reference on the user, updates the user's verification source, writes a verification history event, and returns the updated external verification state. The recorded result is what determines the user's payment eligibility while in external attestation.
Authentication & access
- Requires a client API token:
Authorization: Bearer <token>. - The caller must hold the
kyc.external_status.writepermission and have the OWNER or OPERATIONS role.
Verification mode precondition
This endpoint applies only to users in external attestation mode, where your client owns the verification decision and reports the outcome to UrbanpayX. The user identified by the user_id path parameter must already be set to external attestation. If the user is still in UrbanpayX-managed verification mode, the request returns 400 — switch the user to external attestation first.
Request body
| Field | Type | Required | Notes |
|---|---|---|---|
status | enum | yes | Decision to record. One of pending, verified, rejected. |
provider | string | no | Label for the external verification provider. Max 128 chars. |
reference | string | no | External case or reference identifier. Max 255 chars. |
reason | string | no | Explanation for the decision, recorded on the history event. Max 255 chars. |
payload | object | no | Raw external decision data, stored alongside the result. |
How status maps to verification source
status maps to verification sourceverified— sets the verification source toexternaland stampsverified_atwith the current time.rejected— sets the verification source toexternaland clearsverified_at.pending— sets the verification source tononeand clearsverified_at.
Response
200 on success, returning the updated external verification state:
user_id— the user that was updated.status— the recorded external verification status.source— the resulting verification source (none,urbanpayx, orexternal).provider— the stored provider label (may benull).reference— the stored external reference (may benull).verified_at— timestamp set only whenstatusisverified, otherwisenull.message— confirmation message.
Error responses
| Status | When |
|---|---|
400 | The user is in UrbanpayX-managed verification mode; switch the user to external attestation first |
404 | No user with this user_id exists under your client |
422 | Request body failed validation (e.g. invalid status, field exceeding its max length) |
Standard 401 (authentication), 403 (insufficient permission or role), and 429 (rate limit) responses apply to every endpoint and are documented in the Error reference.