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

# Récupérer les documents signés et les preuves

> Récupérer les documents signés et les preuves.

# Récupération des documents signés et preuves complémentaires

Une fois la demande de signature `finished`, l'application demandeuse peut télécharger en backend les documents signés et le fichier de preuve via l'API REST du Request Manager.

## Lister les documents signés

L'application demandeuse peut lister les documents signés produits par le Request Manager :

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

Une liste d'objets document est renvoyée :

```json
[ {
  "created" : 1787667779999,
  "displayedParts" : [ {
    "contentType" : "application/pdf",
    "filename" : "document.pdf",
    "hash" : "9pudXT73rFyDrFtO6pjeKVs7Jo7OW7EF1FJ77swbZ+M=",
    "isOriginal" : false,
    "name" : "data",
    "profileId" : "default",
    "size" : 51496
  } ],
  "id" : "doc_E43VHphwvxBoLycK6BMueTnH",
  "linkedDocumentId" : "doc_PCaHAgw3UfT1S5D32Rt2q8s4",
  "parts" : [ {
    "contentType" : "application/pdf",
    "filename" : "document.pdf",
    "hash" : "9pudXT73rFyDrFtO6pjeKVs7Jo7OW7EF1FJ77swbZ+M=",
    "isOriginal" : false,
    "name" : "data",
    "profileId" : "default",
    "size" : 51496
  } ],
  "profileId" : "default",
  "requestId" : "req_01_6V3nZjiXXcMkrtUwZy4Ljj2K",
  "workflowIdx" : 0
} ]
```

Remarquez comment un document signé est lié à son document d'origine par le champ `linkedDocumentId`.

> Consultez la [documentation API relative au listage des documents signés](/rm/api-reference/documentation-api/cle-api/signed-documents/list-signed-documents) pour plus d'informations sur ce point d'entrée.

## Télécharger un document signé

L'application demandeuse peut télécharger un document signé en transmettant son ID dans l'URL :

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

Le contenu du document signé est renvoyé dans le corps de la réponse :

```unknown
%PDF-1.3
%[contenu binaire du fichier PDF]
4 0 obj
<< /Length 5 0 R /Filter /FlateDecode >>
stream
...
```

