Meta Tech Provider

The history webhook

history carries the one time transfer of a Coexistence number's existing conversations to the API. It arrives after onboarding when history sharing was accepted, and it is the only signal an integration gets that the transfer happened at all.

24 hours

The window after onboarding in which the synchronisation must start.

2593107

The error returned when the sync has already been used.

2593108

The error returned when it is attempted outside that window.

What it delivers

The one to one message history a number already had in the WhatsApp Business app, carried across so software does not start blind on a line a business has used for years.\n\nWhat does not come with it is group conversations, which are excluded from the API on a Coexistence number entirely, and the app's own tooling: labels, quick replies, greeting and away messages have no API equivalent and stay on the device.\n\nThis field exists only on Coexistence numbers. A number onboarded the ordinary way has no prior app history to bring, so there is nothing for it to deliver.

Why it fires once

Because the transfer is part of onboarding rather than an ongoing capability.\n\nThe business owner is asked during Embedded Signup whether to share existing conversations. Answering yes is what allows the sync to run, and there is no setting that turns it back on afterwards and no endpoint that repeats it. A second attempt returns 2593107 rather than a rate limit that clears.\n\nThere is also a deadline. The sync has to be started within 24 hours of onboarding, and attempting it later returns 2593108. Missing either means disconnecting the number and running the whole flow again.

What a handler should do with it

Treat it as a batch that arrives once and may be large, rather than as more traffic on the message path.

  • Acknowledge quickly and process asynchronously, as with any other delivery.
  • Deduplicate on message id: history and live messages can overlap around the moment of onboarding.
  • Expect it to be absent. A number whose owner declined history sends nothing here, and the integration has to work either way.
  • Do not block onboarding on it. The connection is usable before the transfer finishes.

Common mistakes

  • Building an integration that requires history to exist. Plenty of numbers connect without it.
  • Retrying the sync after 2593107. It is a one time event, so the retry returns the same error.
  • Leaving the history decision until integration work starts, which is usually after the 24 hour window closed.
Doing this with EasyCoexistence

EasyCoexistence records onboarding and its history choice on the connection timeline, so whether a number synced, and on what day, is a dated fact rather than something to reconstruct later.

Frequently asked questions

How much history arrives?

A window of recent one to one conversations, set by Meta rather than by a provider.

Do group chats come across?

No. Groups are excluded from the API on a Coexistence number entirely.

Can I request it again later?

No. It runs once per onboarding, and running it again means disconnecting and reconnecting the number.

What if the owner declined history?

Nothing arrives on this field, and the API sees only messages from the moment the number connected.

Keep reading

Ready to get started?

Set up WhatsApp Coexistence in minutes, not months. The app keeps working on the phone.

Start Free Trial

Verified on

history Webhook