NF-e de entrada: conferir e lançar
Compara a nota com o pedido, vincula linhas a produtos e lança a nota no estoque e nas contas a pagar.
Conferir nota
Compara, produto a produto, o que foi pedido com o que veio na nota: quantidade e custo unitário, apontando divergências e itens que só existem de um lado. Sem pedido vinculado devolve linked: false e lines vazio.
/api/v1/vendor/erp/notas-entrada/{id}/conferenceSellerCompara a nota com o pedido de compra
Parâmetros de caminho
iduuidobrigatórioExemplo de requisição: Conferir nota
curl "$BASE_URL/api/v1/vendor/erp/notas-entrada/3f6c1c1e-8d0b-4a55-9a52-1d6f6a4a7b10/conference" \
-H "Authorization: Bearer $TOKEN"Resposta: Conferir nota
{
"invoice_id": "5534915e-925c-45af-888a-4957b6fa54ff",
"purchase_order_id": "047a8f24-473b-4638-bc0e-2c159c1fcca2",
"linked": true,
"has_divergence": true,
"lines": [
{
"product_id": "94e6917e-8733-4ddc-b446-ed85977117e8",
"product_name": "Camiseta Básica Preta M",
"ordered_qty": 20,
"invoice_qty": 18,
"ordered_cost_cents": 4990,
"invoice_cost_cents": 4990,
"qty_diverges": true,
"cost_diverges": false,
"only_in_invoice": false,
"only_in_order": false
}
]
}Campos da resposta
invoice_iduuidpurchase_order_iduuidlinkedbooleanhas_divergencebooleantrue se alguma linha diverge.linesarrayUma linha por produto.
product_iduuidproduct_namestringordered_qtyintegerinvoice_qtyintegerordered_cost_centsintegerinvoice_cost_centsintegerqty_divergesbooleancost_divergesbooleanonly_in_invoicebooleanonly_in_orderbooleanErros: Conferir nota
| Status | Quando | Corpo |
|---|---|---|
| 404 | A nota não existe ou é de outro seller. | {"error":"inbound invoice not found"} |
| 401 | Cabeçalho Authorization ausente, token inválido, expirado ou revogado. | {"error":"missing authorization header"} |
| 403 | O token não é de um usuário seller (por exemplo, é de administrador). | {"error":"insufficient permissions"} |
| 403 | O usuário não está vinculado a um seller, ou o cadastro do seller ainda está em análise (vendor_pending_review). | {"error":"no vendor account associated with this user"} |
Vincular pedido
Associa a nota a um pedido de compra do seller para a conferência. Mande purchase_order_id vazio para desvincular. Só notas ainda não lançadas podem mudar. A resposta já é a conferência.
/api/v1/vendor/erp/notas-entrada/{id}/purchase-orderSellerVincula a nota a um pedido de compra
Parâmetros de caminho
iduuidobrigatórioCorpo da requisição
purchase_order_iduuidExemplo de requisição: Vincular pedido
curl -X PUT "$BASE_URL/api/v1/vendor/erp/notas-entrada/3f6c1c1e-8d0b-4a55-9a52-1d6f6a4a7b10/purchase-order" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"purchase_order_id": "047a8f24-473b-4638-bc0e-2c159c1fcca2"
}'Resposta: Vincular pedido
{
"invoice_id": "5534915e-925c-45af-888a-4957b6fa54ff",
"purchase_order_id": "047a8f24-473b-4638-bc0e-2c159c1fcca2",
"linked": true,
"has_divergence": true,
"lines": [
{
"product_id": "94e6917e-8733-4ddc-b446-ed85977117e8",
"product_name": "Camiseta Básica Preta M",
"ordered_qty": 20,
"invoice_qty": 18,
"ordered_cost_cents": 4990,
"invoice_cost_cents": 4990,
"qty_diverges": true,
"cost_diverges": false,
"only_in_invoice": false,
"only_in_order": false
}
]
}Campos da resposta
...objectErros: Vincular pedido
| Status | Quando | Corpo |
|---|---|---|
| 400 | A nota já foi lançada ou cancelada. | {"error":"vendorerp: cannot edit a posted or cancelled invoice"} |
| 400 | O pedido está cancelado. | {"error":"vendorerp: não é possível conferir contra uma OC cancelada"} |
| 404 | A nota ou o pedido não existe. | {"error":"purchase order not found"} |
| 401 | Cabeçalho Authorization ausente, token inválido, expirado ou revogado. | {"error":"missing authorization header"} |
| 403 | O token não é de um usuário seller (por exemplo, é de administrador). | {"error":"insufficient permissions"} |
| 403 | O usuário não está vinculado a um seller, ou o cadastro do seller ainda está em análise (vendor_pending_review). | {"error":"no vendor account associated with this user"} |
Vincular linha
Liga uma linha da nota a um produto do seller (ou a ignora). É o passo que resolve as linhas unmatched. Quando não resta nenhuma linha sem vínculo, a nota passa de pending_match para matched e pode ser lançada.
/api/v1/vendor/erp/notas-entrada/{id}/items/{itemId}/matchSellerVincula uma linha a um produto
Parâmetros de caminho
iduuidobrigatórioitemIduuidobrigatórioitems[].id).Corpo da requisição
product_iduuidmatch_status seja ignored.variation_iduuidconversion_factorstring12 quando a nota vem em caixas de 12). Padrão 1.match_statusstringignoredignored para descartar a linha (ela não entra no estoque).Exemplo de requisição: Vincular linha
curl -X PUT "$BASE_URL/api/v1/vendor/erp/notas-entrada/3f6c1c1e-8d0b-4a55-9a52-1d6f6a4a7b10/items/8c5e2d3a-41b7-4f0a-9d6e-7a2b1c0d9e11/match" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"product_id": "94e6917e-8733-4ddc-b446-ed85977117e8",
"conversion_factor": "12"
}'Resposta: Vincular linha
{
"id": "5534915e-925c-45af-888a-4957b6fa54ff",
"access_key": "35261011222333000181550010000487651876543249",
"number": "48765",
"series": "1",
"supplier_cnpj": "11222333000181",
"supplier_name": "Distribuidora Aurora Ltda",
"supplier_id": null,
"purchase_order_id": null,
"warehouse_id": null,
"issue_date": "2026-10-09",
"total_products_cents": 99800,
"freight_cents": 5000,
"discount_cents": 0,
"total_invoice_cents": 104800,
"source": "upload",
"status": "matched",
"duplicatas": [
{
"number": "001",
"due_date": "2026-11-06",
"amount_cents": 52400
},
{
"number": "002",
"due_date": "2026-12-06",
"amount_cents": 52400
}
],
"items": [
{
"id": "816501df-beb7-4b95-89d5-e75efd42400d",
"line_number": 1,
"supplier_code": "CAM-PRE-M",
"ean": "7891234567895",
"description": "Camiseta Básica Preta M",
"ncm": "61091000",
"cfop": "5102",
"unit": "UN",
"quantity": "20.0000",
"conversion_factor": "1.0000",
"unit_value_cents": 4990,
"item_total_cents": 99800,
"landed_unit_cost_cents": 5240,
"product_id": "94e6917e-8733-4ddc-b446-ed85977117e8",
"variation_id": null,
"match_status": "auto",
"product_name": "Camiseta Básica Preta M"
}
],
"created_at": "2026-10-11T14:30:00Z"
}Campos da resposta
iduuidaccess_keystringnumberstringseriesstringsupplier_cnpjstringsupplier_namestringsupplier_iduuidnull nas notas do seller.purchase_order_iduuidnull se não vinculado.warehouse_iduuidnull: o depósito é escolhido no lançamento.issue_datestringYYYY-MM-DD. null se ausente no XML.total_products_centsintegerfreight_centsintegerdiscount_centsintegertotal_invoice_centsintegersourcestringuploadsefazstatusstringpending_matchmatchedpostedcancelledduplicatasarrayParcelas de cobrança do XML. Pode vir null na listagem.
numberstringdue_datestringYYYY-MM-DD.amount_centsintegeritemsarrayLinhas. Só no detalhe e nas ações.
iduuidline_numberintegersupplier_codestringcProd).eanstringdescriptionstringncmstringcfopstringunitstringquantitystringconversion_factorstring1.0000). O estoque recebe quantity vezes este fator, que precisa dar inteiro.unit_value_centsintegeritem_total_centsintegerlanded_unit_cost_centsintegernull se não calculado.product_iduuidnull enquanto não casado.variation_iduuidmatch_statusstringautomanualunmatchedignoredproduct_namestringcreated_atdatetimeErros: Vincular linha
| Status | Quando | Corpo |
|---|---|---|
| 400 | Corpo não é um JSON válido. | {"error":"invalid request body","detail":"invalid character 'b' looking for beginning of object key string"} |
| 400 | Sem product_id e sem match_status: ignored. | {"error":"vendorerp: product_id required to match"} |
| 400 | A nota já foi lançada ou cancelada. | {"error":"vendorerp: cannot edit a posted or cancelled invoice"} |
| 400 | A linha não pertence a esta nota. | {"error":"vendorerp: item not in this invoice"} |
| 404 | A nota ou o produto não existe, ou o produto não é do seller. | {"error":"product not found"} |
| 401 | Cabeçalho Authorization ausente, token inválido, expirado ou revogado. | {"error":"missing authorization header"} |
| 403 | O token não é de um usuário seller (por exemplo, é de administrador). | {"error":"insufficient permissions"} |
| 403 | O usuário não está vinculado a um seller, ou o cadastro do seller ainda está em análise (vendor_pending_review). | {"error":"no vendor account associated with this user"} |
Lançar nota
Efetiva a compra: para cada linha não ignorada soma as unidades ao depósito e atualiza o custo médio; e cria uma conta a pagar por parcela (duplicatas) da nota, ou uma única conta no total quando a nota não tem parcelas. Tudo numa transação: se algo falha, nada é lançado. Só funciona uma vez por nota.
/api/v1/vendor/erp/notas-entrada/{id}/postSellerLança a nota no estoque e no financeiro
Parâmetros de caminho
iduuidobrigatórioCorpo da requisição
warehouse_iduuidobrigatórioExemplo de requisição: Lançar nota
curl -X POST "$BASE_URL/api/v1/vendor/erp/notas-entrada/3f6c1c1e-8d0b-4a55-9a52-1d6f6a4a7b10/post" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"warehouse_id": "8204b8b8-e7e2-4b96-bba8-5a937fe001c8"
}'Resposta: Lançar nota
{
"invoice": {
"id": "5534915e-925c-45af-888a-4957b6fa54ff",
"access_key": "35261011222333000181550010000487651876543249",
"number": "48765",
"series": "1",
"supplier_cnpj": "11222333000181",
"supplier_name": "Distribuidora Aurora Ltda",
"supplier_id": null,
"purchase_order_id": null,
"warehouse_id": null,
"issue_date": "2026-10-09",
"total_products_cents": 99800,
"freight_cents": 5000,
"discount_cents": 0,
"total_invoice_cents": 104800,
"source": "upload",
"status": "posted",
"duplicatas": [
{
"number": "001",
"due_date": "2026-11-06",
"amount_cents": 52400
},
{
"number": "002",
"due_date": "2026-12-06",
"amount_cents": 52400
}
],
"items": [
{
"id": "816501df-beb7-4b95-89d5-e75efd42400d",
"line_number": 1,
"supplier_code": "CAM-PRE-M",
"ean": "7891234567895",
"description": "Camiseta Básica Preta M",
"ncm": "61091000",
"cfop": "5102",
"unit": "UN",
"quantity": "20.0000",
"conversion_factor": "1.0000",
"unit_value_cents": 4990,
"item_total_cents": 99800,
"landed_unit_cost_cents": 5240,
"product_id": "94e6917e-8733-4ddc-b446-ed85977117e8",
"variation_id": null,
"match_status": "auto",
"product_name": "Camiseta Básica Preta M"
}
],
"created_at": "2026-10-11T14:30:00Z"
},
"payables": [
{
"id": "5f585c3c-68a2-4f88-b76c-e2465ab041d4",
"description": "NF-e 35261011222333000181550010000487651876543249 dup 001",
"amount_cents": 52400,
"due_date": "2026-11-06",
"status": "open"
}
]
}Campos da resposta
invoiceobjectposted.payablesarrayErros: Lançar nota
| Status | Quando | Corpo |
|---|---|---|
| 400 | warehouse_id em branco. | {"error":"vendorerp: warehouse_id required to post"} |
| 400 | A nota já foi lançada. | {"error":"vendorerp: invoice already posted"} |
| 400 | Ainda há linha unmatched (a nota não está matched). | {"error":"vendorerp: invoice must be fully matched before posting"} |
| 400 | Uma linha sem produto vinculado. | {"error":"vendorerp: line 2 is not matched"} |
| 400 | quantity vezes conversion_factor não dá inteiro. | {"error":"vendorerp: line 1 quantity does not convert to whole units"} |
| 400 | O depósito está inativo. | {"error":"warehouse is inactive"} |
| 404 | A nota ou o depósito não existe. | {"error":"warehouse not found"} |
| 401 | Cabeçalho Authorization ausente, token inválido, expirado ou revogado. | {"error":"missing authorization header"} |
| 403 | O token não é de um usuário seller (por exemplo, é de administrador). | {"error":"insufficient permissions"} |
| 403 | O usuário não está vinculado a um seller, ou o cadastro do seller ainda está em análise (vendor_pending_review). | {"error":"no vendor account associated with this user"} |