Check feature eligibility
Check whether a customer meets all requirements before you activate a feature. The eligibility check shows which requirements the customer meets and which ones remain unmet.
Check eligibility for a feature
Use the Check feature eligibility endpoint to verify if a customer can activate a specific feature. Include the feature_id and customer_id as query parameters:
curl --request POST \
--url https://api.gravv.xyz/v1/risk/features/eligibility \
--header 'Api-Key: <API_KEY>' \
--header 'Idempotency-Key: feature-eligibility-<UUID>' \
--header 'accept: application/json' \
--header 'content-type: application/json' \
--data '
{
"feature_id": "virtual_cards"
}
'
Understanding the response
If the customer meets all requirements, the response shows eligible: true and lists every requirement under requirements_fulfilled, with an empty requirements_pending:
{
"data": {
"customer_id": "5793f1ea-91f0-4892-9705-d37e0592dd3a",
"eligible": true,
"feature_id": "virtual_cards",
"requirements_fulfilled": [
{
"type": "kyc_status",
"value": "completed",
"fulfilled_at": "2025-12-16T10:52:29Z"
},
{
"type": "provider_data",
"value": "annual_remuneration",
"fulfilled_at": "2025-12-16T10:52:29Z"
},
{
"type": "provider_data",
"value": "estimated_monthly_limit",
"fulfilled_at": "2025-12-16T10:52:29Z"
},
{
"type": "provider_data",
"value": "ip_address",
"fulfilled_at": "2025-12-16T10:52:29Z"
}
],
"requirements_pending": []
},
"error": null
}
If the customer doesn't meet all requirements, the response shows eligible: false and lists the unmet requirements under requirements_pending:
{
"data": {
"customer_id": "5793f1ea-91f0-4892-9705-d37e0592dd3a",
"eligible": false,
"feature_id": "virtual_cards",
"requirements_fulfilled": [
{
"type": "kyc_status",
"value": "completed",
"fulfilled_at": "2025-12-16T10:52:29Z"
}
],
"requirements_pending": [
{
"type": "provider_data",
"required": "annual_remuneration",
"action": {
"type": "provider_data",
"data_key": "annual_remuneration"
}
},
{
"type": "provider_data",
"required": "estimated_monthly_limit",
"action": {
"type": "provider_data",
"data_key": "estimated_monthly_limit"
}
},
{
"type": "provider_data",
"required": "ip_address",
"action": {
"type": "provider_data",
"data_key": "ip_address"
}
}
]
},
"error": null
}
In this example, the customer has completed KYC but hasn't provided the required provider data yet.