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.