> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.goodflag.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.goodflag.com/_mcp/server.

# Signature XAdES détachée

> Présentation d'un exemple de requête provisionnée réalisée avec une signature XAdES détachée

# Exemples de requête provisionnée

## XAdES détachée

L'application demandeuse initie une demande de signature :

```http
POST /api/requests HTTP/1.1
Authorization: ApiKey 5xVpCQPEYdncwHXwCDf5sqyfN9GPrio5
Content-Type: application/json
Content-Length: 150

{
  "params" : {
    "signerEmail" : "john.doe@my-idp.com"
  },
  "profiles" : {
    "default" : {
      "signatureType" : "xadesDetached"
    }
  }
}
```

Un objet demande est renvoyé, puis l'application demandeuse téléverse le contenu du document (un PDF) :

```http
POST /api/requests/req_01_EkjMu7hm6EpCb4arVkwz6NUV/profiles/default/documents HTTP/1.1
Authorization: ApiKey 5xVpCQPEYdncwHXwCDf5sqyfN9GPrio5
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 :

```http
POST /api/requests/req_01_EkjMu7hm6EpCb4arVkwz6NUV/start HTTP/1.1
Authorization: ApiKey 5xVpCQPEYdncwHXwCDf5sqyfN9GPrio5
```

Une fois la signature terminée, la liste des documents signés contient à présent **deux** parties distinctes : le document PDF d'origine (`isOriginal: true`) et un fichier `signature.xml` séparé contenant la signature XAdES détachée qui référence le PDF par son nom de fichier :

```http
GET /api/requests/req_01_EkjMu7hm6EpCb4arVkwz6NUV/signedDocuments HTTP/1.1
Authorization: ApiKey 5xVpCQPEYdncwHXwCDf5sqyfN9GPrio5
```

```json
[ {
  "created" : 1787667780630,
  "displayedParts" : [ {
    "contentType" : "application/pdf",
    "filename" : "document.pdf",
    "hash" : "obcUcumzUOJsClVDv/jHTNefKTRlTJULnZx4dfOrx+I=",
    "isOriginal" : true,
    "profileId" : "default",
    "size" : 12341
  }, {
    "contentType" : "text/xml",
    "filename" : "signature.xml",
    "hash" : "B/FtOYiHGC3lGV/USI/7QawkARNbbTEAO8XXVJDLpTw=",
    "isOriginal" : false,
    "profileId" : "default",
    "size" : 26658
  } ],
  "id" : "doc_Hq1UEeBgSUuUR4RfbbCHGJAt",
  "linkedDocumentId" : "doc_Hsg9B2t1rbu2sYTsRc5FgTpi",
  "profileId" : "default",
  "requestId" : "req_01_EkjMu7hm6EpCb4arVkwz6NUV",
  "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 :

```http
GET /api/requests/req_01_EkjMu7hm6EpCb4arVkwz6NUV/signedDocuments/doc_Hq1UEeBgSUuUR4RfbbCHGJAt HTTP/1.1
Authorization: ApiKey 5xVpCQPEYdncwHXwCDf5sqyfN9GPrio5
```

```xml
<?xml version="1.0" encoding="UTF-8"?><ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#" Id="id-0b8c10a6cd1887edcef327f8e2053f7a">
    <ds:SignedInfo>
        ...
        <ds:Reference Id="id-0b8c10a6cd1887edcef327f8e2053f7a-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:SignedInfo>
    <ds:SignatureValue Id="value-id-0b8c10a6cd1887edcef327f8e2053f7a">[valeur de signature encodée, tronquée]</ds:SignatureValue>
    <ds:KeyInfo>...</ds:KeyInfo>
    <ds:Object>
        <xad:QualifyingProperties xmlns:xad="http://uri.etsi.org/01903/v1.3.2#" Target="#id-0b8c10a6cd1887edcef327f8e2053f7a">
            ...
        </xad:QualifyingProperties>
    </ds:Object>
</ds:Signature>
```