Gravv DOCS
Docs Agent Get Started
API Reference Check feature eligibility

Check feature eligibility

Check if a customer is eligible for a specific feature and get the list of requirements

POST/v1/risk/features/eligibility

Headers

Required for POST requests. Reuse only for an identical retry.

Request Body

The unique identifier of the feature to check eligibility for

Possible values: crypto_wallet, virtual_cards, eur_account, usd_account, gbp_account, international_transfers

The customer ID to check eligibility for

Responses

Status Description
200 Feature eligibility check successful
400 Bad request - Invalid parameters
401 Unauthorized - Missing Authorization Token or API Key
404 Feature not found

200 response

The unique identifier of the customer

Whether the customer is eligible for the feature

The unique identifier of the feature

Date and time the requirements are met

Possible values: kyc_status, provider_data, document

List of requirements that haven’t been met

Describes how to fulfill the requirement. The shape depends on type: - provider_data{ type: "provider_data", data_key: string, field_type: string, description: string }. field_type is the expected value type (e.g. "string", "number"). - kyc_status{ type: "kyc_verification", url: string, method: "POST", description: string }. url is the endpoint to call to initiate KYC (e.g. /v1/risk/start-kyc). - document{ type: "document", url: string, method: "POST", doc_type: string, description: string }. url is the document upload endpoint.

One of the following variants:

Possible values: provider_data

Key name of the field to supply in provider_data

Expected value type for the field

Possible values: kyc_verification

Endpoint to call to initiate KYC verification

Possible values: document

Document upload endpoint

Possible values: kyc_status, provider_data, document

{
"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
}
{
"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
}

400 response

Always null for error responses

Human-readable error message

{
"data": null,
"error": "feature_id is required"
}

401 response

Always null for error responses

Human-readable error message

{
"data": null,
"error": "Invalid or missing Api-Key header. Api-Key is required!"
}

404 response

Always null for error responses

Human-readable error message

{
"data": null,
"error": "Feature not found"
}

Authorization

  • ApiKeyAuth
Was this page helpful?
Assistant
Responses are generated using AI and may contain mistakes.

Ask me anything about the documentation.

ESC