# Preparação de documento(s)

A preparação de documentos é um processo destinado a obter um arquivo já preparado para receber a assinatura e também o hash a ser assinado.

O processo é feito de forma assíncrona. Ao iniciar-se o processo é gerado um TCN (Token de controle da transação), o TCN deve ser utilizado para identificar a transação no momento da recuperação do documento.

&#x20;Os campos retornados para cada documento são:&#x20;

**prepared\_checksum** - Hash para verificação da integridade do documento preparado;

**prepared\_result** - URL para download do documento preparado;

**prepared\_hash** - Hash a ser assinado e incorporado ao documento preparado.

<mark style="color:green;">`POST`</mark> `http://cess.local/signature-service`

#### Headers

| Name          | Type   | Description                                                   |
| ------------- | ------ | ------------------------------------------------------------- |
| Authorization | string | Basic, Bearer ou VCSchema (Veja "Autenticação e Autorização") |
| Content-Type  | string | application/json                                              |
| Accept        | string | application/json                                              |

#### Request Body

| Name                   | Type    | Description                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| ---------------------- | ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| certificate\_alias     | string  | Identifica qual certificado será utilizado para realizar assinatura.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| documents\_destination | string  | <p>- <strong>AWS\_S3</strong> (o arquivo assinado será salvo no bucket S3)<br>- <strong>GCP\_STORAGE</strong> (o arquivo assinado será salvo no bucket Google Cloud Platform Storage) </p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| mode                   | string  | <p> Modo de operação<br> - sync<br> - async</p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| type                   | string  | <p>Tipo de assinatura<br>- CMS-attached<br>- CMS-detached<br>- PDFSignature <br>- CAdEs-attached<br>- CAdEs-detached<br>- PAdEs<br>- XAdES <br></p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| notification\_callback | string  | <p>URL de callback para notificação, o sistema irá notificar quando o processo de assinatura for finalizado, será feito uma requisição HTTP(s) - POST na URL informada, na chamada será concatenado o código transação no final da url informada neste parâmetro.<br><br>URL informada: <em><http://endpointx.com?tcn=></em> <br>URL que será feita a requisição HTTP: <em><http://endpointx.com></em>?tcn=tcn\_aqui\_123456</p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| policy                 | string  | <p>Políticas por tipo de assinatura<br><br>- CMS: <br>    - Default ( Assinatura padrão CMS )<br>    - TSA ( Assinatura padrão CMS incluindo assinatura da carimbadora do tempo )<br>- PDFSignature:<br>    - Default ( Assinatura padrão PDF - Adobe )<br>    - TSA ( Assinatura padrão de PDF - Adobe incluindo assinatura da carimbadora do tempo )<br>- CAdEs/PAdEs:<br>    - AD\_RB ( ICP Brasil )<br>    - AD\_RT ( ICP Brasil )<br>- XAdES:<br>    - AD\_RB<br>    - AD\_RT<br>    - AD\_RC<br>    - AD\_RA</p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| hash\_algorithm        | string  | Algoritmo de hash que será utilizado na assinatura (SHA1,SHA256, SHA384 ou SHA512)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| signature\_settings    | object  | <p>Parâmetros adicionais de configuração de assinatura, devem ser enviados para configuração de assinatura visível (PDFSignature/PAdES)<br><br>- <strong>id</strong> ( Identificador da configuração de assinatura )<br>- <strong>contact</strong> ( Contato do assinante )<br>- <strong>location</strong> ( Localização da assinatura, Ex: Washington-DC )<br>- <strong>reason</strong> ( Motivo da assinatura )<br>-<strong>visible\_signature</strong> (true or false, desabilita a assinatura visível) <br>- <strong>visible\_sign\_page</strong> ( Página onde será inserido a assinatura visível. OBS: Este é um campo do tipo inteiro. Envie 1 para a primeira página, -1 para última e "\*" ou -100 para todas as páginas.)<br>- <strong>visible\_sign\_x</strong> ( Coordenada X na página onde  será inserido a assinatura visível )<br>- <strong>visible\_sign\_y</strong> (  Coordenada Y na página onde  será inserido a assinatura visível )<br>- <strong>visible\_sign\_width</strong> ( Largura da imagem da assinatura visível )<br>- <strong>visible\_sign\_height</strong> ( Altura da imagem da assinatura visível )<br>- <strong>visible\_sign\_scale</strong> ( Escala (%) da imagem da assinatura visível )<br>- <strong>visible\_sign\_img</strong> ( Bytes de uma imagem PNG no formato DATA URI com a assinatura do usuário - RFC 2397 )<br>- <strong>extraInfo</strong> (Array para adicionar metadados no PDF, útil para prescrição médica. Contendo as chaves <em>name</em> e <em>value.</em> Exemplo<em>:  "extraInfo": \[{ "name": "2.16.1.12.1.2", "value": "Atestado Médico" }]</em> )<br>-<strong>prepare\_fields\_value</strong> (Array para adicionar valores aos formulários do PDF. Contendo as chaves <em>name</em>, <em>type</em> e <em>value</em>. Exemplo: "<em>prepare\_fields\_value": \[ { "name": "03\_Cidade Local de Atendimento", "type": "text", "value": "Goiania" }]</em> )<br><br>Parâmetros adicionais para configuração de assinatura devem ser enviados para assinatura padrão <strong>XAdES</strong><br>  - <strong>tag\_name</strong> (Nome da tag a ser assinada)<br>  - <strong>tag\_id</strong> (Id da tag a ser assinada)</p> |
| auto\_fix\_document    | boolean | Habilita autocorreção do documento caso disponível                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| tsa\_server\_id        | string  | Identificador da carimbadora do tempo                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| tsa\_hash\_algorithm   | string  | Algoritmo de hash que será utilizado na assinatura do carimbo do tempo (SHA1,SHA256, SHA384 ou SHA512)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| documents\_source      | string  | <p>Origem dos documentos:<br>- <strong>DATA\_URL</strong> ( Arquivo encodado na URL - <https://tools.ietf.org/html/rfc2397> ) <br>- <strong>FILE\_PATH</strong> ( Caminho do arquivo local do arquivo )<br>- <strong>UPLOAD\_REFERENCE</strong> ( O conteúdo do arquivo deverá ser enviado posteriormente via API )<br>- <strong>AWS\_S3</strong> (nome do objeto no bucket do S3)<br>- <strong>GCP\_STORAGE</strong> (nome do objeto no bucket do GCP)<br>- <strong>HASH</strong> (o hash deverá ser em hexadecimal - enviado na chave data de documents)</p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| documents              | string  | <p>Caso o documents\_source seja do tipo DATA\_URL ou FILE\_PATH esse parâmetro deve ser enviado.<br><br>Lista de especificação de documento(s) a ser(em) assinado(s), caso seja enviado mais de um item na lista, automaticamente a requisição será reconhecida como transação de assinatura em lote.<br><br>- i<strong>d</strong> ( Identificador do documento na transação )<br>- <strong>data</strong> ( Conteúdo compatível com especificado no data source )<br>- <strong>destination\_file\_name</strong> (Caso esteja utilizando <em>documents\_destination</em> com valor <em>AWS\_S3 ou GCP\_STORAGE,</em> poderá ser definido o nome do objeto. Se o nome não for definido, será criado um identificar aleatório com a seguinte lei de formação: <em>ano</em><strong>/</strong><em>mês</em><strong>/</strong><em>dia</em><strong>/</strong><em>timestamp</em><strong>\_</strong><em>númeroAleatório8dígitos</em></p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |

{% tabs %}
{% tab title="200 " %}

```json
{
	"certificate_alias": "",
	"type": "PAdEs",
	"hash_algorithm": "SHA256",
	"auto_fix_document": true,
    "mode":"async",
	"signature_settings": [{
		"id": "default",
		"contact": "123456789",
		"location": "GoianiaGO",
		"reason": "Aprovação de documento"
	}],
	"documents_source": "UPLOAD_REFERENCE"
}
```

{% endtab %}
{% endtabs %}

### Download do documento preparado

Para fazer o download do documento preparado, basta acessar a url retornada em **prepared\_result**.

<mark style="color:blue;">`GET`</mark> `http://cess.local/file-transfer/<tcn>/<document id>?prepared=true`

#### Path Parameters

| Name                                           | Type   | Description |
| ---------------------------------------------- | ------ | ----------- |
| tcn<mark style="color:red;">\*</mark>          | string |             |
| document\_id<mark style="color:red;">\*</mark> | String |             |

{% tabs %}
{% tab title="200 " %}

```
bytes do documento preparado
```

{% endtab %}
{% endtabs %}
