WhatsApp

Sending works. Nothing arrives.

Almost always one of three things: your app is not subscribed to your WhatsApp account, the number is still living on the WhatsApp Business app, or the number was never registered. Run the check in Channels → WhatsApp and it names which one.

Start here

Run the connection check

It reads your Meta setup and changes nothing, so it is safe to press at any time — including while you are on the phone to us.

In your dashboard: ChannelsWhatsApp. Once a number is connected, a panel appears headed"Messages not arriving?" with a Run check button. It reports a Most likely cause at the top, then each individual check:

  • WhatsApp is connected — whether we hold working credentials, and which kind.
  • Number registered with the API — whether Meta reports the number as CONNECTED.
  • Number is on the API, not the phone app — only shown when Meta says the number is somewhere else.
  • App subscribed to receive messages — the one that is usually at fault.
  • Webhook signature secrets present — whether we can authenticate messages that do arrive.
  • Access token is valid — shown instead of the number check when Meta rejects the token itself.

A check that could not run says so rather than claiming a failure. "Couldn't reach Meta to check. Try again shortly." means exactly that — we did not look, so nothing is being alleged about your setup.

The most common failure

"No app is subscribed to this WhatsApp account"

This is Meta's side of the wiring, and the wording is precise: Meta has your messages and nowhere to deliver them. Outbound keeps working throughout, which is what makes it so hard to spot.

There are three separate switches, and people reasonably assume they are one:

  • Your app has a webhook URL, and Meta has verified it.
  • Your app is subscribed to the messages field on that webhook.
  • Your app is subscribed to your WhatsApp Business Account.

The first two can be perfect while the third is missing. That is this failure.

The quickest fix: connect again

ChannelsWhatsApp → connect your own WhatsApp Business account, with the same token, App ID and App secret. Subscribing your app to your WhatsApp account is one of the three things we do for you at the end of that flow, and it is safe to repeat. The completion screen lists what happened, including "App subscribed to your WhatsApp account".

You will be warned that finishing overwrites the stored credentials. That is expected — it is the same connection, re-provisioned.

Doing it by hand in Meta

Use this if the reconnect reports that it could not subscribe the app.

  • Confirm the subscription. WhatsApp Manager → your WhatsApp Business Account → Settings. Your app should be listed under subscribed apps.
  • Check the webhook on the app. Meta app dashboard → WhatsAppConfigurationWebhookEdit. Paste the Callback URL and Verify token we showed you, then subscribe to the messages field.
  • Cannot find those two values? They are on the completion screen at the end of the connect flow, under "Your webhook details". The verify token is shown once and stored encrypted, so if you did not copy it, run the connect flow again to get a fresh pair.

The callback URL is specific to your account and looks like this — copy it from the screen rather than typing it:

https://api.orcalinq.com/webhooks/channel/whatsapp/<your-account-id>

If the check says "No WhatsApp Business Account ID is stored, so this check cannot run", we never captured your WABA ID. Reconnect and, if the account is not detected,paste the WABA ID into the optional box.

Refusals that are not faults

The 24-hour customer service window

WhatsApp only lets a business send a free-form message within 24 hours of the customer's last message. Outside that window Meta refuses the send, and it is working as designed rather than broken.

You will meet it in two places:

  • The test message. If the number you are testing with has not messaged you in the last 24 hours, the send is refused. Message your business number from that phone first, then send the test. Tests are capped at three every 15 minutes, so do the messaging-first part before you start.
  • Live chat. When the window has closed on a conversation, the reply box is replaced with "The 24-hour WhatsApp window has closed" and a list of your approved templates. Sending one reopens the window, and you can talk normally again.

If you have no templates yet

ChannelsWhatsAppMessage templates. You can write one there instead of going to Meta's console. Meta reviews it, so a new template is pending until approved — write the ones you need before you need them. Pick the category honestly: Utility is about a specific existing order, booking or account; a greeting or a menu reads as Marketing to Meta's reviewer even when it does not to you.

One template is created for you automatically when WhatsApp connects: agent_new_escalation. It exists so an escalation still reaches a teammate on WhatsApp after their window has shut.

A send can also be declined because the recipient opted out of your messages. That is us declining deliberately, not a delivery failure — retrying will not help.

In order of likelihood

Everything that causes silent non-delivery

1

Your app is not subscribed to the WhatsApp account

Covered above. Outbound works perfectly, so nothing looks wrong.

2

The number is still on the WhatsApp Business app

If Meta reports the number as anything other than Cloud API, incoming messages go to that phone app and never reach us — with no error raised anywhere. The check names this as "Number is on the API, not the phone app".

The number has to be moved to the Cloud API, which means deleting its WhatsApp account first and losing its chat history permanently. Meta's Coexistence option keeps both, but it is only available through an approved Meta partner, and our application for that is still pending. Until it clears we cannot offer it, and a second number is the safe choice.

3

The number was never registered

Adding a number and proving you own it is not the same as registering it. Until it is registered with a 6-digit PIN, it cannot send or receive. The check reports Meta's own word for the state instead of CONNECTED.

Reconnecting attempts the registration for you. If Meta refuses, it is usually because the number is already registered with a different PIN, or because two-step verification is switched on for it — check the number in WhatsApp Manager → Phone Numbers.

4

We are missing the app secret or verify token

Messages then do arrive and are rejected as unsigned, because we cannot prove they came from Meta. The check flags this as a warning rather than a failure. Reconnect through the guided flow, which captures both.

Numbers connected through the retired manual form are in exactly this state: they were stored without an app secret, so inbound could never be verified. Reconnecting is the only fix.

5

Everything passes and messages still do not arrive

The check says so plainly. In that case the person messaging you is almost certainly messaging a different number from the one connected here. Compare the number on your poster, website or ad with the one the check reports.

It worked, then stopped

A dead access token

If WhatsApp worked for weeks and then went quiet, the token is the first suspect. The check will say:"WhatsApp is connected, but its access token has stopped working, so nothing can send or arrive until it is replaced" — followed by Meta's own reason, verbatim.

Two causes account for nearly all of it: a 60-day token reached its date, or a personal token was invalidated when someone changed their Facebook password. Neither announces itself. The fix is the same: generate a permanent System User token and reconnect.

A related message, "This WhatsApp number was disconnected. Reconnect it to re-add credentials", means the connection was removed here at some point. Connect it again.

If that did not work

What to send us

  • Email support@orcalinq.com with the Most likely cause line from the check, word for word, and the Phone number ID shown on its last line.
  • Add the time and date of one message that did not arrive, and the number it was sent from. That lets us look for it rather than guess.
  • Never send your access token or app secret. We cannot use them and they must not travel by email.
  • If you have another channel connected, such as Telegram, say whether that one is still delivering. It separates a WhatsApp problem from an account-wide one straight away.

Run the check first.

Channels → WhatsApp → Messages not arriving? → Run check. It reads your Meta setup, changes nothing, and names the cause.