Aller au contenu

Signatures électroniques

50 routes. Chemins relatifs à https://api.nexus-engine.eu/api/v1.

GET /signatures

Les procédures de signature visibles : les miennes, celles où je signe, celles des projets que je vois (tout pour un administrateur).

Requêteetat, projectId, q, limite
Réponse{ procedures: ProcedureResumeDto[] }
GET /signatures/recues

Les demandes de signature qu’une AUTRE entreprise adresse à mon adresse prouvée : l’entreprise et la personne qui demandent, le titre, l’état vu de moi — jamais les autres signataires. Elles se signent dans le panneau de Nexus (`/signatures/:id/moi/…`), par la personne seule.

Réponse{ recues: SignatureRecueDto[] }
GET /signatures/personnes

Les personnes à proposer comme signataires : membres, contacts des clients (celui du projet d’abord), correspondants de Message.

Requêteq, projectId
Réponse{ personnes: PropositionPersonne[] }
GET /signatures/reglages

Les réglages de signature de l’entreprise (durées de conservation, échéance et relances par défaut).

RéponseReglagesSignatureDto
PUT /signatures/reglages Owner et Admin

Change les réglages de signature de l’entreprise.

CorpsconservationSigneeAns, conservationCloseJours, echeanceJours, relancesJours
POST /signatures/verifier

Vérifie un PDF signé : chaque signature, sa chaîne jusqu’à la racine Nexus, sa révocation, l’intégrité ; et la procédure d’origine quand elle est de cet espace.

CorpspdfBase64
RéponseVerificationDto
POST /signatures

Crée une procédure en brouillon depuis un fichier, une pièce d’un projet ou une création du Studio.

Corpssource ({type: fichier, nom} | {type: piece, pieceId} | {type: creation, creationId, version?}), pdfBase64 (obligatoire pour un fichier), titre, message, projectId, signataires (liste de {prenom, nom, courriel, role SIGNATAIRE | COPIE, source, memberId?, contactId?, zone?}), ordre (SIMULTANE | ORDONNE), echeanceJours, relances, requestId (idempotence)
RéponseProcedureDto
NoteUn agent PRÉPARE : le journal le nomme, avec la personne pour qui il agit. Le document est figé à l’envoi, jamais après.
GET /signatures/:id

Une procédure : signataires, états, zones, journal.

RéponseProcedureDto
NoteUne procédure d’une autre entreprise est « introuvable » (404), jamais « interdite ».
PATCH /signatures/:id

Modifie une procédure : avant la première signature on ajoute, retire, déplace ; après, les signataires ne changent plus (§ 6.8).

Corpstitre, message, projectId, signataires, ordre, echeanceJours, relances, et le courriel d’un signataire à corriger (l’ancien lien ne sert plus)
RéponseProcedureDto
Note409 avec `refus` quand la règle `refusDeChangement` l’interdit.
DELETE /signatures/:id

Supprime un brouillon (seul un brouillon se supprime ; une procédure envoyée s’annule).

POST /signatures/:id/envoyer

Envoie la procédure : le document est figé, les signataires (le premier seulement en ordre) reçoivent leur lien.

RéponseProcedureDto
Note402 sans licence qui le permette ; 503 `AUTORITE_ABSENTE` quand l’autorité de certification n’est pas installée en production.
POST /signatures/:id/relancer

Relance les signataires qui n’ont pas signé (le MÊME lien).

CorpssignataireId (facultatif : un seul)
RéponseProcedureDto
POST /signatures/:id/prolonger

Repousse l’échéance ; rouvre une procédure expirée.

Corpsjours
RéponseProcedureDto
POST /signatures/:id/annuler

Annule une procédure en attente : les liens ne servent plus, les signataires sont prévenus.

Corpsmotif
RéponseProcedureDto
POST /signatures/:id/dupliquer

Un nouveau brouillon avec le même document et les mêmes signataires.

RéponseProcedureDto
GET /signatures/:id/liens session de l’application seulement

Les liens de signature des tiers déjà invités, quand la demande a été créée avec `invitation: "APPLICATION"` (Nexus n’envoie alors ni invitation ni relance).

Réponse{ liens: LienDeSignataireDto[] }
NoteUn lien est un secret borné par l’échéance : il ouvre la page du signataire, il ne signe pas (le code part toujours de Nexus à son adresse). 409 `INVITATION_NEXUS` quand Nexus a porté l’invitation. La lecture est journalisée, sans le lien. Jamais à une clé d’API ni à un agent.
POST /signatures/:id/documents

Ajoute à un brouillon un document DE PLUS à signer : il reste son propre PDF, signé séparément par chaque signataire dans la même cérémonie que le premier.

Corpsnom, pdfBase64 (20 Mo au plus ; 9 documents de plus au plus)
RéponseProcedureDto
NoteUn brouillon seulement (409 après l’envoi). Le même PDF deux fois est refusé (409 `DEJA_LA`). Chaque signataire signe TOUS les documents ou aucun ; chaque fichier signé se télécharge par `GET /signatures/:id/document?type=signe&document=<id>`, et le dossier de preuve, unique, les nomme tous avec leurs empreintes.
DELETE /signatures/:id/documents/:documentId

