Gravv docs
Docs Agent Sign in Get API keys

Check feature eligibility

Lists the requirements a customer has met, and those still pending, for one feature. The call only reads data, but it is a POST and needs an Idempotency-Key. A repeated key returns the cached answer for 24 hours, so use a new key for each check. Every error is HTTP 400.

POSThttps://api.gravv.xyz/v1/risk/features/eligibility

Headers

Required for POST requests. 1 to 255 printable ASCII characters. A retry with the same key and body within 24 hours returns the first response.

Request Body

The catalogue lists six features: virtual_cards (Cards), usd_account, eur_account and gbp_account (accounts), crypto_wallet (Wallet) and international_transfers (Payout). These routes serve cards, so send virtual_cards. Open accounts, wallets and payouts with their own APIs.

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

ID of the customer

Responses

Status Description
200 Requirements met and pending
400 Invalid customer, or the check failed. An unknown feature_id and a customer with no KYC record both give the generic message.

200 response

True when nothing is pending. For virtual_cards it stays false until activation, because the pending provider_data items are the fields you send to activate.

Possible values: kyc_status, provider_data

Time in RFC 3339 format for KYC. Empty for other types.

Possible values: kyc_status, provider_data, document

What is needed

The current KYC status, for kyc_status

How to meet the requirement. For provider_data it names the data_key to send in provider_data when you activate. For kyc_status it points to v1/risk/start-kyc.

{
"data": {
"customer_id": "5793f1ea-91f0-4892-9705-d37e0592dd3a",
"eligible": true,
"feature_id": "usd_account",
"requirements_fulfilled": [
  {
    "type": "kyc_status",
    "value": "completed",
    "fulfilled_at": "2026-10-13T10:01:02Z"
  }
],
"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": "2026-10-13T10:01:02Z"
  }
],
"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"
    }
  }
]
},
"error": null
}

400 response

Always null for error responses

{
"data": null,
"error": "Failed to check feature eligibility"
}

Authorization

  • ApiKeyAuth
Was this page helpful?
ESC