Emitindo Nota Fiscal pelo Mercado Livre
Conteúdos
→Primeiros passos →Emitindo notas fiscais para outros tipos logísticos →Onboarding fulfillment →Fazendo o OPT-IN
Primeiros passos
Primeiramente é preciso que o integrador tenha toda a base de itens do seller, caso não tenha deve ser feito este GET:
Todos os itens:
curl -X GET -H 'Authorization: Bearer $ACCESS_TOKEN' https://api.mercadolibre.com/users/$CUST_ID/items/search
Ou apenas itens do Mercado Envios Full:
curl -X GET -H 'Authorization: Bearer $ACCESS_TOKEN' https://api.mercadolibre.com/users/$CUST_ID/items/search?logistic_type=fulfillment
Caso ainda não conheça como utilizar os GETs acima, acesse nossa documentação.
Segue abaixo o fluxo para que o Faturador possa gerar as notas fiscais.
Primeiro precisamos receber o conjunto de regras tributárias (exclusivo para Regime Normal) e na sequência os dados fiscais dos seus produtos. Em que momento as notas fiscais são emitidas?
Elas são emitidas automaticamente (apenas em Mercado Envios Full) ou através de uma interação manual do vendedor pelo painel do Mercado Livre (nas outras modalidades do Mercado Envios), segue o passo-a-passo que o vendedor deve seguir.
Resumindo, o processo que será realizado é o seguinte:

