Last updated

Set up WhatsApp Shop, step by step

WhatsApp Shop

Set up WhatsApp Shop, step by step

This page takes you from nothing to a working WhatsApp Shop, in order. Plan about an hour the first time. Part A happens in Meta's websites, Parts B to D in your store's admin, and Part E is a test from your own phone.

What you need before you start

  • Admin access to your Meta business (business.facebook.com). Creating a system user and its token needs full control of the business.
  • A phone number for WhatsApp. Either Meta's free test number, which can message up to 5 phones you add, or your own number. A number that is on the WhatsApp or WhatsApp Business app now must be removed from that app first.
  • The Manage settings permission in your store, to open Settings → Messaging and Settings → Modules.
  • Your own phone with WhatsApp, for the tests.

What each value does

You copy six values from Meta into your store. Knowing what each one is for makes most problems easy to find.

ValueWhat it does in your storeIf it is wrong
Access tokenLets your store send messages, submit templates and set up forms.Sending fails with an authentication error (Meta code 190, 10 or 200).
Phone number IDSays which of your numbers sends. It is an ID, not the phone number.Sending fails with Meta code 100.
App secretProves that incoming messages and delivery reports really come from Meta.Every incoming message is rejected; the inbox stays empty.
Webhook verify tokenA word you make up. Meta sends it back once, when it checks your webhook URL.Meta says the callback URL couldn't be verified.
WhatsApp Business Account IDThe account your templates and native forms are created in.Submitting a template or setting up forms says the ID is missing.
Meta App IDNeeded only for template headers with an image, video or document, and to change your WhatsApp profile photo.Those two actions ask for it.

Meta pages you will use

Sign in to Facebook with the account that manages your business first. If you manage more than one business, Meta asks which one, or shows a business menu at the top left.

PageWhat you do there
Business settingsYour business, its users and its accounts.
System usersCreate the system user and its permanent access token (A4).
WhatsApp accountsYour WhatsApp Business Accounts and who can use them.
Security CenterVerify your business, for higher messaging limits.
Billing and paymentsThe payment method WhatsApp charges for template messages.
WhatsApp ManagerPhone numbers, display names, message templates and their quality.
My AppsYour Meta app: API Setup, Configuration (the webhook) and App settings → Basic (App ID and App secret).
Access Token DebuggerCheck that a token is valid, never expires and has the right permissions.
Graph API ExplorerSend one request to Meta yourself: register a number, check the webhook subscription, give a number its own callback URL.

Meta's own documentation, for reference:

Part A — in Meta

A1. Your Meta business

  1. Open business.facebook.com and sign in. If you have no business yet, create one with your store's legal name.
  2. Open Settings (Business settings). The business ID shows under Business info; you need it only if Meta support asks.

A2. A Meta app with WhatsApp

  1. Open My Apps on Meta for Developers and click Create app.
  2. Choose the use case Connect with customers through WhatsApp (in older dashboards: app type Business, then add the WhatsApp product).
  3. Connect the app to your business from step A1 and finish.
  4. Open App settings → Basic:
    • copy the App ID;
    • click Show next to App secret and copy it;
    • enter your store's privacy policy page as the Privacy policy URL and save. Meta asks for it before the app can go Live.

A3. A phone number

To test first, use the test number. Open your app's WhatsApp → API Setup (in newer dashboards: Use cases → Customize → API Setup). Meta has already given the app a test number.

  1. Under To, click Manage phone number list and add your own phone. Meta sends it a code to confirm.
  2. The test number can message only the phones on this list, up to 5.

To use your own number:

  1. In API Setup, click Add phone number, or open WhatsApp Manager → Phone numbers → Add phone number.
  2. Enter the display name customers will see. It must match your business; Meta reviews it.
  3. Confirm the number with the code Meta sends by SMS or call.
  4. Wait until the number's status says Connected. If it stays Pending or Offline, register it (see Register a number below).
  5. Add a payment method to your WhatsApp account: WhatsApp Manager shows Add payment method until one is set, or open Business settings → Billing and payments. Without one, template messages such as order updates are refused (Meta code 131042).

