Pular para o conteúdo principal

Armazenar e reaproveitar arquivos

No caso de utilizar muito o mesmo arquivo para fazer assinaturas, você pode fazer upload desse arquivo ao storage e reutilizá-lo quantas vezes precisar.

Limites

Existe um limite máximo de 50mb para armazenamento.

Fazendo upload

Para subir um arquivo PDF, você deve fazer uma requisição do tipo multipart/form-data para o endpoint:

POST https://apisx.assine.online/api/v1/items/upload
Authorization: Bearer aG1hYyBhc2RmaXV5a2xzZGZhc2RmYXNkZmFzZGZhc2Q=
Accept: application/json
Content-Type: multipart/form-data

file: <pdf-binary>

O arquivo será salvo na raiz de diretórios, a resposta:

{
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"parent": null,
"name": "document.pdf",
"mimetype": "application/pdf",
"size": 10293, // bytes
"depth": 0,
"is_directory": false,
"is_user_created": true,
"is_signed": false,
"sha1": "926e0e469301e4d9199b356610fc0799403031fb",
"created_at": "2022-06-24T14:15:22Z",
"updated_at": "2022-06-24T14:15:22Z",
"links": {
"self": "https://apisx.assine.online/v1/items/497f6eca-6276-4993-bfeb-53cbbbba6f08",
"children": "https://apisx.assine.online/v1/items?parent=497f6eca-6276-4993-bfeb-53cbbbba6f08",
"download": "https://apisx.assine.online/v1/items/497f6eca-6276-4993-bfeb-53cbbbba6f08/download",
"preview": "https://apisx.assine.online/v1/items/497f6eca-6276-4993-bfeb-53cbbbba6f08/preview",
}
}

Reaproveitar o arquivo em um envelope

Com o arquivo salvo no storage, para reaproveitá-lo em um envelope, basta usar o endpoint de adicionar documento após já ter o envelope criado:

POST https://apisx.assine.online/v1/envelopes/{envelope}/documents
{
"file": "497f6eca-6276-4993-bfeb-53cbbbba6f08"
}

Note que nesse caso não passamos um multipart/form-data com o binário do arquivo e sim um application/json com a referência do id do item que queremos reutilizar.

Este endpoint devolverá a resposta padrão de um upload de documento em um envelope.

Criar diretórios

Para criar um diretório:

POST https://apisx.assine.online/v1/items
{
"name": "FooBar"
}

Temos a resposta:

{
"id": "597f6eca-6276-4993-bfeb-53cbbbba6f08",
"parent": null,
"name": "FooBar",
"mimetype": "inode/directory",
"size": 0,
"depth": 0,
"is_directory": true,
"is_user_created": true,
"is_signed": false,
"sha1": null,
"created_at": "2022-06-24T14:15:22Z",
"updated_at": "2022-06-24T14:15:22Z",
"links": {
"self": "https://apisx.assine.online/v1/items/597f6eca-6276-4993-bfeb-53cbbbba6f08",
"children": "https://apisx.assine.online/v1/items?parent=597f6eca-6276-4993-bfeb-53cbbbba6f08",
"download": "https://apisx.assine.online/v1/items/597f6eca-6276-4993-bfeb-53cbbbba6f08/download",
"preview": "https://apisx.assine.online/v1/items/597f6eca-6276-4993-bfeb-53cbbbba6f08/preview",
}
}

Criar subdiretórios

Para criar um subdiretório, basta informar o parent na criação:

POST https://apisx.assine.online/v1/items
{
"name": "FooBar 2",
"parent": "597f6eca-6276-4993-bfeb-53cbbbba6f08"
}
Limitações

Só é possível criar até no máximo 5 subníveis de diretórios.

Na resposta já teremos o parent relativo:

{
"id": "697f6eca-6276-4993-bfeb-53cbbbba6f08",
"parent": {
"id": "597f6eca-6276-4993-bfeb-53cbbbba6f08",
"name": "FooBar"
},
"name": "FooBar 2",
"mimetype": "inode/directory",
"size": 0,
"depth": 1,
"is_directory": true,
"is_user_created": true,
"is_signed": false,
"sha1": null,
"created_at": "2022-06-24T14:15:22Z",
"updated_at": "2022-06-24T14:15:22Z",
"links": {
"self": "https://apisx.assine.online/v1/items/697f6eca-6276-4993-bfeb-53cbbbba6f08",
"children": "https://apisx.assine.online/v1/items?parent=697f6eca-6276-4993-bfeb-53cbbbba6f08",
"download": "https://apisx.assine.online/v1/items/697f6eca-6276-4993-bfeb-53cbbbba6f08/download",
"preview": "https://apisx.assine.online/v1/items/697f6eca-6276-4993-bfeb-53cbbbba6f08/preview",
}
}

Upload em um subdiretório

Para fazer um upload para um subdiretório, segue o mesmo princípio com o multipart/form-data:

POST https://apisx.assine.online/api/v1/items/upload
file: <pdf-binary>
parent: 597f6eca-6276-4993-bfeb-53cbbbba6f08

Mover arquivos e diretórios

Um mesmo endpoint é responsável por mover arquivos ou diretórios, sendo que parent deve ser um diretório:

PUT https://apisx.assine.online/v1/items/{item}/move
{
"parent": "597f6eca-6276-4993-bfeb-53cbbbba6f08"
}

No caso, o id do item na url é o item que deseja mover e o parent no corpo é o destino para onde deseja mover.