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.
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.
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.
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.
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.
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).
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