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 decedente.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 opcionalxmls 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=.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:
titulo.nfe_chave— a chave da NFe vinculada ao título, ounullquando o título não traz chave.- Issues do título — cada problema encontrado no cruzamento (divergência de valor, ausência de lastro etc.) vira uma issue em
titulo.issues[], comcategoryblockingoualertconforme a configuração da engine de borderô. O status consolidado do título (approved|blocked|alerted) já reflete essas issues, pelo rollup worst-of.
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.
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