# Erreur WhatsApp 10 : permission refusée, cause et solution

URL: https://wa.genuka.com/docs/errors/10
Language: French

> Erreur WhatsApp 10 « Application does not have permission for this action » : permission manquante, ou template OTP sur une entreprise non vérifiée.

L'erreur WhatsApp 10 signifie qu'une permission nécessaire à l'appel n'a pas été accordée ou a été
retirée. Sur la Cloud API, le cas le plus fréquent est trompeur : créer un template
`AUTHENTICATION` (code OTP) pour une entreprise non vérifiée par Meta renvoie « Application does
not have permission for this action ». Le problème est l'entreprise, pas l'application.

## Que signifie l'erreur 10 ?

Meta la classe parmi les erreurs d'autorisation :

> « Permission is either not granted or has been removed. »
> — [Meta, codes d'erreur de la Cloud API](https://developers.facebook.com/documentation/business-messaging/whatsapp/support/error-codes#authorization-errors)

La solution que Meta propose couvre trois pistes : vérifier dans le débogueur de jetons que l'app
a reçu les permissions exigées par l'endpoint ; pour les WhatsApp Flows avec endpoint, vérifier que
le numéro utilisé pour déclarer la clé publique de l'entreprise est sur liste autorisée ; et
vérifier les conditions d'éligibilité de l'API appelée, car un compte non éligible reçoit
précisément ce code. Dans la documentation générale de Graph, le code 10 s'appelle « API
Permission Denied »
([Meta, Graph API, gestion des erreurs](https://developers.facebook.com/docs/graph-api/guides/error-handling)).

## Quand l'erreur 10 apparaît-elle ?

| Situation                                                                  | Ce que vous voyez                                        | Qui peut corriger                                                    |
| -------------------------------------------------------------------------- | -------------------------------------------------------- | -------------------------------------------------------------------- |
| Création d'un template `AUTHENTICATION` pour une entreprise non vérifiée   | « Application does not have permission for this action » | L'entreprise : vérification Meta, puis plafond d'envoi passé à 2 000 |
| Jeton sans `whatsapp_business_management` ou `whatsapp_business_messaging` | Le même message, sur n'importe quel endpoint             | Le détenteur du jeton                                                |
| Fonction réservée à des comptes éligibles                                  | Code 10 sur l'endpoint de cette fonction                 | Selon les conditions de Meta pour cette API                          |
| WhatsApp Flows avec endpoint, numéro non autorisé                          | Code 10 à la déclaration de la clé publique              | Le détenteur de l'app                                                |

### Le cas du template OTP

C'est celui qui fait perdre des heures. Sur les comptes connectés à Genuka WA, nous constatons que :

* la création d'un template `AUTHENTICATION` échoue avec le message « Application does not have
  permission for this action » quand l'entreprise n'a pas passé la vérification Meta ;
* les templates `MARKETING` et `UTILITY` du même compte sont créés normalement ;
* l'état de santé du compte porte l'erreur [141010](https://wa.genuka.com/docs/errors/141010), « The Business has not
  passed business verification ».

Un développeur a rapporté la même réponse sur le forum de Meta, avec `error_subcode: 2388185` et le
message utilisateur « This WhatsApp Business account does not have permission to create message
template » ([forum développeurs Meta](https://developers.facebook.com/community/threads/1372007877817645/)).
Le message accuse l'application. Aucun réglage de jeton ou de permission n'y change rien.

Vous ne pouvez pas non plus contourner le blocage avec un template utilitaire : dès qu'une
application propose de recevoir des mots de passe à usage unique ou des codes de vérification par
WhatsApp, Meta impose un template d'authentification
([Meta, Authentication templates](https://developers.facebook.com/documentation/business-messaging/whatsapp/templates/authentication-templates/authentication-templates)).

### Où la voir dans Genuka WA ?

Genuka WA range le code 10 dans la classe `config` : jeton, permission ou enregistrement, rien que
réessayer puisse régler.

| Canal                    | Ce que vous recevez                                                                                                                                                        |
| ------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `POST /api/v1/templates` | `403`, `"error": "meta_rejected"`, `meta.code: 10`                                                                                                                         |
| `POST /api/v1/messages`  | `409`, `"error": "send_config"`, `meta.code: 10`                                                                                                                           |
| Campagne `MARKETING`     | Si l'API Marketing Messages refuse avec ce code, Genuka renvoie le message par l'endpoint `/messages` classique ; si celui-ci refuse aussi, le destinataire passe `failed` |

```json title="403 — POST /api/v1/templates (catégorie AUTHENTICATION)"
{
  "error": "meta_rejected",
  "message": "Application does not have permission for this action",
  "meta": {
    "errorClass": "config",
    "retryable": false,
    "code": 10,
    "traceId": "AbC…"
  }
}
```

## Comment corriger l'erreur 10 ?

### Sur un template d'authentification

1. **Confirmez la cause.** Dans Meta Business Suite, **Centre de sécurité > Vérification de
   l'entreprise** affiche l'état de vérification du portefeuille qui possède le compte WhatsApp. Si
   vous appelez Graph vous-même, `GET /{WABA_ID}?fields=business_verification_status,health_status`
   donne la même réponse en une requête : le champ `business_verification_status` est décrit dans la
   [référence du compte WhatsApp Business](https://developers.facebook.com/documentation/business-messaging/whatsapp/reference/whatsapp-business-account/whatsapp-business-account-api),
   `health_status` dans [Health status](https://developers.facebook.com/documentation/business-messaging/whatsapp/support/health-status).
2. **Faites vérifier l'entreprise.** La démarche se lance depuis Meta Business Suite, sur le
   portefeuille qui possède le compte WhatsApp
   ([Meta, Faire vérifier votre entreprise](https://www.facebook.com/business/help/2058515294227817)).
   Le détail est sur la page [erreur 141010](https://wa.genuka.com/docs/errors/141010).
3. **Recréez le template une fois l'entreprise vérifiée et le plafond passé à 2 000** (WhatsApp
   Manager, **Account tools > Messaging limits**). Le même `POST /api/v1/templates`, avec
   `"category": "AUTHENTICATION"` — voir le guide [codes OTP depuis Node.js](https://wa.genuka.com/docs/guides/whatsapp-otp-nodejs).

### Sur une permission manquante

* **Si vous détenez le jeton** : ouvrez-le dans le
  [débogueur de jetons](https://developers.facebook.com/tools/debug/accesstoken/), vérifiez
  `whatsapp_business_management` et `whatsapp_business_messaging`, et régénérez-le avec ces deux
  permissions s'il en manque une
  ([Meta, support WhatsApp](https://developers.facebook.com/documentation/business-messaging/whatsapp/support#authentication-authorization)).
* **Si vous passez par Genuka WA** : vous n'avez pas de jeton Meta à corriger. Un code 10 hors
  template d'authentification relève de Genuka : écrivez au support avec l'en-tête
  `x-request-id` et `meta.traceId`.

## Comment éviter l'erreur 10 ?

* **Faites vérifier l'entreprise avant de prévoir des OTP sur WhatsApp.** C'est un prérequis de
  Meta, pas une option de Genuka.
* **Testez le parcours d'authentification sur un compte vérifié** avant d'annoncer la
  fonctionnalité : un compte de test non vérifié échouera toujours.
* **Gardez les deux permissions WhatsApp** sur tout jeton que vous générez vous-même.

## Quels codes sont liés ?

* [141010](https://wa.genuka.com/docs/errors/141010) : l'entreprise n'a pas passé la vérification Meta.
* [200](https://wa.genuka.com/docs/errors/200) : le jeton n'a pas accès au compte, ou la permission manque (200 à 299).
* [3](https://wa.genuka.com/docs/errors/3) : capacité ou permission manquante pour cet endpoint.
* [190](https://wa.genuka.com/docs/errors/190) : le jeton a expiré.

## FAQ

### Pourquoi Meta parle-t-il de l'application alors que mon jeton est bon ?

Parce que le message est générique. Sur un template `AUTHENTICATION`, nous le voyons quand
l'entreprise n'est pas vérifiée, alors que le jeton et ses permissions sont corrects : les
templates marketing et utilitaires du même compte passent.

### Puis-je envoyer des codes OTP avec un template utilitaire en attendant ?

Non. Meta exige un template d'authentification pour les codes à usage unique. En attendant la
vérification, envoyez vos codes par un autre canal, SMS ou e-mail.

### Faut-il régénérer ma clé API Genuka ?

Non. Votre clé Genuka n'intervient pas dans les permissions Meta. Un problème de clé produit un
`401` de Genuka, jamais un code 10.

### Le code 10 bloque-t-il aussi mes envois ?

Pas dans le cas du template OTP : seule la création de templates `AUTHENTICATION` est refusée.
Vos templates marketing et utilitaires approuvés continuent de partir.

## Sources

* [Meta — Error codes](https://developers.facebook.com/documentation/business-messaging/whatsapp/support/error-codes)
* [Meta — Graph API, Handling errors](https://developers.facebook.com/docs/graph-api/guides/error-handling)
* [Meta — Authentication templates](https://developers.facebook.com/documentation/business-messaging/whatsapp/templates/authentication-templates/authentication-templates)
* [Meta — Health status](https://developers.facebook.com/documentation/business-messaging/whatsapp/support/health-status)
* [Meta — WhatsApp Business Account API](https://developers.facebook.com/documentation/business-messaging/whatsapp/reference/whatsapp-business-account/whatsapp-business-account-api)
* [Meta — Messaging limits](https://developers.facebook.com/documentation/business-messaging/whatsapp/messaging-limits)
* [Meta — WhatsApp support, authentication and authorization errors](https://developers.facebook.com/documentation/business-messaging/whatsapp/support#authentication-authorization)
* [Meta — Faire vérifier votre entreprise dans Meta Business Suite](https://www.facebook.com/business/help/2058515294227817)
* [Forum développeurs Meta — erreur 10 sur un template d'authentification](https://developers.facebook.com/community/threads/1372007877817645/)