A new number can start conversations with about 250 customers a day. Meta raises the limit as you send good-quality messages, faster once your business is verified in Business settings → Security Center.

A4. A permanent access token

The token on the API Setup page expires after about 24 hours, so your store would stop sending the next day. Make a permanent one with a system user:

  1. Open System users (Business settings → Users → System users) and click Add. Name it, for example Store WhatsApp, choose the Admin role and click Create system user.
  2. Select it and click Assign assets:
    • Apps: your app from A2, with full control (Manage app);
    • WhatsApp accounts: your WhatsApp Business Account, with full control. Click Save changes after each.
  3. Click Generate new token and choose:
    • App: your app from A2;
    • Token expiration: Never;
    • Permissions: whatsapp_business_messaging and whatsapp_business_management.
  4. Click Generate token and copy it. It starts with EAA and is a few hundred characters long; the App secret and the Client token in your app's settings are 32 characters and are not access tokens. Meta shows it only once: keep it in a password manager, and never send it by chat or email.

Check the token in Meta's Access Token Debugger: paste it and click Debug. You should see Valid: True, Expires: Never, both permissions under Scopes, and your WhatsApp Business Account ID under Granular scopes.

A5. The two IDs

On your app's WhatsApp → API Setup page, choose your number under From. Right below it Meta shows:

  • Phone number ID: copy it;
  • WhatsApp Business Account ID: copy it.

Each number has its own phone number ID, so copy the two IDs while the number you will use is selected.

Your business can have more than one WhatsApp Business Account: Meta keeps the test number in a test account of its own, and each account has its own ID. Templates and forms belong to an account, so the account ID you save must be the one that holds the number you save. WhatsApp Manager's Account tools menu does not show the ID. Besides API Setup, you find it:

  • in WhatsApp Manager's page address, as the number after asset_id=;
  • in WhatsApp accounts, under the account's name once you click it.

Part B — in your store

B1. Switch the modules on

  1. Open Settings → Modules.
  2. Switch on WhatsApp Notifications (on the Installed tab click Enable, or find it on Browse and click Install).
  3. Switch on WhatsApp Shop the same way. The WhatsApp Shop group appears under Customers.

Nothing changes for your customers yet: the bot can only answer once WhatsApp is connected.

B2. Connect WhatsApp in Messaging

  1. Open Settings → Messaging and click Set up (or Manage) on the WhatsApp card.
  2. Provider: WhatsApp Cloud API (Meta). The bot and the inbox work only with this provider.
  3. Paste the Access token (A4), Phone number ID and WhatsApp Business Account ID (A5), App secret and Meta App ID (A2).
  4. Webhook verify token: type a word you make up, for example shop-hook-2041, and note it for step C1.
  5. Leave Graph API version as it is.
  6. Under Delivery settings, set Default country to your country's two-letter code, so numbers typed without a country code still work.
  7. Switch on Send WhatsApp messages and click Save changes.
  8. Under Delivery status webhook, click Copy webhook URL. Every store has its own URL.

Secret values are stored encrypted and never shown again. To change one, type the new value; to keep it, leave the field blank.

Part C — connect the webhook

The webhook is how Meta brings your customers' messages, and the delivery reports of what you send, to your store.

C1. Add the callback URL

  1. In your Meta app, open WhatsApp → Configuration.
  2. Under Webhook, click Edit.
  3. Callback URL: paste the URL from B2 step 8.
  4. Verify token: the same word as in B2 step 4, exactly, with the same capitals.
  5. Click Verify and save.

Meta checks the URL straight away. It passes only while the WhatsApp channel is saved with Send WhatsApp messages on, the provider is WhatsApp Cloud API (Meta) and the word matches. If it fails, fix the channel, save, and click Verify and save again.

