Skip to content

BSUID identity-change ingestion & webhook accuracy

Released: August 16, 2026

contact.identity_updated on phone-number change Changed

Section titled “contact.identity_updated on phone-number change ”

Meta now reports a WhatsApp user changing their phone number (and the BSUID rotation that comes with it) as a system message on the messages webhook — the older user_id_update field is no longer a subscribable event. Kirimdev ingests both: the contact’s row is migrated to the new BSUID (and phone, when Meta still shares it) in place, and the existing contact.identity_updated webhook fires exactly as before.

If you subscribe to contact.identity_updated, no action is required — you keep receiving the same event with the same payload, now including rotations triggered by a phone-number change. The rotation never creates a new contact or a duplicate conversation: the BSUID is the stable anchor and the existing contact row is updated.

Correct contact on batched webhooks Fixed

Section titled “Correct contact on batched webhooks ”

When Meta batches messages from multiple senders in a single webhook delivery (for example, group chats), each incoming message is now matched to its own contact — name, username, and BSUID. Previously every message in such a batch could be attributed to the first contact in the payload. Single-sender deliveries (the vast majority) are unaffected.

Parent BSUID on status webhooks Fixed

Section titled “Parent BSUID on status webhooks ”

Outbound delivered / read status webhooks now correctly populate the parent BSUID for managed businesses enrolled in the parent BSUID program. Meta renamed this field on the wire (to recipient_parent_user_id); we now read the current name, so the value is no longer silently dropped. This only affects parent-BSUID-enrolled portfolios; regular accounts see no change.