Documentação do Mercado Livre
Confira todas as informações necessárias sobre as APIs Mercado Livre.
Documentação do
Mensagens adicionais
Essa funcionalidade permite que o vendedor configure as mensagens conforme os cenários fiscais de suas vendas, de modo que ele declare ao Fisco os seus benefícios e/ou suas exceções fiscais como isenção de impostos e alíquotas diferenciadas ou até mesmo uma mensagem personalizada para cada região que a venda é feita. O limite máximo é de 30 mensagens adicionais cadastradas.
Configurar mensagem
O recurso para configurar uma mensagem permite que, além do texto, o vendedor configure alguns filtros para que a mensagem seja exibida.
Chamada:
curl --location --request POST 'https://api.mercadolibre.com/users/$USER_ID/invoices/fiscal_rules/v2/additional-messages' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer $ACCESS_TOKEN' \
--data-raw '{
"title": "$TITLE",
"message": "$MESSAGE",
"type": "custom_with_filter",
"filters": [
{
"name": "$NAME",
"operation": "$OPERATION",
"value": "$VALUE"
}
]
}'
Exemplo:
curl --location --request POST 'https://api.mercadolibre.com/users/123456/invoices/fiscal_rules/v2/additional-messages' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer $ACCESS_TOKEN' \
--data-raw '{
"title": "Mensagem custom POST",
"message": "Sua nota fiscal número: $ORIGIN_NUMERO_NF, possui o total de tributos IBPT no valor de R$: $IBPT_TOTAL_VALUE e o valor da taxa destinada para o fundo de combate à pobreza foi de R$: $ICMS_VFCPUFDEST",
"type": "custom_with_filter",
"filters": [
{
"name": "transactiontype",
"operation": "eq",
"value": "SALE"
}
]
}'
Resposta:
{
"id": 20777,
"issuer": 123456,
"title": "Mensagem custom POST",
"message": "Sua nota fiscal número: $ORIGIN_NUMERO_NF, possui o total de tributos IBPT no valor de R$: $IBPT_TOTAL_VALUE e o valor da taxa destinada para o fundo de combate à pobreza foi de R$: $ICMS_VFCPUFDEST",
"type": "custom_with_filter",
"filters": [
{
"name": "transactiontype",
"operation": "eq",
"value": "SALE"
}
]
}
Campos da chamada
- title: Título da mensagem (Limite máximo 255 caracteres, campo obrigatório).
- message: Texto da mensagem (Limite máximo de 500 caracteres, incluindo as tags, campo obrigatório).
- type: Tipo da mensagem. Valores possíveis:
- custom: Mensagem padrão, que será aplicada em todas as notas de vendas (não é necessário preencher o campo filters).
- custom_with_filter: Modelo de mensagem que possibilita realizar customizações diferentes usando os filtros.
- filters: Lista de filtros que devem estar todos consistentes com a nota para que a mensagem seja aplicada. Cada filtro é composto pelos seguintes campos:
- name: Nome "sistêmico" do filtro (lista de todos os nomes dos filtros suportados está abaixo).
- operation: Tipo de operação que será realizada para verificar a consistência entre o dado desejado e o dado presente na nota fiscal (lista completa de operadores disponíveis abaixo).
- value: Valor esperado a ser utilizado para verificar a consistência com o valor presente na nota.
Tag
Também é possível personalizar a sua mensagem adicional incluindo valores de alguns campos presentes na própria nota. Para isso, deve adicionar no texto da mensagem a tag equivalente à informação desejada.
- $EXTERNAL_ORDER_ID: Número externo da Ordem.
- $IBPT_ALIQUOT: Alíquota IBPT; percentual de vtottrib em relação ao total.
- $IBPT_ITEM_VALUE: Valor do IBPT do item (vibpt).
- $IBPT_TOTAL_VALUE: Valor total de tributos (vtottrib).
- $ICMS_PICMSUFDEST: Alíquota do ICMS do estado de destino (picmsufdest).
- $ICMS_VBC: Valor da base de cálculo do ICMS (vbc).
- $ICMS_VFCPUFDEST: Valor da taxa do fundo de combate à pobreza do estado de destino (vfcpufdest).
- $ICMS_VICMSDIF: Valor do ICMS Diferido (vicmsdif).
- $ICMS_VICMSUFDEST: Valor do ICMS Interestadual para a UF de destino (vicmsufdest).
- $ICMS_VICMSUFREMET: Valor do ICMS Interestadual para a UF do remetente (vicmsufremet).
- $ICMS_VICMSDESON: Valor do ICMS de desoneração (vicmsdeson).
- $ORIGIN_DATA_DE_EMISSAO: Data de emissão da nota original.
- $ORIGIN_NUMERO_NF: Número da nota original.
- $VIPIDEVOL: Total do IPI devolvido.
Exemplo:
- Cadastro da mensagem: "Sua nota fiscal número: $ORIGIN_NUMERO_NF, possui o total de tributos IBPT no valor de R$: $IBPT_TOTAL_VALUE e o valor da taxa destinada para o fundo de combate à pobreza foi de R$: $ICMS_VFCPUFDEST".
- Mensagem adicionada na nota fiscal: "Sua nota fiscal número: 0001234567890, possui o total de tributos IBPT no valor de R$: 100,00 e o valor da taxa destinada para o fundo de combate à pobreza foi de R$: 2,00".
Exemplo de requisição:
{
"id": "123",
"issuer": "1234567890",
"title": "default-message",
"message": "Sua nota fiscal número: $ORIGIN_NUMERO_NF, possui o total de tributos IBPT no valor de R$: $IBPT_TOTAL_VALUE e o valor da taxa destinada para o fundo de combate à pobreza foi de R$: $ICMS_VFCPUFDEST",
"type": "custom",
"filters": [
{
"name": "transactiontype",
"operation": "eq",
"value": "SALE"
}
]
}
Filtros
O filtro é utilizado para realizar uma validação entre um dado desejado e o dado da nota. O sistema possui os seguintes filtros:
- transactiontype: Realiza validação entre o tipo da nota fiscal.
- Valores suportados: SALE, GIFT, INBOUND, DEVOLUTION, INBOUND_DEVOLUTION, INBOUND_RETURN, SYMBOLIC_INBOUND, SYMBOLIC_INBOUND_RETURN, SALE_RETURN, SALE_DEVOLUTION, PURCHASE, REMOVAL, SYMBOLIC_REMOVAL, INBOUND_SUPPLIER_RETURN, SHIPPING, SHIPPING_RETURN, ADJUSTMENT.
- customertype: Realiza a validação do tipo do comprador, sendo TAXPAYER para compradores com CNPJ e NON_TAXPAYER para compradores de pessoas físicas.
- Valores suportados: TAXPAYER, NON_TAXPAYER.
- recipientstate: Realiza validação do estado do comprador.
- Valores suportados: AC, AL, AM, AP, BA, CE, DF, ES, GO, MA, MG, MS, MT, PA, PB, PE, PI, PR, RJ, RN, RO, RR, RS, SC, SE, SP, TO.
- sellerregime: Realiza validação do modelo fiscal do vendedor.
- Valores suportados: SIMPLES, NORMAL.
- sellerstate: Realiza validação do estado do vendedor.
- Valores suportados: AC, AL, AM, AP, BA, CE, DF, ES, GO, MA, MG, MS, MT, PA, PB, PE, PI, PR, RJ, RN, RO, RR, RS, SC, SE, SP, TO.
- origindetail: Valida se a nota possui ao menos um produto com origem desejada.
- Valores suportados: Integer 0 até 8 (apenas números).
| Código | Origem |
|---|---|
| 0 | NAC |
| 1 | IMP |
| 2 | IMP |
| 3 | IMP |
| 4 | NAC |
| 5 | NAC |
| 6 | NAC |
| 7 | NAC |
| 8 | IMP |
- sku: Valida se a nota possui ao menos um produto com o SKU desejado.
- Valores suportados: String livre.
- ncm: Valida se a nota possui ao menos um produto com o NCM desejado.
- Valores suportados: String livre.
- icmscst: Valida se a nota possui ao menos um produto com CST do ICMS desejado.
- Valores suportados: Apenas números.
- cfop: Valida se a nota possui ao menos um produto com o CFOP desejado.
- Valores suportados: Apenas números.
- piscst: Valida se a nota possui ao menos um produto com o CST do PIS desejado.
- Valores suportados: Apenas números.
- cofinscst: Valida se a nota possui ao menos um produto com o CST do COFINS desejado.
- Valores suportados: Apenas números.
- ipicst: Valida se a nota possui ao menos um produto com o CST do IPI desejado.
- Valores suportados: Apenas números.
Exemplo de requisição:
{
"title": "Imposto devido...",
"message": "Imposto devido ao Estado de Santa Catarina será recolhido até o dia 10 do mês seguinte conforme dispõe o RICMS-SC/01, art. 60.",
"type": "custom_with_filter",
"filters": [
{
"name": "transactiontype",
"operation": "eq",
"value": "SALE"
},
{
"name": "customertype",
"operation": "eq",
"value": "NON_TAXPAYER"
},
{
"name": "recipientstate",
"operation": "eq",
"value": "SC"
}
]
}
Operadores
Os operadores serão aplicados dentro de cada filtro para validar o dado desejado e o dado presente na nota.
- eq: Verifica se os valores são iguais (Case Insensitive).
- ne: Verifica se os valores são diferentes (Case Insensitive).
- in: Verifica se o valor atual é um dos valores esperados (Case Insensitive). Delimitador: "," vírgula.
- notin: Verifica se o valor atual não é um dos valores esperados (Case Insensitive). Delimitador: "," vírgula.
- contains: Verifica se o valor contém o valor esperado (Case Insensitive).
- startwith: Verifica se o valor inicia com o valor esperado (Case Insensitive).
- endwith: Verifica se o valor termina com o valor esperado (Case Insensitive).
Exemplo:
{
"name": "transactiontype",
"operation": "eq",
"value": "SALE"
}
Atualização de mensagens
O recurso permite que uma mensagem seja atualizada. Para isso, é necessário conhecer o ID da mensagem.
Chamada:
curl --location --request PUT 'https://api.mercadolibre.com/users/$USER_ID/invoices/fiscal_rules/v2/additional-messages/$MESSAGE_ID' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer $ACCESS_TOKEN' \
--data-raw '{
"id": $ID,
"title": "$TITLE",
"message": "$MESSAGE",
"type": "$TYPE"
}'
Exemplo:
curl --location --request PUT 'https://api.mercadolibre.com/users/12345/invoices/fiscal_rules/v2/additional-messages/20775' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer $ACCESS_TOKEN' \
--data-raw '{
"id": 20775,
"title": "Mensagem custom",
"message": "Digite a atualização da sua mensagem personalizada!",
"type": "custom"
}'
Resposta:
{
"id": 20775,
"issuer": 12345,
"title": "Mensagem custom",
"message": "Digite a atualização da sua mensagem personalizada!",
"type": "custom",
"filters": [
{
"name": "transactiontype",
"operation": "eq",
"value": "SALE"
}
]
}
Listar mensagens cadastradas
Para listar as mensagens já cadastradas, realize a seguinte chamada.
Chamada:
curl --location --request GET 'https://api.mercadolibre.com/users/$USER_ID/invoices/fiscal_rules/v2/additional-messages' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer $ACCESS_TOKEN'
Exemplo:
curl --location --request GET 'https://api.mercadolibre.com/users/123456/invoices/fiscal_rules/v2/additional-messages' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer $ACCESS_TOKEN'
Resposta:
[
{
"id": 20777,
"issuer": 123456,
"title": "Mensagem custom POST",
"message": "Sua nota fiscal número: $ORIGIN_NUMERO_NF, possui o total de tributos IBPT no valor de R$: $IBPT_TOTAL_VALUE e o valor da taxa destinada para o fundo de combate à pobreza foi de R$: $ICMS_VFCPUFDEST",
"type": "custom_with_filter",
"filters": [
{
"name": "transactiontype",
"operation": "eq",
"value": "SALE"
}
]
},
{
"id": 46,
"issuer": 123456,
"message": "Valor aproximado dos tributos (IBPT) R$$IBPT_TOTAL_VALUE.",
"type": "default",
"filters": [
{
"name": "transactiontype",
"operation": "eq",
"value": "SALE"
}
]
},
{
"id": 47,
"issuer": 123456,
"message": "Valores totais do ICMS Interestadual: DIFAL da UF destino R$$ICMS_VICMSUFDEST + FCP R$$ICMS_VFCPUFDEST; DIFAL da UF Origem R$$ICMS_VICMSUFREMET.",
"type": "default",
"filters": [
{
"name": "transactiontype",
"operation": "eq",
"value": "SALE"
}
]
}
]
Apagando uma mensagem
Para apagar uma mensagem já cadastrada, realize a seguinte chamada.
Chamada:
curl --location --request DELETE 'https://api.mercadolibre.com/users/$USER_ID/invoices/fiscal_rules/v2/additional-messages/$MESSAGE_ID' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer $ACCESS_TOKEN'
Exemplo:
curl --location --request DELETE 'https://api.mercadolibre.com/users/123456/invoices/fiscal_rules/v2/additional-messages/20775' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer $ACCESS_TOKEN'
Resposta: 200 OK