Schéma JSON / CDJ CONNECT 1.1
Schéma JSON
Validation structurelle de lot.json · CDJ Connect 1.1.
Télécharger le JSONSchema de validation structurelle pour lot.json en version 1.1.
Ce schema verifie la forme du fichier, les champs obligatoires principaux et les enums v1.1. Les regles metier fines restent decrites dans la specification: rapprochement par service_destinataire.code + reference_client ou service_destinataire.code + reference_dossier_destinataire, obligation de reference_client pour une ouverture, comportement selon code_evenement, rejets, anti-doublons, append cible, etc.
Par defaut, le schema autorise les champs additionnels pour permettre les extensions mineures. Les traces techniques propres a un prestataire doivent rester dans extensions_prestataire et ne font pas partie du coeur du modele.
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "urn:cdj-connect:schemas:import-dossiers:1.1",
"title": "CDJ Connect - Import dossiers v1.1",
"type": "object",
"additionalProperties": true,
"required": ["version_format", "en_tete", "service_destinataire", "dossiers"],
"properties": {
"version_format": { "const": "1.1" },
"en_tete": { "$ref": "#/$defs/en_tete" },
"service_destinataire": { "$ref": "#/$defs/service_destinataire" },
"dossiers": {
"type": "array",
"minItems": 1,
"items": { "$ref": "#/$defs/dossier" }
},
"extensions_prestataire": {
"type": "object",
"additionalProperties": {
"type": "object",
"additionalProperties": true
}
}
},
"$defs": {
"non_empty_string": {
"type": "string",
"minLength": 1
},
"nullable_string": {
"type": ["string", "null"]
},
"date": {
"type": "string",
"format": "date"
},
"date_time": {
"type": "string",
"format": "date-time"
},
"decimal_string": {
"type": "string",
"pattern": "^-?\\d+(\\.\\d+)?$"
},
"en_tete": {
"type": "object",
"additionalProperties": true,
"required": ["id_lot", "date_lot", "environnement", "sens_transmission", "type_flux", "emetteur", "destinataire"],
"properties": {
"id_lot": { "$ref": "#/$defs/non_empty_string" },
"date_lot": { "$ref": "#/$defs/date_time" },
"environnement": { "enum": ["test", "recette", "production"] },
"sens_transmission": { "const": "EMETTEUR_VERS_ERP" },
"type_flux": { "const": "IMPORT_DOSSIERS" },
"emetteur": {
"type": "object",
"additionalProperties": true,
"required": ["code", "nom"],
"properties": {
"type": { "enum": ["PRESTATAIRE", "AUTRE"] },
"code": { "$ref": "#/$defs/non_empty_string" },
"nom": { "$ref": "#/$defs/non_empty_string" },
"logiciel": { "$ref": "#/$defs/nullable_string" },
"version": { "$ref": "#/$defs/nullable_string" }
}
},
"destinataire": {
"type": "object",
"additionalProperties": true,
"required": ["code", "nom"],
"properties": {
"type": { "const": "ERP" },
"code": { "$ref": "#/$defs/non_empty_string" },
"nom": { "$ref": "#/$defs/non_empty_string" },
"logiciel": { "$ref": "#/$defs/nullable_string" },
"reference_etude": { "$ref": "#/$defs/nullable_string" }
}
}
}
},
"dossier": {
"type": "object",
"additionalProperties": true,
"required": ["evenements"],
"anyOf": [
{
"required": ["reference_client"],
"properties": {
"reference_client": { "$ref": "#/$defs/non_empty_string" }
}
},
{
"required": ["reference_dossier_destinataire"],
"properties": {
"reference_dossier_destinataire": { "$ref": "#/$defs/non_empty_string" }
}
}
],
"properties": {
"reference_client": { "$ref": "#/$defs/non_empty_string" },
"reference_dossier_destinataire": { "$ref": "#/$defs/nullable_string" },
"references_externes": {
"type": "array",
"items": { "$ref": "#/$defs/reference_externe" }
},
"nature_dossier": {
"enum": ["RECOUVREMENT_CREANCE", "INJONCTION_DE_PAYER", "SIGNIFICATION_ACTE", "ACTE_DETACHE", "EXECUTION_TITRE", "CONTENTIEUX_LOCATIF", "MESURE_CONSERVATOIRE", "EXPULSION", "AUTRE"]
},
"libelle_nature_dossier": { "$ref": "#/$defs/nullable_string" },
"code_nature_dossier_externe": { "$ref": "#/$defs/nullable_string" },
"source_code_nature_dossier": { "$ref": "#/$defs/nullable_string" },
"numero_rg": { "$ref": "#/$defs/nullable_string" },
"evenements": {
"type": "array",
"minItems": 1,
"items": { "$ref": "#/$defs/evenement_dossier" }
},
"renseignements": {
"type": "array",
"items": { "$ref": "#/$defs/renseignement" }
},
"intervenants": {
"type": "array",
"items": { "$ref": "#/$defs/intervenant" }
},
"elements_financiers": {
"type": "array",
"items": { "$ref": "#/$defs/element_financier" }
},
"mesures": {
"type": "array",
"items": { "$ref": "#/$defs/mesure" }
},
"actes": {
"type": "array",
"items": { "$ref": "#/$defs/acte" }
},
"agenda": {
"type": "array",
"items": { "$ref": "#/$defs/agenda" }
},
"pieces_jointes": {
"type": "array",
"items": { "$ref": "#/$defs/piece_jointe" }
}
}
},
"service_destinataire": {
"type": "object",
"additionalProperties": true,
"required": ["code"],
"properties": {
"code": { "$ref": "#/$defs/non_empty_string" },
"libelle": { "$ref": "#/$defs/nullable_string" }
}
},
"reference_externe": {
"type": "object",
"additionalProperties": true,
"required": ["type_reference", "valeur"],
"properties": {
"type_reference": {
"enum": ["REFERENCE_MANDANT", "REFERENCE_CREANCIER", "REFERENCE_PORTEFEUILLE", "REFEXP", "AUTRE"]
},
"valeur": { "$ref": "#/$defs/non_empty_string" },
"source": { "$ref": "#/$defs/nullable_string" },
"usage_rapprochement": { "type": "boolean" }
}
},
"evenement_dossier": {
"type": "object",
"additionalProperties": true,
"required": ["code_evenement", "date_effet"],
"properties": {
"code_evenement": {
"enum": ["OUVERTURE_DOSSIER", "MISE_A_JOUR_DOSSIER", "AJOUT_PIECE", "ACTE_A_SIGNIFIER", "RETOUR_SIGNIFICATION", "MISE_A_JOUR_CREANCE", "AJOUT_ACTION_AGENDA", "CLOTURE_DOSSIER", "ANNULATION_ACTION"]
},
"date_effet": { "$ref": "#/$defs/date" },
"libelle": { "$ref": "#/$defs/nullable_string" },
"renseignements": {
"type": "array",
"items": { "$ref": "#/$defs/renseignement" }
}
}
},
"renseignement": {
"type": "object",
"additionalProperties": true,
"required": ["type", "valeur"],
"properties": {
"type": {
"enum": [
"commentaire",
"point_attention",
"synthese_dossier",
"commentaire_pieces",
"commentaire_calcul",
"commentaire_calcul_loyer",
"instruction_import",
"anomalie_source",
"priorite",
"statut",
"autre"
]
},
"valeur": {}
}
},
"intervenant": {
"type": "object",
"additionalProperties": true,
"required": ["role"],
"properties": {
"reference_client": { "$ref": "#/$defs/non_empty_string" },
"reference_intervenant_destinataire": { "$ref": "#/$defs/non_empty_string" },
"role": {
"type": "string",
"pattern": "^[A-Z]{3}[0-9]{2}([A-Z]{3}[0-9]{2})?$"
},
"ipp": { "$ref": "#/$defs/ipp" },
"ipm": { "$ref": "#/$defs/ipm" },
"contacts": {
"type": "array",
"items": { "$ref": "#/$defs/contact" }
}
},
"not": { "required": ["ipp", "ipm"] },
"anyOf": [
{ "required": ["reference_intervenant_destinataire"] },
{ "required": ["ipp"] },
{ "required": ["ipm"] }
]
},
"contact": {
"type": "object",
"additionalProperties": true,
"required": ["type", "valeur"],
"properties": {
"type": { "enum": ["EMAIL", "TEL", "FAX"] },
"valeur": { "$ref": "#/$defs/non_empty_string" },
"libelle": { "$ref": "#/$defs/nullable_string" },
"principal": { "type": "boolean" }
}
},
"ipp": {
"type": "object",
"additionalProperties": true,
"properties": {
"civilite": { "enum": ["M", "MME", "MLLE", "MX", "STE", "MAITRE", "DOCTEUR", "AUTRE"] },
"nom": { "$ref": "#/$defs/nullable_string" },
"prenom": { "$ref": "#/$defs/nullable_string" },
"adresses": {
"type": "array",
"items": { "$ref": "#/$defs/adresse" }
},
"comptes_bancaires": {
"type": "array",
"items": { "$ref": "#/$defs/compte_bancaire" }
}
}
},
"ipm": {
"type": "object",
"additionalProperties": true,
"properties": {
"siret": { "$ref": "#/$defs/nullable_string" },
"siren": { "$ref": "#/$defs/nullable_string" },
"numero_rcs": { "$ref": "#/$defs/nullable_string" },
"greffe_rcs": { "$ref": "#/$defs/nullable_string" },
"numero_tva": { "$ref": "#/$defs/nullable_string" },
"numero_rna": { "$ref": "#/$defs/nullable_string" },
"raison_sociale": { "$ref": "#/$defs/nullable_string" },
"statut_juridique": {
"type": ["string", "null"],
"enum": ["EI", "EIRL", "MICRO_ENTREPRISE", "SARL", "EURL", "SAS", "SASU", "SA", "SCI", "SCPI", "SCM", "SNC", "ASSOCIATION", "COPROPRIETE", "COLLECTIVITE", "ETABLISSEMENT_PUBLIC", "AUTRE", "INCONNU", null]
},
"adresses": {
"type": "array",
"items": { "$ref": "#/$defs/adresse" }
},
"comptes_bancaires": {
"type": "array",
"items": { "$ref": "#/$defs/compte_bancaire" }
}
}
},
"adresse": {
"type": "object",
"additionalProperties": true,
"properties": {
"ligne1": { "$ref": "#/$defs/nullable_string" },
"ligne2": { "$ref": "#/$defs/nullable_string" },
"ligne3": { "$ref": "#/$defs/nullable_string" },
"code_postal": { "$ref": "#/$defs/nullable_string" },
"ville": { "$ref": "#/$defs/nullable_string" },
"pays": { "$ref": "#/$defs/nullable_string" },
"type": { "$ref": "#/$defs/nullable_string" },
"label": { "$ref": "#/$defs/nullable_string" },
"principal": { "type": "boolean" }
},
"anyOf": [
{ "required": ["ligne1"], "properties": { "ligne1": { "$ref": "#/$defs/non_empty_string" } } },
{ "required": ["ligne2"], "properties": { "ligne2": { "$ref": "#/$defs/non_empty_string" } } },
{ "required": ["ligne3"], "properties": { "ligne3": { "$ref": "#/$defs/non_empty_string" } } },
{ "required": ["code_postal"], "properties": { "code_postal": { "$ref": "#/$defs/non_empty_string" } } },
{ "required": ["ville"], "properties": { "ville": { "$ref": "#/$defs/non_empty_string" } } },
{ "required": ["pays"], "properties": { "pays": { "$ref": "#/$defs/non_empty_string" } } }
]
},
"compte_bancaire": {
"type": "object",
"additionalProperties": true,
"required": ["iban"],
"properties": {
"reference_compte_bancaire": { "$ref": "#/$defs/nullable_string" },
"iban": {
"type": "string",
"pattern": "^[A-Z]{2}[0-9A-Z]{13,32}$"
},
"bic": {
"type": ["string", "null"],
"pattern": "^[A-Z0-9]{8}([A-Z0-9]{3})?$"
},
"titulaire": { "$ref": "#/$defs/nullable_string" },
"domiciliation": { "$ref": "#/$defs/nullable_string" },
"principal": { "type": "boolean" }
}
},
"element_financier": {
"type": "object",
"additionalProperties": true,
"required": ["reference_element_financier"],
"properties": {
"reference_element_financier": { "$ref": "#/$defs/non_empty_string" },
"nature_creance": { "$ref": "#/$defs/non_empty_string" },
"montant_details": {
"type": "array",
"items": { "$ref": "#/$defs/montant_detail" }
},
"interets": {
"type": "array",
"items": { "$ref": "#/$defs/interet" }
}
}
},
"montant_detail": {
"type": "object",
"additionalProperties": true,
"properties": {
"type": { "enum": ["principal", "interet", "frais", "depens", "penalite", "paiement", "regularisation", "autre"] },
"libelle": { "$ref": "#/$defs/non_empty_string" },
"classe": { "enum": ["CRE", "DBT", "CRT"] },
"devise": { "const": "EUR" },
"signe": { "enum": ["+", "-"] },
"montant": { "$ref": "#/$defs/decimal_string" },
"date": { "$ref": "#/$defs/date" }
}
},
"interet": {
"type": "object",
"additionalProperties": true,
"required": ["reference_interet"],
"properties": {
"reference_interet": { "$ref": "#/$defs/non_empty_string" },
"type": { "enum": ["legal", "contractuel", "manuel"] },
"base_montant": { "$ref": "#/$defs/decimal_string" },
"date_debut": { "$ref": "#/$defs/date" },
"mode_taux": { "enum": ["taux_legal", "taux_fixe", "bareme_manuel"] },
"coefficient": { "$ref": "#/$defs/decimal_string" },
"periodicite": { "enum": ["journalier", "mensuel", "trimestriel", "annuel"] }
}
},
"mesure": {
"type": "object",
"additionalProperties": true,
"required": ["reference_mesure", "type_mesure"],
"properties": {
"reference_mesure": { "$ref": "#/$defs/non_empty_string" },
"type_mesure": { "enum": ["NANTISSEMENT", "SAISIE_ATTRIBUTION", "SAISIE_VENTE", "SAISIE_REMUNERATIONS", "SAISIE_CONSERVATOIRE", "EXPULSION", "AUTRE"] },
"libelle_mesure": { "$ref": "#/$defs/nullable_string" },
"code_mesure_externe": { "$ref": "#/$defs/nullable_string" },
"source_code_mesure": { "$ref": "#/$defs/nullable_string" }
}
},
"acte": {
"type": "object",
"additionalProperties": true,
"required": ["reference_acte", "type_acte"],
"properties": {
"reference_acte": { "$ref": "#/$defs/non_empty_string" },
"type_acte": { "enum": ["COMMANDEMENT_DE_PAYER", "SIGNIFICATION_ACTE", "SIGNIFICATION_ORDONNANCE_IP", "DENONCIATION", "SOMMATION", "MISE_EN_DEMEURE", "PV", "ACTE_DETACHE", "AUTRE"] },
"libelle_acte": { "$ref": "#/$defs/nullable_string" },
"code_acte_externe": { "$ref": "#/$defs/nullable_string" },
"source_code_acte": { "$ref": "#/$defs/nullable_string" },
"date_acte": { "$ref": "#/$defs/date" },
"references_pieces": {
"type": "array",
"items": { "$ref": "#/$defs/non_empty_string" }
}
}
},
"agenda": {
"type": "object",
"additionalProperties": true,
"required": ["reference_evenement", "code_evenement", "date_effet"],
"properties": {
"reference_evenement": { "$ref": "#/$defs/non_empty_string" },
"code_evenement": { "$ref": "#/$defs/non_empty_string" },
"libelle": { "$ref": "#/$defs/nullable_string" },
"date_effet": { "$ref": "#/$defs/date" },
"statut": { "enum": ["a_faire", "fait", "annule"] }
}
},
"piece_jointe": {
"type": "object",
"additionalProperties": true,
"required": ["reference_piece", "nom", "chemin", "type"],
"properties": {
"reference_piece": { "$ref": "#/$defs/non_empty_string" },
"nom": { "$ref": "#/$defs/non_empty_string" },
"chemin": {
"type": "string",
"pattern": "^(?!/)(?!.*\\.\\./).+"
},
"date_piece": { "$ref": "#/$defs/date" },
"categorie": { "enum": ["ACTE", "DECISION_JUDICIAIRE", "TITRE", "JUSTIFICATIF_CREANCE", "MANDAT", "KBIS", "BAIL", "FACTURE", "DECOMPTE", "COURRIER", "IDENTITE", "ATTESTATION", "ANNEXE_NON_SIGNIFIEE", "PIECE_GENERALE", "AUTRE", null] },
"type": { "enum": ["IMAGE", "PDF", "WORD", "EXCEL", "EML"] },
"mime_type": { "$ref": "#/$defs/nullable_string" },
"hash": {
"type": "string",
"pattern": "^sha256:[a-fA-F0-9]+$"
}
}
}
}
}