SUBJECT_RECORD_DATA_UPDATED Event
This webhook event is sent when entity data within a subject record is modified. This includes updates to businesses, persons, bank accounts, and other related entities.
When This Event Is Sent
- Business information is updated (name, address, tax ID, etc.)
- Related bank account data or relationships.
- Related owner/person data or relationships.
- Person information is changed (name, email, date of birth, etc.)
- Bank account details are modified.
- Sales information is updated.
Decrypted Data Parameters
This event includes all default parameter for version 1.0 in the decrypted data parameter, plus the following parameters:
Note: This event does not include workflow_id or workflow_type as data updates associations are related to the subject_record.
| Parameter | Type | Required | Description |
|---|---|---|---|
| entities | object | Yes | An object containing arrays of updated entity references. Each entity type (business, persons, bank_accounts, etc.) lists which entities and fields were modified. |
Entities Structure
The entities object groups updates by entity type:
| Entity Type | Description |
|---|---|
| business | Business entity updates |
| persons | Person entity updates |
| bank_accounts | Bank account updates |
| sales_info | Sales Information updates |
Each entity type contains an array of objects with:
| Field | Type | Description |
|---|---|---|
| {entity}_id | string | The entity identifier. - For business , the entity_id will be one of: business_id, business_bank_account_id, business_owner_id- For persons , the entity_id will be person_id- For sales_info , the entity_id will be sales_info_id- For bank_accounts , the entity_id will be bank_account_id |
| fields | array | Array of field paths that were updated (e.g., ["email", "addresses.legal.line1"]) |
Partial Updates
Important: Depending on the action that triggered the webhook, you will receive only the entities and fields that were actually updated.
For example:
- If only a person's email was updated, you'll receive only that person's ID with
"fields": ["email"] - If a business address was changed, you'll receive the business ID with the specific address fields that changed
- You will not receive data for entities that were not part of the update
This targeted approach helps you identify exactly what changed without needing to compare entire entity records.
Example Payload
Note: This example shows the decrypted payload. When you receive this webhook, the data field will be encrypted. See the encryption reminder for details.
This example shows all possible entity types and fields for documentation purposes. In practice, you will receive only the entities and fields relevant to the specific update that triggered the webhook.
{
"id": "wh_4aMSv31YsvkIwpkZo8Rum0",
"event_type": "SUBJECT_RECORD_DATA_UPDATED",
"timestamp": "2026-03-10T19:04:54Z",
"account_id": "account_id",
"schema_version": "2025-11-21",
"key_id": "whk_20260223_09",
"data": {
"version": "1.0",
"subject_record_id": "sr_7egZK1augIXQgdtP2kFce5",
"user_context": {
"user_id": "[email protected]",
"user_type": "USER"
},
"entities": {
"business": [
{
"business_id": "b_4oITqxHBNGKx1nArCAgPSS",
"fields": [
"email",
"tax_id",
"website",
"addresses.legal",
"addresses.legal.line1",
"addresses.legal.line2",
"addresses.legal.city",
"addresses.legal.state",
"addresses.legal.postal_code",
"addresses.legal.country",
"addresses.mailing",
"addresses.mailing.line1",
"addresses.mailing.line2",
"addresses.mailing.city",
"addresses.mailing.state",
"addresses.mailing.postal_code",
"addresses.mailing.country",
"legal_name",
"phone_number",
"operating_name",
"social_networks.youtube",
"social_networks.linkedin",
"social_networks.facebook",
"established_date",
"additional_fields.merrick_mid",
"registration_type",
"business_description",
"industry_category_codes.mcc",
"industry_category_codes.mcc.code",
"industry_category_codes.mcc.card_brand"
]
},
{
"business_owner_id": "bo_1NSOqEb0KZqaQjmYbF0dJ8",
"fields": [
"ownership_type",
"ownership_percentage",
"ownership_year_month",
"business_person_position"
]
},
{
"business_bank_account_id": "bba_7712HQoFEymfb8bzbgcLkN",
"fields": [
"bank_account_id",
"bank_account_purposes"
]
}
],
"persons": [
{
"person_id": "p_4U215V5NVryLmzVnfIp2mM",
"fields": [
"email",
"tax_id",
"addresses.primary_residence",
"addresses.primary_residence.line1",
"addresses.primary_residence.line2",
"addresses.primary_residence.city",
"addresses.primary_residence.state",
"addresses.primary_residence.postal_code",
"addresses.primary_residence.country",
"last_name",
"first_name",
"citizenship",
"middle_name",
"phone_number",
"date_of_birth"
]
}
],
"bank_accounts": [
{
"bank_account_id": "ba_39x9E9xcWaTjTuKsoElX8C",
"fields": [
"bank_name",
"bank_account_type",
"bank_account_number",
"bank_routing_number",
"bank_account_ownership_type"
]
}
],
"sales_info": [
{
"sales_info_id": "bsi_48nRiv7sU40CN6daLOUT7f",
"fields": [
"card_brands",
"sales_amount.highest_ticket_sales",
"sales_amount.average_individual_sale",
"sales_amount.average_yearly_credit_sales",
"sales_amount.average_monthly_credit_sales",
"sales_method.keyed",
"sales_method.online",
"sales_method.retail",
"sales_method.telephone"
]
}
]
}
}
}
Real-World Example
If only a person's email was updated, you would receive a much simpler payload:
{
"id": "wh_4aMSv31YsvkIwpkZo8Rum0",
"event_type": "SUBJECT_RECORD_DATA_UPDATED",
"timestamp": "2026-03-10T19:04:54Z",
"account_id": "account_id",
"schema_version": "2025-11-21",
"key_id": "whk_20260223_09",
"data": {
"version": "1.0",
"subject_record_id": "sr_7egZK1augIXQgdtP2kFce5",
"user_context": {
"user_id": "[email protected]",
"user_type": "USER"
},
"entities": {
"persons": [
{
"person_id": "p_4U215V5NVryLmzVnfIp2mM",
"fields": [
"email"
]
}
]
}
}
}
Retrieving information
- With
businesss_id, you can retrieve related business information with the business.get endpoint. - With
business_owner_id, you can retrieve related business information with the business.getOwner endpoint. - With
business_bank_account_id, you can retrieve related business information with the business.getBankAccount endpoint. - With
person_id, you can retrieve related business information with the person.get endpoint. - With
bank_account_id, you can retrieve related business information with the bankAccount.get endpoint. - With
sales_info_id, you can retrieve related business information with the business.salesInfo.get endpoint.
Updated 28 days ago