logo
logo

Docs Pedidos - API

Como Funciona?

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:

EMITIDOEM SEPARAÇÃOSEPARADOFINALIZADO/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).

Criação do pedido e uso do receptor de pedidos

Siga o tutorial a abaixo para criar pedidos de teste e exporta-los na API

Validando a exportação de pedidos

Endpoints

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}

Referência do endpoint

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:

StatusDescrição do evento
CANPedido cancelado
DEVSupermercado: iniciou o processo de devolução do produto ao estoque
EMIO cliente realizou o pedido
FINCliente recebeu o produto
REPAguardando o cliente retirar os produtos com itens indisponíveis
RETAguardando o cliente retirar os produtos
ENPAguardando entrega dos produtos ao cliente com itens indisponíveis
ENTAguardando entrega dos produtos ao cliente
SEPSupermercado: Processo de separação do pedido iniciado
APAAguardando o pagamento
AMPAguardando Modificação de Pedido (Aprovação do cliente)
PE0O 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

Referência do endpoint

Rate Limit: 20 req/seg.

[
  {
    "id": 0 // ID DO EVENTO
  }
]

Esta chamada retorna o todas as informações do pedido.

Endpoint: /pedido/{cod_pedido}

Referência do endpoint

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
  }
}

Observações

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:

  • email
  • telefoneCelular

O 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 - iFood
  • IFOOD_SHOP - iFood Shop

O Campo de pagamento tem uma distinção no envio dos dados:

  • Para o modelo Marketplace (Pedido iFood e entrega do lojista) nós enviamos os dados de valor de entrega, devido a isso é necessario que seja somado o campo valorEntrega a integração do pedido para o parceiro cobrar do cliente e realizar a emissão do comprovante fiscal.
  • Para o modelo FullServices (Pedido e Entrega iFood) o valor da entrega não é apresentado no sistema, pois o valor é utilizado 100% pelo iFood.

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:

  • "IFOOD": O valor do(s) cupom(ns) deve(m) ser tratado(s) como um tipo de pagamento, pois o iFood fará o repasse desse valor para a loja.
  • "EXTERNAL": O valor do(s) cupom(ns) deve(m) ser tratado(s) como um tipo de pagamento, pois o iFood fará o repasse desse valor subsidiado pelo parceiro externo para a loja.
  • "MERCHANT": O valor do(s) cupom(ns) deve(m) ser tratado(s) como um desconto, pois o subsídio nesse caso é de responsabilidade do merchant (loja).

valor: Valor total subsidiado pelo patrocinador.

tipo: Informação sobre onde o desconto será aplicado, que devem ser tratados como:

  • "CART": Desconto é aplicado sobre o subtotal do carrinho (somatório dos itens do pedido).
  • "DELIVERY_FEE": Desconto é aplicado sobre a taxa de entrega.
  • "ITEM": Desconto é aplicado sobre um item específico do carrinho. O campo targetId específica sobre qual item o desconto foi aplicado. Essa especificação é feita na configuração da campanha.
  • "PROGRESSIVE_DISCOUNT_ITEM": Desconto progressivo em itens iguais do pedido, formando um combo.

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"