Passer à la navigation

Signature XAdES détachée

Afficher en Markdown

Exemple de requête réalisant une signature XAdES détachée sur un document

Création de la requête provisionnée

L’application demandeuse initie une demande de signature :

POST /api/requests HTTP/1.1
Authorization: ApiKey ELyx8gbdteZ9s4gigTAm4PQGvHu1zrA7
Content-Type: application/json
Content-Length: 150
{
"params" : {
"signerEmail" : "john.doe@my-idp.com"
},
"profiles" : {
"default" : {
"signatureType" : "xadesDetached"
}
}
}

Un objet demande est renvoyé :

{
"clientId" : "01",
"created" : 1789468060198,
"id" : "req_01_H38sdXgMt75Y4WuwEL1YDcmY",
"params" : {
"bypassViewer" : "false",
"signerEmail" : "john.doe@my-idp.com"
},
"profiles" : {
"default" : {
"forceScrollDocument" : "false",
"signatureType" : "xadesDetached"
}
},
"status" : "created",
"updated" : 1789468060198
}

Téléversement du document à signer

L’application demandeuse téléverse le contenu du document (un PDF) :

POST /api/requests/req_01_H38sdXgMt75Y4WuwEL1YDcmY/profiles/default/documents HTTP/1.1
Authorization: ApiKey ELyx8gbdteZ9s4gigTAm4PQGvHu1zrA7
Content-Disposition: attachment; filename="document.pdf"
Content-Type: application/pdf
%PDF-1.3
%[contenu binaire du fichier PDF]

Un objet document est renvoyé, avec cette fois une policyUri pointant vers la politique de signature CAdES/XAdES détachée de la Banque de France. L’application demandeuse démarre ensuite la demande :

{
"created" : 1789468060211,
"displayedParts" : [ {
"contentType" : "application/pdf",
"filename" : "document.pdf",
"hash" : "obcUcumzUOJsClVDv/jHTNefKTRlTJULnZx4dfOrx+I=",
"name" : "data",
"policyUri" : "https://sites.banque-france.fr/igc/signature/ps/ps_1_2_250_1_115_200_300_4.pdf",
"profileId" : "default",
"size" : 12341
} ],
"id" : "doc_Hht54qmG7vBvkMKVj887UVX9",
"parts" : [ {
"contentType" : "application/pdf",
"filename" : "document.pdf",
"hash" : "obcUcumzUOJsClVDv/jHTNefKTRlTJULnZx4dfOrx+I=",
"name" : "data",
"policyUri" : "https://sites.banque-france.fr/igc/signature/ps/ps_1_2_250_1_115_200_300_4.pdf",
"profileId" : "default",
"size" : 12341
} ],
"profileId" : "default",
"requestId" : "req_01_H38sdXgMt75Y4WuwEL1YDcmY",
"workflowIdx" : 0
}

Lancement de la requête provisionnée

L’application demandeuse passe le statut de la demande de signature à started :

POST /api/requests/req_01_H38sdXgMt75Y4WuwEL1YDcmY/start HTTP/1.1
Authorization: ApiKey ELyx8gbdteZ9s4gigTAm4PQGvHu1zrA7

L’URL de la page de consentement est renvoyée :

{
"consentPageUrl" : "https://evidence-manager.lex-persona.com/?requestToken=eyJhbGciOiJIUzI1NiJ9.eyJjbGllbnRJZCI6IjAxIiwiY29uc2VudFZlcnNpb24iOiJWMiIsInNhbHQiOiIzOEphbGsrLyIsInJtVmVyc2...#requestId=req_01_H38sdXgMt75Y4WuwEL1YDcmY"
}

Récupération des documents signés et des preuves

L’application demandeuse liste les documents signés :

GET /api/requests/req_01_H38sdXgMt75Y4WuwEL1YDcmY/signedDocuments HTTP/1.1
Authorization: ApiKey ELyx8gbdteZ9s4gigTAm4PQGvHu1zrA7

