With error.py

# Requête avec erreurs
# Il s’agit de la même requête que précédemment, mais le code postal est invalide (4 chiffres).
import base64
import pprint
import requests

URL = "https://webservice.imxpostal.fr/smc/rpc/"

USERNAME = "..." # fourni par IMX
PASSWORD = "..." # fourni par IMX
ACCOUNT = "..." # fourni par IMX

data = {
    "jsonrpc": "2.0",
    "method": "api.declare_parcel",
    # identifiant de requête. A la convenance du client, pas nécessairement unique.
    "id": "__test__",
    "params": [
        USERNAME,
        PASSWORD,
        {
            "account": ACCOUNT,
            "reference": "your reference number 3",
            "options": {
                "service": "1",
                "carrier": "gls",
                "carrier_tracking_id": True,
                "label": True,
            },
            "parcel_description": {
                "weight": "2.4", # in kg
            },
            "addressee": {
                "name": "Olivier Migeon",
                "company": "IMX postal",
                "address1": "110b avenue General Leclerc",
                "postcode": "9350",
                "town": "Pantin",
                "country": "FR",
            },
        }
    ]
}

xx = requests.post(URL, json=data)
pprint.pprint(xx.text)


# Response is as follow :
#
# {u'errors': [{u'code': u'INVALID',
#               u'field': u'addressee.postcode',
#               u'message': u'Valeur invalide',
#               u'value': u'9350'}],
#  u'infos': [],
#  u'label_source': u'gls',
#  u'success': False,
#  u'warnings': []}