Mercado Envios – Como enviar a nota fiscal de venda

Para aperfeiçoar a experiência de compra dentro da plataforma, os vendedores poderão enviar as notas fiscais de venda através de nossa API de forma automática. Caso deseje saber como funciona a parte fiscal em Mercado Envios Full, você pode acessar à documentação correspondente.

 

Conteúdos

Assinatura de notificações

Lembre-se que o desenvolvimento deve estar assinado às notificações de “shipments”; deverá fazê-lo desde MyApps. Revise nossa documentação para conhecer como trabalhar com notificações. Começará a receber notificações depois de gerada uma venda na plataforma e confirmado o pagamento. Exemplo de notificação

{
    "resource": "/shipments/139876",
    "user_id": 1234,
    "topic": "shipments",
    "received": "2011-10-19T16:38:34.425Z",
    "sent" : "2011-10-19T16:40:34.425Z",
}


Consultar status do envio

Conhecendo o ID do envio, poderá realizar o GET para o recurso de shipments para obter toda a informação dele:

curl -H "x-format-new:true" https://api.mercadolibre.com/shipments/{shipment_id}?access_token=ACCESS_TOKEN

Confirmando que o envio tenha status "ready_to_ship" e substatus "invoice_pending", você deverá enviar o XML da nota.


Billing Info

No recurso/shipments são derivados diferentes recursos que oferecem a informação necessária para que o vendedor determine a logística. O recurso billing_info permite obter a informação fiscal dos diferentes atores que operam no envio do produto.

curl https://api.mercadolibre.com/shipments/{shipment_id}/billing_info?access_token=ACCESS_TOKEN

Exemplo

GET 
https://api.mercadolibre.com/shipments/26474580996/billing_info?access_token=ACCESS_TOKEN
{
	"receiver": {
		"id": 154808171,
		"document": {
			"id": "CPF",
			"value": "02972404475"
		},
		"additional_documents": []
	},
	"senders": [{
		"id": 168777350,
		"document": {
			"id": "CNPJ",
			"value": "21611372000396"
		},
		"additional_documents": [{
			"id": "IE",
			"value": "421038162111"
		}]
	}],
	"carrier": {
		"document": {
			"id": "CNPJ",
			"value": "20121850000317" 
		},
		"additional_documents": []
	}
}

Considerações:

  • Dentro de cada “additional_documents” pode vir uma lista de outros documentos que podem ser requeridos.
  • Caso seja necessário obter a informação dos produtos que são enviados, se utilizarão os recursos shipments/{id}/items e /items/{id}.


Enviar nota fiscal eletrônica

Com todas informações disponíveis, assim que o status e substatus estiverem confirmados, você deverá enviar o XML da nota assim:

curl -s -X POST -H 'Content-Type: application/xml' -d '<?xml version="1.0" encoding="UTF-8"?>
<nfeProc versao="4.00" xmlns="http://www.portalfiscal.inf.br/nfe">
...
</nfeProc>' "https://api.mercadolibre.com/shipments/{id}/invoice_data/?access_token={accessToken}&siteId={siteId}"


Consultar a nota fiscal enviada

Você pode consultar o XML enviado:

curl -H GET "https://api.mercadolibre.com/shipments/{shipment_id}/invoice_data?access_token=TOKEN&siteId=MLB"


Atualizar nota fiscal eletrônica

Agora, se quiser alterar alguma informação dos dados fiscais já enviados, um PUT deve ser enviado assim:

curl -s -X PUT -H 'Content-Type: application/xml' -d '<?xml version="1.0" encoding="UTF-8"?>
<nfeProc versao="4.00" xmlns="http://www.portalfiscal.inf.br/nfe">
...
</nfeProc>' "https://api.mercadolibre.com/shipment_invoice/{invoice_id}?access_token={accessToken}&siteId={siteId}"


Nota: estamos realizando a validação dos XMLs enviados, sendo assim não serão aceitas Notas Fiscais geradas pelo ambiente de homologação da SEFAZ, somente Notas Fiscais válidas. Outra observação é que, uma vez impressa a etiqueta, não será possível alterar a nota.


Referências de código de erro

Error_code Mensagem de erro Descrição Possível solução
shipment_invoice_already_saved shipment invoice already saved Já existe uma nota fiscal salva para o envio informado. Para que a nota fiscal possa ser salva, o envio necessita estar no substatus de invoice_pending, para verificar se o envio se encontra nesse substatus, consulte /shipments/{shipment_id}, ou consulte se já não foi salva a nota fiscal para o envio informado através do endpoint /shipments/{id}/invoice_data.
duplicated_fiscal_key fiscal key has already been used Já existe uma nota fiscal salva com a chave fiscal informada. O número de chave fiscal da nota precisa ser único.
wrong_invoice_date NFe date must be greater than the sale date. A data informada na nota fiscal é inválida. Verifiquei a data informada.
wrong_sender_zipcode NFe sender zipcode must be the same as the sale zipcode. O CEP do vendedor informado na nota fiscal é inválido ou nulo. Verifique o CEP do vendedor informado.
wrong_receiver_zipcode NFe receiver zipcode must be the same as the sale zipcode. O CEP do comprador informado na nota fiscal é inválido ou nulo. Verifique o CEP do comprador informado.
wrong_receiver_cnpj NFe receiver CNPJ must be the same as the sale CNPJ. O CNPJ do comprador informado na nota fiscal é inválido ou nulo. Verifique o CNPJ do comprador informado.
wrong_receiver_cpf NFe receiver CPF must be the same as the sale CPF. O CPF do comprador informado na nota fiscal é inválido ou nulo. Verifique o CPF do comprador informado.
wrong_receiver_state_tax NFe receiver state tax must be the same as the sale state tax. A Inscrição Estadual do comprador informada na nota fiscal é inválida ou nula. Verifique a Inscrição Estadual do comprador informada.
invalid_user You are not allowed to perform this operation on the resource Shipment $shipmentId Você não tem permissão para realizar operações no envio informado. Verifique o número de envio informado e se você tem permissões sobre ele.
shipment_invoice_should_contain_company_state_tax_id shipment invoice should contain company_state_tax_id A Inscrição Estadual do comprador não foi informada na nota fiscal. Verifique a Inscrição Estadual do comprador informada.
invalid_state_tax_id Invalid state tax id A Inscrição Estadual do comprador informada na nota fiscal é inválida ou nula. Verifique a Inscrição Estadual do comprador informada.
invalid_operation_for_site_id Invalid operation for site id: $siteId Operação inválida para a região informada. Só é permitida a execução de operações para o site MLB.
error_parse_invoice_data $json Erro ao converter dados da nota fiscal para json. Verifique se a nota fiscal foi informada de forma correta.
invalid_parameter Body cannot contain id A nota fiscal informada não contém o número de identificação. Verifique o número de identificação na nota fiscal informada.
invalid_caller_id Invalid caller id Caller Id informado é inválido ou não foi informado. Verifique se o Caller Id esta sendo informado ao realizar o request.



Nota: Para imprimir a etiqueta, acesse esta documentação. Tenha em conta que uma vez impressa a etiqueta, não será possível alterar a nota.

Faça parte da nossa comunidade