Download Anexo

Essa rota realiza o download de um anexo (attachment) associado a um lançamento.

Por padrão o endpoint redireciona para uma url assinada do S3, executando o download do arquivo.

Exemplo de código em JavaScript:

axios.get(`https://api.finbits.com.br/public/attachments/${attachmentId}/download`, {
    headers: {
      'authorization': `Bearer ${token}`
    },
    responseType: 'arraybuffer'
  })
  .then(function(response) {
    fs.writeFileSync('final.pdf', response.data);
  })

Streaming

Caso o query param ?stream=true esteja presente o download é feito em chunks, ou seja, os dados são enviados em partes, não em um bloco único. O cliente deverá processar cada parte conforme recebida.

Exemplo de código em JavaScript:

async function downloadFile() { 
  const response = await axios.get(`https://api.finbits.com.br/public/attachments/${attachmentId}/download`, {
    headers: { 'authorization': `Bearer ${token}` },
    responseType: 'stream', // muda para stream
  });

  // write stream
  const writer = fs.createWriteStream('arquivo.pdf');// Encaminha os dados do stream de resposta para o stream de gravação
  response.data.pipe(writer);

  return new Promise((resolve, reject) => {
    writer.on('finish', resolve); // Quando o download e gravação terminarem
    writer.on('error', reject); // Caso ocorra algum erro
  });
}
Language
Credentials
OAuth2
Click Try It! to start a request and see the response here!