Une liste d’objets document est renvoyée. Elle contient deux parties distinctes :

  • le document PDF d’origine (isOriginal: true),
  • un fichier signature.xml séparé contenant la signature XAdES détachée qui référence le PDF par son nom de fichier
[ {
"created" : 1789468060575,
"displayedParts" : [ {
"contentType" : "application/pdf",
"filename" : "document.pdf",
"hash" : "obcUcumzUOJsClVDv/jHTNefKTRlTJULnZx4dfOrx+I=",
"isOriginal" : true,
"name" : "data",
"policyUri" : "https://sites.banque-france.fr/igc/signature/ps/ps_1_2_250_1_115_200_300_4.pdf",
"profileId" : "default",
"size" : 12341
}, {
"contentType" : "text/xml",
"filename" : "signature.xml",
"hash" : "aYHfVpJF35w59Q9SC/tgBNkmYyHRGKMidJeZ9F4E98Q=",
"isOriginal" : false,
"name" : "data",
"policyUri" : "https://sites.banque-france.fr/igc/signature/ps/ps_1_2_250_1_115_200_300_4.pdf",
"profileId" : "default",
"size" : 26658
} ],
"id" : "doc_MsvB2ABSRDm5qPaWV5HViuGb",
"linkedDocumentId" : "doc_Hht54qmG7vBvkMKVj887UVX9",
"parts" : [ {
"contentType" : "application/pdf",
"filename" : "document.pdf",
"hash" : "obcUcumzUOJsClVDv/jHTNefKTRlTJULnZx4dfOrx+I=",
"isOriginal" : true,
"name" : "data",
"policyUri" : "https://sites.banque-france.fr/igc/signature/ps/ps_1_2_250_1_115_200_300_4.pdf",
"profileId" : "default",
"size" : 12341
}, {
"contentType" : "text/xml",
"filename" : "signature.xml",
"hash" : "aYHfVpJF35w59Q9SC/tgBNkmYyHRGKMidJeZ9F4E98Q=",
"isOriginal" : false,
"name" : "data",
"policyUri" : "https://sites.banque-france.fr/igc/signature/ps/ps_1_2_250_1_115_200_300_4.pdf",
"profileId" : "default",
"size" : 26658
} ],
"profileId" : "default",
"requestId" : "req_01_H38sdXgMt75Y4WuwEL1YDcmY",
"workflowIdx" : 0
} ]

Le téléchargement du document signé renvoie le fichier signature.xml : une signature XAdES détachée (ds:Signature) qui référence document.pdf par son URI, avec sa politique de signature (celle de la Banque de France), sa chaîne de certificats et son horodatage :

