Referência

Templates e Campos

Um Template é uma lista salva e reutilizável de Campos que você deseja extrair de um documento — um campo por coluna de saída. Passe o id de um Template para Iniciar o processamento de um lote em vez de listar seus campos novamente a cada chamada. Você também pode criar um Template a partir de um modelo predefinido ou ignorar Templates completamente e passar fields avulsos diretamente para process para uma execução única.

Listar templates

Retorna seus templates salvos, cada um com sua lista completa e ordenada de campos incorporada.

GET /api/v1/templates

Parâmetros

NomeLocalTipoDescrição
limitquery, opcionalinteiro1–100. Padrão 50.
page_tokenquery, opcionalstringCursor opaco de um next_page_token de resposta anterior. Consulte Paginação.

Erros possíveis

  • missing_api_key / invalid_api_key / plan_required — consulte Tratamento de Erros.
  • invalid_parameter — limit ou page_token inválidos.

Criar um modelo

Duas formas de criar um modelo em um único endpoint: do zero (opcionalmente clonando os campos de outro modelo via base_template_id) ou a partir de um modelo predefinido via preset_id. As contas têm um limite de 30 modelos — exclua um existente antes de criar outro ao atingir o limite.

POST /api/v1/templates

Parâmetros

NomeLocalTipoDescrição
namecorpo (JSON)stringObrigatório, a menos que preset_id seja fornecido (nesse caso, usa o nome do próprio modelo predefinido, com um sufixo de timestamp para desambiguar se você já tiver um modelo com esse nome).
preset_idcorpo (JSON)string, opcionalConstrua o modelo (e seus campos) a partir de um modelo predefinido — consulte Listar modelos predefinidos para IDs válidos.
base_template_idcorpo (JSON)integer, opcionalUsado apenas quando preset_id não é fornecido — clona os campos deste modelo existente para o novo.

Erros possíveis

  • missing_api_key / invalid_api_key / plan_required — consulte Tratamento de Erros.
  • missing_parameter (param: "name") — sem name e sem preset_id.
  • invalid_parameter (param: "name") — já existe um modelo com este nome (apenas no caminho de criação sem modelo predefinido).
  • invalid_parameter (param: "preset_id") — ID de modelo predefinido desconhecido.
  • template_limit_reached — limite de 30 modelos já atingido para esta conta.
  • internal_error

Atualizar configurações do modelo

Define o requisito global de formato de um modelo (aplicado sobre o de cada campo) e sua configuração de Multi-Page Merge — se várias páginas enviadas que pertencem ao mesmo registro lógico (um contrato de várias páginas, um pacote de recibos grampeados) devem ser unificadas em uma única linha de saída em vez de permanecer uma linha por página. Uma vez ativado aqui, o merge é aplicado automaticamente sempre que este modelo for usado tanto para processamento quanto para resultados — veja ?merge=true em Get batch results e Export a batch (que sempre o aplica, sem necessidade de opt-in lá). Cada campo no corpo da solicitação abaixo é opcional; apenas as chaves que você envia são atualizadas, todo o resto permanece como está (não há estado separado de rascunho/pré-visualização para confirmar — esta chamada entra em vigor imediatamente, igual ao diálogo de Configurações do Modelo no app web).

PUT /api/v1/templates/{id}/settings

Parâmetros

NomeLocalTipoDescrição
idpathintegerO modelo a atualizar.
global_format_requirementbody (JSON), opcionalstringInstruções extras aplicadas sobre o format_requirement de cada campo.
merge_enabledbody (JSON), opcionalbooleanAtiva/desativa a Mesclagem de Múltiplas Páginas. Todo campo merge_* abaixo é irrelevante enquanto isso for false.
merge_modebody (JSON), opcionalstring ou null"sequential" (novo registro quando o valor de uma Coluna de Dados muda), "key_match" (agrupar por valor correspondente da Coluna de Dados, independentemente da ordem de upload) ou "fixed_count" (agrupar a cada N uploads).
merge_field_namebody (JSON), opcionalstring ou nullA Coluna de Dados (nome do campo) usada pelos gatilhos baseados em valor de sequential e pela chave de agrupamento de key_match.
merge_trigger_typebody (JSON), opcionalstring ou nullApenas para sequential: "value_change", "blank", "has_value" ou "equals_value".
merge_trigger_valuebody (JSON), opcionalstring ou nullApenas para merge_trigger_type: "equals_value" — o texto ou regex para corresponder.
merge_fixed_countbody (JSON), opcionalinteger ou nullApenas para merge_mode: "fixed_count" — tamanho do grupo, mínimo 1.
merge_conflict_policybody (JSON), opcionalstring ou nullQuando páginas agrupadas discordam sobre o valor de um campo: "split" (uma linha de saída por página em vez de mesclar), "first", "last" ou "concat" (padrão).
merge_conflict_separatorbody (JSON), opcionalstring ou nullUsado quando merge_conflict_policy: "concat", máximo de 20 caracteres. null usa o padrão " / "; "" é uma escolha deliberada de "sem separador" e é armazenado como está.
merge_skip_previewbody (JSON), opcionalbooleanPreocupação apenas do web-app (controla a tela de confirmação de pré-visualização de exportação) — não tem efeito no comportamento da API, pois a API não tem etapa de pré-visualização interativa para pular. Configurável aqui apenas para que a configuração completa de um modelo faça round-trip por este endpoint.

