WhatsApp error 10: Permission Denied
Last verified against Meta for Developers - Cloud API error codes
Permission is either not granted or has been removed.What error 10 means
Code 10 means the token you used does not carry a permission the endpoint requires, or that permission used to be present and has since been revoked. The platform authenticated you successfully, then refused the specific operation. It is the most common error for teams who generate a token in a hurry and tick the wrong boxes, and for teams whose business admin later edited System User roles.
The two permissions that matter for the Cloud API are whatsapp_business_messaging (sending and receiving messages, media, and registration) and whatsapp_business_management (templates, phone numbers, WABA settings). A token with only one of them will get code 10 on the other family of endpoints. Meta's documentation also notes a case specific to the business public key endpoint: the phone number setting the key must be allowlisted.
This is not a token expiry. The same token will work on other endpoints where its scopes suffice.
Code 10 is synchronous, arrives with HTTP 403, and never reaches the messaging queue. Keep the authorization family straight when triaging: 190 means the token is dead, code 0 means it could not be authenticated at all, code 10 means a valid token lacks a scope, and the 200-series usually means the underlying user lacks a role on the asset; 131005 is the same refusal issued by the WhatsApp layer. Integrations that go through a BSP rarely meet code 10, because the provider holds the Meta-side permissions - when it does appear in a partner setup, the usual cause is the client revoking the partner's access to the WABA in Business Settings.
What it looks like
{
"error": {
"message": "(#10) Application does not have permission for this action",
"type": "OAuthException",
"code": 10,
"fbtrace_id": "AbCd10EfGh789Ij"
}
}Why it happens
- The token was generated without whatsapp_business_management, so template or phone number calls are refused while sends still work.
- A business admin removed the System User's assignment to the WABA, revoking access after the token was issued.
- The app lost advanced access to a permission after an App Review change or a policy action.
- The phone number used for the business encryption public key endpoint is not allowlisted.
- You are addressing a WABA that belongs to a different business portfolio than the one the System User sits in.
How to fix WhatsApp error 10
- 1Decode the token in the Access Token Debugger and list its scopes; compare against the endpoint reference.
- 2In Business Settings, Users, System Users, open the user and confirm the WhatsApp Business Account appears under Assigned Assets with full control.
- 3Regenerate the token with both whatsapp_business_messaging and whatsapp_business_management selected.
- 4If the call involves a WABA in another portfolio, have that portfolio share the asset or use a token from a System User in that portfolio.
- 5Retry the failing request with the new token; a restart may be required if the old one is cached.
How to stop it recurring
Standardize on one token template per environment that always carries both WhatsApp scopes, and record which System User and asset assignments back each production token. Alert on code 10 separately from other errors because it almost always follows a human change in Business Manager, and the fastest fix is to find out who changed what.
Official reference: Meta for Developers - Cloud API error codes. See all WhatsApp error codes or the WhatsApp limits and quotas.
Related codes
- 3: API MethodCapability or permissions issue.
- 200-299: API PermissionPermission is either not granted or has been removed.
- 131005: Access deniedPermission is either not granted or has been removed.
- 190: Access token has expiredYour access token has expired.
- 0: AuthExceptionWe were unable to authenticate the app user.
Error 10 - quick answers
What does WhatsApp error 10 mean?
Code 10 means the token you used does not carry a permission the endpoint requires, or that permission used to be present and has since been revoked. The platform authenticated you successfully, then refused the specific operation. It is the most common error for teams who generate a token in a hurry and tick the wrong boxes, and for teams whose business admin later edited System User roles.
How do I fix WhatsApp error 10?
1. Decode the token in the Access Token Debugger and list its scopes; compare against the endpoint reference. 2. In Business Settings, Users, System Users, open the user and confirm the WhatsApp Business Account appears under Assigned Assets with full control. 3. Regenerate the token with both whatsapp_business_messaging and whatsapp_business_management selected. 4. If the call involves a WABA in another portfolio, have that portfolio share the asset or use a token from a…
Stop debugging WhatsApp by hand
Connect the channel through Conferbot: tokens, webhooks and retries are handled, failures show as readable status.