SCHÉMA JAVASCRIPT OBJECT NOTATION (JSON)
1. Introduction
La présente annexe établit la structure technique des données pour les certificats COVID numériques de l’UE (DCCUE), représentés sous la forme d’un schéma JSON. Le document fournit des instructions spécifiques relatives aux différents champs de données.
2. Emplacement et versions du schéma JSON
Le schéma JSON officiel faisant autorité pour le DCCUE est disponible à l’adresse suivante: https://github.com/ehn-dcc-development/ehn-dcc-schema. D’autres emplacements ne font pas autorité, mais peuvent être utilisés pour préparer les révisions à venir.
Par défaut, la version en cours décrite dans la présente annexe et supportée par tous les pays qui émettent actuellement des certificats se trouve à l’URL indiquée.
La prochaine version qui, à une date déterminée, devra être supportée par tous les pays, se trouve à l’URL indiquée via le marquage des versions (version tagging), une description plus précise est fournie dans le fichier Readme.
3. Structures communes et exigences générales
Le certificat COVID numérique de l’UE n’est pas délivré si, en raison de l’absence d’informations, tous les champs de données ne peuvent pas être correctement complétés conformément à la présente spécification. Cela ne doit pas être interprété comme remettant en cause l’obligation des États membres de délivrer des certificats COVID numériques de l’UE.
Dans tous les champs, il est possible d’indiquer les informations au moyen de la série complète de caractères UNICODE 13.0 encodés en UTF-8, sauf en cas de restriction spécifique à des ensembles de valeurs ou à des ensembles de caractères plus réduits.
La structure commune est la suivante:
"JSON":{
"ver":<information sur la version>,
"nam":{
<informations sur le nom de la personne>
},
"dob":<date de naissance>,
"v" ou "t" ou "r":[
{<informations sur la dose de vaccin ou sur le test de dépistage ou de rétablissement, une seule entrée>}
]
}
Des informations détaillées sur les différents groupes et champs sont fournies dans les points ci-après.
Lorsque les règles indiquent qu’un champ doit être ignoré, cela signifie que son contenu doit être vide et que ni le nom ni la valeur du champ ne sont autorisés dans le contenu.
3. 1. Version
Il y a lieu de fournir des informations sur la version. La gestion des versions s’effectue selon Semantic Versioning (semver: https://semver.org). En production, il s’agit de l’une des versions officiellement publiées (en cours ou officiellement publiées antérieurement). Pour plus de détails, voir le point Emplacement du schéma JSON.
| Identifiant du champ | Nom du champ | Instructions
| ver | Version de schéma |
Correspond à l’identifiant de la version du schéma utilisée pour produire l’EUDCC.
Exemple:
"ver":"1.3.0"
3. 2. Nom et date de naissance de la personne
Le nom de la personne est le nom officiel complet de la personne, correspondant au nom indiqué sur les documents de voyage. L’identifiant de la structure est nam. Exactement 1 (un) nom de personne est indiqué.
| Identifiant du champ | Nom du champ | Instructions
| nam/fn | Nom(s) |
Nom(s) du titulaire
Si le titulaire n’a pas de noms et a un prénom, le champ est ignoré.
Dans tous les autres cas, exactement 1 (un) champ non vide, tous les noms y étant inclus. S’il y a plusieurs noms, ils sont séparés par une espace. Les noms composés comprenant des traits d’union ou des caractères similaires ne doivent toutefois pas être modifiés.
Exemples:
"fn":"Musterfrau-Gößinger"
"fn":"Musterfrau-Gößinger Müller"
| nam/fnt | Nom(s) normalisé(s) |
Nom(s) du titulaire translittéré(s) suivant la même convention que celle utilisée pour les documents de voyage lisibles par machine du titulaire (par exemple, les règles définies dans le document ICAO 9303, partie 3).
Si le titulaire n’a pas de noms et a un prénom, le champ est ignoré.
Dans tous les autres cas, exactement 1 (un) champ non vide, comportant uniquement les caractères A-Z et <. Longueur maximale: 80 caractères (selon la spécification du document ICAO 9303).
Exemples:
"fnt":"MUSTERFRAU<GOESSINGER"
"fnt":"MUSTERFRAU<GOESSINGER<MUELLER"
| nam/gn | Prénom(s) |
Prénom(s) du titulaire.
Si le titulaire n’a pas de noms et a un prénom, le champ est ignoré.
Dans tous les autres cas, exactement 1 (un) champ non vide, tous les prénoms y étant inclus. S’il y a plusieurs prénoms, ils sont séparés par une espace.
Exemple:
"gn":"Isolde Erika"
| nam/gnt | Prénom(s) normalisé(s) |
Prénom(s) du titulaire translittéré(s) suivant la même convention que celle utilisée pour les documents de voyage lisibles par machine du titulaire (par exemple, les règles définies dans le document ICAO 9303, partie 3).
Si le titulaire n’a pas de noms et a un prénom, le champ est ignoré.
Dans tous les autres cas, exactement 1 (un) champ non vide, comportant uniquement les caractères A-Z et <. Longueur maximale: 80 caractères
Exemple:
"gnt":"ISOLDE<ERIKA"
| dob | Date de naissance |
Date de naissance du titulaire du DCC
Date complète ou partielle sans heure, plage limitée à la période comprise entre le 1900-01-01 et le 2099-12-31.
Exactement 1 (un) champ non vide si la date de naissance totale ou partielle est connue. Si la date de naissance n’est pas connue, même partiellement, le champ est une chaîne vide «». Les informations devraient correspondre à celles qui figurent sur les documents de voyage.
Si des informations sur la date de naissance sont disponibles, l’un des formats ISO 8601 suivants est utilisé. Aucune autre option n’est supportée.
YYYY-MM-DD
YYYY-MM
YYYY
(Pour les parties manquantes de la date de naissance, l’application de vérification peut faire appel à la convention XX utilisée dans les documents de voyage lisibles par machine, par exemple 1990-XX-XX.)
Exemples:
"dob":"1979-04-14"
"dob":"1901-08"
"dob":"1939"
"dob":""
3. 3. Groupes pour les informations spécifiques au type de certificat
Le schéma JSON supporte trois groupes d’entrées comprenant des informations spécifiques au type de certificat. Chaque EUDCC contient exactement 1 (un) groupe. Les groupes vides ne sont pas autorisés.
| Identifiant du groupe | Nom du groupe | Entrées
| v | Groupe Vaccination | Si ce groupe est présent, il contient exactement 1 (une) entrée décrivant exactement 1 (une) dose de vaccin (une dose).
| t | Groupe Test | Si ce groupe est présent, il contient exactement 1 (une) entrée décrivant exactement 1 (un) résultat de test.
| r | Groupe Rétablissement | Si ce groupe est présent, il contient exactement 1 (une) entrée décrivant 1 (une) déclaration de rétablissement.
4. Informations spécifiques au type de certificat
4. 1. Certificat de vaccination
Si le groupe Vaccination est présent, il contient exactement 1 (une) entrée décrivant exactement 1 (un) événement vaccinal (une dose). Tous les éléments du groupe Vaccination sont obligatoires, les valeurs vides ne sont pas supportées.
| Identifiant du champ | Nom du champ | Instructions
| v/tg | Maladie ou agent ciblés: COVID-19 (SARS-CoV ou un de ses variants) |
Une valeur codée de l’ensemble de valeurs
disease-agent-targeted.json.
Cet ensemble de valeurs comporte une seule entrée 840539006, qui est le code SNOMED CT (GPS) de la COVID-19.
Exactement 1 (un) champ non vide.
Exemple:
"tg":"840539006"
| v/vp | Vaccin ou prophylaxie contre la COVID-19 |
Type de vaccin ou de prophylaxie utilisé.
Une valeur codée de l’ensemble de valeurs
vaccine-prophylaxis.json.
L’ensemble de valeurs est distribué à partir du service passerelle DCCUE (EUDCC Gateway).
Exactement 1 (un) champ non vide.
Exemple:
"vp":"1119349007"(un vaccin à ARNm SARS-CoV-2)
| v/mp | Produit vaccinal contre la COVID-19 |
Produit utilisé pour cette dose spécifique de vaccination.
Une valeur codée de l’ensemble de valeurs
vaccine-medicinal-product.json.
Ou une valeur codée renvoyant à un essai clinique et établie suivant la règle figurant au point 3 de l’annexe II.
L’ensemble de valeurs est distribué à partir du service passerelle DCCUE (EUDCC Gateway).
Exactement 1 (un) champ non vide. Exemple:
"mp":"EU/1/20/1528" (Comirnaty)
| v/ma | Titulaire de l’autorisation de mise sur le marché ou fabricant d’un vaccin contre la COVID-19 |
Le titulaire de l’autorisation de mise sur le marché ou le fabricant, en l’absence de titulaire d’autorisation de mise sur le marché.
Une valeur codée de l’ensemble de valeurs
vaccine-mah-manf.json.
Ou une valeur codée renvoyant à un essai clinique et établie suivant la règle figurant au point 4 de l’annexe II.
L’ensemble de valeurs est distribué à partir du service passerelle DCCUE (EUDCC Gateway).
Exactement 1 (un) champ non vide. Exemple:
"ma":"ORG-100030215"(Biontech Manufacturing GmbH)
| v/dn | Nombre dans une série de doses |
Le numéro de séquence (entier positif) de la dose administrée au cours de cet événement vaccinal. 1 pour la première dose, 2 pour la deuxième dose, etc. Des règles plus spécifiques figurent à la section 5 de l’annexe II.
Exactement 1 (un) champ non vide.
Exemples:
"dn":"1"(première dose)
"dn":"2"(deuxième dose)
"dn":"3"(troisième dose)
| v/sd | Nombre total de doses dans la série |
Le nombre total de doses (entier positif) dans le schéma de vaccination. Des règles plus spécifiques figurent à la section 5 de l’annexe II.
Exactement 1 (un) champ non vide.
Exemples:
"sd":"1"(dans le cas d’un schéma de primovaccination à dose unique)
"sd":"2"(dans le cas d’un schéma de primovaccination à deux doses ou d’une dose supplémentaire administrée après un schéma de primovaccination à une dose)
"sd":"3"(par exemple, en cas de doses supplémentaires administrées après un schéma de primovaccination à deux doses)
| v/dt | Date de vaccination |
La date d’administration de la dose décrite, au format AAAA-MM-JJ (date complète sans heure). Aucun autre format n’est supporté.
Exactement 1 (un) champ non vide. Exemple:
"dt":"2021-03-28"
| v/co | État membre ou pays tiers dans lequel le vaccin a été administré |
Le pays indiqué sous forme d’un code ISO3166 à 2 lettres (RECOMMANDÉ) ou une référence à une organisation internationale responsable de l’événement vaccinal (comme le HCR ou l’OMS). Une valeur codée de l’ensemble de valeurs country-2-codes.json.
L’ensemble de valeurs est distribué à partir du service passerelle DCCUE (EUDCC Gateway).
Exactement 1 (un) champ non vide.
Exemple:
"co":"CZ"
"co":"UNHCR"
| v/is | Émetteur du certificat |
Le nom de l’organisme qui a délivré le certificat. Les identifiants peuvent faire partie du nom, mais il n’est pas recommandé de les utiliser seuls sans le nom sous forme de texte. Maximum 80 caractères en UTF-8.
Exactement 1 (un) champ non vide. Exemple:
"is":"Ministry of Health of the Czech Republic"
"is":"Vaccination Centre South District 3"
| v/ci | Identifiant unique du certificat |
L’identifiant unique du certificat (UVCI) tel que spécifié à l’adresse https://ec.europa.eu/health/sites/default/files/ehealth/docs/vaccination-proof_interoperability-guidelines_en.pdf
L’inclusion de la somme de contrôle est facultative. Le préfixe "URN:UVCI:" peut être ajouté.
Exactement 1 (un) champ non vide.
Exemples:
"ci":"URN:UVCI:01:NL:187/37512422923"
"ci":"URN:UVCI:01:AT:10807843F94AEE0EE5093FBC254BD813#B"
4. 2. Certificat de test
Si le groupe Test est présent, il contient exactement 1 (une) entrée décrivant exactement 1 (un) résultat de test.
| Identifiant du champ | Nom du champ | Instructions
| t/tg | Maladie ou agent ciblés: COVID-19 (SARS-CoV ou un de ses variants) |
Une valeur codée de l’ensemble de valeurs disease-agent-targeted.json.
Cet ensemble de valeurs comporte une seule entrée 840539006, qui est le code SNOMED CT (GPS) de la COVID-19.
Exactement 1 (un) champ non vide.
Exemple:
"tg":"840539006"
| t/tt | Type de test |
Le type de test utilisé, selon le matériel visé par le test. Une valeur codée de l’ensemble de valeurs test-type.json (sur la base de la nomenclature LOINC). Les valeurs n’appartenant pas à l’ensemble de valeurs ne sont pas autorisées.
Exactement 1 (un) champ non vide.
Exemple:
"tt":"LP6464-4"(Amplification des acides nucléiques avec détection de la sonde)
"tt":"LP217198-3"(Immunodosage rapide)
| t/nm | Nom du test (test d’amplification des acides nucléiques uniquement) |
Le nom du test d’amplification des acides nucléiques (TAAN) utilisé. Le nom doit comporter le nom du fabricant du test et la dénomination commerciale du test, séparés par une virgule.
Pour les TAAN: ce champ est facultatif.
Pour les tests de détection d’antigènes: ce champ n’est pas utilisé, car le nom du test est fourni indirectement par l’identifiant du dispositif de test (t/ma).
Lorsqu’il est présent, le champ ne doit pas être vide.
Exemple:
"nm":"ELITechGroup, SARS-CoV-2 ELITe MGB® Kit"
| t/ma | Identifiant du dispositif de test (tests de détection d’antigènes uniquement) |
Identifiant du dispositif de test de détection d’antigènes provenant de la base de données du JRC. Ensemble de valeurs (liste commune CSS):
— Tous les tests de détection d’antigènes figurant sur la liste commune du CSS (lisible par l’homme).
— https://covid-19-diagnostics.jrc.ec.europa.eu/devices/hsc-common-recognition-rat (lisible par machine, les valeurs du champ id_device figurant sur la liste forment l’ensemble de valeurs).
Dans les pays de l’UE/EEE, les émetteurs délivrent des certificats uniquement pour les tests appartenant à l’ensemble de valeurs en cours de validité. L’ensemble de valeurs est mis à jour toutes les 24 heures.
Les valeurs n’appartenant pas à l’ensemble de valeurs peuvent être utilisées dans les certificats délivrés par des pays tiers, mais les identifiants proviennent toujours de la base de données du JRC. Il n’est pas autorisé d’utiliser d’autres identifiants, tels que ceux fournis directement par les fabricants de tests.
Les applications de vérification détectent les valeurs n’appartenant pas à l’ensemble de valeurs actualisé et signalent les certificats comportant ces valeurs comme non valides. Si un identifiant est retiré de l’ensemble de valeurs, les certificats incluant cet identifiant peuvent être acceptés pendant une durée maximale de 72 heures après la date de retrait.
L’ensemble de valeurs est distribué à partir du service passerelle DCCUE (EUDCC Gateway).
Pour les tests de détection d’antigènes: exactement 1 (un) champ non vide.
Pour les TAAN: le champ n’est pas utilisé, même si l’identifiant de TAAN est disponible dans la base de données du JRC.
Exemple:
“ma”: “344” (SD BIOSENSOR Inc, STANDARD F COVID-19 Ag FIA)
| t/sc | Date et heure du prélèvement de l’échantillon |
La date et l’heure du prélèvement de l’échantillon. L’heure comprend des informations sur le fuseau horaire. La valeur ne doit pas indiquer l’heure à laquelle le résultat du test a été produit.
Exactement 1 (un) champ non vide.
L’un des formats ISO 8601 suivants est utilisé. Aucune autre option n’est supportée.
YYYY-MM-DDThh:mm:ssZ
YYYY-MM-DDThh:mm:ss[+-]hh
YYYY-MM-DDThh:mm:ss[+-]hhmm
YYYY-MM-DDThh:mm:ss[+-]hh:mm
Exemples:
"sc":"2021-08-20T10:03:12Z"(UTC)
"sc":"2021-08-20T12:03:12+02"(CEST)
"sc":"2021-08-20T12:03:12+0200"(CEST)
"sc":"2021-08-20T12:03:12+02:00"(CEST)
| t/tr | Résultat du test |
Le résultat du test. Une valeur codée de l’ensemble de valeurs test-result.json (sur la base de SNOMED CT, GPS).
Exactement 1 (un) champ non vide.
Exemple:
"tr":"260415000"(non détecté)
| t/tc | Centre ou installation de test |
Nom du centre où le test a été effectué. Les identifiants peuvent faire partie du nom, mais il n’est pas recommandé de les utiliser seuls sans le nom sous forme de texte. Maximum 80 caractères en UTF-8. Tout caractère supplémentaire devrait être tronqué. Le nom n’est pas destiné à faire l’objet d’une vérification automatisée.
Pour les tests TAAN exactement 1 (un) champ non vide.
Pour les tests de détection d’antigènes: ce champ est facultatif. S’il est présent, il ne doit pas être vide.
Exemple:
"tc":"Test centre west region 245"
| t/co | État membre ou pays tiers dans lequel le test a été effectué |
Le pays indiqué sous forme d’un code ISO3166 à 2 lettres (RECOMMANDÉ) ou une référence à une organisation internationale responsable de l’exécution du test (comme le HCR ou l’OMS). Il s’agit d’une valeur codée de l’ensemble de valeurs country-2-codes.json.
L’ensemble de valeurs est distribué à partir du service passerelle DCCUE (EUDCC Gateway).
Exactement 1 (un) champ non vide.
Exemples:
"co":"CZ"
"co":"UNHCR"
| t/is | Émetteur du certificat |
Le nom de l’organisme qui a délivré le certificat. Les identifiants peuvent faire partie du nom, mais il n’est pas recommandé de les utiliser seuls sans le nom sous forme de texte. Maximum 80 caractères en UTF-8.
Exactement 1 (un) champ non vide.
Exemples:
"is":"Ministry of Health of the Czech Republic"
"is":"North-West region health authority"
| t/ci | Identifiant unique du certificat |
L’identifiant unique du certificat (UVCI) tel que spécifié à l’adresse vaccination-proof_interoperability-guidelines_en.pdf (europa.eu)
L’inclusion de la somme de contrôle est facultative. Le préfixe "URN:UVCI:" peut être ajouté.
Exactement 1 (un) champ non vide.
Exemples:
"ci":"URN:UVCI:01:NL:187/37512422923"
"ci":"URN:UVCI:01:AT:10807843F94AEE0EE5093FBC254BD813#B"
4. 3. Certificat de rétablissement
Si le groupe Rétablissement est présent, il contient exactement 1 (une) entrée décrivant exactement 1 (une) déclaration de rétablissement. Tous les éléments du groupe Rétablissement sont obligatoires, les valeurs vides ne sont pas supportées.
| Identifiant du champ | Nom du champ | Instructions
| r/tg | Maladie ou agent dont le titulaire s'est rétabli: COVID-19 (SARS-CoV-2 ou un de ses variants) |
Une valeur codée de l’ensemble de valeurs
disease-agent-targeted.json.
Cet ensemble de valeurs comporte une seule entrée 840539006, qui est le code SNOMED CT (GPS) de la COVID-19.
Exactement 1 (un) champ non vide.
Exemple:
"tg":"840539006"
| r/fr | Date du premier résultat de positif du titulaire |
La date de prélèvement de l’échantillon pour lequel le a donné un résultat positif, au format AAAA-MM-JJ (date complète sans heure). Aucun autre format n’est supporté.
Exactement 1 (un) champ non vide.
Exemple:
"fr":"2021-05-18"
| r/co | État membre ou pays tiers dans lequel le test a été effectué |
Le pays indiqué sous forme d’un code ISO3166 à 2 lettres (RECOMMANDÉ) ou une référence à une organisation internationale responsable de l’exécution du test (comme le HCR ou l’OMS). Il s’agit d’une valeur codée de l’ensemble de valeurs
country-2-codes.json.
L’ensemble de valeurs est distribué à partir du service passerelle DCCUE (EUDCC Gateway).
Exactement 1 (un) champ non vide.
Exemples:
"co":"CZ"
"co":"UNHCR"
| r/is | Émetteur du certificat |
Le nom de l’organisme qui a délivré le certificat. Les identifiants peuvent faire partie du nom, mais il n’est pas recommandé de les utiliser seuls sans le nom sous forme de texte. Maximum 80 caractères en UTF-8.
Exactement 1 (un) champ non vide. Exemple:
"is":"Ministry of Health of the Czech Republic"
"is":"Central University Hospital"
| r/df | Certificat valide à partir du |
La date à partir de laquelle le certificat est considéré comme valide. La date ne doit pas être antérieure à la date calculée selon la formule r/fr + 11 days.
La date est indiquée au format AAAA-MM-JJ (date complète sans heure). Aucun autre format n’est supporté.
Exactement 1 (un) champ non vide.
Exemple:
"df":"2021-05-29"
| r/du | Certificat valide jusqu'au |
Le dernier jour de la période pendant laquelle le certificat est considéré comme valide, fixé par l’émetteur du certificat. Cette date ne doit pas être postérieure à la date calculée selon la formule r/fr + 180 days.
La date est indiquée au format AAAA-MM-JJ (date complète sans heure). Aucun autre format n’est supporté.
Exactement 1 (un) champ non vide.
Exemple:
"du":"2021-11-14"
| r/ci | Identifiant unique du certificat |
L’identifiant unique du certificat (UVCI) tel que spécifié à l’adresse vaccination-proof_interoperability-guidelines_en.pdf (europa.eu)
L’inclusion de la somme de contrôle est facultative. Le préfixe "URN:UVCI:" peut être ajouté.
Exactement 1 (un) champ non vide.
Exemples:
"ci":"URN:UVCI:01:NL:187/37512422923"
"ci":"URN:UVCI:01:AT:10807843F94AEE0EE5093FBC254BD813#B"