Erros possíveis

  • missing_api_key / invalid_api_key / plan_required — consulte Tratamento de Erros.
  • template_not_found
  • invalid_parameter — merge_mode / merge_trigger_type / merge_fixed_count / merge_conflict_policy / merge_conflict_separator inválidos.
  • internal_error

Excluir um modelo

Exclui um modelo e todos os seus campos (em cascata — nenhuma chamada de limpeza separada é necessária). Não afeta documentos que já usaram este modelo em uma chamada process anterior; os resultados já extraídos permanecem intactos.

DELETE /api/v1/templates/{id}

Parâmetros

NomeLocalizaçãoTipoDescrição
idcaminhointeiroO modelo a excluir.

Erros possíveis

  • missing_api_key / invalid_api_key / plan_required — consulte Tratamento de Erros.
  • template_not_found
  • internal_error

Listar predefinições

Listas de campos integradas para tipos de documentos comuns (faturas, recibos, extratos bancários e mais) — passe o id de uma predefinição como preset_id em Criar um modelo para obter um modelo funcional sem listar campos manualmente. Predefinições são configuração estática, não linhas de banco de dados — não há como criar, editar ou excluir uma pela API.

GET /api/v1/presets

Parâmetros

NomeLocalTipoDescrição
categoryquery, opcionalstringFiltra por uma categoria (ex.: "Finance & Accounting"). Omita para listar todas as categorias.
limitquery, opcionalinteger1–100. Padrão: 50.
page_tokenquery, opcionalstringCursor opaco do next_page_token de uma resposta anterior.

Erros possíveis

  • missing_api_key / invalid_api_key / plan_required — veja Tratamento de Erros.
  • invalid_parameter — limit ou page_token inválidos.

Listar e criar campos

fields é o nome público da v1 para o que a interface do produto chama de "regras de correspondência" — um campo por coluna de saída, na ordem em que a extração os emitirá. GET retorna todos os campos do modelo, já ordenados por sort_order. POST adiciona um novo campo ao final.

GET POST /api/v1/templates/{id}/fields

Parâmetros

NomeLocalTipoDescrição
idpathintegerO modelo ao qual estes campos pertencem.
namebody (JSON), somente POSTstringObrigatório. Deve ser único dentro deste modelo — veja os erros abaixo.
format_requirementbody (JSON), somente POSTstring, opcionalDica em texto livre sobre o formato esperado do valor (ex.: "YYYY-MM-DD", "Number").

Erros possíveis

  • missing_api_key / invalid_api_key / plan_required — consulte Tratamento de Erros.
  • template_not_found
  • missing_parameter (param: "name") — somente POST.
  • duplicate_field_name — um campo com este name já existe neste modelo.
  • internal_error

Atualizar e excluir um campo

PUT renomeia um campo (e substitui seu format_requirement) — é uma substituição completa, não um patch parcial, então inclua ambos os valores mesmo que apenas um tenha mudado. DELETE o remove.

PUT DELETE /api/v1/templates/{id}/fields/{field_id}

Parâmetros

NomeLocalTipoDescrição
idcaminhointeiroO modelo ao qual este campo pertence.
field_idcaminhointeiroO campo a atualizar ou excluir.
namecorpo (JSON), somente PUTstringObrigatório. Novo nome.
format_requirementcorpo (JSON), somente PUTstring, opcionalNova dica de formato — omita e ela será limpa para uma string vazia, não deixada inalterada.

Erros possíveis

  • missing_api_key / invalid_api_key / plan_required — consulte Tratamento de Erros.
  • template_not_found — o modelo não existe/não é seu, ou (com uma mensagem observando isso) o field_id não está neste modelo.
  • missing_parameter (param: "name") — somente PUT.
  • duplicate_field_name — somente PUT, renomeando para um nome que outro campo neste modelo já possui.
  • internal_error

Reordenar campos

Define explicitamente a ordem dos campos, que determina a ordem das colunas de saída em line_items e nas exportações para Excel/Word. IDs na lista que não pertencem a este modelo são ignorados silenciosamente, em vez de rejeitar a solicitação inteira.

PATCH /api/v1/templates/{id}/fields/order

Parâmetros

NomeLocalTipoDescrição
idcaminhointeiroO modelo a ser reordenado.
field_idscorpo (JSON)matriz de inteirosCada ID de campo neste modelo, na ordem em que você deseja que apareçam. Obrigatório.

Erros possíveis

  • missing_api_key / invalid_api_key / plan_required — consulte Tratamento de Erros.
  • template_not_found
  • invalid_parameter (param: "field_ids") — não é uma lista de inteiros.
  • internal_error
📮 contact email: [email protected]