Track inquiry creation, changes, and responses.
Graph sends Core inquiry events to your existing webhooks in the configured environment. No separate subscription is needed. Organisation-onboarding RFIs are separate.
| Event | Trigger |
|---|---|
inquiry_request.created | New inquiry. |
inquiry_request.updated | Public fields change, including status or action link. |
inquiry_request.answered | Standard response saved or hosted action completed. |
An answered inquiry does not mean an account is active. Track account outcomes through Issuance Events.
Payload
Each event contains event_type, entity: "inquiry_request", and data: the inquiry snapshot plus:
| Field | Meaning |
|---|---|
event_id | Stable ID for deduplicating deliveries. |
occurred_at | Event timestamp. |
response_id | Saved standard response ID; otherwise null. |
The snapshot includes usable action links. Response text and attachments are available only through response history. Example IDs and URLs are placeholders.
Inquiry created
This person-owned inquiry has account_id: null. Account-filtered listing includes it for relevant accounts.
{
"event_type": "inquiry_request.created",
"entity": "inquiry_request",
"data": {
"id": "example-inquiry-id",
"cause": "enrollment.person",
"object_type": "person",
"person_id": "example-person-id",
"business_id": null,
"deposit_id": null,
"payout_id": null,
"conversion_id": null,
"account_id": null,
"card_id": null,
"type": "link",
"query": "Please complete the requested verification.",
"link": "https://verification.example.com/action",
"status": "pending",
"is_deleted": false,
"created_at": "2026-10-28T10:00:00Z",
"updated_at": null,
"event_id": "65169fa6-d590-492c-a36e-2d27be8acdf3",
"occurred_at": "2026-10-28T10:00:00Z",
"response_id": null
}
}
Inquiry updated
An expired link is cleared while the inquiry stays pending. Fetch current state, then offer refresh.
{
"event_type": "inquiry_request.updated",
"entity": "inquiry_request",
"data": {
"id": "example-inquiry-id",
"cause": "enrollment.person",
"object_type": "person",
"person_id": "example-person-id",
"business_id": null,
"deposit_id": null,
"payout_id": null,
"conversion_id": null,
"account_id": null,
"card_id": null,
"type": "link",
"query": "Please complete the requested verification.",
"link": null,
"status": "pending",
"is_deleted": false,
"created_at": "2026-10-28T10:00:00Z",
"updated_at": "2026-10-28T10:10:00Z",
"event_id": "e86e1b44-310a-4d71-84a7-0e6d98d719c2",
"occurred_at": "2026-10-28T10:10:00Z",
"response_id": null
}
}
Standard response saved
response_id identifies the saved response. The inquiry remains pending for review.
{
"event_type": "inquiry_request.answered",
"entity": "inquiry_request",
"data": {
"id": "example-standard-inquiry-id",
"cause": "issuance.account",
"object_type": "account",
"person_id": null,
"business_id": null,
"deposit_id": null,
"payout_id": null,
"conversion_id": null,
"account_id": "example-account-id",
"card_id": null,
"type": "standard",
"query": "Please provide supporting evidence.",
"link": null,
"status": "pending",
"is_deleted": false,
"created_at": "2026-10-28T10:00:00Z",
"updated_at": null,
"event_id": "b36e25dd-bdd9-4ea3-a24f-0d4ec203ad11",
"occurred_at": "2026-10-28T10:05:00Z",
"response_id": "example-response-id"
}
}
Hosted action completed
Stop prompting: status is completed, and both link and response_id are null.
{
"event_type": "inquiry_request.answered",
"entity": "inquiry_request",
"data": {
"id": "example-inquiry-id",
"cause": "enrollment.person",
"object_type": "person",
"person_id": "example-person-id",
"business_id": null,
"deposit_id": null,
"payout_id": null,
"conversion_id": null,
"account_id": null,
"card_id": null,
"type": "link",
"query": "Please complete the requested verification.",
"link": null,
"status": "completed",
"is_deleted": false,
"created_at": "2026-10-28T10:00:00Z",
"updated_at": "2026-10-28T10:15:00Z",
"event_id": "2561a2a7-58df-4f55-8ab4-4f32e0a612aa",
"occurred_at": "2026-10-28T10:15:00Z",
"response_id": null
}
}
Process events reliably
- Verify and persist incoming events. Deduplicate by
data.event_id; retries preserve the ID and snapshot. - Deliveries may repeat or arrive out of order. Fetch current state before acting on an old event.
- Accept person-owned inquiries with
account_id: nulland keep listening for later RFIs. - Hosted completion emits
answeredwithout a separateupdated. Unchanged polls and refreshes emit nothing. - Historical inquiries receive no backfilled creation events. Use listing/fetching to recover missed state.