C2. Choose what Meta sends

Under Webhook fields, click Subscribe for:

FieldWhat it brings
messagesYour customers' messages and the delivery reports of everything you send. Required.
message_template_status_updateMeta's approval or rejection of the templates you submit.
message_template_quality_updateA template's quality rating.
template_category_updateWhen Meta moves a template to another category, for example from Utility to Marketing.

C3. Make the app Live

At the top of the app dashboard, switch App mode to Live (in newer dashboards: Publish). Meta asks for the privacy policy URL from A2 first. Until the app is Live, Meta may hold back messages from customers who have no role in your app.

C4. Two stores on one Meta app

A Meta app sends its webhooks to one callback URL. If two of your stores use the same app (for example a test store and your real store), give one store's number its own URL. Use Meta's Graph API Explorer:

  1. Choose your app under Meta App and paste the permanent token into Access Token.
  2. Choose POST and enter your phone number ID as the path.
  3. Add the field webhook_configuration with this value, using that store's webhook URL and verify token:
    {"override_callback_uri":"<that store's webhook URL>","verify_token":"<that store's verify token>"}
    
  4. Click Submit. "success": true means messages to that number now go to that store; the app's own callback URL keeps serving your other numbers.

Part D — check the connection

  1. From your own phone, send hi to your WhatsApp number. For the test number, your phone must be on its list (A3).
  2. Open Customers → WhatsApp Shop → WhatsApp Shop settings. The WhatsApp connection card should say Ready:
    • WhatsApp channel: On; Provider: WhatsApp Cloud API (Meta);
    • Phone number ID, Access token, App secret, Webhook verify token: Set;
    • Last message from Meta: the time of your hi. None yet means Meta is not calling your store; see Troubleshooting below.
  3. Your phone should already have the bot's welcome menu.
  4. Under Send a test message, enter your number with + and the country code, for example +15550100123, and click Send test message. Sent. Check WhatsApp on that phone. means it worked.
  5. Open Customers → WhatsApp Shop → Inbox: your chat is there, with the welcome.

Part E — set up your shop

Each step links to its own page with every setting.

  1. The bot's words. In WhatsApp Shop settings, check Bot answers customers is on, then write your Welcome message, Menu button labels and Talk to a person keywords. See The shopping bot.
  2. Opening hours. Switch on Use opening hours, enter your hours and Time zone, and write the After-hours message.
  3. Starter content. Open Customers → WhatsApp Shop → Starter content. Your FAQs, help pages, forms and flows wait there as drafts filled in with your store's own details. Read each item's review notes, edit what needs it, and click Turn on. See Starter content.
  4. Message costs and budget. Under Message costs, enter Meta's price per Marketing, Utility, Authentication and Service message for your customers' country, and a Monthly budget if you want one. See Costs, budget and metrics.
  5. Templates for messages you start. WhatsApp lets you write freely only within 24 hours of a customer's last message; after that, and for order updates, you need templates WhatsApp approved. Open Settings → Messaging → Templates, open a WhatsApp template, fill in the examples and click Submit to WhatsApp. WhatsApp usually answers within minutes; the page shows Approved or the reason for a rejection.
  6. Order updates. In Settings → Messaging → Order updates, switch on the WhatsApp column for the order events you want customers to hear about.
  7. The chat button. Under Chat button on your store, switch on Show the chat button and enter your WhatsApp number. See The chat button on your store.
  8. Links and QR codes for posters, packaging and ads: Customers → WhatsApp Shop → Entry links. See Entry links, QR codes and ads.
  9. Optional extras:
  10. Your team. Give View WhatsApp Shop and Manage WhatsApp Shop to the user groups that answer chats, and add Quick replies for answers you send often. See The inbox.

You can try every change first in Customers → WhatsApp Shop → Bot simulator, which sends nothing to WhatsApp.

Go-live test on your phone

