Aller au contenu

La fonction “api.add_parcel_content”

Cette fonction permet de spécifier le contenu d'un colis. Celui-ci est normalement donné dans la fonction api.declare_parcel.

api.add_parcel_content permet de le déclarer a posterio ou de le corriger après récupération de l'étiquette.

Description de la requête

Cette fonction prend trois arguments en paramètre :

  • username: donné par IMX ;
  • password: donné par IMX ;
  • data: dictionnaire de données contenant les données de votre requête.

L'objet data

Nom Description
account char(40)Identifiant compte clientDans la plupart des cas, est égal au paramètre “username”.
imx_tracking_id intRéférence IMX du colis.
overwrite boolIndique si on doit écraser les données précedemment déclarées. Optionnel (valeur par défaut : True)
parcel_content[] Liste de dictionnaires décrivant le contenu du colis à l'usage des douanes. Pour chaque item, on définit les champs suivants :
.description c(80)Description de l'item.
.classification c(20)Code classification douanière de l'item.
.origine c(20)Pays d’origine de l'item.ISO 3166-1 alpha2.
.value n(10,2)Valeur unitaire de l'item. Le séparateur décimal est le point.Exemple: 10.02
.currency c(3)Monnaie de la déclaration de valeur de l'item.Code ISO 4217. Valeur par défaut : "EUR"
.amount n(10)Quantité d'items présent.Valeur par défaut : 1
.weight n(10,3)Poids unitaire de l'item, en kilos.
.prc_cov c(6)Pourcentage composés organiques volatils.Exemple : '12,24'
.reference c(80)Référence client de l'item.

Description de la réponse

Champs Description
status textok si la requête a correctement été traitée

Exemple

python

import base64
import requests

# Encodage base64 du fichier pdf de la facture
invoice = base64.b64encode(
    open("{invoice_filename}", "rb").read()
).decode("utf-8")

# Construction du dictionnaire de données
data = {
    "id": "test",
    "jsonrpc": "2.0",
    "method": "api.add_invoice",
    "params": [
        "{imx_username}",
        "{imx_password}",
        {
           "account": "{imx_account}",
            "imx_tracking_id": {imx_tracking_id},
            "parcel_content": [
                {
                    "classification": "3304990000",
                    "description": "Tinted Fluid SPF 50+ 50ml",
                    "currency": "EUR",
                    "value": 10.75,
                    "weight": 0.525,  # 525 grammes
                    "origine": "FR",
                },
                {
                    "classification": "3305900000",
                    "description": "Phyto Repair Express Conditioner 150ml",
                    "currency": "EUR",
                    "value": 10.42,
                    "weight": 0.640,  # 640 grammes
                    "origine": "FR",
                },
            ],
        },
    ],
}

# Appel de l'API
xx = requests.post("https://webservice.imxpostal.fr/smc/rpc/", json=data)

output = xx.json()
assert xx["result"]["status"] == "ok"