Bill of Lading em JSON
Você manda o arquivo como veio do armador: PDF, foto, digitalização torta. Recebe cada campo separado, com razão social e CNPJ em campos distintos, endereço quebrado até o CEP, contêineres com peso e lacre, NCM conferido contra a tabela vigente da Receita.
O que ele resolve
Bill of Lading não tem padrão. Cada armador diagrama do seu jeito. O consignee às vezes diz só SAME AS CONSIGNEE e aponta para outro bloco. A tabela de contêineres continua três páginas adiante. Um asterisco no meio do documento leva um dado para outro lugar.
Quem digita isso à mão erra em algum ponto, e o erro costuma aparecer só na conferência aduaneira. A leitura resolve essas referências e devolve tudo separado, porque o seu sistema raramente quer o texto como está no papel: quer o CNPJ sem o nome, ou só o CEP, ou a soma dos pesos.
O caminho inteiro
# 1. envia o arquivo
curl -X POST https://comexdoc.com.br/v1/ebl/documents \
-H "Authorization: Bearer cxd_live_..." \
-H "Idempotency-Key: $(uuidgen)" \
-F "file=@bl.pdf"
# → 202 { "job_id": "6fbb2659-...", "status": "queued" }
# 2. consulta quando quiser
curl https://comexdoc.com.br/v1/ebl/documents/6fbb2659-... \
-H "Authorization: Bearer cxd_live_..."
# → 200 { "status": "completed", "data": { ... } }
# 3. ou deixe o resultado chegar sozinho, por webhookA leitura leva cerca de dois minutos, então a API é assíncrona. O envio devolve na hora um job_id. O resultado você pega por consulta ou recebe por webhook.
As rotas
| Rota | O que faz |
|---|---|
POST /v1/ebl/documents | Envia um BL para leitura |
GET /v1/ebl/documents | Lista as leituras da conta, paginado |
GET /v1/ebl/documents/{job_id} | Consulta o resultado de uma leitura |
PATCH /v1/ebl/documents/{job_id} | Corrige campos e marca a leitura como conferida |
GET /v1/ebl/documents/{job_id}/history | Quem alterou o quê, e o que estava lá antes |
GET /v1/ebl/documents/{job_id}/file | Baixa o arquivo original, como você enviou |
GET /v1/ebl/webhooks | A fila de entregas desta conta |
POST /v1/ebl/webhooks/{job_id}/resend | Reenvia uma entrega |
POST /v1/ebl/webhooks/resend-all | Devolve todas as esgotadas para a fila |
Cada campo de cada uma está na referência.
Por onde começar
| Página | Responde |
|---|---|
| Primeira leitura | Enviar o primeiro arquivo, ler a resposta e entender os estados |
| O que vem no JSON | Partes, transporte, contêineres, cargas, conflitos e o texto que não coube nos campos |
| Conferência e correções | Corrigir o que a leitura errou, e saber depois quem corrigiu |