Schemas: applications
Schemas whose first using operation belongs to the applications family. A shared schema is described once, here, and linked from every operation that uses it.
Descriptions come from the contract, which is written in French. They are reproduced verbatim so that the contract remains the source of truth.
ApplicantHistoryItemOut
Dossier anterieur du demandeur : recommandation et decision, sans donnees saisies.
Type : object
| Property | Type | Required | Description | Constraints |
|---|---|---|---|---|
application | ApplicationSummaryOut | yes | ||
evaluated_at | string (date-time) | null | yes | ||
evaluation_outcome | "approve" | "approve_with_conditions" | "review" | "decline" | null | yes | ||
evaluation_score | integer | null | yes | ||
human_decided_at | string (date-time) | null | yes | ||
human_outcome | HumanOutcome | null | yes |
Used by : applicationsApplicantHistory
ApplicantHistoryOut
Historique du demandeur (Specifications A.8), recents d'abord, borne.
Type : object
| Property | Type | Required | Description | Constraints |
|---|---|---|---|---|
items | array<ApplicantHistoryItemOut> | yes | ||
limit | integer | yes |
Used by : applicationsApplicantHistory
ApplicationCreateIn
Creation d'un dossier. `requested_amount` et `term_months` sont requis dans `data`.
Type : object
| Property | Type | Required | Description | Constraints |
|---|---|---|---|---|
applicant_kind | "natural_person" | "legal_entity" | yes | ||
applicant_reference | string | yes | minLength: 1 ; maxLength: 64 | |
data | map<string, string | boolean | null> | yes | maxProperties: 128 | |
product_id | string (uuid) | yes |
Used by : applicationsCreate
ApplicationDetailOut
Dossier complet : saisie, completude, politique, evaluations, decisions humaines.
Type : object
| Property | Type | Required | Description | Constraints |
|---|---|---|---|---|
applicant_kind | "natural_person" | "legal_entity" | yes | ||
applicant_reference | string | yes | ||
channel | "desk" | "api" | "import" | yes | ||
completeness | CompletenessOut | null | yes | ||
created_at | string (date-time) | yes | ||
created_by | string (uuid) | null | yes | ||
currency | string | yes | ||
data | map<string, string | boolean | null> | yes | ||
evaluations | array<EvaluationSummaryOut> | yes | ||
human_decisions | array<HumanDecisionOut> | yes | ||
id | string (uuid) | yes | ||
policy_id | string (uuid) | null | yes | ||
product_id | string (uuid) | yes | ||
purged_at | string (date-time) | null | no | Donnees d'entree purgees (ADR-0062) : saisie vide, reference du demandeur effacee si plus aucun de ses dossiers n'est intact ; la trace demeure. | |
reevaluable | boolean | yes | ||
reference | string | yes | ||
requested_amount | string | yes | ||
row_version | integer | yes | ||
status | "draft" | "submitted" | "escalated" | "decided" | yes | ||
submitted_at | string (date-time) | null | yes | ||
term_months | integer | yes | ||
updated_at | string (date-time) | yes |
Used by : applicationsCreate, applicationsGet, applicationsReevaluate, applicationsSubmit, applicationsUpdate
ApplicationFormOut
Formulaire de saisie d'un produit.
Type : object
| Property | Type | Required | Description | Constraints |
|---|---|---|---|---|
fields | array<InputFieldOut> | yes | ||
product | DeskProductOut | yes |
Used by : deskProductForm
ApplicationPageOut
Une page de la liste de travail.
Type : object
| Property | Type | Required | Description | Constraints |
|---|---|---|---|---|
items | array<WorklistItemOut> | yes | ||
limit | integer | yes | ||
offset | integer | yes | ||
total | integer | yes |
Used by : applicationsList
ApplicationSummaryOut
Ligne de la liste de travail.
Type : object
| Property | Type | Required | Description | Constraints |
|---|---|---|---|---|
applicant_kind | "natural_person" | "legal_entity" | yes | ||
applicant_reference | string | yes | ||
channel | "desk" | "api" | "import" | yes | ||
created_at | string (date-time) | yes | ||
created_by | string (uuid) | null | yes | ||
currency | string | yes | ||
id | string (uuid) | yes | ||
product_id | string (uuid) | yes | ||
purged_at | string (date-time) | null | no | Donnees d'entree purgees (ADR-0062) : saisie vide, reference du demandeur effacee si plus aucun de ses dossiers n'est intact ; la trace demeure. | |
reference | string | yes | ||
requested_amount | string | yes | ||
row_version | integer | yes | ||
status | "draft" | "submitted" | "escalated" | "decided" | yes | ||
submitted_at | string (date-time) | null | yes | ||
term_months | integer | yes | ||
updated_at | string (date-time) | yes |
Used by : applicationsApplicantHistory
ApplicationUpdateIn
Remplacement complet de la saisie d'un brouillon.
Type : object
| Property | Type | Required | Description | Constraints |
|---|---|---|---|---|
data | map<string, string | boolean | null> | yes | maxProperties: 128 | |
row_version | integer | yes | minimum: 1 |
Used by : applicationsUpdate
BinScaleOut
Tranche d'une variable : ses bornes, ses modalites ou l'absence de donnee.
Type : object
| Property | Type | Required | Description | Constraints |
|---|---|---|---|---|
categories | array<string> | yes | ||
id | string | yes | ||
max | string | null | yes | ||
max_inclusive | boolean | yes | ||
min | string | null | yes | ||
min_inclusive | boolean | yes | ||
missing | boolean | yes | ||
points | integer | null | yes | Points de la tranche ; null si l'appelant ne detient pas scorecard.read (ADR-0044). |
Used by : evaluationsGet, policiesSimulate
CharacteristicScaleOut
Variable de la grille : son unite et ses tranches. De quoi ecrire « de 6 a 24 mois » ou « moins de 33 % » au lieu de `6m_to_24m` ou `under_33pct` : l'ecran met en forme, il ne devine rien.
Type : object
| Property | Type | Required | Description | Constraints |
|---|---|---|---|---|
bins | array<BinScaleOut> | yes | ||
feature | string | yes | ||
unit | string | yes |
Used by : evaluationsGet, policiesSimulate
CommunicableExplanationOut
Niveau 2 : motifs communicables au demandeur, a valider par une personne.
Type : object
| Property | Type | Required | Description | Constraints |
|---|---|---|---|---|
kind | "approval" | "review" | "decline" | "complement_request" | yes | ||
reasons | array<string> | yes | ||
status | "draft_requires_human_validation" | "insufficient_reasons_requires_human_drafting" | yes |
Used by : evaluationsGet
CompletenessOut
Completude sous la politique qui regit le dossier.
Type : object
| Property | Type | Required | Description | Constraints |
|---|---|---|---|---|
missing | array<string> | yes | ||
not_applicable | array<string> | yes | ||
ratio | string | yes |
Used by : applicationsCreate, applicationsGet, applicationsReevaluate, applicationsSubmit, applicationsUpdate
ConditionOut
Condition recommandee (etage 5), lue dans la trace (ADR-0031, addendum 2026-10-15). `missing_parameters` : parametres de politique non fixes - la politique est en cause. `missing_inputs` : operandes que les donnees du dossier ne permettent pas de calculer (`income`, `charges`, `term`...) - le dossier est en cause, pas la politique. `missing_unclassified` : evaluation du moteur `nexclara-core/1.0.0`, qui ne distinguait pas les deux natures ; les deux champs precedents sont alors vides.
Type : object
| Property | Type | Required | Description | Constraints |
|---|---|---|---|---|
basis | array<string> | yes | ||
missing_inputs | array<string> | yes | ||
missing_parameters | array<string> | yes | ||
missing_unclassified | array<string> | yes | ||
status | "computed" | "not_parameterized" | "missing_input" | yes | ||
type | "max_amount" | "max_term_months" | "guarantee" | yes | ||
value | any | yes |
Used by : evaluationsGet, policiesSimulate
ContributionOut
Points d'une variable ou d'un ajustement, relatifs a la modalite neutre.
Type : object
| Property | Type | Required | Description | Constraints |
|---|---|---|---|---|
bin | string | null | yes | ||
direction | "favourable" | "unfavourable" | "neutral" | yes | ||
id | string | yes | ||
points | integer | yes | ||
source | "characteristic" | "adjustment" | "scale_bound" | yes | ||
unit | string | null | yes | ||
value | any | yes |
Used by : evaluationsGet, policiesSimulate
DeskProductOut
Produit ouvert a la saisie, et la politique qui le regit.
Type : object
| Property | Type | Required | Description | Constraints |
|---|---|---|---|---|
applicant_scope | "natural_person" | "legal_entity" | "both" | yes | ||
category | CreditProductCategory | yes | ||
code | string | yes | ||
currency | string | yes | ||
id | string (uuid) | yes | ||
name | string | yes | ||
name_en | string | null | yes | ||
policy_code | string | yes | ||
policy_id | string (uuid) | yes | ||
policy_version | integer | yes |
Used by : deskProductForm, deskProducts
DeviationReason
Motif codifie d'un ecart, compte par le suivi des ecarts (VISION, CONTROL).
Type : string
Allowed values : additional_information, guarantee_provided, relationship_history, data_quality, risk_concern, policy_exception, other
Used by : applicationsCreate, applicationsDecide, applicationsEscalate, applicationsGet, applicationsReevaluate, applicationsSubmit, applicationsUpdate
EvaluationOut
Evaluation enregistree, complete.
Type : object
| Property | Type | Required | Description | Constraints |
|---|---|---|---|---|
application_id | string (uuid) | yes | ||
as_of | string (date) | yes | ||
completeness | string | yes | ||
conditions | array<ConditionOut> | yes | ||
confidence | "high" | "medium" | "low" | "not_applicable" | yes | ||
decided_at | string (date-time) | yes | ||
engine_version | string | yes | ||
explanation | ExplanationOut | yes | ||
forced_reviews | array<string> | yes | ||
grid_score | integer | null | yes | ||
id | string (uuid) | yes | ||
inputs_fingerprint | string | yes | ||
inputs_purged_at | string (date-time) | null | no | Entrees brutes purgees (ADR-0062) : la reconstitution n'est plus possible. | |
outcome | "approve" | "approve_with_conditions" | "review" | "decline" | yes | ||
policy_fingerprint | string | yes | ||
policy_id | string (uuid) | yes | ||
requested_by | string (uuid) | null | yes | ||
result_fingerprint | string | yes | ||
scales | array<CharacteristicScaleOut> | yes | ||
score | integer | null | yes | ||
supersedes_evaluation_id | string (uuid) | null | yes | ||
trace | object | yes | ||
zone_outcome | "approve" | "approve_with_conditions" | "review" | "decline" | null | yes |
Used by : evaluationsGet
EvaluationSummaryOut
Evaluation, sans sa trace.
Type : object
| Property | Type | Required | Description | Constraints |
|---|---|---|---|---|
confidence | "high" | "medium" | "low" | "not_applicable" | yes | ||
decided_at | string (date-time) | yes | ||
id | string (uuid) | yes | ||
outcome | "approve" | "approve_with_conditions" | "review" | "decline" | yes | ||
policy_id | string (uuid) | yes | ||
score | integer | null | yes | ||
supersedes_evaluation_id | string (uuid) | null | yes |
Used by : applicationsCreate, applicationsGet, applicationsReevaluate, applicationsSubmit, applicationsUpdate
EvidenceBundleOut
Fichier de preuve `nexclara-decision-evidence@2`, en forme canonique `nexclara-jcs@1`. Les octets servis sont la forme canonique : les empreintes du manifeste se recalculent sur chaque partie. La forme detaillee est documentee dans `docs/product/features/dossier-de-preuve.md` ; le verificateur independant est `scripts/verify_decision_evidence.py`.
Type : object
| Property | Type | Required | Description | Constraints |
|---|---|---|---|---|
format | "nexclara-decision-evidence@2" | "nexclara-destruction-attestation@1" | "nexclara-subject-access-report@1" | "nexclara-compliance-report@1" | yes | ||
manifest | object | yes | Parties, empreintes SHA-256, statut, lacunes, droits et limites. | |
manifest_sha256 | string | yes | Empreinte du manifeste canonique. | |
parts | object | yes | Contenu des seules parties incluses. | |
signature | EvidenceSignatureOut | null | yes | Absente si aucune cle d'instance n'est configuree ; le manifeste le dit. |
Used by : applicationsExportEvidence, trustAccessReport, trustExportComplianceReport, trustPurgeAttestation
EvidenceSignatureOut
Signature Ed25519 du manifeste par la cle de l'instance.
Type : object
| Property | Type | Required | Description | Constraints |
|---|---|---|---|---|
algorithm | "ed25519" | yes | ||
context | "NEXCLARA-EVIDENCE-SIGNATURE-V1" | yes | Prefixe signe avant le manifeste canonique, suivi d'un saut de ligne. | |
instance_id | string (uuid) | null | yes | ||
key_id | string | yes | ||
public_key | string | yes | Cle publique jointe pour commodite : elle ne s'authentifie pas elle-meme. La cle de confiance est celle que CONTROL tient pour l'instance. | |
value | string | yes | Signature, base64url sans remplissage (64 octets). |
Used by : applicationsExportEvidence, trustAccessReport, trustExportComplianceReport, trustPurgeAttestation
ExclusionOut
Regle d'exclusion declenchee.
Type : object
| Property | Type | Required | Description | Constraints |
|---|---|---|---|---|
derogation_role | string | null | yes | ||
id | string | yes | ||
reason_code | string | yes |
Used by : evaluationsGet, policiesSimulate
ExplanationOut
Les trois niveaux, issus de la meme evaluation.
Type : object
| Property | Type | Required | Description | Constraints |
|---|---|---|---|---|
audit | object | yes | ||
communicable | CommunicableExplanationOut | yes | ||
operational | OperationalExplanationOut | yes |
Used by : evaluationsGet
HumanDecisionIn
Decision d'une personne. Un ecart exige `reason` ET `motive` (RG-DESK-02).
Type : object
| Property | Type | Required | Description | Constraints |
|---|---|---|---|---|
approved_amount | string | null | no | pattern: "^\\d{1,16}(\\.\\d{1,2})?$" | |
motive | string | null | no | maxLength: 2000 | |
outcome | HumanOutcome | yes | ||
reason | DeviationReason | null | no | ||
row_version | integer | yes | minimum: 1 |
Used by : applicationsDecide
HumanDecisionOut
Decision ou transmission enregistree, avec ce que la personne avait sous les yeux.
Type : object
| Property | Type | Required | Description | Constraints |
|---|---|---|---|---|
approved_amount | string | null | yes | ||
committed_amount | string | yes | ||
currency | string | yes | ||
decided_at | string (date-time) | yes | ||
decided_by | string (uuid) | yes | ||
delegation_limit | string | null | yes | ||
deviation | boolean | yes | ||
evaluation_id | string (uuid) | yes | ||
id | string (uuid) | yes | ||
kind | "decision" | "escalation" | yes | ||
motive | string | null | yes | ||
outcome | "approve" | "approve_with_conditions" | "decline" | null | yes | ||
reason | DeviationReason | null | yes | ||
recommended_outcome | "approve" | "approve_with_conditions" | "review" | "decline" | yes |
Used by : applicationsCreate, applicationsDecide, applicationsEscalate, applicationsGet, applicationsReevaluate, applicationsSubmit, applicationsUpdate
HumanOutcome
Issue decidee par une personne. La revue n'en est pas une : c'est un etat d'attente.
Type : string
Allowed values : approve, approve_with_conditions, decline
Used by : applicationsApplicantHistory, applicationsDecide
InputFieldOut
Champ du contrat de donnees. Son libelle vient des catalogues de l'interface.
Type : object
| Property | Type | Required | Description | Constraints |
|---|---|---|---|---|
categories | array<string> | yes | ||
code | string | yes | ||
conditional | boolean | yes | ||
framed | boolean | yes | ||
integer | boolean | yes | ||
maximum | string | null | yes | ||
minimum | string | null | yes | ||
scale | integer | yes | ||
section | string | yes | ||
type | "number" | "boolean" | "category" | yes | ||
unit | string | yes |
Used by : deskProductForm
LeverOut
Tranche voisine qui, seule, ferait changer l'issue de zone.
Type : object
| Property | Type | Required | Description | Constraints |
|---|---|---|---|---|
feature | string | yes | ||
from_bin | string | null | yes | ||
points_gain | integer | yes | ||
to_bin | string | yes | ||
zone_outcome_reached | "approve" | "approve_with_conditions" | "review" | "decline" | yes |
Used by : evaluationsGet, policiesSimulate
MissingDataOut
Variable de la grille sans valeur, et pourquoi.
Type : object
| Property | Type | Required | Description | Constraints |
|---|---|---|---|---|
bin | string | null | yes | ||
feature | string | yes | ||
reason | string | yes |
Used by : evaluationsGet, policiesSimulate
OperationalExplanationOut
Niveau 1 : pour l'analyste.
Type : object
| Property | Type | Required | Description | Constraints |
|---|---|---|---|---|
completeness | string | yes | ||
confidence | "high" | "medium" | "low" | "not_applicable" | yes | ||
contribution_notice | string | yes | ||
dominant_factors | array<ContributionOut> | yes | ||
exclusions_not_evaluable | array<UnevaluableExclusionOut> | yes | ||
exclusions_triggered | array<ExclusionOut> | yes | ||
forced_reviews | array<string> | yes | ||
levers | array<LeverOut> | yes | ||
missing_data | array<MissingDataOut> | yes | ||
outcome | "approve" | "approve_with_conditions" | "review" | "decline" | yes | ||
scale | ScaleOut | yes | ||
score | integer | null | yes | ||
unscorable | array<string> | yes | ||
warnings | array<string> | yes | ||
zone_outcome | "approve" | "approve_with_conditions" | "review" | "decline" | null | yes | ||
zones | array<ZoneOut> | yes |
Used by : evaluationsGet, policiesSimulate
ReconstitutionOut
Le calcul refait egale-t-il le calcul enregistre.
Type : object
| Property | Type | Required | Description | Constraints |
|---|---|---|---|---|
current_engine_version | string | yes | ||
evaluation_id | string (uuid) | yes | ||
matches | boolean | yes | ||
policy_fingerprint_matches | boolean | yes | ||
recomputed_fingerprint | string | yes | ||
stored_engine_version | string | yes | ||
stored_fingerprint | string | yes |
Used by : evaluationsReconstitute
RowVersionIn
Ecriture sans autre donnee que la version lue.
Type : object
| Property | Type | Required | Description | Constraints |
|---|---|---|---|---|
row_version | integer | yes | minimum: 1 |
Used by : applicationsEscalate, applicationsReevaluate, applicationsSubmit, policiesApprove, policiesArchive
ScaleOut
Bornes de l'echelle de score.
Type : object
| Property | Type | Required | Description | Constraints |
|---|---|---|---|---|
max | integer | yes | ||
min | integer | yes |
Used by : evaluationsGet, policiesSimulate
UnevaluableExclusionOut
Regle d'exclusion non evaluable faute de donnee.
Type : object
| Property | Type | Required | Description | Constraints |
|---|---|---|---|---|
id | string | yes | ||
inputs_read | array<string> | yes |
Used by : evaluationsGet, policiesSimulate
WorklistItemOut
Ligne de la liste de travail : le dossier et sa derniere recommandation du moteur.
Type : object
| Property | Type | Required | Description | Constraints |
|---|---|---|---|---|
applicant_kind | "natural_person" | "legal_entity" | yes | ||
applicant_reference | string | yes | ||
channel | "desk" | "api" | "import" | yes | ||
created_at | string (date-time) | yes | ||
created_by | string (uuid) | null | yes | ||
currency | string | yes | ||
evaluated_at | string (date-time) | null | yes | ||
evaluation_outcome | "approve" | "approve_with_conditions" | "review" | "decline" | null | yes | Issue recommandee par la derniere evaluation ; null si jamais evalue. | |
evaluation_score | integer | null | yes | Score de la derniere evaluation ; null sans score (exclusion, non calculable). | |
id | string (uuid) | yes | ||
product_id | string (uuid) | yes | ||
purged_at | string (date-time) | null | no | Donnees d'entree purgees (ADR-0062) : saisie vide, reference du demandeur effacee si plus aucun de ses dossiers n'est intact ; la trace demeure. | |
reference | string | yes | ||
requested_amount | string | yes | ||
row_version | integer | yes | ||
status | "draft" | "submitted" | "escalated" | "decided" | yes | ||
submitted_at | string (date-time) | null | yes | ||
term_months | integer | yes | ||
updated_at | string (date-time) | yes |
Used by : applicationsList
ZoneOut
Zone de decision de la politique.
Type : object
| Property | Type | Required | Description | Constraints |
|---|---|---|---|---|
max | string | null | yes | ||
max_inclusive | boolean | yes | ||
min | string | null | yes | ||
min_inclusive | boolean | yes | ||
outcome | "approve" | "approve_with_conditions" | "review" | "decline" | yes |
Used by : evaluationsGet, policiesSimulate