Retire d’un brouillon un des documents de plus à signer.

RéponseProcedureDto
POST /signatures/:id/annexes

Joint une ANNEXE à un brouillon : un PDF que personne ne signe, proposé à chaque signataire, et dont l’empreinte est écrite au dossier de preuve.

Corpsnom, pdfBase64 (10 Mo au plus ; 5 annexes au plus)
RéponseProcedureDto
DELETE /signatures/:id/annexes/:annexeId

Retire une annexe d’un brouillon.

RéponseProcedureDto
GET /signatures/:id/annexes/:annexeId

Une annexe de la procédure.

Requêteformat (base64 : rend { nom, pdfBase64 })
Réponseapplication/pdf
GET /signatures/:id/moi/annexes/:annexeId

Une annexe, pour le membre qui signe.

Requêteformat (base64)
Réponseapplication/pdf
GET /signatures/:id/document

Un PDF de la procédure : signé, dossier de preuve, original ou en cours.

Requêtetype (signe | preuve | origine | courant), format (base64 : rend { nom, pdfBase64 })
Réponseapplication/pdf
GET /signatures/:id/journal

Le journal de la procédure (il ne s’efface jamais).

Réponse{ journal: JournalSignatureDto[] }
GET /signatures/:id/moi

Ce que le membre courant a à signer dans cette procédure.

RéponsePageSignataireDto
GET /signatures/:id/moi/document

Le document que le membre courant signe.

Requêteformat (base64)
Réponseapplication/pdf
GET /signatures/:id/moi/compte

Le compte de la même personne qui signe cette procédure, quand la session est dans un autre espace (pour y basculer) ; sinon 404.

RéponseCompteQuiSigneDto
POST /signatures/ordinateur session de l’application seulement

Le poste pose (ou lève) le verrou de la signature pendant qu’un agent conduit l’ordinateur du membre.

Corpsactif (booléen), cle (32 à 128 signes base64url, née dans le processus principal du poste)
Réponse{ actif, jusqua }
NoteUne personne seulement (403 `AGENT_REFUSE` pour une clé ou un agent). Le verrou vit en mémoire, 75 minutes au plus, renouvelé par le poste ; seule la clé qui l’a posé le lève. Tant qu’il tient, les gestes `…/moi/…` répondent 423 `ORDINATEUR_CONDUIT`.
POST /signatures/:id/moi/ouvrir session de l’application seulement

Le membre ouvre la demande dans Nexus (journalisé) ; rend le défi de possession de clé.

RéponsePageSignataireDto
NoteRéservé à une personne devant son écran : une clé d’API, un agent ou une application reçoivent 403 `AGENT_REFUSE`, et la tentative est écrite au journal de la procédure (`refus-agent`). Dans le logiciel comme dans la version web ; refusé dans le Navigateur de Nexus et les vues de Preview (403 `NAVIGATEUR_EMBARQUE`) et pendant qu’un agent conduit l’ordinateur (423 `ORDINATEUR_CONDUIT`).
POST /signatures/:id/moi/code session de l’application seulement

Envoie au membre le code à six chiffres (10 minutes, cinq essais).

NoteRéservé à une personne devant son écran : une clé d’API, un agent ou une application reçoivent 403 `AGENT_REFUSE`, et la tentative est écrite au journal de la procédure (`refus-agent`). Dans le logiciel comme dans la version web ; refusé dans le Navigateur de Nexus et les vues de Preview (403 `NAVIGATEUR_EMBARQUE`) et pendant qu’un agent conduit l’ordinateur (423 `ORDINATEUR_CONDUIT`).
POST /signatures/:id/moi/certificat session de l’application seulement

Le membre donne le code, sa clé publique et la preuve de possession : Nexus émet son certificat à usage unique et rend les octets à signer.

Corpscode, clePublique (SPKI base64), preuve (défi signé, base64), accord (vrai), dessin (facultatif)
RéponseASignerDto
NoteRéservé à une personne devant son écran : une clé d’API, un agent ou une application reçoivent 403 `AGENT_REFUSE`, et la tentative est écrite au journal de la procédure (`refus-agent`). Dans le logiciel comme dans la version web ; refusé dans le Navigateur de Nexus et les vues de Preview (403 `NAVIGATEUR_EMBARQUE`) et pendant qu’un agent conduit l’ordinateur (423 `ORDINATEUR_CONDUIT`). 423 `CODE_BLOQUE` après cinq codes faux.
POST /signatures/:id/moi/signer session de l’application seulement

Le membre rend la signature des attributs : Nexus scelle le document (horodatage, B-LTA à la dernière).

Corpssignature (base64), accord (vrai), empreinte
NoteRéservé à une personne devant son écran : une clé d’API, un agent ou une application reçoivent 403 `AGENT_REFUSE`, et la tentative est écrite au journal de la procédure (`refus-agent`). Dans le logiciel comme dans la version web ; refusé dans le Navigateur de Nexus et les vues de Preview (403 `NAVIGATEUR_EMBARQUE`) et pendant qu’un agent conduit l’ordinateur (423 `ORDINATEUR_CONDUIT`). Une signature passée entre-temps : 200 `{ ok: false, code: RESIGNER, aSigner }` — signer de nouveau sur la version à jour.
POST /signatures/:id/moi/refuser session de l’application seulement

