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 512 MiB. 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?
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:
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.
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. O multipart completo, incluindo framing, aceita no máximo 768 MiB no gateway. 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