Run this once before you tell customers. Use your own phone, and tick each line off as it works.

  1. Send hi: the welcome menu arrives within a few seconds.
  2. Browse → a category → a product: the card shows the picture and price. Add to cart, then View cart: the total matches your store.
  3. Checkout: the link opens your store with the same cart. Place a test order. The chat says the order was placed and, with the order-placed update switched on (Part E step 6), the confirmation arrives on WhatsApp.
  4. My orders: the order is listed, and its detail shows its status (and the tracking link once it has shipped).
  5. Type agent: the chat shows Human requested in the inbox. Reply from the inbox; the reply reaches your phone.
  6. Send a photo and a voice note: both show in the inbox. Send a photo back from the inbox.
  7. A day later (more than 24 hours after your last message), the inbox offers only templates. Send one; it arrives.
  8. Type STOP: you get one confirmation, and Customers → WhatsApp Shop → Contacts shows that you no longer receive messages. A second STOP sends nothing.
  9. Customers → WhatsApp Shop → Metrics shows the conversation, the messages, the order and what they cost.
  10. If you switched them on: an order placed in the chat with cash on delivery, a question answered by AI, a template you submitted and WhatsApp approved, and an entry link or QR code opened from your phone.

When all of it works, switch on the chat button and share your links.

Troubleshooting

What you seeWhat to do
Meta: "The callback URL or verify token couldn't be validated"In Settings → Messaging, the WhatsApp channel must be saved with Send WhatsApp messages on and the provider WhatsApp Cloud API (Meta). Retype the verify token in both places so they match exactly, save the channel, then Verify and save in Meta again.
Authentication error, or Meta code 190The access token expired or was revoked, usually because it was the 24-hour token from API Setup. Make a permanent one (A4), paste it in Settings → Messaging and save.
Authentication error straight after you saved a new tokenThe Access token field holds something that is not a token. A Meta access token starts with EAA and is a few hundred characters long; the App secret and the Client token are 32 characters. Clear the field, paste the system-user token (A4) and save.
Meta code 10 or 200 (permission)The token can't reach this number. Assign the WhatsApp account and the app to the system user (A4 step 2) and include both permissions when you generate the token.
Meta code 100 (object does not exist)The Phone number ID is wrong, or belongs to another business or app. Copy it again from API Setup with the right number selected.
Meta code 131030You are using the test number and that phone isn't on its list. Add it under API Setup → To → Manage phone number list.
Meta code 131047More than 24 hours have passed since the customer last wrote. Send an approved template instead.
Meta code 132001WhatsApp has no approved template with that name and language for your number. Check the template's status in Settings → Messaging → Templates, and that the WhatsApp Business Account ID in Settings → Messaging is the account that holds your number (A5).
Meta code 133010The number isn't registered for the Cloud API. See Register a number.
Meta code 131042There is no valid payment method on your WhatsApp account. Add one (A3).
Meta code 131026That phone can't receive the message: it isn't on WhatsApp, its app is very old, or it blocked you.
Last message from Meta stays None yetMeta isn't calling your store. Check C1 passed and messages is subscribed (C2). If another store uses the same Meta app, messages may be going there (C4). If it still stays empty, subscribe the app to your WhatsApp account, as below.
Your phone's messages arrive but customers' don'tMake the app Live (C3).
Messages stay Sent and never show DeliveredDelivery reports aren't reaching your store: check the webhook and the App secret, as above.

For problems inside the bot or the inbox, see Troubleshooting and FAQ.

Register a number

In Graph API Explorer, with your app and permanent token selected: choose POST, enter <your phone number ID>/register as the path, add the fields messaging_product = whatsapp and pin = a 6-digit PIN you choose, and click Submit. The PIN becomes the number's two-step verification PIN, so note it.

Subscribe the app to your WhatsApp account

Meta usually does this for you in C1. To check: in Graph API Explorer, choose GET with the path <your WhatsApp Business Account ID>/subscribed_apps and click Submit. If your app isn't listed, switch to POST with the same path and click Submit again.