Docs Pedidos - API
A integração dos pedidos é realizada atraves da nossas chamadas de pedido, onde após um pedido ser realizado, o mesmo estará disponivel nos endpoints.
Desde a criação do pedido, nosso picking será responvel pelo andamento das etapas em que ele se encontra, o que está totalmente ligado as informações retornadas em nossa API. As etapas do receptor de pedidos são:
| EMITIDO | EM SEPARAÇÃO | SEPARADO | FINALIZADO/CANCELADO |
|---|
A integração do pedido só deve entrar em ação após o pedido ficar no status de separado, entes disso o pedido ainda esta sujeito a alterações e não deve ser capturado.
O evento que retornamos mostrando que o pedido está pronto para emissão do cupom fiscal é o PE0 (Aguardando exportação), após isso a finalização do pedido fica por nossa conta (A finalização do pedido realizada por nós é somente para pedidos iFood, para o SiteMercado o lojista precisa finalizá-lo no receptor de pedidos para avançá-lo).
Siga o tutorial a abaixo para criar pedidos de teste e exporta-los na API
Trás todos os eventos dos pedidos de uma loja com seus status. Por exemplo: se uma rede de lojas possui mais que uma loja cadastrada no nosso sistema, esta chamada trará os eventos somente de uma loja.
Endpoint: /pedido/eventos/{idLoja}
Rate Limit: 20 req/seg.
[
{
"id": 0, // ID DO EVENTO
"codigoPedido": "string", // CÓDIGO DO PEDIDO
"status": "CAN", // STATUS ATUAL DO PEDIDO
"idLoja": 0 // ID DA LOJA
}
]Status retornados na API:
| Status | Descrição do evento |
|---|---|
| CAN | Pedido cancelado |
| DEV | Supermercado: iniciou o processo de devolução do produto ao estoque |
| EMI | O cliente realizou o pedido |
| FIN | Cliente recebeu o produto |
| REP | Aguardando o cliente retirar os produtos com itens indisponíveis |
| RET | Aguardando o cliente retirar os produtos |
| ENP | Aguardando entrega dos produtos ao cliente com itens indisponíveis |
| ENT | Aguardando entrega dos produtos ao cliente |
| SEP | Supermercado: Processo de separação do pedido iniciado |
| APA | Aguardando o pagamento |
| AMP | Aguardando Modificação de Pedido (Aprovação do cliente) |
| PE0 | O pedido está aguardando exportação (PDV) |
Todos os status são importantes, porém o status PE0 é o status em que o PDV/emissor fiscal consultará os dados para importação e emissão do documento fiscal.
Resposavel por retirar o “evento” das chamadas de eventos. OBS: O evendo do pedido retorna ao pooling após a mudança de status.
Endpoint: /pedido/eventos/verificado
Rate Limit: 20 req/seg.
[
{
"id": 0 // ID DO EVENTO
}
]Esta chamada retorna o todas as informações do pedido.
Endpoint: /pedido/{cod_pedido}
Rate Limit: 20 req/seg.
{
"idLoja": 0, // CÓDIGO ID LOJA
"idCliente": 0, // ID DO CLIENTE
"idPedido": "string", // ID PEDIDO
"codigo": "string", // CÓDIGO FICHA DO PEDIDO NO SITE MERCADO (ESSE VALOR É VARIAVEL, PORTANTO NAO COLOQUE LIMITE DE CARACTERES NA INTEGRAÇÃO DO CAMPO)
"codigoLoja": "string", // CÓDIGO DA LOJA (ESSE VALOR É VARIAVEL, PORTANTO NAO COLOQUE LIMITE DE CARACTERES NA INTEGRAÇÃO DO CAMPO)
"data": "2024-01-11T17:06:27.822Z", // TIMESTAMP CRIAÇÃO DO PEDIDO
"hora": "string", // HORÁRIO DA CRIAÇÃO DO PEDIDO
"dataHora": "2024-01-11T17:06:27.822Z", // HORÁRIO DA CRIAÇÃO DO PEDIDO
"agendamentoDataInicio": "2024-01-11T17:06:27.822Z", // DEPRECATED, USAR CAMPOS TempoEntrega E TempoPreparo
"agendamentoHoraInicio": "string", // DEPRECATED, USAR CAMPOS TempoEntrega E TempoPreparo
"agendamentoDataFim": "2024-01-11T17:06:27.822Z", // DEPRECATED, USAR CAMPOS TempoEntrega E TempoPreparo
"agendamentoHoraFim": "string", // DEPRECATED, USAR CAMPOS TempoEntrega E TempoPreparo
"tempoEntrega": { // TEMPO PREVISTO PARA ENTREGA
"inicio": "2024-01-11T17:06:27.822Z",
"fim": "2024-01-11T19:06:27.822Z",
},
"tempoPreparo": { // TEMPO PARA SEPARAÇÃO DOS ITENS
"inicio": "2024-01-11T17:06:27.822Z",
"fim": "2024-01-11T19:06:27.822Z",
},
"entrega": true, // DELIVERY = TRUE OU TOGO = FALSE
"retirada": true, // RETIRAR PEDIDO EM LOJA = TRUE OU DELIVERY = FALSE
"cpfNaNota": true, // SIM = TRUE OU NÃO = FALSE
"status": "CAN", // STATUS DO PEDIDO
"tipo": "string", // TIPO DO PEDIDO (IMMEDIATE = PEDIDO AGORA / EXPRESS = ENTREGA RAPIDA / SCHEDULED = AGENDADO)
"statusDescricao": "string", // DESCRIÇÃO DO STATUS DO PEDIDO
"pessoaAutorizadaRecebimento": "string", // PESSOA AUTORIZADA A RECEBER
"quantidadeItemUnico": 0, // QUANTIDADE DE ITENS DO PEDIDO
"valorMercado": 0, // VALOR TOTAL DOS ITENS NA EMISSÃO DO PEDIDO - NÃO ATUALIZÁVEL
"valorConveniencia": 0, // VALOR CONVENIENCIA - NÃO ATUALIZÁVEL
"quantidadeSacolaResfriada": 0, // QUANTIDADE DE SACOLAS RESFRIADAS
"quantidadeSacolaSeca": 0, // QUANTIDADE DE SACOLAS SECAS
"valorEntrega": 0, // VALOR DO PEDIDO PARA A ENTREGA - NÃO ATUALIZÁVEL
"valorRetirada": 0, // VALOR DO PEDIDO PARA A RETIRADA - NÃO ATUALIZÁVEL
"valorTroco": 0, // VALOR DE TROCO CASO SEJA ESCOLHIDO DINHEIRO - NÃO ATUALIZÁVEL
"valorDesconto": 0, // VALOR DE DESCONTO
"valorTotal": 0, // VALOR TOTAL DO CUPOM FISCAL EMISSÃO DO PEDIDO - NÃO ATUALIZÁVEL
"valorCorrigido": 0, // VALOR TOTAL DO CUPOM FISCAL (APÓS TÉRMINO DA SEPARAÇÃO)
"opcaoTroca": "string", // TIPO DE TROCA DOS DO ITENS
"parceiro": {
"codigoEntrega": "string", // CÓDIGO DA ENTREGA PEDIDO IFOOD
"codigoPedido": "string", // NUMERO DO PEDIDO IFOOD (4 ÚLTIMOS DIGITOS)
"agendado": true // SIM = TRUE OU NÃO = FALSE
},
"plataforma": "TODAS", //PLATAFORMA EM QUE O PEDIDO É FEITO (IFOOD / SITEMERCADO / IFOOD_SHOP)
"enderecoEntrega": {
"id": 0, // ID DO PEDIDO
"logradouro": "string", // ENDERÇO DE ENTREGA DO PEDIDO
"numero": "string", // NUMERO DO ENDEREÇO PARA ENTREGA
"complemento": "string", // COMPLEMENTO DO ENDEREÇO
"bairro": "string", // BAIRRO DE ENTREGA
"cidade": "string", // CIDADE DE ENTREGA
"uf": "string", // ESTADO DE ENTREGA EM SIGLA
"cep": "string", // CEP DE ENTREGA
"latitude": 0, // LATITUDE DO ENDEREÇO DO CLIENTE
"longitude": 0 // LONGITUDE DO ENDEREÇO DO CLIENTE
},
"cupom": {
"codigo": "string", // CODIGO DO CUPOM DE DESCONTO
"beneficioTaxaServico": true, // APLICA O BENEFICIO DE ISENÇÃO DA TAXA DE SERVIÇO
"beneficioTaxaEntrega": true, // APLICA O BENEFICIO DE ISENÇÃO DA TAXA DE ENTREGA
"beneficioTaxaRetirada": true, // APLICA O BENEFICIO DE ISENÇÃO DA TAXA DE RETIRADA
"valorBeneficioTaxaServico": 0, // VALOR DO BENEFICIO DA TAXA DE CONVENIENCIA
"valorBeneficioTaxaEntrega": 0, // VALOR DO BENEFICIO DA TAXA DE ENTREGA
"valorBeneficioTaxaRetirada": 0 // VALOR DO BENEFICIO DA TAXA DE RETIRADA
},
"loja": {
"id": 0, // CODIGO ID LOJA
"storeId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", // HASH DE IDENTIFICAÇÃO DA LOJA
"nome": "string", // NOME DO ESTABELECIMENTO DO PARCEIRO
"cnpj": "string", // CNPJ DO PARCEIRO
"status": "Ativa", // STATUS DO PARCEIRO (ATIVO / INATIVO)
"endereco": {
"logradouro": "string", // ENDEREÇO DO PARCEIRO
"numero": "string", // NÚMERO DO ESTABELECIMENTO DO PARCEIRO
"bairro": "string", // BAIRRO DO PARCEIRO
"cidade": "string", // CIDADE DO PARCEIRO
"uf": "string", // ESTADO NO FORMATO DE SIGLA
"cep": "string", // CEP DO PARCEIRO
},
"rede": {
"id": 0, // ID DA REDE DO MERCADO
"nome": "string", // NOME DA REDE
},
"atendimento": []
},
"cliente": {
"id": 0, // ID DO CLIENTE
"nome": "string", // NOME DO CLIENTE
"email": "string", // E-MAIL DO CLIENTE (AVALIAR O LGPD)
"cpf": "string", // CPF DO CLIENTE PARA EMISSÃO DO COMPROVANTE FISCAL
"cnpj": "string", // CNPJ DO CLIENTE PARA EMISSÃO DO COMPROVANTE FISCAL / PESSOA JURIDICA
"ie": "string", // INSCRIÇÃO ESTADUAL (SOMENTE IFOOD SHOP)
"tipo": "Fisica", // TIPO DE CLIENTE FISICA / JURIDICA
"publicidadeEmail": true, // TRUE = SIM OU FALSE = NÃO
"publicidadeSms": true, // TRUE = SIM OU FALSE = NÃO
"telefoneCelular": "string", // TELEFONE DO CLIENTE (AVALIAR O LGPD)
},
"items": [
{
"id": 0, // ID DO ITEM
"uniqueId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", // HASH DE IDENTIFICAÇÃO DE ITEM
"index": 0, // NÚMERO DO ITEM NA LISTA DE ITENS
"codigo": "string", // CÓDIGO DO ITEM
"codigoLoja": "string", // CÓDIGO DA LOJA
"pesoVariavel": true, // PESO VARIÁVEL (TRUE = SIM OU FALSE = NÃO)
"codigoBarra": "string", // NUMERO DO CODIGO DE BARRAS
"plu": "string", // CÓDIGO INTERNO DO PRODUTO
"produto": "string", // NOME DO PRODUTO
"observacao": "string", // OBSERVAÇÃO DO ITEM
"quantidade": 0, // QUANTIDADE DO PRODUTO
"quantidade3": 0, // QUANTIDADE DO PRODUTO COM 3 CASAS DECIMAIS
"valor": 0, // VALOR UNITÁRIO DO PRODUTO
"valorTotal": 0, // VALOR TOTAL DO ITEM (QTDE X PREÇO UNITÁRIO)
"indisponivel": true, // PRODUTO FOI MARCADO COMO INDISPONIVEL
"desistencia": true, // PRODUTO FOI MARCADO COMO DESISTÊNCA DO CLIENTE
"valorOriginal": 0, // VALOR DO PRODUTO SOLICITADO NO PEDIDO SEM ADIÇÃO DE REBAIXA/ACRÉSCIMOS
"pesoVariavelVendidoPorUnidade": true // TRUE = SIM OU FALSE = NÃO
}
],
"pagamentos": [
{
"id": 0, // ID DO PAGAMENTO
"nome": "string", // NOME DA FORMA DE PAGAMENTO
"valor": 0, // VALOR TOTAL DO PEDIDO
"valorCorrigido": 0, // VALOR CORRIGIDO PAGO NO PEDIDO (SÓ É PREENCHIDO SE OUVER CORREÇÃO NO VALOR TOTAL)
"tipo": "Online", // TIPO DE PAGAMENTO
"transacoes": [
{
"bandeira": "string", // BANDEIRA DO CARTÃO
"valor": 0, // VALOR TOTAL DO PEDIDO
"dataHora": "2024-01-11T17:06:27.823Z" // DATA DO PAGAMENTO
}
]
}
],
"beneficios": [
{
"patrocinio": "string", // NOME DO PATROCINADOR DESSE BENEFÍCIO
"valor": 0, // VALOR TOTAL SUBSIDIADO PELO PATROCINADOR
"tipo": "string", // INFORMAÇÃO SOBRE ONDE O DESCONTO SERA APLICADO
"itemId": 0 // INDEX DO ITEM (ID DO ITEM) SOBRE QUAL O DESCONTO DEVE SER APLICAVEL
}
],
"beneficiosEntrega": {
"patrocinio": "string", // NOME DO PATROCINADOR DESSE BENEFÍCIO
"valor": 0, // VALOR TOTAL SUBSIDIADO PELO PATROCINADOR
"tipo": "string", // INFORMAÇÃO SOBRE ONDE O DESCONTO SERA APLICADO
"itemId": 0 // INDEX DO ITEM (ID DO ITEM) SOBRE QUAL O DESCONTO DEVE SER APLICAVEL
}
}O valorTotal vem com o valor inicial do pedido e o valorCorrigido com o total quando é alterado algum dado do pedido (como uma ruptura). Portanto considere o valorCorrigido como o valor final.
Caso um dos campos indisponivel ou desistencia esteja marcado como true, temos a indicação de que este item foi removido da compra inicial do cliente durante a separação e não deve ser contabilizado no documento fiscal.
Devido a lei do LGPD alguns campos contendo os dados dos clientes não são enviados sendo eles:
emailtelefoneCelularO campo plataforma é um campo utilizado para a apresentação de qual plataforma é a origem desse pedido, que são:
SM - SiteMercado (White Label)GROCERIES_WHITELABEL - Nova plataforma White Label que substituirá a antiga SM IFOOD - iFoodIFOOD_SHOP - iFood ShopO Campo de pagamento tem uma distinção no envio dos dados:
valorEntrega a integração do pedido para o parceiro cobrar do cliente e realizar a emissão do comprovante fiscal.O Campo Benefícios é um campo utilizado para trazer os descontos que são cadastrados como benefício no ifood, os benefícios podem ser patrocinados tanto pela iFood quanto pela loja Informações retornadas em cada campo:
patrocinio: Nome do patrocinador desse benefício, que devem ser tratados como:
valor: Valor total subsidiado pelo patrocinador.
tipo: Informação sobre onde o desconto será aplicado, que devem ser tratados como:
itemId: Index do item (id) sobre o qual o desconto deve ser aplicado. Somente para os casos em que o target é do tipo "ITEM" ou "PROGRESSIVE_DISCOUNT_ITEM"