Home

WhatsApp API Is Connected but Messages Are Not Arriving: Checklist

A green connection badge can be misleading because connecting credentials and activating a phone number are separate steps. Work through this checklist from registration to a real two-way test. Do not repeatedly disconnect and reconnect: that can create more migration and registration problems without fixing the failed layer.

Last updated July 13, 2026

Confirm the phone number is registered and CONNECTED at Meta
Verify billing and webhook subscription on the exact WABA that owns it
Test inbound and outbound separately with one outside phone

Short answer

Treat “Connected” as step one, not the final health check. A working number must also be registered as CONNECTED at Meta, billable on its owning WABA, subscribed to the correct webhook, authorized for sending, and proven with a two-way test.

Why teams search for this

Why a number can say Connected but remain offline

The connection badge confirms that marv.Inbox stored a valid link to your WhatsApp Business Account. Meta still has to register the phone number on the Cloud API network. If registration is PENDING or failed, the channel may look connected while customer messages never reach it. In marv.Inbox, open Channels → WhatsApp and use Check connection; if you see the amber “not active at Meta” notice, fix the cause and use Retry registration instead of reconnecting.

  • Registration: the phone-number status at Meta must be CONNECTED, not only the integration row.
  • Billing: the payment method must belong to the exact WhatsApp Business Account (WABA) that owns the number.
  • Delivery: Meta must have the app subscribed to the WABA webhook, including the messages field.

1. Did phone-number registration finish, and is payment required?

For a Cloud API-only number, registration must finish before inbound messages can arrive. In marv.Inbox, an amber “not active at Meta” notice means the link was saved but Meta did not activate the number. Run Check connection first. After correcting the cause, click Retry registration; you do not need to reconnect or request another OTP.

A Meta payment method is commonly required when the owning WABA cannot complete registration or messaging without billing. Billing is per WABA, not per Meta Business. Add the payment method to the exact WABA that contains the phone number. A card on a different WABA does not fix it, and marv.Inbox cannot add the customer’s card on their behalf.

2. Is the webhook subscribed correctly?

Inbound delivery requires the marv.Inbox Meta app to be subscribed on the number’s WABA with the messages field. In Channels → WhatsApp, Check connection verifies the subscription and can repair missing subscribed fields when authorization still permits it. A valid callback URL alone is not proof that the WABA is subscribed.

If you can send but not receive, focus on registration and the WABA webhook. If you can receive but not reply, the webhook is already delivering; inspect the failed outbound message instead. Free-form replies are allowed only inside the 24-hour customer-service window. Outside it, use an approved template and make sure the token can send for the same phone-number ID.

3. Why did the OTP or provider migration fail?

If the OTP did not arrive, confirm the full international number and country code, that the SIM or landline can receive the selected SMS or voice method, and that no IVR, spam filter, or call forwarding blocks the call. Wait for Meta’s resend timer; repeated requests can trigger a temporary limit. Never send an OTP to support.

A number already attached to another Business Solution Provider may need a migration or takeover rather than a new-number connection. Keep the old provider active until the two-way test passes, select the existing WABA and number during signup, and remove the old provider only afterward. Disable two-step verification for the phone number in WhatsApp Manager before migration; an existing PIN can block registration or takeover. Re-enable the protection required by your final setup after migration completes.

4. Where to find Meta’s actual error and test safely

For a registration failure, open Channels → WhatsApp and copy the detailed reason from the amber connection notice. For an outbound delivery failure, open the conversation and hover the red failed-message icon to see Meta’s numeric error code, title, and detailed reason. If the visible reason is still generic, give support the test timestamp, WABA ID, and phone-number ID so they can locate the raw Meta response. Never share the access token, verification PIN, or OTP.

Use one outside phone and plain text first. Send inbound, reply within 24 hours, and verify delivery in both places. Test only a few times, avoid production broadcasts, and do not repeatedly register, reconnect, or migrate the number. After text works both ways, test one media message, one approved template, and then automations as separate layers.

Workflow

Safe ten-minute connection test

01

In Channels → WhatsApp, run Check connection and record the registration, webhook, and authorization result. Copy the detailed Meta reason before changing anything.

02

From a separate personal phone, send a new plain-text message to the business number. Wait for it to appear, then reply from marv.Inbox while the 24-hour customer-service window is open.

03

Confirm the reply is delivered on the outside phone. If one direction fails, use the matching section below; if both work, test media and automation separately rather than changing the channel connection.

What the better setup should include

Read the symptom before changing the setup

Send works, receive fails

Credentials can call the send API, but the WABA webhook is missing, subscribed to the wrong app, missing the messages field, or pointed at a handler that cannot validate or process Meta events.

Receive works, reply fails

The webhook path is healthy. Check the 24-hour reply window, template approval outside that window, access-token permissions, recipient or phone-number ID, and the exact error returned for the failed message.

Neither direction works

Start with phone registration, WABA billing, migration ownership, and authorization. Webhook tuning will not activate a number that is still PENDING at Meta.

Best fit

Before you contact support, collect this evidence

  • Business ID, WABA ID, phone-number ID, display number, connection mode, and previous provider name.
  • The time and timezone of one inbound test and one outbound test, plus the outside test number.
  • The Meta error code and detailed reason shown on a failed message, or the registration reason shown on the channel; remove access tokens and OTPs before sharing.

Questions teams ask before changing the workflow

Why does my phone number say Connected but remain offline?+

Connected confirms the account link, not phone activation. The number can still be PENDING at Meta because registration failed. Run Check connection, fix the displayed reason, and use Retry registration rather than reconnecting.

Did I finish phone-number registration?+

The phone-number status at Meta must be CONNECTED. In marv.Inbox, Channels → WhatsApp shows an amber “not active at Meta” notice when registration did not finish.

Is a Meta payment method required?+

It may be required for registration and paid message categories. Add it to the exact WABA that owns the number; billing on another WABA does not apply.

Is the webhook subscribed correctly?+

The correct Meta app must be subscribed to the owning WABA with the messages field. Run Check connection; a reachable callback URL by itself is not enough.

Why can I send but not receive?+

Outbound credentials can work while inbound delivery is broken. Check number registration and the WABA webhook subscription, app, subscribed fields, and event processing.

Why can I receive but not reply?+

Inbound webhooks are working. Inspect the outbound error, the 24-hour service window, approved-template requirement outside that window, token permissions, and phone-number ID.

Why didn’t the OTP arrive?+

Verify the international number and SMS or voice reachability, remove IVR or spam blocking, and wait for Meta’s resend timer. Repeated requests can cause a temporary limit.

Is the number still connected to another provider?+

If it is, use the migration or takeover path with the existing WABA. Keep the old provider until inbound and outbound tests pass, then remove it.

Did two-step verification block migration?+

An existing phone-number PIN can block registration or takeover. Turn off two-step verification in WhatsApp Manager before migration, then restore the protection required by the completed setup.

Where can I see Meta’s actual error code?+

For registration, read the detailed reason in the Channels → WhatsApp warning. For a failed outbound message, hover the red failure icon to see Meta’s code, title, and details. If needed, support can find the raw response from your timestamp, WABA ID, and phone-number ID. Never share tokens, PINs, or OTPs.

How do I test the connection safely?+

Use one outside phone, send plain text inbound, reply within 24 hours, and confirm both deliveries. Avoid broadcasts and repeated reconnect or registration attempts; test media, templates, and automation only after text works.

See whether this workflow fits your team

Explore the product, then request a walkthrough if you want help mapping channels, ownership, automation, or rollout.