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.

Was this page helpful?