Emitindo notas fiscais para outros tipos logísticos
Agora é possível emitir as notas fiscais do nosso emissor integrado do Mercado Livre através das nossas APIs, neste cenário o processo que será realizado é o seguinte:
Como emitir uma nova nota?
A emissão se baseia no número de uma ou mais vendas relacionadas para gerar uma nota fiscal única. Caso seja um pedido de carrinho, o integrador deverá informar todos os números das vendas (ids das orders) do mesmo vendedor:
Chamada:
curl -X POST -H 'Authorization: Bearer $ACCESS_TOKEN' https://api.mercadolibre.com/users/$CUST_ID/invoices/orders
Exemplo:
curl -X POST -H 'Authorization: Bearer $ACCESS_TOKEN' https://api.mercadolibre.com/users/154808171/invoices/orders
{
"orders": [2365536536,4568709123]
}
Resposta:
{
"id": 1,
"status": "authorized",
"transaction_status": "authorized",
"issuer": {
"user_id": "1231321",
"brand_name": "Meli",
"name": "Gabriel",
"phone": {
"area_code": "SP",
"number": "123123213213"
},
"address": {
"street_name": "Angelo Piva",
"street_number": "144",
"complement": "Apartamento 42",
"neighborhood": "Altino",
"city": "SP",
"zip_code": "11222-322",
"state": "SP",
"country": "SP"
},
"identifications": {
"cnpj": "909381203012",
"crt": "simples",
"ie": "82371231",
"ie_type": "contribuinte"
}
},
"recipient": {
"external_recipient_id": "2131321",
"name": "Gabriel",
"phone": {
"area_code": "SP",
"number": "123123213213"
},
"address": {
"street_name": "Angelo Piva",
"street_number": "123",
"complement": "complement missing",
"neighborhood": "Altino",
"city": "SP",
"zip_code": "11222-322",
"state": "SP",
"country": "SP"
},
"identifications": {
"cnpj": "909381203012",
"crt": "simples",
"ie": "82371231",
"ie_type": "contribuinte"
}
},
"shipment": {
"id": 1,
"site_id": "MLB",
"mode": "Mode",
"logistic_type": "devolution",
"buyer_cost": 25,
"paid_by": "issuer",
"carrier": {
"name": "SEDEX",
"phone": {
"area_code": "SP",
"number": "123123213213"
},
"address": {
"street_name": "Angelo Piva",
"street_number": "123",
"complement": "complement missing",
"neighborhood": "Altino",
"city": "SP",
"zip_code": "11222-322",
"state": "SP",
"country": "SP"
},
"identifications": {
"cnpj": "909381203012",
"crt": "simples",
"ie": "82371231",
"ie_type": "contribuinte"
}
},
"volumes": [{
"net_weight": 2.0,
"gross_weight": 20.0
}],
"fiscal_model_id": "1",
"status": null
},
"items": [{
"id": "1",
"invoice_id": null,
"seller_id": null,
"external_order_id": null,
"external_product_id": null,
"external_variant_id": null,
"attributes": {
"ean": "EA1",
"sku": null,
"type": null,
"bundle_quantity": null
},
"product_name": null,
"quantity": null,
"total_amount": null,
"shipping_buyer_cost": null,
"discount_amount": null,
"fiscal_data": null
}, {
"id": "2",
"invoice_id": null,
"seller_id": null,
"external_order_id": null,
"external_product_id": null,
"external_variant_id": null,
"attributes": {
"ean": "EA2",
"sku": null,
"type": null,
"bundle_quantity": null
},
"product_name": null,
"quantity": null,
"total_amount": null,
"shipping_buyer_cost": null,
"discount_amount": null,
"fiscal_data": null
}, {
"id": "3",
"invoice_id": null,
"seller_id": null,
"external_order_id": null,
"external_product_id": null,
"external_variant_id": null,
"attributes": {
"ean": "EA3",
"sku": null,
"type": null,
"bundle_quantity": null
},
"product_name": null,
"quantity": null,
"total_amount": null,
"shipping_buyer_cost": null,
"discount_amount": null,
"fiscal_data": null
}],
"issued_date": "2020-03-06T17:52:05.269",
"invoice_series": "12",
"invoice_number": 12313213,
"attributes": {
"order_source": "meli",
"invoice_source": "internal",
"invoice_key": "i231io3j12i",
"environment_type": null,
"xml_version": "1",
"status_code": null,
"status_description": null,
"receipt": null,
"receipt_date": "2020-03-06T17:52:05.268",
"invoice_creation_date": null,
"protocol": null,
"invoice_type": "normal",
"emission_type": "contingency",
"authorization_date": "2020-03-06T17:52:05.268",
"cancellation_protocol": "Cancel protocol",
"cancellation_date": "2020-03-06T17:52:05.268",
"cancellation_reason": null,
"cancellation_error_code": 1,
"cancellation_error_description": "Cancel",
"danfe": "i1jeoi1e21",
"document": "document",
"cnf": "CNF",
"correction_letter": null,
"reference_invoice": {
"id": 1,
"invoice_key": "21j3i1j"
},
"reference_invoices": [{
"id": 2,
"invoice_key": "321j3i1j"
}],
"danfe_location": "/danfe/2",
"xml_location": "/xml/1",
"include_freight": null
},
"fiscal_data": {
"customer_type": "b2b",
"transaction_type": "sale",
"transaction_type_description": "transaction",
"messages": [{
"type": "message",
"content": "content"
}],
"fiscal_amounts": [{
"name": "Fiscal amounts",
"attributes": null
}],
"state_calculation_type": "technical_default"
},
"amount": 20.0,
"items_amount": 3.0,
"errors": [{
"code": "01",
"description": "e01",
"type": null,
"source": null,
"target": null
}, {
"code": "02",
"description": "e02",
"type": null,
"source": null,
"target": null
}, {
"code": "03",
"description": "e03",
"type": null,
"source": null,
"target": null
}],
"items_quantity": 3,
"pack_id": null,
"custom_issuer_address": null,
"site_id": "mlb"
}
Caso ocorra um erro na criação da nota a resposta será como no exemplo abaixo:
…
{
"message": "CPF do destinatário inválido",
"error_code": "14"
}
...
O erro encontrado na propriedade 'error_code' pode ser consultado através do recurso que segue.
Consultando os erros de emissão
Caso ocorra um erro ao emitir uma nota fiscal via API é possível verificar os detalhes do mesmo através do código dele, basta realizar a chamada a seguir para a API de erros:
Chamada:
curl -X GET -H 'Authorization: Bearer $ACCESS_TOKEN' https://api.mercadolibre.com/users/invoices/errors/$SITE_ID/$errorCode
Exemplo:
curl -X GET -H 'Authorization: Bearer $ACCESS_TOKEN' https://api.mercadolibre.com/users/invoices/errors/MLB/14
Resposta:
{
"id": "14",
"source_message": null,
"display_message": "CPF do destinatário inválido",
"front_properties": {
"correctedBy": [
"buyer.billingInfo.docNumber"
],
"correctedIn": "invoices/order/buyer"
},
"backend_properties": null
}
A proriedade "display_message" contém a mensagem com a descrição do erro.
Confira o fluxo nesse modelo de integração:

Seguinte: Envio das regras tributárias.
Onboarding fulfillment
O onboarding do Faturador é feito pelo Mercado Livre depois de algumas ações do vendedor. Antes de ativar o emissor de nota fiscal, pedimos ao cliente que faça a configuração de sua conta, certificando-se de que sua empresa está cadastrada como Pessoa Jurídica, que esteja com sua Inscrição Estadual atualizada e que suba seu Certificado Digital, que deve ser do tipo A1.
Ao realizar o primeiro envio, o vendedor também precisará completar os dados fiscais de seus anúncios, bem como as regras fiscais, no caso de vendedores do Regime Normal.
Seguinte: Fazendo o OPT-IN.
Fazendo o OPT-IN
O opt-in é o momento em que o seller realiza o cadastro no Faturador e a partir daí, desde que toda a carga fiscal esteja ok, o Mercado Livre pode emitir as NF-es de venda.
Seguinte: Recebendo notificações.