API DeCA

CountryCode

string · pattern: ^[A-Z]{2}$

Code pays à deux lettres ; normalisé en majuscules. Le format ne vérifie pas l'appartenance au catalogue ISO 3166-1.

Exemple : ES

PositiveDecimal

string · pattern: ^(?!0+(?:\.0+)?$)(?:…

Décimal positif sous forme de string, avec un point, sans virgule ni notation scientifique. Jusqu'à 15 chiffres entiers et 6 décimales. La réponse supprime les zéros décimaux finaux.

Exemple : 1850.000

WeightKilograms

oneOf
Une seule alternative doit être satisfaite.

Table des alternatives

AlternativeCritères de sélection
type = string
type = number
Propriétés de Alternative 1 :
PositiveDecimal · pattern: ^(?!0+(?:\.0+)?$)(?:…

Décimal positif sous forme de string, avec un point, sans virgule ni notation scientifique. Jusqu'à 15 chiffres entiers et 6 décimales. La réponse supprime les zéros décimaux finaux.

Exemple : 1850.000

Address

street
​string · minLength: 1 · maxLength: 255 · obligatoire

Voie et numéro de l'adresse.

postal_code
​string · minLength: 1 · maxLength: 255 · obligatoire

Code postal sous forme de texte pour conserver les zéros initiaux.

city
​string · minLength: 1 · maxLength: 255 · obligatoire

Localité de l'adresse.

country
​CountryCode · pattern: ^[A-Z]{2}$ · obligatoire

Code pays à deux lettres ; normalisé en majuscules. Le format ne vérifie pas l'appartenance au catalogue ISO 3166-1.

Exemple : ES

Shipper

Chargeur contractuel ; peut différer de l'entrepôt de départ et du client DeCA.
name
​string · minLength: 1 · maxLength: 255 · obligatoire

Nom ou raison sociale.

tax_country
​CountryCode · pattern: ^[A-Z]{2}$ · obligatoire

Code pays à deux lettres ; normalisé en majuscules. Le format ne vérifie pas l'appartenance au catalogue ISO 3166-1.

Exemple : ES
tax_id
​string · minLength: 1 · maxLength: 32 · obligatoire

Identifiant fiscal normalisé en majuscules sans espaces ni traits d'union ; la longueur est vérifiée après normalisation. En Espagne, le format et le caractère de contrôle des DNI, NIE et NIF d'entités (CIF) sont validés. Les NIF spéciaux K, L et M sont vérifiés uniquement par format : préfixe, sept caractères alphanumériques et lettre finale. Les autres pays exigent un format alphanumérique sans vérification du contrôle fiscal. La validation ne prouve ni l'existence ni l'immatriculation fiscale.

​Address · obligatoire

Carrier

Transporteur effectuant réellement le transport, y compris le sous-traitant.
name
​string · minLength: 1 · maxLength: 255 · obligatoire

Nom ou raison sociale.

tax_country
​CountryCode · pattern: ^[A-Z]{2}$ · obligatoire

Code pays à deux lettres ; normalisé en majuscules. Le format ne vérifie pas l'appartenance au catalogue ISO 3166-1.

Exemple : ES
tax_id
​string · minLength: 1 · maxLength: 32 · obligatoire

Identifiant fiscal normalisé en majuscules sans espaces ni traits d'union ; la longueur est vérifiée après normalisation. En Espagne, le format et le caractère de contrôle des DNI, NIE et NIF d'entités (CIF) sont validés. Les NIF spéciaux K, L et M sont vérifiés uniquement par format : préfixe, sept caractères alphanumériques et lettre finale. Les autres pays exigent un format alphanumérique sans vérification du contrôle fiscal. La validation ne prouve ni l'existence ni l'immatriculation fiscale.

​object

Adresse facultative du transporteur. Si elle est fournie, tous les champs d'Address sont requis ; l'article 6 ne l'exige pas comme donnée minimale.

TransportLocation

place
​string · minLength: 1 · maxLength: 255 · obligatoire

Lieu réel de chargement ou déchargement, identifiable par nom du site ou adresse. Avec city et country, il doit permettre de l'identifier clairement ; street et postal_code sont facultatifs. L'identité de l'entreprise destinataire n'est pas une donnée minimale obligatoire.

city
​string · minLength: 1 · maxLength: 255 · obligatoire

Localité.

country
​string · enum · obligatoire

Le périmètre initial couvre les transports intérieurs en Espagne ; il ne remplace pas la CMR internationale.

Valeurs autorisées :
ES
street
​string · minLength: 1 · maxLength: 255

Voie et numéro facultatifs du lieu de chargement ou déchargement pour préciser sa localisation.

postal_code
​string · minLength: 1 · maxLength: 255

Code postal facultatif du lieu de chargement ou déchargement, sous forme de texte pour conserver les zéros initiaux.

AlternativeMeasure

Autre grandeur lorsque le poids est difficile à déterminer. Envoyez cette grandeur ou le poids, jamais les deux.
value
​PositiveDecimal · pattern: ^(?!0+(?:\.0+)?$)(?:… · obligatoire

Décimal positif sous forme de string, avec un point, sans virgule ni notation scientifique. Jusqu'à 15 chiffres entiers et 6 décimales. La réponse supprime les zéros décimaux finaux.

Exemple : 1850.000
unit
​string · minLength: 1 · maxLength: 255 · obligatoire

Unité explicite de la grandeur, jusqu'à 255 caractères.

Exemple : palés

Goods

Nature et poids de la marchandise, ou grandeur alternative si nécessaire. Envoyez exactement une mesure.
description
​string · minLength: 1 · maxLength: 2000 · obligatoire

Description de la nature de la marchandise.

​WeightKilograms

Poids positif en kg, sous forme de nombre JSON ou de chaîne décimale. Jusqu’à 15 chiffres entiers et 6 décimales. La réponse normalise en chaîne et conserve la précision ; le PDF affiche jusqu’à 3 décimales, avec une virgule décimale et des points pour les milliers. Utilisez une chaîne décimale pour éviter toute perte de précision avec les grandes valeurs.

Exemple : 1850.5
​AlternativeMeasure

Autre grandeur lorsque le poids est difficile à déterminer. Envoyez cette grandeur ou le poids, jamais les deux.

oneOf
Une seule alternative doit être satisfaite.

Table des alternatives

AlternativeCritères de sélection
type = object · Champs obligatoires: weight_kg
type = object · Champs obligatoires: alternative_measure
Propriétés de Alternative 1 :
​WeightKilograms · obligatoire

Poids positif en kg, sous forme de nombre JSON ou de chaîne décimale. Jusqu’à 15 chiffres entiers et 6 décimales. La réponse normalise en chaîne et conserve la précision ; le PDF affiche jusqu’à 3 décimales, avec une virgule décimale et des points pour les milliers. Utilisez une chaîne décimale pour éviter toute perte de précision avec les grandes valeurs.

Exemple : 1850.5
description
​string · minLength: 1 · maxLength: 2000

Description de la nature de la marchandise.

​AlternativeMeasure

Autre grandeur lorsque le poids est difficile à déterminer. Envoyez cette grandeur ou le poids, jamais les deux.

Vehicle

Véhicule effectif ; si une remorque ou semi-remorque est présente, renseignez ses deux champs ensemble.
country
​CountryCode · pattern: ^[A-Z]{2}$ · obligatoire

Code pays à deux lettres ; normalisé en majuscules. Le format ne vérifie pas l'appartenance au catalogue ISO 3166-1.

Exemple : ES
registration
​string · minLength: 1 · maxLength: 20 · obligatoire

Immatriculation normalisée en majuscules sans espaces ni traits d'union. En Espagne, les immatriculations ordinaires actuelles, anciennes provinciales et la série spéciale E sont acceptées. Pour les autres pays : de 3 à 20 caractères alphanumériques.

Exemple : 4827 MNL
trailer_country
​CountryCode · pattern: ^[A-Z]{2}$

Code pays à deux lettres ; normalisé en majuscules. Le format ne vérifie pas l'appartenance au catalogue ISO 3166-1.

Exemple : ES
trailer_registration
​string · minLength: 1 · maxLength: 20

Immatriculation de la remorque ou semi-remorque, normalisée comme celle du tracteur. En Espagne, la série R est requise. Pour les autres pays : de 3 à 20 caractères alphanumériques.

Exemple : R 5832 BCD
oneOf
Une seule alternative doit être satisfaite.

Table des alternatives

AlternativeCritères de sélection
type = object · Champs obligatoires: trailer_country, trailer_registration
type = object · Champs obligatoires: country, registration
Propriétés de Alternative 1 :
trailer_country
​CountryCode · pattern: ^[A-Z]{2}$ · obligatoire

Code pays à deux lettres ; normalisé en majuscules. Le format ne vérifie pas l'appartenance au catalogue ISO 3166-1.

Exemple : ES
trailer_registration
​string · minLength: 1 · maxLength: 20 · obligatoire

Immatriculation de la remorque ou semi-remorque, normalisée comme celle du tracteur. En Espagne, la série R est requise. Pour les autres pays : de 3 à 20 caractères alphanumériques.

Exemple : R 5832 BCD
country
​CountryCode · pattern: ^[A-Z]{2}$

Code pays à deux lettres ; normalisé en majuscules. Le format ne vérifie pas l'appartenance au catalogue ISO 3166-1.

Exemple : ES
registration
​string · minLength: 1 · maxLength: 20

Immatriculation normalisée en majuscules sans espaces ni traits d'union. En Espagne, les immatriculations ordinaires actuelles, anciennes provinciales et la série spéciale E sont acceptées. Pour les autres pays : de 3 à 20 caractères alphanumériques.

Exemple : 4827 MNL

SpecialAuthorization

Autorisation spéciale de circulation si nécessaire. Omettez-la ou envoyez null si elle ne s'applique pas.
number
​string · minLength: 1 · maxLength: 255 · obligatoire

Numéro ou référence de l'autorisation.

issuer
​string · minLength: 1 · maxLength: 255

Organisme émetteur, s'il est renseigné.

CreateDocumentRequest

transport_date
​string · date · obligatoire

Date réelle du transport au format YYYY-MM-DD ; ce n'est pas l'instant de création du PDF.

​Shipper · obligatoire

Chargeur contractuel ; peut différer de l'entrepôt de départ et du client DeCA.

​Carrier · obligatoire

Transporteur effectuant réellement le transport, y compris le sous-traitant.

​TransportLocation · obligatoire
​TransportLocation · obligatoire
​Goods · obligatoire

Nature et poids de la marchandise, ou grandeur alternative si nécessaire. Envoyez exactement une mesure.

​Vehicle · obligatoire

Véhicule effectif ; si une remorque ou semi-remorque est présente, renseignez ses deux champs ensemble.

reference
​string | null · minLength: 1 · maxLength: 120 · pattern: ^[A-Za-z0-9-]+(?![\s…

Référence personnelle facultative, unique par organisation et environnement et imprimée sur le PDF. Identifie les nouvelles tentatives et permet la consultation par référence. N'est pas libérée lors de la suppression du document.

​SpecialAuthorization

Autorisation spéciale de circulation si nécessaire. Omettez-la ou envoyez null si elle ne s'applique pas.

observations
​string | null · maxLength: 4000

Observations que les intervenants demandent de faire figurer dans le document.

​object | null

Objet JSON facultatif, conservé et renvoyé sans modification sémantique. Non imprimé sur le PDF. Maximum 16 KiB après sérialisation et 8 niveaux de profondeur.

DocumentResult

uuid
​string · uuid · obligatoire

UUID du document émis.

reference
​string | null · pattern: ^[A-Za-z0-9-]+(?![\s… · obligatoire

Référence du client ou null.

created_at
​string · date-time · obligatoire

Instant original de création, en UTC.

url
​string · uri · obligatoire

URL HTTPS complète de téléchargement par QR, avec son secret. Ne pas enregistrer ni publier.

​object · obligatoire
pdf_download_url
​string · uri · obligatoire

URL de téléchargement authentifié ; exige le Bearer de l'identifiant propriétaire dans les 24 heures.

rectifies_uuid
​string | null · uuid · obligatoire

UUID rectifié ou null lors d'une émission initiale.

​CreateDocumentRequest · obligatoire
​object | null · obligatoire

La même metadata que dans la requête ; null si elle n'a pas été fournie.

document_locale
​string · enum · obligatoire

Langue du PDF choisie à l'émission selon l'organisation. Conservée dans le résultat ; changer la langue de l'organisation ne modifie pas les documents existants. Ne change ni les champs JSON ni les messages d'erreur de l'API.

Valeurs autorisées :
es
ca
gl
ca-valencia
eu
en
pt-pt
fr

DocumentSummary

uuid
​string · uuid · obligatoire
reference
​string | null · pattern: ^[A-Za-z0-9-]+(?![\s… · obligatoire
created_at
​string · date-time · obligatoire
transport_date
​string · date · obligatoire
rectifies_uuid
​string | null · uuid · obligatoire

DocumentList

​DocumentSummary[] · obligatoire
​object · obligatoire

ErrorResponse

​object[] · minItems: 1 · obligatoire

Toutes les erreurs indépendantes détectées ; sans données de requête, secrets ni traces.

RectifyDocumentRequest

Toutes les données corrigées du transport. Le document précédent est identifié dans l'URL. Si reference est fourni, il doit s'agir d'une nouvelle référence pour le document rectificatif.
transport_date
​string · date · obligatoire

Date réelle du transport au format YYYY-MM-DD ; ce n'est pas l'instant de création du PDF.

​Shipper · obligatoire

Chargeur contractuel ; peut différer de l'entrepôt de départ et du client DeCA.

​Carrier · obligatoire

Transporteur effectuant réellement le transport, y compris le sous-traitant.

​TransportLocation · obligatoire
​TransportLocation · obligatoire
​Goods · obligatoire

Nature et poids de la marchandise, ou grandeur alternative si nécessaire. Envoyez exactement une mesure.

​Vehicle · obligatoire

Véhicule effectif ; si une remorque ou semi-remorque est présente, renseignez ses deux champs ensemble.

reference
​string | null · minLength: 1 · maxLength: 120 · pattern: ^[A-Za-z0-9-]+(?![\s…

Nouvelle référence du document rectificatif, facultative et unique par organisation et environnement. Ne réutilisez pas la référence du document identifié dans l'URL.

​SpecialAuthorization

Autorisation spéciale de circulation si nécessaire. Omettez-la ou envoyez null si elle ne s'applique pas.

observations
​string | null · maxLength: 4000

Observations que les intervenants demandent de faire figurer dans le document.

​object | null

Objet JSON facultatif, conservé et renvoyé sans modification sémantique. Non imprimé sur le PDF. Maximum 16 KiB après sérialisation et 8 niveaux de profondeur.

DeleteDocumentRequest

reason
​string · minLength: 1 · maxLength: 2000 · obligatoire

Motif de l'erreur détectée lors de la génération du document.

confirm_not_delivered
​boolean · obligatoire

Doit être true pour supprimer : confirme l'absence de remise au transporteur ou au conducteur. false renvoie 409 DOCUMENT_ALREADY_DELIVERED.

confirm_not_used
​boolean · obligatoire

Doit être true pour supprimer : confirme l'absence d'utilisation pour un transport. false renvoie 409 DOCUMENT_ALREADY_USED.

DocumentStatus

status
​string · enum · obligatoire

État du document. N'inclut ni données de transport, PDF, QR, metadata ni dates.

Valeurs autorisées :
active
deleted

DemoTokenResult

token
​string · pattern: ^sk_demo_[0-9a-f]{64… · obligatoire

Vous pouvez demander un jeton sk_demo_ sans compte ni organisation enregistrée. Il dure 24 heures à partir de son émission et fonctionne uniquement depuis l’IP publique qui l’a demandé. Un changement de réseau ou d’IP nécessite un autre jeton.

expires_at
​string · date-time · obligatoire

Date d’expiration du jeton en UTC. Tous ses documents et liens expirent à cet instant.

document_locale
​string · enum · obligatoire

Langue des PDF de ce jeton. Espagnol par défaut.

Valeurs autorisées :
es
ca
gl
ca-valencia
eu
en
pt-pt
fr

DemoDocumentResult

La démo ajoute demo: true, expires_at, qr_url (alias de url) et pdf_url (alias de pdf_download_url). document_locale est la langue choisie lors de la demande du jeton (es par défaut). Les données et PDF temporaires sont distincts de l’archive réelle et ne sont pas chiffrés comme les documents réels.
uuid
​string · uuid · obligatoire

UUID du document émis.

reference
​string | null · pattern: ^[A-Za-z0-9-]+(?![\s… · obligatoire

Référence du client ou null.

created_at
​string · date-time · obligatoire

Instant original de création, en UTC.

url
​string · uri · obligatoire

URL HTTPS complète de téléchargement par QR, avec son secret. Ne pas enregistrer ni publier.

​object · obligatoire
pdf_download_url
​string · uri · obligatoire

Vous pouvez demander un jeton sk_demo_ sans compte ni organisation enregistrée. Il dure 24 heures à partir de son émission et fonctionne uniquement depuis l’IP publique qui l’a demandé. Un changement de réseau ou d’IP nécessite un autre jeton.

rectifies_uuid
​string | null · uuid · obligatoire

UUID rectifié ou null lors d'une émission initiale.

​CreateDocumentRequest · obligatoire
​object | null · obligatoire

La même metadata que dans la requête ; null si elle n'a pas été fournie.

document_locale
​string · enum · obligatoire

Langue des PDF de ce jeton. Espagnol par défaut.

Valeurs autorisées :
es
ca
gl
ca-valencia
eu
en
pt-pt
fr
demo
​boolean · enum · obligatoire

Uniquement en démo ; toujours true. Absent des résultats de développement et de production.

Valeurs autorisées :
true
expires_at
​string · date-time · obligatoire

Date d’expiration du jeton en UTC. Tous ses documents et liens expirent à cet instant.

qr_url
​string · uri · obligatoire

Uniquement en démo ; alias de url.

pdf_url
​string · uri · obligatoire

Uniquement en démo ; alias de pdf_download_url. Nécessite le jeton demo et son IP.