Gravv docs
Docs Agent Sign in Get API keys

Get a customer's KYC review status

Reads the live review state for a customer's verification. It does not change the customer's KYC status, which only the webhooks update.

For the final result, read kyc on the customer (GET /v1/customers/{customer_id}) or listen for the customer.kyc.status.* webhooks. reviewStatus: completed with reviewAnswer: rejected means verification failed. Customers verified by automatic document verification have no review and get a 404 here.

GEThttps://api.gravv.xyz/v1/customers/{customer_id}/kyc/status

Path Parameters

UUID of the customer

Responses

Status Description
200 Current review state
400 Invalid customer ID
404 Customer not found, or verification not started
500 The review state could not be read
503 The service is not configured or not reachable. Retry later.

200 response

Review state: pending, on_hold or completed. Other values from the review are passed through as they are. completed with reviewAnswer rejected means verification failed.

Review outcome. Omitted until there is a result.

Verification decision.

Possible values: approved, rejected, pending

Reason codes. Present only when the review is rejected.

Rejection category, such as RETRY or FINAL. Present only when the review is rejected.

Time of the review decision, as YYYY-MM-DD HH:MM:SS+0000. Omitted until the review is done.

Review queue priority.

{
"data": {
"reviewStatus": "completed",
"reviewResult": {
  "reviewAnswer": "approved"
},
"reviewDate": "2026-06-19 21:59:00+0000",
"priority": 0
},
"error": null
}
{
"data": {
"reviewStatus": "completed",
"reviewResult": {
  "reviewAnswer": "rejected",
  "rejectLabels": [
    "BAD_SELFIE"
  ],
  "reviewRejectType": "RETRY"
},
"reviewDate": "2026-06-19 20:44:19+0000",
"priority": 0
},
"error": null
}
{
"data": {
"reviewStatus": "pending",
"priority": 0
},
"error": null
}

400 response

Always null for error responses

Error message. Most messages start with an upper-case code and a colon, such as INVALID_REQUEST: ....

{
"data": null,
"error": "INVALID_REQUEST: The customer ID provided is not valid. Please verify the customer ID format."
}

404 response

Always null for error responses

Error message. Most messages start with an upper-case code and a colon, such as INVALID_REQUEST: ....

{
"data": null,
"error": "CUSTOMER_NOT_FOUND: Customer not found. Please verify the customer exists in our system."
}
{
"data": null,
"error": "no applicant found for customer; KYC has not been initiated"
}

500 response

Always null for error responses

Error message. Most messages start with an upper-case code and a colon, such as INVALID_REQUEST: ....

{
"data": null,
"error": "failed to retrieve applicant status"
}

503 response

Always null for error responses

Error message. Most messages start with an upper-case code and a colon, such as INVALID_REQUEST: ....

{
"data": null,
"error": "verification provider not configured"
}

Authorization

  • ApiKeyAuth
Was this page helpful?
ESC