> Consultez la [documentation API relative au téléchargement d'un document signé](/rm/api-reference/documentation-api/cle-api/signed-documents/download-signed-document) pour plus d'informations sur ce point d'entrée.

## Récupérer un zip des documents signés

L'application demandeuse peut également télécharger un zip contenant tous les documents signés :

```http
GET /api/requests/req_01_6V3nZjiXXcMkrtUwZy4Ljj2K/signedDocuments.zip HTTP/1.1
Authorization: ApiKey 5xVpCQPEYdncwHXwCDf5sqyfN9GPrio5
```

Le contenu du zip est renvoyé dans le corps de la réponse :

```unknown
PK[contenu binaire de l'archive ZIP]document.pdf
...
```

> Consultez la [documentation API relative au téléchargement d'un ZIP des documents signés](/rm/api-reference/documentation-api/cle-api/signed-documents/zip-signed-documents) pour plus d'informations sur ce point d'entrée.

## Récupérer le fichier de preuve

L'application demandeuse doit récupérer le fichier de preuve, un fichier XML scellé par l'Evidence Manager, et l'archiver avec les documents signés. Voici comment l'application demandeuse récupère le fichier de preuve XML :

```http
GET /api/requests/req_01_6V3nZjiXXcMkrtUwZy4Ljj2K/evidence.xml HTTP/1.1
Authorization: ApiKey 5xVpCQPEYdncwHXwCDf5sqyfN9GPrio5
```

Le contenu du fichier XML est renvoyé dans le corps de la réponse :

```xml
<?xml version="1.0" encoding="UTF-8"?><evidence>
    <id>evi_01_LrS6kDSD32CPbumvvM1TBiwS</id>
    <clientId>01</clientId>
    <requestHash>e8GnwngdXO9zXez99iLrf+rnTfTMWWrylyvG9V4qG/4=</requestHash>
    <created>2026-08-25T14:22:59.682Z</created>
    <emVersion>"sgs-rm-webapp:1.21.0-test-ci-1"</emVersion>
    <rmVersion>"sgs-rm-webapp:1.21.0-test-ci-1"</rmVersion>
    <rmUrl>https://request-manager.my-company.com/</rmUrl>
    <emUrl>https://evidence-manager.lex-persona.com/</emUrl>
    <redirectUrl>https://my-company.com/callback</redirectUrl>
    <signingMode>server_shortterm_with_idp</signingMode>
    <idpType>oidc</idpType>
    <idpClientId>992e3c5f-371e-4601-b97a-daaf44ed14e3</idpClientId>
    <signerPublicIp>217.70.184.38</signerPublicIp>
    <signerUserAgent>Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.119 Safari/537.36</signerUserAgent>
    <locales>
        <locale>en-us</locale>
        <locale>en</locale>
    </locales>
    <challenge>BeX5+7EsBFfRzFle0P4dlBQ1qRTbkSOwu3qKRAelQ3wsEgm9qqvIQVaC3swLh1UetWQV3J555VIK9gZCrmR92Q==</challenge>
    <consentJsHash>Q3SPoJhfITpaQlUJiox/MD+62w1/RSS42c92ovsbFdg=</consentJsHash>
    <consentCssHash>dBsUPzd+VgUvXjyIQcSDd3yZzyFFanUuhvcYQW+Px8o=</consentCssHash>
    <termsHash>Q/lPIKwAA1o2sEy91iggOIzWpHcE4Kazt7bOQTlAHtU=</termsHash>
    <idToken>[jeton JWT tronqué]</idToken>
    <signerSubject>john.doe</signerSubject>
    <signerEmail>john.doe@my-idp.com</signerEmail>
    <signerPhoneNumber>+1-541-754-3010</signerPhoneNumber>
    <signerName>John Doe</signerName>
    <signerGivenName>John</signerGivenName>
    <signerFamilyName>Doe</signerFamilyName>
    <signerCountry>US</signerCountry>
    <clientPublicKey>ncyYJpF7nln3lgg4YExxv3Jbfb3BQ4QLjAC4mJk1XU8=</clientPublicKey>
    <certificateRequest>[requête de certificat encodée, tronquée]</certificateRequest>
    <certificateRequestSignature>[signature encodée, tronquée]</certificateRequestSignature>
    <certificateChain>
        <certificate>[certificat encodé, tronqué]</certificate>
        <certificate>[certificat encodé, tronqué]</certificate>
        <certificate>[certificat encodé, tronqué]</certificate>
    </certificateChain>
    <requestJson>[JSON de la demande, encodé en base64, tronqué]</requestJson>
    <parts>
        <partJson>[JSON de la partie de document, encodé en base64, tronqué]</partJson>
    </parts>
    <dtbsSignatures>
        <dtbsSignature>
            <dtbsValue>[valeur DTBS encodée, tronquée]</dtbsValue>
            <signatureValue>[valeur de signature encodée, tronquée]</signatureValue>
        </dtbsSignature>
    </dtbsSignatures>
    <!-- La signature XAdES scellant le fichier de preuve (élément ds:Signature) suit,
         avec la chaîne de certificats, l'horodatage et les valeurs de révocation. -->
</evidence>
```

> Consultez la [documentation API relative à la récupération d'un fichier de preuve](/rm/api-reference/documentation-api/cle-api/evidence-files/retrieve-evidence-file) pour plus d'informations sur ce point d'entrée.

## Récupérer les ressources de la page de consentement

L'application demandeuse peut récupérer les ressources (assets) utilisées dans la page de consentement afin de pouvoir prouver comment le signataire a accepté de signer. Notez qu'il n'est pas nécessaire d'archiver les ressources de la page de consentement pour chaque demande de signature, car elles sont identiques pour toutes les demandes d'un client donné. Voici comment l'application demandeuse peut récupérer ces ressources :

```http
GET /api/requests/req_01_6V3nZjiXXcMkrtUwZy4Ljj2K/consent.zip HTTP/1.1
Authorization: ApiKey 5xVpCQPEYdncwHXwCDf5sqyfN9GPrio5
```

Un fichier zip contenant toutes les ressources est renvoyé dans le corps de la réponse :

```unknown
PK[contenu binaire de l'archive ZIP]consent.css
...
```

> Consultez la \[documentation API relative à la récupération des ressources de la page de consentement]\(/rm/api-reference/documentation-api/cle-api/evidence-files/> Consultez la [documentation API relative à la récupération d'un fichier de preuve](/rm/api-reference/documentation-api/cle-api/evidence-files/retrieve-evidence-file) pour plus d'informations sur ce point d'entrée.