GET /api/requests/req_01_H38sdXgMt75Y4WuwEL1YDcmY/signedDocuments/doc_MsvB2ABSRDm5qPaWV5HViuGb HTTP/1.1
Authorization: ApiKey ELyx8gbdteZ9s4gigTAm4PQGvHu1zrA7
<?xml version="1.0" encoding="UTF-8"?><ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#" Id="id-6c91671cf270b22ca2e72b009c8bfde4">
<ds:SignedInfo>
<ds:CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
<ds:SignatureMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#rsa-sha256"/>
<ds:Reference Id="id-6c91671cf270b22ca2e72b009c8bfde4-1" URI="document.pdf">
<ds:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
<ds:DigestValue>obcUcumzUOJsClVDv/jHTNefKTRlTJULnZx4dfOrx+I=</ds:DigestValue>
</ds:Reference>
<ds:Reference Type="http://uri.etsi.org/01903#SignedProperties" URI="#xades-id-6c91671cf270b22ca2e72b009c8bfde4">
<ds:Transforms>
<ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
</ds:Transforms>
<ds:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
<ds:DigestValue>HedEVbfk9OODSQ4EytRuQ3pKnJeqgB7s8HuJunLnqbg=</ds:DigestValue>
</ds:Reference>
</ds:SignedInfo>
<ds:SignatureValue Id="value-id-6c91671cf270b22ca2e72b009c8bfde4">MQMI3vOf0TnSUjS2VUxWCzvTWg3pUWgmzyO/hDqpmQ5MvSem4dccTxHseTTe2z0vqIlZkUDiY4W8KC89Qtfti8yNvBS9CajoKA7laCaIZhy5ms0P/Zx7D8C9...</ds:SignatureValue>
<ds:KeyInfo>
<ds:X509Data>
<ds:X509Certificate>MIIGVjCCBD6gAwIBAgIIJ/TRdsPRnnUwDQYJKoZIhvcNAQELBQAwgYMxKzApBgNVBAMMIlN1bm55c3RhbXAgTGVnYWwgUGVyc29ucyBDQSAoVEVTVCkxFzAV...</ds:X509Certificate>
<ds:X509Certificate>MIIHADCCBOigAwIBAgIIXZTNpYsvZKAwDQYJKoZIhvcNAQENBQAwdjEeMBwGA1UEAwwVU3VubnlzdGFtcCBSb290IENBIEcyMRcwFQYDVQQLDA4wMDAyIDQ4...</ds:X509Certificate>
<ds:X509Certificate>MIIF5DCCA8ygAwIBAgIIds3Y5/Vg0IYwDQYJKoZIhvcNAQELBQAwdjEeMBwGA1UEAwwVU3VubnlzdGFtcCBSb290IENBIEcyMRcwFQYDVQQLDA4wMDAyIDQ4...</ds:X509Certificate>
</ds:X509Data>
</ds:KeyInfo>
<ds:Object>
<xad:QualifyingProperties xmlns:xad="http://uri.etsi.org/01903/v1.3.2#" Target="#id-6c91671cf270b22ca2e72b009c8bfde4">
<xad:SignedProperties Id="xades-id-6c91671cf270b22ca2e72b009c8bfde4">
<xad:SignedSignatureProperties>
<xad:SigningTime>2026-09-15T10:27:40Z</xad:SigningTime>
<xad:SigningCertificate>
<xad:Cert>
<xad:CertDigest>
<ds:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512"/>
<ds:DigestValue>dvKAtWkBOHkI5CyXkIrL6iuBpkAbHJeVuSkDnY9BTXFm/RJGLohuM1JHxkYR80ctoo7O+8abBuFWmxOHB1/PWw==</ds:DigestValue>
</xad:CertDigest>
<xad:IssuerSerial>
<ds:X509IssuerName>C=FR,O=LEX PERSONA,2.5.4.97=#0c0f4e545246522d343830363232323537,OU=0002 480622257,CN=Sunnystamp Legal Persons CA (TEST)</ds:X509IssuerName>
<ds:X509SerialNumber>2879156369818230389</ds:X509SerialNumber>
</xad:IssuerSerial>
</xad:Cert>
</xad:SigningCertificate>
<xad:SignaturePolicyIdentifier>
<xad:SignaturePolicyId>
<xad:SigPolicyId>
<xad:Identifier Qualifier="OIDAsURN">urn:oid:1.2.250.1.115.200.300.4</xad:Identifier>
</xad:SigPolicyId>
<xad:SigPolicyHash>
<ds:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
<ds:DigestValue>lLKFDAaR8NxNtrf1cIlmULQgp1GS+7igKN8p7pqy3G0=</ds:DigestValue>
</xad:SigPolicyHash>
<xad:SigPolicyQualifiers>
<xad:SigPolicyQualifier>
<xad:SPURI>https://sites.banque-france.fr/igc/signature/ps/ps_1_2_250_1_115_200_300_4.pdf</xad:SPURI>
</xad:SigPolicyQualifier>
</xad:SigPolicyQualifiers>
</xad:SignaturePolicyId>
</xad:SignaturePolicyIdentifier>
<xad:SignerRole>
<xad:ClaimedRoles>
<xad:ClaimedRole>Finance</xad:ClaimedRole>
</xad:ClaimedRoles>
</xad:SignerRole>
</xad:SignedSignatureProperties>
<xad:SignedDataObjectProperties>
<xad:DataObjectFormat ObjectReference="#id-6c91671cf270b22ca2e72b009c8bfde4-1">
<xad:MimeType>application/pdf</xad:MimeType>
</xad:DataObjectFormat>
</xad:SignedDataObjectProperties>
</xad:SignedProperties>
<xad:UnsignedProperties>
<xad:UnsignedSignatureProperties>
<xad:SignatureTimeStamp Id="ts-id-28fe18bda3b822208a8f776057dc2bb7c218a193">
<ds:CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
<xad:EncapsulatedTimeStamp Id="ets-id-28fe18bda3b822208a8f776057dc2bb7c218a193">MIITiwYJKoZIhvcNAQcCoIITfDCCE3gCAQMxDTALBglghkgBZQMEAgMwgZoGCyqGSIb3DQEJEAEEoIGKBIGHMIGEAgEBBgorBgEEAYGwDgMBME8wCwYJYIZI...</xad:EncapsulatedTimeStamp>
</xad:SignatureTimeStamp>
<xad:CertificateValues>
<xad:EncapsulatedX509Certificate>MIIFFjCCAv6gAwIBAgIIbsY5xAkSkX4wDQYJKoZIhvcNAQELBQAwYjEgMB4GA1UEAwwXU3VubnlzdGFtcCBSb290IENBIFRFU1QxFzAVBgNVBAsMDjAwMDIg...</xad:EncapsulatedX509Certificate>
<xad:EncapsulatedX509Certificate>MIIF7jCCA9agAwIBAgIIP8OEn2s6EfQwDQYJKoZIhvcNAQELBQAwYjEgMB4GA1UEAwwXU3VubnlzdGFtcCBSb290IENBIFRFU1QxFzAVBgNVBAsMDjAwMDIg...</xad:EncapsulatedX509Certificate>
<xad:EncapsulatedX509Certificate>MIIEgDCCA2igAwIBAgIIKLkhbHKSuWowDQYJKoZIhvcNAQELBQAwdzEqMCgGA1UEAwwhU3VubnlzdGFtcCBUcnVzdCBTZXJ2aWNlcyBURVNUIENBMRcwFQYD...</xad:EncapsulatedX509Certificate>
</xad:CertificateValues>
<xad:RevocationValues>
<xad:CRLValues>
<xad:EncapsulatedCRLValue>MIIC8DCB2QIBATANBgkqhkiG9w0BAQsFADB2MR4wHAYDVQQDDBVTdW5ueXN0YW1wIFJvb3QgQ0EgRzIxFzAVBgNVBAsMDjAwMDIgNDgwNjIyMjU3MRgwFgYD...</xad:EncapsulatedCRLValue>
<xad:EncapsulatedCRLValue>MIIC3TCBxgIBATANBgkqhkiG9w0BAQsFADBiMSAwHgYDVQQDDBdTdW5ueXN0YW1wIFJvb3QgQ0EgVEVTVDEXMBUGA1UECwwOMDAwMiA0ODA2MjIyNTcxGDAW...</xad:EncapsulatedCRLValue>
<xad:EncapsulatedCRLValue>MIIB8jCB2wIBATANBgkqhkiG9w0BAQsFADB3MSowKAYDVQQDDCFTdW5ueXN0YW1wIFRydXN0IFNlcnZpY2VzIFRFU1QgQ0ExFzAVBgNVBAsMDjAwMDIgNDgw...</xad:EncapsulatedCRLValue>
<xad:EncapsulatedCRLValue>MIIC/zCB6AIBATANBgkqhkiG9w0BAQ0FADCBgzErMCkGA1UEAwwiU3VubnlzdGFtcCBMZWdhbCBQZXJzb25zIENBIChURVNUKTEXMBUGA1UECwwOMDAwMiA0...</xad:EncapsulatedCRLValue>
</xad:CRLValues>
</xad:RevocationValues>
</xad:UnsignedSignatureProperties>
</xad:UnsignedProperties>
</xad:QualifyingProperties>
</ds:Object>
</ds:Signature>