Skip to main content
Quando a operação chega a completed, o GET /operations/{id}/result devolve a árvore cedente → sacados → títulos. Esta página é a referência do nó de título, do campo nfe_chave e da validação cruzada com os XMLs de NFe.

Shape de um título

Cada título aparece dentro de cedente.sacados[].titulos[]:
O documento e a razão social do sacado estão no nó pai (sacados[].cnpj_cpf, sacados[].razao_social, sacados[].tipo). O detalhamento de risco do cedente e de cada sacado está nas issues dos próprios nós cedente e sacados[] da árvore — não existem mais IDs de análise separados por título.
Com o filtro padrão do /result (?filter=issues), títulos aprovados e sacados sem problemas são podados da árvore. Use ?filter=all para receber todos os títulos. O summary sempre reflete o dataset completo, independentemente do filtro.

Validação cruzada com NFe

A parte opcional xmls do POST /operations (multipart) recebe um ZIP com os XMLs de NFe (nfeProc) dos títulos, com no máximo 32 MB. Quando enviado, o motor procura o XML correspondente a cada título e cruza os dados do CNAB com os da nota — a duplicata bate com uma NFe real?
Os Motores usam a mesma base da API 221b (https://221b-api.sherlocker.com.br/api/v1), mas autenticam via Authorization: Bearer slhk_…não via ?token=.
Se você usa o header opcional Idempotency-Key, o ZIP de NFe faz parte do payload comparado: reenviar o mesmo CNAB com um ZIP diferente e a mesma key resulta em 409 idempotency_conflict. Veja Idempotência.

Como o resultado da NFe aparece

Não existe um campo de status de NFe por título: o resultado da validação aparece de duas formas na árvore do /result:
  1. titulo.nfe_chave — a chave da NFe vinculada ao título, ou null quando o título não traz chave.
  2. Issues do título — cada problema encontrado no cruzamento (divergência de valor, ausência de lastro etc.) vira uma issue em titulo.issues[], com category blocking ou alert conforme a configuração da engine de borderô. O status consolidado do título (approved | blocked | alerted) já reflete essas issues, pelo rollup worst-of.
Se a fonte necessária para uma verificação ficar indisponível, o problema não vira issue: a regra afetada aparece em degraded_rules[] (com rule_id, provider e titulos_affected) e a cobertura por provider em coverage[]. No summary, os títulos afetados contam como alerted.
nfe_chave: null não é um problema — é a ausência de chave no CNAB, e portanto de validação. Se a sua esteira exige lastro de NFe para todos os títulos, envie sempre a parte xmls, use uma engine com as regras de NFe ativas e trate nfe_chave: null, as issues de NFe e degraded_rules na sua regra de aprovação.

Limites dos arquivos

Arquivo ausente, acima do limite ou CNAB que não parseia retornam 400 validation_error com errors[] field-level (file, xmls, cedente_cnpj) — e nada é cobrado, já que o débito só acontece após o parse. Veja Erros.

Próximos passos

Ciclo de vida

Como o status de cada nó é consolidado (worst-of)

Engines

A política que decide o efeito de cada validação

Quickstart

O fluxo completo, do multipart ao resultado hierárquico