Version 1.1 archivée
Cette documentation conserve le contrat publié à l’époque. Pour une nouvelle intégration, consultez la version 1.2.

Schéma JSON / CDJ CONNECT 1.1

Schéma JSON

Validation structurelle de lot.json · CDJ Connect 1.1.

Télécharger le JSON

Schema 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]+$"
        }
      }
    }
  }
}