API reference
Every endpoint of the Vindex API, with its fields, what it returns, the errors it can give, and code you can paste. Signed in? Try any of them in test mode.
Base URL
https://api.vindexgrid.com/v1
Authentication
Authorization: Bearer vdx_test_…
Version
2026-11-05
Account
Verifications
Screenings
Balance
Errors are problem details with a stable code; there are 22 of them. Every POST takes an Idempotency-Key. Keys, limits and paging are explained in Keys, limits and conventions.
Account
Who you are calling as.
/v1/meCheck your key
Which partner, environment and key a request authenticates as. Free; handy for testing your setup.
Returns
200 A key info object.
› Show its fields
Errors
400 Bad request401 Not authenticated402 Not enough credits403 Not allowed404 Not found409 Conflict422 Invalid fields429 Too many requests
curl https://api.vindexgrid.com/v1/me \
-H "Authorization: Bearer $VINDEX_API_KEY"{
"object": "api_key_info",
"livemode": false,
"api_version": "2026-11-05",
"partner": {
"id": "ptn_0vZ3aB4cD5eF6gH7iJ8kL9",
"name": "Acme Lending",
"status": "live"
},
"key": {
"id": "key_0vZ3aB4cD5eF6gH7iJ8kM1",
"name": "Production server",
"scopes": [
"*"
]
}
}Verifications
Verify a person (KYC) or a company (KYB) through Vindex's hosted flow.
/v1/verificationsCreate a verification
Start verifying a person or a company. Returns the verification with a hosted link to send to your customer; they complete Vindex's flow (documents, consent, face check) there.
The verification's price is held from your credits now and charged when the customer submits. If the link expires or you cancel first, the hold is released and nothing is charged.
In test mode nothing reaches Vindex's reviewers. The outcome comes from test_scenario, or from the last name (or company name) ending in Approved, Conditional, Rejected or ActionRequired; anything else is approved.
verifications:writeWrite limitBody
Verify a person (KYC) or a company (KYB).
One ofindividualcompany- Show its fieldsHide its fields
Required when type is company.
Country of incorporation (ISO alpha-2)
two-letter country code
1–200 characters
Show its fieldsHide its fields
- Show its fieldsHide its fields
The person who will complete the hosted flow
up to 100 characters
up to 254 characters
up to 200 characters
up to 32 characters
CIN, company number or equivalent
up to 64 characters
up to 300 characters
Your id for this customer. Searchable; not unique.
up to 255 characters
- Show its fieldsHide its fields
Required when type is individual.
1–100 characters
1–100 characters
Show its fieldsHide its fields
Employer or company they act for
up to 200 characters
Country of residence (ISO alpha-2)
two-letter country code
Their role at that company
up to 100 characters
up to 254 characters
up to 100 characters
two-letter country code
E.164 if possible, e.g. +919876543210
up to 32 characters
Seconds until the hosted link expires. Default 7 days.
3,600 to 2,592,000
format ^[a-z]{2}(-[A-Z]{2})?$
Up to 50 keys of your own. No personal data.
Where the customer goes when they finish (https).
up to 2048 characters
Test mode only: the outcome to simulate after the customer submits.
One ofapproveapprove_with_conditionsrejectaction_required
Returns
201 A verification object.
› Show its fields
Vindex's case reference; quote it to Vindex support
Conditions attached to an approval with conditions
Show its fieldsHide its fields
Only returned when a link is created. Send it to your customer; don't store it.
Vindex's recommendation once decided
One ofapprovedapproved_with_conditionsrejectedShow its fieldsHide its fields
- One of
acceptedrejected
Show its fieldsHide its fields
- One of
outcome_lettercustomer_report
low, medium, high (or Vindex's rating)
Finer progress for display: awaiting_customer, customer_in_progress, screening, under_review, final_review, awaiting_customer_response, appeal_review, decided
- One of
createdin_progresssubmittedaction_requireddecidedexpiredcanceled - One of
individualcompany
Errors
400 Bad request401 Not authenticated402 Not enough credits403 Not allowed404 Not found409 Conflict422 Invalid fields429 Too many requests
curl https://api.vindexgrid.com/v1/verifications \
-H "Authorization: Bearer $VINDEX_API_KEY" \
-H "Idempotency-Key: $(uuidgen)" \
-H "Content-Type: application/json" \
-d '{
"type": "individual",
"external_reference": "crm-42",
"individual": {
"first_name": "Aarav",
"last_name": "Sharma",
"email": "aarav.sharma@example.com",
"country": "IN",
"date_of_birth": "1990-04-12"
},
"redirect_url": "https://acme.example/kyc/done",
"metadata": {
"plan": "gold"
}
}'{
"id": "ver_0vZ3kq9XfJ1mB7c2Lr8sTy",
"object": "verification",
"livemode": false,
"type": "individual",
"status": "created",
"stage": "awaiting_customer",
"outcome": null,
"risk_rating": null,
"conditions": [],
"external_reference": "crm-42",
"metadata": {
"plan": "gold"
},
"case_reference": null,
"hosted_link": {
"url": "https://vindexgrid.com/verify/#vlt_x8Qm2Lr0Hc5Wk9Ts3Ny7Vb1Pd4Zf6Ga",
"expires_at": "2026-11-12T10:24:51Z",
"active": true
},
"redirect_url": "https://acme.example/kyc/done",
"locale": "en",
"credits": {
"price": 70,
"held": 70,
"charged": 0
},
"reports": [
{
"type": "outcome_letter",
"available": false,
"generated_at": null
},
{
"type": "customer_report",
"available": false,
"generated_at": null
}
],
"partner_decision": null,
"created_at": "2026-11-05T10:24:51Z",
"started_at": null,
"submitted_at": null,
"action_required_at": null,
"decided_at": null,
"expired_at": null,
"canceled_at": null,
"updated_at": "2026-11-05T10:24:51Z"
}/v1/verificationsList verifications
Newest first. Page with starting_after set to the last id you received while has_more is true.
verifications:readRead limitQuery parameters
- limitinteger
1 to 100 · default 10
Cursor: the last id of the previous page
Only this status
One ofcreatedin_progresssubmittedaction_requireddecidedexpiredcanceledCreated at or after (ISO 8601)
Created before (ISO 8601)
Returns
200 A verification list object.
› Show its fields
Show its fieldsHide its fields
Vindex's case reference; quote it to Vindex support
Conditions attached to an approval with conditions
Show its fieldsHide its fields
Only returned when a link is created. Send it to your customer; don't store it.
Vindex's recommendation once decided
One ofapprovedapproved_with_conditionsrejectedShow its fieldsHide its fields
- One of
acceptedrejected
Show its fieldsHide its fields
- One of
outcome_lettercustomer_report
low, medium, high (or Vindex's rating)
Finer progress for display: awaiting_customer, customer_in_progress, screening, under_review, final_review, awaiting_customer_response, appeal_review, decided
- One of
createdin_progresssubmittedaction_requireddecidedexpiredcanceled - One of
individualcompany
Errors
400 Bad request401 Not authenticated402 Not enough credits403 Not allowed404 Not found409 Conflict422 Invalid fields429 Too many requests
curl -G https://api.vindexgrid.com/v1/verifications \
-H "Authorization: Bearer $VINDEX_API_KEY" \
-d limit=10 \
-d status=decided{
"object": "list",
"data": [
{
"id": "ver_0vZ3kq9XfJ1mB7c2Lr8sTy",
"object": "verification",
"livemode": false,
"type": "individual",
"status": "decided",
"stage": "decided",
"outcome": "approved",
"risk_rating": "low",
"conditions": [],
"external_reference": "crm-42",
"metadata": {
"plan": "gold"
},
"case_reference": "KYC-7F3A9C21",
"hosted_link": {
"url": null,
"expires_at": null,
"active": false
},
"redirect_url": "https://acme.example/kyc/done",
"locale": "en",
"credits": {
"price": 70,
"held": 0,
"charged": 70
},
"reports": [
{
"type": "outcome_letter",
"available": true,
"generated_at": "2026-11-07T15:02:11Z"
},
{
"type": "customer_report",
"available": true,
"generated_at": "2026-11-07T15:02:09Z"
}
],
"partner_decision": null,
"created_at": "2026-11-05T10:24:51Z",
"started_at": "2026-11-05T11:02:40Z",
"submitted_at": "2026-11-05T11:19:03Z",
"action_required_at": null,
"decided_at": "2026-11-07T15:01:58Z",
"expired_at": null,
"canceled_at": null,
"updated_at": "2026-11-07T15:02:11Z"
}
],
"has_more": false,
"url": "/v1/verifications"
}/v1/verifications/{verification_id}Retrieve a verification
The current status, stage, outcome and risk rating.
verifications:readRead limitPath parameters
The object's id
Returns
200 A verification object.
› Show its fields
Vindex's case reference; quote it to Vindex support
Conditions attached to an approval with conditions
Show its fieldsHide its fields
Only returned when a link is created. Send it to your customer; don't store it.
Vindex's recommendation once decided
One ofapprovedapproved_with_conditionsrejectedShow its fieldsHide its fields
- One of
acceptedrejected
Show its fieldsHide its fields
- One of
outcome_lettercustomer_report
low, medium, high (or Vindex's rating)
Finer progress for display: awaiting_customer, customer_in_progress, screening, under_review, final_review, awaiting_customer_response, appeal_review, decided
- One of
createdin_progresssubmittedaction_requireddecidedexpiredcanceled - One of
individualcompany
Errors
400 Bad request401 Not authenticated402 Not enough credits403 Not allowed404 Not found409 Conflict422 Invalid fields429 Too many requests
curl https://api.vindexgrid.com/v1/verifications/ver_0vZ3kq9XfJ1mB7c2Lr8sTy \
-H "Authorization: Bearer $VINDEX_API_KEY"{
"id": "ver_0vZ3kq9XfJ1mB7c2Lr8sTy",
"object": "verification",
"livemode": false,
"type": "individual",
"status": "decided",
"stage": "decided",
"outcome": "approved",
"risk_rating": "low",
"conditions": [],
"external_reference": "crm-42",
"metadata": {
"plan": "gold"
},
"case_reference": "KYC-7F3A9C21",
"hosted_link": {
"url": null,
"expires_at": null,
"active": false
},
"redirect_url": "https://acme.example/kyc/done",
"locale": "en",
"credits": {
"price": 70,
"held": 0,
"charged": 70
},
"reports": [
{
"type": "outcome_letter",
"available": true,
"generated_at": "2026-11-07T15:02:11Z"
},
{
"type": "customer_report",
"available": true,
"generated_at": "2026-11-07T15:02:09Z"
}
],
"partner_decision": null,
"created_at": "2026-11-05T10:24:51Z",
"started_at": "2026-11-05T11:02:40Z",
"submitted_at": "2026-11-05T11:19:03Z",
"action_required_at": null,
"decided_at": "2026-11-07T15:01:58Z",
"expired_at": null,
"canceled_at": null,
"updated_at": "2026-11-07T15:02:11Z"
}/v1/verifications/{verification_id}/cancelCancel a verification
Cancel before the customer submits. The link stops working and held credits are released.
verifications:writeWrite limitPath parameters
The object's id
Returns
200 A verification object.
› Show its fields
Vindex's case reference; quote it to Vindex support
Conditions attached to an approval with conditions
Show its fieldsHide its fields
Only returned when a link is created. Send it to your customer; don't store it.
Vindex's recommendation once decided
One ofapprovedapproved_with_conditionsrejectedShow its fieldsHide its fields
- One of
acceptedrejected
Show its fieldsHide its fields
- One of
outcome_lettercustomer_report
low, medium, high (or Vindex's rating)
Finer progress for display: awaiting_customer, customer_in_progress, screening, under_review, final_review, awaiting_customer_response, appeal_review, decided
- One of
createdin_progresssubmittedaction_requireddecidedexpiredcanceled - One of
individualcompany
Errors
400 Bad request401 Not authenticated402 Not enough credits403 Not allowed404 Not found409 Conflict422 Invalid fields429 Too many requests
curl https://api.vindexgrid.com/v1/verifications/ver_0vZ3kq9XfJ1mB7c2Lr8sTy/cancel \
-H "Authorization: Bearer $VINDEX_API_KEY" \
-H "Idempotency-Key: $(uuidgen)"{
"id": "ver_0vZ3kq9XfJ1mB7c2Lr8sTy",
"object": "verification",
"livemode": false,
"type": "individual",
"status": "canceled",
"stage": "canceled",
"outcome": null,
"risk_rating": null,
"conditions": [],
"external_reference": "crm-42",
"metadata": {
"plan": "gold"
},
"case_reference": null,
"hosted_link": {
"url": null,
"expires_at": null,
"active": false
},
"redirect_url": "https://acme.example/kyc/done",
"locale": "en",
"credits": {
"price": 70,
"held": 0,
"charged": 0
},
"reports": [
{
"type": "outcome_letter",
"available": false,
"generated_at": null
},
{
"type": "customer_report",
"available": false,
"generated_at": null
}
],
"partner_decision": null,
"created_at": "2026-11-05T10:24:51Z",
"started_at": null,
"submitted_at": null,
"action_required_at": null,
"decided_at": null,
"expired_at": null,
"canceled_at": "2026-11-05T12:00:00Z",
"updated_at": "2026-11-05T10:24:51Z"
}/v1/verifications/{verification_id}/hosted_linkCreate a new hosted link
Issue a fresh link (the previous one stops working). Use it when the link expired, or when Vindex needs more from the customer (status action_required).
verifications:writeWrite limitPath parameters
The object's id
Body
3,600 to 2,592,000
Returns
200 A verification object.
› Show its fields
Vindex's case reference; quote it to Vindex support
Conditions attached to an approval with conditions
Show its fieldsHide its fields
Only returned when a link is created. Send it to your customer; don't store it.
Vindex's recommendation once decided
One ofapprovedapproved_with_conditionsrejectedShow its fieldsHide its fields
- One of
acceptedrejected
Show its fieldsHide its fields
- One of
outcome_lettercustomer_report
low, medium, high (or Vindex's rating)
Finer progress for display: awaiting_customer, customer_in_progress, screening, under_review, final_review, awaiting_customer_response, appeal_review, decided
- One of
createdin_progresssubmittedaction_requireddecidedexpiredcanceled - One of
individualcompany
Errors
400 Bad request401 Not authenticated402 Not enough credits403 Not allowed404 Not found409 Conflict422 Invalid fields429 Too many requests
curl https://api.vindexgrid.com/v1/verifications/ver_0vZ3kq9XfJ1mB7c2Lr8sTy/hosted_link \
-H "Authorization: Bearer $VINDEX_API_KEY" \
-H "Idempotency-Key: $(uuidgen)" \
-H "Content-Type: application/json" \
-d '{
"link_expires_in": 259200
}'{
"id": "ver_0vZ3kq9XfJ1mB7c2Lr8sTy",
"object": "verification",
"livemode": false,
"type": "individual",
"status": "created",
"stage": "awaiting_customer",
"outcome": null,
"risk_rating": null,
"conditions": [],
"external_reference": "crm-42",
"metadata": {
"plan": "gold"
},
"case_reference": null,
"hosted_link": {
"url": "https://vindexgrid.com/verify/#vlt_x8Qm2Lr0Hc5Wk9Ts3Ny7Vb1Pd4Zf6Ga",
"expires_at": "2026-11-12T10:24:51Z",
"active": true
},
"redirect_url": "https://acme.example/kyc/done",
"locale": "en",
"credits": {
"price": 70,
"held": 70,
"charged": 0
},
"reports": [
{
"type": "outcome_letter",
"available": false,
"generated_at": null
},
{
"type": "customer_report",
"available": false,
"generated_at": null
}
],
"partner_decision": null,
"created_at": "2026-11-05T10:24:51Z",
"started_at": null,
"submitted_at": null,
"action_required_at": null,
"decided_at": null,
"expired_at": null,
"canceled_at": null,
"updated_at": "2026-11-05T10:24:51Z"
}/v1/verifications/{verification_id}/partner_decisionRecord your decision
Vindex's outcome is a recommendation; the decision to onboard stays yours. Record it here so the audit trail shows who decided what, and when.
verifications:writeWrite limitPath parameters
The object's id
Body
What you decided after Vindex's outcome.
One ofacceptedrejectedWho decided (name or staff id).
up to 200 characters
up to 2000 characters
Returns
200 A verification object.
› Show its fields
Vindex's case reference; quote it to Vindex support
Conditions attached to an approval with conditions
Show its fieldsHide its fields
Only returned when a link is created. Send it to your customer; don't store it.
Vindex's recommendation once decided
One ofapprovedapproved_with_conditionsrejectedShow its fieldsHide its fields
- One of
acceptedrejected
Show its fieldsHide its fields
- One of
outcome_lettercustomer_report
low, medium, high (or Vindex's rating)
Finer progress for display: awaiting_customer, customer_in_progress, screening, under_review, final_review, awaiting_customer_response, appeal_review, decided
- One of
createdin_progresssubmittedaction_requireddecidedexpiredcanceled - One of
individualcompany
Errors
400 Bad request401 Not authenticated402 Not enough credits403 Not allowed404 Not found409 Conflict422 Invalid fields429 Too many requests
curl https://api.vindexgrid.com/v1/verifications/ver_0vZ3kq9XfJ1mB7c2Lr8sTy/partner_decision \
-H "Authorization: Bearer $VINDEX_API_KEY" \
-H "Idempotency-Key: $(uuidgen)" \
-H "Content-Type: application/json" \
-d '{
"decision": "accepted",
"decided_by": "Priya Nair, onboarding team",
"note": "Onboard on the standard plan."
}'{
"id": "ver_0vZ3kq9XfJ1mB7c2Lr8sTy",
"object": "verification",
"livemode": false,
"type": "individual",
"status": "decided",
"stage": "decided",
"outcome": "approved",
"risk_rating": "low",
"conditions": [],
"external_reference": "crm-42",
"metadata": {
"plan": "gold"
},
"case_reference": "KYC-7F3A9C21",
"hosted_link": {
"url": null,
"expires_at": null,
"active": false
},
"redirect_url": "https://acme.example/kyc/done",
"locale": "en",
"credits": {
"price": 70,
"held": 0,
"charged": 70
},
"reports": [
{
"type": "outcome_letter",
"available": true,
"generated_at": "2026-11-07T15:02:11Z"
},
{
"type": "customer_report",
"available": true,
"generated_at": "2026-11-07T15:02:09Z"
}
],
"partner_decision": {
"decision": "accepted",
"decided_by": "Priya Nair, onboarding team",
"note": "Onboard on the standard plan.",
"decided_at": "2026-11-07T16:10:00Z"
},
"created_at": "2026-11-05T10:24:51Z",
"started_at": "2026-11-05T11:02:40Z",
"submitted_at": "2026-11-05T11:19:03Z",
"action_required_at": null,
"decided_at": "2026-11-07T15:01:58Z",
"expired_at": null,
"canceled_at": null,
"updated_at": "2026-11-07T15:02:11Z"
}Reports
Download the outcome letter and customer report of a decided verification.
/v1/verifications/{verification_id}/reportDownload a report
The PDF of a decided verification. outcome_letter exists for every decision; customer_report for approvals. Store it securely: it contains personal data.
verifications:readRead limitPath parameters
The object's id
Query parameters
- typeenum
Which report: the outcome letter (every decision) or the customer report (approvals)
One ofoutcome_lettercustomer_reportdefault "outcome_letter"
Returns
200 The PDF file (application/pdf).
Errors
400 Bad request401 Not authenticated402 Not enough credits403 Not allowed404 Not found409 Conflict422 Invalid fields429 Too many requests
curl -G https://api.vindexgrid.com/v1/verifications/ver_0vZ3kq9XfJ1mB7c2Lr8sTy/report \
-H "Authorization: Bearer $VINDEX_API_KEY" \
-d type=outcome_letter \
-o outcome-letter.pdf200 OK
Content-Type: application/pdf
Content-Disposition: attachment; filename="KYC-7F3A9C21 - Outcome letter.pdf"
%PDF-1.7 …Screenings
Screen people and companies against sanctions, PEP and adverse-media lists.
/v1/screeningsScreen a name
Screen one person or company and get the result straight away. Charged only when the screen completes.
In test mode, names containing Sanctioned, Pep, Adverse or Multimatch return matches and Unavailable simulates a provider outage; anything else is no_match.
screenings:writeScreening limitBody
Show its fieldsHide its fields
- One of
personcompany two-letter country code
People only; narrows namesake matches
up to 100 characters
- One of
malefemaleunspecified up to 100 characters
Full name (or use first_name and last_name)
up to 300 characters
Companies only
up to 64 characters
up to 255 characters
- purposeenum
Why you are screening (kept for audit).
One ofonboardingperiodic_reviewtransaction_monitoringotherdefault "onboarding"
Returns
201 A screening object.
› Show its fields
Show its fieldsHide its fields
- One of
no_matchpotential_match - One of
world_checktest
- One of
pendingprocessingcompletedfailed
Errors
400 Bad request401 Not authenticated402 Not enough credits403 Not allowed404 Not found409 Conflict422 Invalid fields429 Too many requests503 Provider unavailable
curl https://api.vindexgrid.com/v1/screenings \
-H "Authorization: Bearer $VINDEX_API_KEY" \
-H "Idempotency-Key: $(uuidgen)" \
-H "Content-Type: application/json" \
-d '{
"subject": {
"type": "person",
"name": "Aarav Sharma",
"date_of_birth": "1990-04-12",
"country": "IN"
},
"purpose": "onboarding",
"external_reference": "crm-42"
}'{
"id": "scr_0vZ3mT4cQw8nX2Lb9Pk1Ra",
"object": "screening",
"livemode": false,
"batch_id": null,
"status": "completed",
"subject": {
"type": "person",
"country": "IN"
},
"result": {
"outcome": "no_match",
"screened_at": "2026-11-05T10:31:12Z",
"provider": "test",
"match_count": 0,
"categories": []
},
"error": null,
"purpose": "onboarding",
"external_reference": "crm-42",
"metadata": {},
"credits_charged": 1,
"created_at": "2026-11-05T10:31:11Z",
"completed_at": "2026-11-05T10:31:12Z"
}/v1/screeningsList screenings
screenings:readRead limitQuery parameters
- limitinteger
1 to 100 · default 10
Returns
200 A screening list object.
› Show its fields
Show its fieldsHide its fields
Show its fieldsHide its fields
- One of
no_matchpotential_match - One of
world_checktest
- One of
pendingprocessingcompletedfailed
Errors
400 Bad request401 Not authenticated402 Not enough credits403 Not allowed404 Not found409 Conflict422 Invalid fields429 Too many requests
curl -G https://api.vindexgrid.com/v1/screenings \
-H "Authorization: Bearer $VINDEX_API_KEY" \
-d limit=10{
"object": "list",
"data": [
{
"id": "scr_0vZ3mT4cQw8nX2Lb9Pk1Ra",
"object": "screening",
"livemode": false,
"batch_id": null,
"status": "completed",
"subject": {
"type": "person",
"country": "IN"
},
"result": {
"outcome": "no_match",
"screened_at": "2026-11-05T10:31:12Z",
"provider": "test",
"match_count": 0,
"categories": []
},
"error": null,
"purpose": "onboarding",
"external_reference": "crm-42",
"metadata": {},
"credits_charged": 1,
"created_at": "2026-11-05T10:31:11Z",
"completed_at": "2026-11-05T10:31:12Z"
}
],
"has_more": false,
"url": "/v1/screenings"
}/v1/screenings/{screening_id}Retrieve a screening
screenings:readRead limitPath parameters
The object's id
Returns
200 A screening object.
› Show its fields
Show its fieldsHide its fields
- One of
no_matchpotential_match - One of
world_checktest
- One of
pendingprocessingcompletedfailed
Errors
400 Bad request401 Not authenticated402 Not enough credits403 Not allowed404 Not found409 Conflict422 Invalid fields429 Too many requests
curl https://api.vindexgrid.com/v1/screenings/scr_0vZ3mT4cQw8nX2Lb9Pk1Ra \
-H "Authorization: Bearer $VINDEX_API_KEY"{
"id": "scr_0vZ3mT4cQw8nX2Lb9Pk1Ra",
"object": "screening",
"livemode": false,
"batch_id": null,
"status": "completed",
"subject": {
"type": "person",
"country": "IN"
},
"result": {
"outcome": "no_match",
"screened_at": "2026-11-05T10:31:12Z",
"provider": "test",
"match_count": 0,
"categories": []
},
"error": null,
"purpose": "onboarding",
"external_reference": "crm-42",
"metadata": {},
"credits_charged": 1,
"created_at": "2026-11-05T10:31:11Z",
"completed_at": "2026-11-05T10:31:12Z"
}/v1/screening_batchesScreen up to 100 names
Screen up to 100 subjects in the background. The total price is held up front and charged per subject screened; the rest is released. You get screening_batch.completed when it is done.
screenings:writeScreening limitBody
1 to 100 items
Show its fieldsHide its fieldsShow its fieldsHide its fields
- One of
personcompany two-letter country code
People only; narrows namesake matches
up to 100 characters
- One of
malefemaleunspecified up to 100 characters
Full name (or use first_name and last_name)
up to 300 characters
Companies only
up to 64 characters
up to 255 characters
up to 255 characters
- purposeenumOne of
onboardingperiodic_reviewtransaction_monitoringotherdefault "onboarding"
Returns
202 A screening batch object.
› Show its fields
- One of
processingcompletedfailedcanceled Show its fieldsHide its fields
Show its fieldsHide its fields
- One of
no_matchpotential_match - One of
world_checktest
- One of
pendingprocessingcompletedfailed
Errors
400 Bad request401 Not authenticated402 Not enough credits403 Not allowed404 Not found409 Conflict422 Invalid fields429 Too many requests
curl https://api.vindexgrid.com/v1/screening_batches \
-H "Authorization: Bearer $VINDEX_API_KEY" \
-H "Idempotency-Key: $(uuidgen)" \
-H "Content-Type: application/json" \
-d '{
"subjects": [
{
"subject": {
"type": "person",
"name": "Aarav Sharma",
"country": "IN"
},
"external_reference": "row-1"
},
{
"subject": {
"type": "company",
"name": "Bright Widgets Ltd",
"country": "GB"
},
"external_reference": "row-2"
}
],
"purpose": "periodic_review",
"external_reference": "review-2026-11"
}'{
"id": "sbt_0vZ3nY7dRe1pZ5Mc3Qv8Tb",
"object": "screening_batch",
"livemode": false,
"status": "processing",
"total": 2,
"completed": 0,
"failed": 0,
"with_matches": 0,
"credits": {
"held": 2,
"charged": 0
},
"external_reference": "review-2026-11",
"metadata": {},
"created_at": "2026-11-05T10:40:00Z",
"completed_at": null
}/v1/screening_batches/{batch_id}Retrieve a batch
The batch with every screening in it.
screenings:readRead limitPath parameters
The object's id
Returns
200 A screening batch object.
› Show its fields
- One of
processingcompletedfailedcanceled Show its fieldsHide its fields
Show its fieldsHide its fields
- One of
no_matchpotential_match - One of
world_checktest
- One of
pendingprocessingcompletedfailed
Errors
400 Bad request401 Not authenticated402 Not enough credits403 Not allowed404 Not found409 Conflict422 Invalid fields429 Too many requests
curl https://api.vindexgrid.com/v1/screening_batches/sbt_0vZ3nY7dRe1pZ5Mc3Qv8Tb \
-H "Authorization: Bearer $VINDEX_API_KEY"{
"id": "sbt_0vZ3nY7dRe1pZ5Mc3Qv8Tb",
"object": "screening_batch",
"livemode": false,
"status": "completed",
"total": 2,
"completed": 2,
"failed": 0,
"with_matches": 0,
"credits": {
"held": 2,
"charged": 2
},
"external_reference": "review-2026-11",
"metadata": {},
"created_at": "2026-11-05T10:40:00Z",
"completed_at": "2026-11-05T10:40:04Z",
"screenings": [
{
"id": "scr_0vZ3mT4cQw8nX2Lb9Pk1Ra",
"object": "screening",
"livemode": false,
"batch_id": null,
"status": "completed",
"subject": {
"type": "person",
"country": "IN"
},
"result": {
"outcome": "no_match",
"screened_at": "2026-11-05T10:31:12Z",
"provider": "test",
"match_count": 0,
"categories": []
},
"error": null,
"purpose": "onboarding",
"external_reference": "crm-42",
"metadata": {},
"credits_charged": 1,
"created_at": "2026-11-05T10:31:11Z",
"completed_at": "2026-11-05T10:31:12Z"
}
]
}Balance
Your prepaid credits.
/v1/balanceRetrieve your balance
balance:readRead limitReturns
200 A balance object.
› Show its fields
Credits you can spend now
Credits expiring within 30 days
Credits locked by a payment dispute
Credits reserved for verifications in progress
Errors
400 Bad request401 Not authenticated402 Not enough credits403 Not allowed404 Not found409 Conflict422 Invalid fields429 Too many requests
curl https://api.vindexgrid.com/v1/balance \
-H "Authorization: Bearer $VINDEX_API_KEY"{
"object": "balance",
"livemode": true,
"available": 1204,
"held": 140,
"frozen": 0,
"low_balance_threshold": 140,
"expiring_soon": [
{
"credits": 25,
"expires_at": "2026-11-28T09:00:00Z"
}
]
}Events
What happened in your account, also sent to your webhook endpoints.
/v1/eventsList events
Events from the last 30 days, newest first. Use this to catch up after your endpoint was down.
events:readRead limitQuery parameters
- limitinteger
1 to 100 · default 10
An event type, or a group such as verification.*
Events about one object
Returns
200 A event list object.
› Show its fields
Errors
400 Bad request401 Not authenticated402 Not enough credits403 Not allowed404 Not found409 Conflict422 Invalid fields429 Too many requests
curl -G https://api.vindexgrid.com/v1/events \
-H "Authorization: Bearer $VINDEX_API_KEY" \
-d limit=10 \
-d type=verification.*{
"object": "list",
"data": [
{
"id": "evt_0vZ3kq9XfJ1mB7c2Lr8sTy",
"object": "event",
"type": "verification.decided",
"created_at": "2026-11-07T15:01:59Z",
"livemode": false,
"data": {
"object": "verification",
"id": "ver_0vZ3kq9XfJ1mB7c2Lr8sTy",
"type": "individual",
"status": "decided",
"stage": "decided",
"outcome": "approved",
"risk_rating": "low",
"external_reference": "crm-42"
}
}
],
"has_more": false,
"url": "/v1/events"
}/v1/events/{event_id}Retrieve an event
events:readRead limitPath parameters
The object's id
Returns
200 A event object.
› Show its fields
Errors
400 Bad request401 Not authenticated402 Not enough credits403 Not allowed404 Not found409 Conflict422 Invalid fields429 Too many requests
curl https://api.vindexgrid.com/v1/events/evt_0vZ3kq9XfJ1mB7c2Lr8sTy \
-H "Authorization: Bearer $VINDEX_API_KEY"{
"id": "evt_0vZ3kq9XfJ1mB7c2Lr8sTy",
"object": "event",
"type": "verification.decided",
"created_at": "2026-11-07T15:01:59Z",
"livemode": false,
"data": {
"object": "verification",
"id": "ver_0vZ3kq9XfJ1mB7c2Lr8sTy",
"type": "individual",
"status": "decided",
"stage": "decided",
"outcome": "approved",
"risk_rating": "low",
"external_reference": "crm-42"
}
}Test helpers
Test mode only: move a verification through its life cycle.
/v1/test_helpers/verifications/{verification_id}/submitSimulate the customer submitting
verifications:writeWrite limitTest keys onlyPath parameters
The object's id
Returns
200 A verification object.
› Show its fields
Vindex's case reference; quote it to Vindex support
Conditions attached to an approval with conditions
Show its fieldsHide its fields
Only returned when a link is created. Send it to your customer; don't store it.
Vindex's recommendation once decided
One ofapprovedapproved_with_conditionsrejectedShow its fieldsHide its fields
- One of
acceptedrejected
Show its fieldsHide its fields
- One of
outcome_lettercustomer_report
low, medium, high (or Vindex's rating)
Finer progress for display: awaiting_customer, customer_in_progress, screening, under_review, final_review, awaiting_customer_response, appeal_review, decided
- One of
createdin_progresssubmittedaction_requireddecidedexpiredcanceled - One of
individualcompany
Errors
400 Bad request401 Not authenticated402 Not enough credits403 Not allowed404 Not found409 Conflict422 Invalid fields429 Too many requests
curl https://api.vindexgrid.com/v1/test_helpers/verifications/ver_0vZ3kq9XfJ1mB7c2Lr8sTy/submit \
-H "Authorization: Bearer $VINDEX_API_KEY" \
-H "Idempotency-Key: $(uuidgen)"{
"id": "ver_0vZ3kq9XfJ1mB7c2Lr8sTy",
"object": "verification",
"livemode": false,
"type": "individual",
"status": "submitted",
"stage": "under_review",
"outcome": null,
"risk_rating": null,
"conditions": [],
"external_reference": "crm-42",
"metadata": {
"plan": "gold"
},
"case_reference": null,
"hosted_link": {
"url": null,
"expires_at": "2026-11-12T10:24:51Z",
"active": true
},
"redirect_url": "https://acme.example/kyc/done",
"locale": "en",
"credits": {
"price": 70,
"held": 0,
"charged": 70
},
"reports": [
{
"type": "outcome_letter",
"available": false,
"generated_at": null
},
{
"type": "customer_report",
"available": false,
"generated_at": null
}
],
"partner_decision": null,
"created_at": "2026-11-05T10:24:51Z",
"started_at": null,
"submitted_at": null,
"action_required_at": null,
"decided_at": null,
"expired_at": null,
"canceled_at": null,
"updated_at": "2026-11-05T10:24:51Z"
}/v1/test_helpers/verifications/{verification_id}/request_actionSimulate Vindex asking the customer for more
verifications:writeWrite limitTest keys onlyPath parameters
The object's id
Returns
200 A verification object.
› Show its fields
Vindex's case reference; quote it to Vindex support
Conditions attached to an approval with conditions
Show its fieldsHide its fields
Only returned when a link is created. Send it to your customer; don't store it.
Vindex's recommendation once decided
One ofapprovedapproved_with_conditionsrejectedShow its fieldsHide its fields
- One of
acceptedrejected
Show its fieldsHide its fields
- One of
outcome_lettercustomer_report
low, medium, high (or Vindex's rating)
Finer progress for display: awaiting_customer, customer_in_progress, screening, under_review, final_review, awaiting_customer_response, appeal_review, decided
- One of
createdin_progresssubmittedaction_requireddecidedexpiredcanceled - One of
individualcompany
Errors
400 Bad request401 Not authenticated402 Not enough credits403 Not allowed404 Not found409 Conflict422 Invalid fields429 Too many requests
curl https://api.vindexgrid.com/v1/test_helpers/verifications/ver_0vZ3kq9XfJ1mB7c2Lr8sTy/request_action \
-H "Authorization: Bearer $VINDEX_API_KEY" \
-H "Idempotency-Key: $(uuidgen)"{
"id": "ver_0vZ3kq9XfJ1mB7c2Lr8sTy",
"object": "verification",
"livemode": false,
"type": "individual",
"status": "action_required",
"stage": "awaiting_customer_response",
"outcome": null,
"risk_rating": null,
"conditions": [],
"external_reference": "crm-42",
"metadata": {
"plan": "gold"
},
"case_reference": null,
"hosted_link": {
"url": "https://vindexgrid.com/verify/#vlt_x8Qm2Lr0Hc5Wk9Ts3Ny7Vb1Pd4Zf6Ga",
"expires_at": "2026-11-12T10:24:51Z",
"active": true
},
"redirect_url": "https://acme.example/kyc/done",
"locale": "en",
"credits": {
"price": 70,
"held": 70,
"charged": 0
},
"reports": [
{
"type": "outcome_letter",
"available": false,
"generated_at": null
},
{
"type": "customer_report",
"available": false,
"generated_at": null
}
],
"partner_decision": null,
"created_at": "2026-11-05T10:24:51Z",
"started_at": null,
"submitted_at": null,
"action_required_at": null,
"decided_at": null,
"expired_at": null,
"canceled_at": null,
"updated_at": "2026-11-05T10:24:51Z"
}/v1/test_helpers/verifications/{verification_id}/respondSimulate the customer answering
verifications:writeWrite limitTest keys onlyPath parameters
The object's id
Returns
200 A verification object.
› Show its fields
Vindex's case reference; quote it to Vindex support
Conditions attached to an approval with conditions
Show its fieldsHide its fields
Only returned when a link is created. Send it to your customer; don't store it.
Vindex's recommendation once decided
One ofapprovedapproved_with_conditionsrejectedShow its fieldsHide its fields
- One of
acceptedrejected
Show its fieldsHide its fields
- One of
outcome_lettercustomer_report
low, medium, high (or Vindex's rating)
Finer progress for display: awaiting_customer, customer_in_progress, screening, under_review, final_review, awaiting_customer_response, appeal_review, decided
- One of
createdin_progresssubmittedaction_requireddecidedexpiredcanceled - One of
individualcompany
Errors
400 Bad request401 Not authenticated402 Not enough credits403 Not allowed404 Not found409 Conflict422 Invalid fields429 Too many requests
curl https://api.vindexgrid.com/v1/test_helpers/verifications/ver_0vZ3kq9XfJ1mB7c2Lr8sTy/respond \
-H "Authorization: Bearer $VINDEX_API_KEY" \
-H "Idempotency-Key: $(uuidgen)"{
"id": "ver_0vZ3kq9XfJ1mB7c2Lr8sTy",
"object": "verification",
"livemode": false,
"type": "individual",
"status": "submitted",
"stage": "under_review",
"outcome": null,
"risk_rating": null,
"conditions": [],
"external_reference": "crm-42",
"metadata": {
"plan": "gold"
},
"case_reference": null,
"hosted_link": {
"url": "https://vindexgrid.com/verify/#vlt_x8Qm2Lr0Hc5Wk9Ts3Ny7Vb1Pd4Zf6Ga",
"expires_at": "2026-11-12T10:24:51Z",
"active": true
},
"redirect_url": "https://acme.example/kyc/done",
"locale": "en",
"credits": {
"price": 70,
"held": 70,
"charged": 0
},
"reports": [
{
"type": "outcome_letter",
"available": false,
"generated_at": null
},
{
"type": "customer_report",
"available": false,
"generated_at": null
}
],
"partner_decision": null,
"created_at": "2026-11-05T10:24:51Z",
"started_at": null,
"submitted_at": null,
"action_required_at": null,
"decided_at": null,
"expired_at": null,
"canceled_at": null,
"updated_at": "2026-11-05T10:24:51Z"
}/v1/test_helpers/verifications/{verification_id}/decideSimulate Vindex's decision
verifications:writeWrite limitTest keys onlyPath parameters
The object's id
Body
- One of
approvedapproved_with_conditionsrejected
Returns
200 A verification object.
› Show its fields
Vindex's case reference; quote it to Vindex support
Conditions attached to an approval with conditions
Show its fieldsHide its fields
Only returned when a link is created. Send it to your customer; don't store it.
Vindex's recommendation once decided
One ofapprovedapproved_with_conditionsrejectedShow its fieldsHide its fields
- One of
acceptedrejected
Show its fieldsHide its fields
- One of
outcome_lettercustomer_report
low, medium, high (or Vindex's rating)
Finer progress for display: awaiting_customer, customer_in_progress, screening, under_review, final_review, awaiting_customer_response, appeal_review, decided
- One of
createdin_progresssubmittedaction_requireddecidedexpiredcanceled - One of
individualcompany
Errors
400 Bad request401 Not authenticated402 Not enough credits403 Not allowed404 Not found409 Conflict422 Invalid fields429 Too many requests
curl https://api.vindexgrid.com/v1/test_helpers/verifications/ver_0vZ3kq9XfJ1mB7c2Lr8sTy/decide \
-H "Authorization: Bearer $VINDEX_API_KEY" \
-H "Idempotency-Key: $(uuidgen)" \
-H "Content-Type: application/json" \
-d '{
"outcome": "approved"
}'{
"id": "ver_0vZ3kq9XfJ1mB7c2Lr8sTy",
"object": "verification",
"livemode": false,
"type": "individual",
"status": "decided",
"stage": "decided",
"outcome": "approved",
"risk_rating": "low",
"conditions": [],
"external_reference": "crm-42",
"metadata": {
"plan": "gold"
},
"case_reference": "KYC-7F3A9C21",
"hosted_link": {
"url": null,
"expires_at": null,
"active": false
},
"redirect_url": "https://acme.example/kyc/done",
"locale": "en",
"credits": {
"price": 70,
"held": 0,
"charged": 70
},
"reports": [
{
"type": "outcome_letter",
"available": true,
"generated_at": "2026-11-07T15:02:11Z"
},
{
"type": "customer_report",
"available": true,
"generated_at": "2026-11-07T15:02:09Z"
}
],
"partner_decision": null,
"created_at": "2026-11-05T10:24:51Z",
"started_at": "2026-11-05T11:02:40Z",
"submitted_at": "2026-11-05T11:19:03Z",
"action_required_at": null,
"decided_at": "2026-11-07T15:01:58Z",
"expired_at": null,
"canceled_at": null,
"updated_at": "2026-11-07T15:02:11Z"
}/v1/test_helpers/verifications/{verification_id}/expireExpire the hosted link now
verifications:writeWrite limitTest keys onlyPath parameters
The object's id
Returns
200 A verification object.
› Show its fields
Vindex's case reference; quote it to Vindex support
Conditions attached to an approval with conditions
Show its fieldsHide its fields
Only returned when a link is created. Send it to your customer; don't store it.
Vindex's recommendation once decided
One ofapprovedapproved_with_conditionsrejectedShow its fieldsHide its fields
- One of
acceptedrejected
Show its fieldsHide its fields
- One of
outcome_lettercustomer_report
low, medium, high (or Vindex's rating)
Finer progress for display: awaiting_customer, customer_in_progress, screening, under_review, final_review, awaiting_customer_response, appeal_review, decided
- One of
createdin_progresssubmittedaction_requireddecidedexpiredcanceled - One of
individualcompany
Errors
400 Bad request401 Not authenticated402 Not enough credits403 Not allowed404 Not found409 Conflict422 Invalid fields429 Too many requests
curl https://api.vindexgrid.com/v1/test_helpers/verifications/ver_0vZ3kq9XfJ1mB7c2Lr8sTy/expire \
-H "Authorization: Bearer $VINDEX_API_KEY" \
-H "Idempotency-Key: $(uuidgen)"{
"id": "ver_0vZ3kq9XfJ1mB7c2Lr8sTy",
"object": "verification",
"livemode": false,
"type": "individual",
"status": "expired",
"stage": "expired",
"outcome": null,
"risk_rating": null,
"conditions": [],
"external_reference": "crm-42",
"metadata": {
"plan": "gold"
},
"case_reference": null,
"hosted_link": {
"url": null,
"expires_at": null,
"active": false
},
"redirect_url": "https://acme.example/kyc/done",
"locale": "en",
"credits": {
"price": 70,
"held": 0,
"charged": 0
},
"reports": [
{
"type": "outcome_letter",
"available": false,
"generated_at": null
},
{
"type": "customer_report",
"available": false,
"generated_at": null
}
],
"partner_decision": null,
"created_at": "2026-11-05T10:24:51Z",
"started_at": null,
"submitted_at": null,
"action_required_at": null,
"decided_at": null,
"expired_at": "2026-11-05T12:00:00Z",
"canceled_at": null,
"updated_at": "2026-11-05T10:24:51Z"
}Webhook events
Webhook payloads are thin: they say what happened to which object, with its status, and never carry personal data. Fetch the object with your key when you need more. Every payload has the same envelope.
Verifications
›
verification.createdA verification was created and its hosted link issued.Payload{ "id": "evt_0vZ3kq9XfJ1mB7c2Lr8sTy", "object": "event", "type": "verification.created", "livemode": true, "created_at": "2026-11-05T10:24:51.204Z", "data": { "id": "ver_0vZ3kq9XfJ1mB7c2Lr8sTy", "object": "verification", "type": "individual", "status": "created", "stage": "awaiting_customer", "outcome": null, "risk_rating": null, "external_reference": "crm-42" } }›
verification.startedThe customer opened the hosted link and started.Payload{ "id": "evt_0vZ3kq9XfJ1mB7c2Lr8sTy", "object": "event", "type": "verification.started", "livemode": true, "created_at": "2026-11-05T10:24:51.204Z", "data": { "id": "ver_0vZ3kq9XfJ1mB7c2Lr8sTy", "object": "verification", "type": "individual", "status": "in_progress", "stage": "customer_in_progress", "outcome": null, "risk_rating": null, "external_reference": "crm-42" } }›
verification.submittedThe customer submitted; Vindex review has started.Payload{ "id": "evt_0vZ3kq9XfJ1mB7c2Lr8sTy", "object": "event", "type": "verification.submitted", "livemode": true, "created_at": "2026-11-05T10:24:51.204Z", "data": { "id": "ver_0vZ3kq9XfJ1mB7c2Lr8sTy", "object": "verification", "type": "individual", "status": "submitted", "stage": "under_review", "outcome": null, "risk_rating": null, "external_reference": "crm-42" } }›
verification.action_requiredVindex needs more from the customer. Send them their hosted link again.Payload{ "id": "evt_0vZ3kq9XfJ1mB7c2Lr8sTy", "object": "event", "type": "verification.action_required", "livemode": true, "created_at": "2026-11-05T10:24:51.204Z", "data": { "id": "ver_0vZ3kq9XfJ1mB7c2Lr8sTy", "object": "verification", "type": "individual", "status": "action_required", "stage": "awaiting_customer_response", "outcome": null, "risk_rating": null, "external_reference": "crm-42" } }›
verification.resubmittedThe customer answered Vindex's request; review continues.Payload{ "id": "evt_0vZ3kq9XfJ1mB7c2Lr8sTy", "object": "event", "type": "verification.resubmitted", "livemode": true, "created_at": "2026-11-05T10:24:51.204Z", "data": { "id": "ver_0vZ3kq9XfJ1mB7c2Lr8sTy", "object": "verification", "type": "individual", "status": "submitted", "stage": "under_review", "outcome": null, "risk_rating": null, "external_reference": "crm-42" } }›
verification.decidedVindex reached its outcome: approved, approved with conditions, or rejected.Payload{ "id": "evt_0vZ3kq9XfJ1mB7c2Lr8sTy", "object": "event", "type": "verification.decided", "livemode": true, "created_at": "2026-11-05T10:24:51.204Z", "data": { "id": "ver_0vZ3kq9XfJ1mB7c2Lr8sTy", "object": "verification", "type": "individual", "status": "decided", "stage": "decided", "outcome": "approved", "risk_rating": "low", "external_reference": "crm-42" } }›
verification.expiredThe hosted link expired before the customer submitted. Held credits were released.Payload{ "id": "evt_0vZ3kq9XfJ1mB7c2Lr8sTy", "object": "event", "type": "verification.expired", "livemode": true, "created_at": "2026-11-05T10:24:51.204Z", "data": { "id": "ver_0vZ3kq9XfJ1mB7c2Lr8sTy", "object": "verification", "type": "individual", "status": "expired", "stage": "expired", "outcome": null, "risk_rating": null, "external_reference": "crm-42" } }›
verification.canceledThe verification was canceled. Held credits were released.Payload{ "id": "evt_0vZ3kq9XfJ1mB7c2Lr8sTy", "object": "event", "type": "verification.canceled", "livemode": true, "created_at": "2026-11-05T10:24:51.204Z", "data": { "id": "ver_0vZ3kq9XfJ1mB7c2Lr8sTy", "object": "verification", "type": "individual", "status": "canceled", "stage": "canceled", "outcome": null, "risk_rating": null, "external_reference": "crm-42" } }›
report.readyA report PDF (customer report or outcome letter) can be downloaded.Payload{ "id": "evt_0vZ3kq9XfJ1mB7c2Lr8sTy", "object": "event", "type": "report.ready", "livemode": true, "created_at": "2026-11-05T10:24:51.204Z", "data": { "object": "report", "external_reference": "crm-42", "verification_id": "ver_0vZ3kq9XfJ1mB7c2Lr8sTy", "report_type": "outcome_letter" } }
Screenings
›
screening_batch.completedEvery subject in a batch screening has been screened.Payload{ "id": "evt_0vZ3kq9XfJ1mB7c2Lr8sTy", "object": "event", "type": "screening_batch.completed", "livemode": true, "created_at": "2026-11-05T10:24:51.204Z", "data": { "id": "sbt_0vZ3kq9XfJ1mB7c2Lr8sTy", "object": "screening_batch", "status": "completed", "total": 25, "with_matches": 2 } }
Billing
›
billing.credits_purchasedCredits were added to your live balance after a payment.Payload{ "id": "evt_0vZ3kq9XfJ1mB7c2Lr8sTy", "object": "event", "type": "billing.credits_purchased", "livemode": true, "created_at": "2026-11-05T10:24:51.204Z", "data": { "id": "pur_0vZ3kq9XfJ1mB7c2Lr8sTy", "object": "credit_purchase", "status": "paid", "credits": 525 } }›
billing.balance_lowYour live balance dropped to or below your alert threshold.Payload{ "id": "evt_0vZ3kq9XfJ1mB7c2Lr8sTy", "object": "event", "type": "billing.balance_low", "livemode": true, "created_at": "2026-11-05T10:24:51.204Z", "data": { "object": "balance", "available": 120, "held": 70, "threshold": 140 } }›
billing.credits_exhaustedYour live balance reached zero; paid calls now return 402.Payload{ "id": "evt_0vZ3kq9XfJ1mB7c2Lr8sTy", "object": "event", "type": "billing.credits_exhausted", "livemode": true, "created_at": "2026-11-05T10:24:51.204Z", "data": { "object": "balance", "available": 120, "held": 70, "threshold": 140 } }›
billing.credits_expiringSome credits expire within the next 30 days.Payload{ "id": "evt_0vZ3kq9XfJ1mB7c2Lr8sTy", "object": "event", "type": "billing.credits_expiring", "livemode": true, "created_at": "2026-11-05T10:24:51.204Z", "data": { "object": "balance", "available": 120, "held": 70, "threshold": 140 } }›
billing.auto_recharge_failedAn automatic top-up failed; auto-recharge is paused.Payload{ "id": "evt_0vZ3kq9XfJ1mB7c2Lr8sTy", "object": "event", "type": "billing.auto_recharge_failed", "livemode": true, "created_at": "2026-11-05T10:24:51.204Z", "data": { "object": "balance", "available": 120, "held": 70, "threshold": 140 } }
Account
›
api_key.expiringAn API key expires within 7 days.Payload{ "id": "evt_0vZ3kq9XfJ1mB7c2Lr8sTy", "object": "event", "type": "api_key.expiring", "livemode": true, "created_at": "2026-11-05T10:24:51.204Z", "data": { "id": "key_0vZ3kq9XfJ1mB7c2Lr8sTy", "object": "api_key", "name": "Production server", "expires_at": "2026-12-01T00:00:00Z" } }
Something missing or unclear? Signed-in users can tell us from Feedback in the app.
