# API04003 : Réponse JSON malformée

## Ce que cela signifie[​](#what-this-means "Lien direct vers Ce que cela signifie")

Le serveur a renvoyé des données qui semblent être du JSON mais qui sont corrompues ou invalides. Le POS n'a pas pu analyser la réponse car la syntaxe JSON est cassée.

## Causes courantes[​](#common-causes "Lien direct vers Causes courantes")

* **Avis/avertissements PHP** — Sortie PHP avant le JSON
* **BOM (Byte Order Mark)** — Caractères invisibles au début du fichier
* **Problèmes d'encodage** — Problèmes d'encodage de caractères
* **Réponse tronquée** — Réponse coupée au milieu de la transmission
* **Sortie de plugin** — Un plugin a ajouté un contenu non-JSON

## Comment corriger[​](#how-to-fix "Lien direct vers Comment corriger")

### 1. Vérifiez les avis PHP[​](#1-check-for-php-notices "Lien direct vers 1. Vérifiez les avis PHP")

Les avis/avertissements PHP avant le JSON cassent l'analyse :

Dans `wp-config.php` :

```
define('WP_DEBUG', true);

define('WP_DEBUG_LOG', true);

define('WP_DEBUG_DISPLAY', false);
```

Consultez `wp-content/debug.log` et corrigez les problèmes.

### 2. Vérifiez les caractères BOM[​](#2-check-for-bom-characters "Lien direct vers 2. Vérifiez les caractères BOM")

Certains éditeurs de texte ajoutent des caractères BOM invisibles :

* Sauvegardez à nouveau les fichiers PHP sans BOM
* Utilisez l'encodage UTF-8 sans BOM
* Vérifiez les fichiers récemment modifiés

### 3. Vérifiez la réponse complète[​](#3-verify-complete-response "Lien direct vers 3. Vérifiez la réponse complète")

Si les réponses sont tronquées :

* Vérifiez les paramètres de mise en mémoire tampon de sortie PHP
* Augmentez `output_buffering` dans php.ini
* Vérifiez les problèmes de délai d'attente

### 4. Testez l'API directement[​](#4-test-api-directly "Lien direct vers 4. Testez l'API directement")

Dans votre navigateur ou en utilisant curl :

```
curl -v https://yoursite.com/wp-json/wcpos/v1/
```

Recherchez tout contenu inattendu avant le JSON.

### 5. Vérifiez l'encodage des caractères[​](#5-check-character-encoding "Lien direct vers 5. Vérifiez l'encodage des caractères")

Assurez-vous que la base de données et PHP utilisent UTF-8 :

* Vérifiez les paramètres de jeu de caractères dans `wp-config.php`
* Vérifiez que les tables de la base de données sont en UTF-8
* Recherchez les caractères spéciaux causant des problèmes

## Erreurs associées[​](#related-errors "Lien direct vers Erreurs associées")

* [API04001](/fr/error-codes/API04001.md) — Format de réponse invalide
* [API04005](/fr/error-codes/API04005.md) — Tentative de récupération JSON

***
