Exige a permissão
can-generate-report. O resultado é o mesmo de Enviar Balanço e DRE: mesmas seções, mesmo e-mail, mesma forma de acompanhar.Quando usar
Use o upload direto para arquivos grandes, como balancetes assinados perto do limite de 50 MB: o arquivo vai do seu sistema direto ao armazenamento, sem passar pela API. Para arquivos pequenos, o envio em uma chamada só, emPOST /report/{id}/financial-tab, continua valendo.
Limites
1
Peça as URLs de upload
Informe nome e tamanho de cada arquivo. Você recebe uma URL de upload e uma
key por arquivo.2
Envie cada PDF com PUT
Um
PUT por arquivo, na uploadUrl recebida, com os headers exatos descritos abaixo.3
Confirme o lote
Envie as
key do lote. A GYRA+ valida cada arquivo e dispara a extração.Passo 1: pedir as URLs
POST /report/{id}/financial-tab/presign
files. Guarde cada key: é ela, e nunca a URL, que vai na confirmação.
Passo 2: enviar o arquivo
Faça umPUT com o conteúdo do PDF na uploadUrl, sem o header Authorization. A assinatura da URL amarra dois headers, e o armazenamento recusa o envio se eles não baterem:
curl --upload-file envia o Content-Length com o tamanho real do arquivo. Se você declarou outro valor em size, ou mandou outro Content-Type, o armazenamento responde com erro e o arquivo não é gravado: peça uma URL nova no passo 1. Uma URL vencida (mais de 15 minutos) também exige pedir outra.
Passo 3: confirmar o lote
POST /report/{id}/financial-tab/complete
A confirmação confere cada arquivo no armazenamento: se existe, se tem até 50 MB e se começa com
%PDF-. Só depois que todas passam a extração é disparada, com os arquivos do lote consolidados na mesma análise.
200 quer dizer “arquivos aceitos e enfileirados”. Para saber quando os dados ficam prontos e onde lê-los, veja O que acontece depois e Como saber que terminou.
Exemplo ponta a ponta
Erros
Todas as respostas de erro da API seguem o formato{ "code": 400, "message": "..." }.
Nos dois passos da API
Passo 1 (
presign)
Passo 3 (
complete)