Le membre refuse de signer : la procédure s’arrête pour tous.

Corpsmotif
NoteRéservé à une personne devant son écran : une clé d’API, un agent ou une application reçoivent 403 `AGENT_REFUSE`, et la tentative est écrite au journal de la procédure (`refus-agent`). Dans le logiciel comme dans la version web ; refusé dans le Navigateur de Nexus et les vues de Preview (403 `NAVIGATEUR_EMBARQUE`) et pendant qu’un agent conduit l’ordinateur (423 `ORDINATEUR_CONDUIT`).
GET /signature-public sans authentification

La page du signataire : document, agence, échéance, état de son lien.

RéponsePageSignataireDto
NoteSans compte : le jeton du lien (`/signer#<jeton>`) voyage dans l’en-tête `x-signature-jeton`, jamais dans l’adresse ; Nexus n’en garde que l’empreinte. Réponses `no-store`.
GET /signature-public/annexes/:annexeId sans authentification

Une annexe de la demande, pour le signataire (jeton dans l’en-tête).

Requêteformat (base64)
Réponseapplication/pdf
POST /signature-public/ouvrir sans authentification

Le signataire ouvre le lien (journalisé, adresse et navigateur).

NoteSans compte : le jeton du lien (`/signer#<jeton>`) voyage dans l’en-tête `x-signature-jeton`, jamais dans l’adresse ; Nexus n’en garde que l’empreinte. Réponses `no-store`.
GET /signature-public/document sans authentification

Le document à signer (ou signé, une fois la procédure close).

Requêtetype, format (base64)
Réponseapplication/pdf
NoteSans compte : le jeton du lien (`/signer#<jeton>`) voyage dans l’en-tête `x-signature-jeton`, jamais dans l’adresse ; Nexus n’en garde que l’empreinte. Réponses `no-store`.
POST /signature-public/code sans authentification

Envoie le code à six chiffres à l’adresse du signataire.

NoteSans compte : le jeton du lien (`/signer#<jeton>`) voyage dans l’en-tête `x-signature-jeton`, jamais dans l’adresse ; Nexus n’en garde que l’empreinte. Réponses `no-store`. Renvoi après 30 s ; plafond par adresse IP.
POST /signature-public/certificat sans authentification

Code, clé publique née dans le navigateur et preuve de possession : le certificat à usage unique et les octets à signer.

Corpscode, clePublique, preuve, accord, dessin
RéponseASignerDto
NoteSans compte : le jeton du lien (`/signer#<jeton>`) voyage dans l’en-tête `x-signature-jeton`, jamais dans l’adresse ; Nexus n’en garde que l’empreinte. Réponses `no-store`. 423 `CODE_BLOQUE` après cinq codes faux.
POST /signature-public/signer sans authentification

La signature des attributs : Nexus scelle le document.

Corpssignature, accord, empreinte
NoteSans compte : le jeton du lien (`/signer#<jeton>`) voyage dans l’en-tête `x-signature-jeton`, jamais dans l’adresse ; Nexus n’en garde que l’empreinte. Réponses `no-store`. 409 `RESIGNER` avec les nouveaux octets quand une autre signature est passée entre-temps.
POST /signature-public/refuser sans authentification

Le signataire refuse de signer.

Corpsmotif
NoteSans compte : le jeton du lien (`/signer#<jeton>`) voyage dans l’en-tête `x-signature-jeton`, jamais dans l’adresse ; Nexus n’en garde que l’empreinte. Réponses `no-store`.
POST /signature-public/verifier sans authentification

Le vérificateur public : un PDF signé, ses signatures, leur chaîne et leur révocation — sans dire de quelle procédure il vient.

CorpspdfBase64
RéponseVerificationDto
NoteDix par minute et par adresse.
GET /signature-pki/racine.crt sans authentification

Le certificat racine de l’autorité de signature Nexus (DER, ou PEM avec ?format=pem).

Requêteformat (pem)
GET /signature-pki/intermediaire.crt sans authentification

Le certificat de l’autorité intermédiaire, qui émet les certificats des signataires.

GET /signature-pki/horodatage.crt sans authentification

Le certificat de l’autorité d’horodatage (RFC 3161).

GET /signature-pki/racine.crl sans authentification

La liste de révocation de la racine (signée hors ligne, 400 jours).

GET /signature-pki/signatures.crl sans authentification

La liste de révocation des certificats de signataires (5 minutes de cache).

POST /signature-pki/ocsp sans authentification

Le répondeur OCSP (RFC 6960) des certificats de signataires.

Corpsapplication/ocsp-request
GET /signature-pki/ocsp/* sans authentification

Le répondeur OCSP, forme GET (requête en base64 dans le chemin).

POST /signature-pki/horodatage sans authentification

L’autorité d’horodatage (RFC 3161) : chaque jeton est écrit au registre.

Corpsapplication/timestamp-query