Introdução

A integração com a API do parceiro foi desenvolvida para simplificar e automatizar o processo de incorporação de pedidos provenientes de marketplaces de delivery, além de pedidos de mesa e comandas. Essa funcionalidade permite que parceiros interessados em integrar seus pedidos possam desenvolver ou atualizar suas APIs, facilitando a comunicação direta com o sistema Consumer.

Atualmente, o Consumer oferece suporte para a integração de quatro eventos principais:

  • Consulta de eventos: Esta função de polling permite ao Consumer verificar os eventos de venda disponíveis na API do parceiro.
  • Consulta de detalhes do pedido: Com base no ID do pedido, esta função possibilita a consulta à API do parceiro para obter todos os detalhes específicos de um pedido, incluindo informações sobre pagamento, produtos, clientes, e outros dados relevantes.
  • Envio de detalhes do pedido: O Consumer comunica a API do parceiro todos os detalhes específicos de um pedido, incluindo informações sobre pagamento, produtos, clientes, e outros dados relevante
  • Envio de atualização de status do pedido: O Consumer comunica à API do parceiro todas as atualizações de status, como confirmação, cancelamento, saída para entrega, e conclusão do pedido.

Nesta documentação, você encontrará informações detalhadas sobre cada função que o parceiro deve implementar para integrar seus pedidos ao Consumer de forma eficaz. Serão abordados os parâmetros de entrada, as respostas esperadas e exemplos práticos de uso.

O que é necessário para realizar a integração?

Para realizar a integração com o sistema Consumer, a empresa parceira precisa desenvolver uma API que siga as especificações descritas neste manual. Essa API permitirá que o Consumer consulte os eventos de pedidos diretamente na API do parceiro e troque informações de maneira eficiente e segura.

Os parceiros devem garantir que sua API esteja configurada para atender às quatros funcionalidades principais de integração listadas acima.

Atenção: Para utilizar ou testar a integração com a API do Parceiro, é necessário ter uma assinatura Premium do Consumer, que libera o acesso às funcionalidades avançadas. Se você for um terceiro, utilize a assinatura do cliente que o contratou para validar a integração, pois não há ambiente de desenvolvimento separado a implementação ocorre diretamente no ambiente do cliente.

Ciclo de Vida do Pedido

A integração é orientada por eventos, o que significa que um pedido pode passar por diversos eventos ao longo de seu ciclo de vida. Abaixo, você encontrará um diagrama ilustrando os possíveis status de um pedido.

Fluxo de Integração


Endpoint de Polling

O endpoint de polling permite que o Consumer consulte regularmente a API do parceiro para verificar a existência de novos pedidos, o Consumer vai realizar requisições periódicas ao endpoint de polling da API do parceiro.

Esse endpoint deve retornar código 200, com as informações iniciais do pedido.

Response Body Parameters

NameTypeDescriptionRequired
idstringIdentificador único do itemYes
orderIdstringIdentificador único do pedido ao qual o item pertenceYes
createdAtstring (DateTime)Data e hora de criação do item no formato UTC ISO 8601Yes
fullCodestringStatus completo ou descritivo do pedido (Ex.: “PLACED, ORDER_DETAILS_REQUESTED”)Yes
codestringCódigo reduzido que representa o status do pedido (Ex.: “PLC, ODR”)Yes
statusCodeintCódigo de status da resposta da API (0 normalmente indica sucesso)Yes
reasonPhrasestringFrase de motivo ou descrição adicional sobre o status (pode ser nulo)No

Exemplo:

{
"items": [
{
"id": "1b51b42a-f24d-4010-92b2-80bde30b6eb2",
"orderId": "e1f4e4fa-58dd-4d76-9d19-e8a00d47f905",
"createdAt": "2024-08-21T16:36:23.9733003Z",
"fullCode": "PLACED",
"code": "PLC"
}
],
"statusCode": 0,
"reasonPhrase": null
}

Endpoint de consulta de detalhes do pedido

O endpoint de consulta de detalhes do pedido permite que o Consumer tenha acesso às informações completas de um pedido específico. Antes de confirmar ou cancelar um pedido, o Consumer consulta esses detalhes para exibi-los ao cliente e, em seguida, realizar o atendimento. Para pedidos delivery isso garante que todos os itens estejam disponíveis em estoque e que a entrega possa ser efetuada no endereço do cliente.

Esse endpoint deve retornar um código 200, acompanhado de todas as informações detalhadas do pedido.

NameTypeDescriptionRequired
idstringIdentificador único do pedidoYes
displayIdstringID exibido do pedido (número do pedido)Yes
orderTypestringTipo de pedidoYes
salesChannelstringCanal de vendasYes
orderTimingstringTempo do pedidoYes
createdAtstringData e hora de criação do pedido no formato ISOYes
preparationStartDateTimestringData e hora de início da preparaçãoYes
merchant.idstringIdentificador único do estabelecimentoYes
merchant.namestringNome do estabelecimentoYes
total.subTotalfloatValor total dos produtos antes das taxasYes
total.deliveryFeefloatTaxa de entregaYes
total.orderAmountfloatValor total do pedido, incluindo taxasYes
total.benefitsfloatBenefícios ou descontos aplicadosNo
total.additionalFeesfloatTaxas adicionais, se houverNo
payments.methods.methodstringMétodo de pagamentoYes
payments.methods.typestringTipo de pagamentoYes
payments.methods.currencystringMoedaYes
payments.methods.valuefloatValor pago com este métodoYes
payments.methods.card.brandstringBandeira do cartão (se pagamento for com cartão)No
payments.pendingfloatValor pendente de pagamentoYes
payments.prepaidfloatValor pré-pagoNo
customer.idstringIdentificador único do clienteYes
customer.namestringNome do clienteYes
customer.phone.numberstringNúmero de telefone do clienteYes
customer.phone.localizerstringLocalizador ou código de verificação do telefoneYes
customer.phone.localizerExpirationstringData e hora de expiração do localizador no formato ISOYes
customer.documentNumberstringDocumento do clienteNo
delivery.modestringModo de entregaYes
delivery.deliveredBystringQuem realiza a entregaYes
delivery.pickupCodestringCódigo de retirada para o clienteYes
delivery.deliveryDateTimestringData e hora da entregaYes
delivery.deliveryAddress.countrystringPaísYes
delivery.deliveryAddress.statestringEstadoYes
delivery.deliveryAddress.citystringCidadeYes
delivery.deliveryAddress.postalCodestringCEPYes
delivery.deliveryAddress.streetNamestringNome da ruaYes
delivery.deliveryAddress.streetNumberstringNúmero da ruaYes
delivery.deliveryAddress.neighborhoodstringBairroYes
delivery.deliveryAddress.complementstringComplemento do endereçoNo
delivery.deliveryAddress.referencestringReferência do endereçoNo
items.idstringIdentificador único do itemYes
items.externalCodestringCódigo externo do produtoYes
items.namestringNome do produtoYes
items.quantityintQuantidade do produtoYes
items.unitPricefloatPreço unitário do produtoYes
items.totalPricefloatPreço total (preço unitário * quantidade)Yes
items.observationsstringObservações ou notasNo
items.imageUrlstringURL da imagem do produtoNo
items.options.namestringNome da opção do item (se houver)No
items.options.quantityintQuantidade da opçãoNo
items.options.unitPricefloatPreço unitário da opçãoNo
items.options.pricefloatPreço total da opçãoNo
items.options.externalCodestringCódigo externo da opçãoNo

Exemplo:

{
    “item”: {
        “benefits”: [
            {
            “target”: “CART”,
            “targetId”: “CART”,
            “value”: 10.00,
            “sponsorshipValues”: [
                { “name”: “MERCHANT”, “value”: 10.00, “description”: “Cupom de desconto” }
            ]
            }
        ],
        “orderType”: “DELIVERY”,
        “payments”: {
            “methods”: [
                {
                    “method”: “CREDIT”,
                    “prepaid”: false,
                    “currency”: “BRL”,
                    “type”: “OFFLINE”,
                    “value”: 51.97,
                    “cash”: null,
                    “card”: {
                        “brand”: “AMEX”
                    },
                    “wallet”: null
                }
            ],
            “pending”: 51.97,
            “prepaid”: 0
        },
        “merchant”: {
            “name”: “Teste – Consumer Soluções em Tecnologia Ltda”,
            “id”: “2eff44c8-ff06-4507-8233-e3f72c4e59af”
        },
        “salesChannel”: “PARTNER”,
        “picking”: null,
        “orderTiming”: “IMMEDIATE”,
        “createdAt”: “2024-08-21T18:03:48.4556777Z”,
        “total”: {
            “benefits”: 0,
            “deliveryFee”: 3.99,
            “orderAmount”: 51.97,
            “subTotal”: 47.98,
            “additionalFees”: 0
        },
        “preparationStartDateTime”: “2024-08-21T18:03:48.4556777Z”,
        “id”: “cfa5ed42-9bab-4f5e-bac3-83b9a7b3a738”,
        “displayId”: “8078”,
        “items”: [
            {
                “unitPrice”: 22,
                “quantity”: 2,
                “externalCode”: “112”,
                “totalPrice”: 44,
                “index”: 1,
                “unit”: “UN”,
                “ean”: null,
                “price”: 44,
                “observations”: “Observação produto principal”,
                “name”: “Alabama Apimentado”,
                “options”: null,
                “id”: “66f40253-7dfe-4f12-a742-e4f25293f968”,
                “uniqueId”: “75b55fd4-ee09-4ccb-946a-8f441d89d970”,
                “optionsPrice”: 0,
                “addition”: 0,
                “scalePrices”: null
            },
            {
                “unitPrice”: 30,
                “quantity”: 1,
                “externalCode”: “107”,
                “totalPrice”: 30,
                “index”: 2,
                “unit”: “UN”,
                “ean”: null,
                “price”: 30,
                “observations”: “Observação produto principal”,
                “name”: “Alabama Filé (exemplo perguntas)”,
                “options”: [
                    {
                        “unitPrice”: 0,
                        “unit”: “UN”,
                        “ean”: null,
                        “quantity”: 1,
                        “externalCode”: “WO”,
                        “price”: 0,
                        “name”: “Ao Ponto”,
                        “index”: 0,
                        “id”: “84a6cd76-8b02-4c70-ae4f-b4590672d50c”,
                        “addition”: 0
                    },
                    {
                        “unitPrice”: 3.5,
                        “unit”: “UN”,
                        “ean”: null,
                        “quantity”: 2,
                        “externalCode”: “7”,
                        “price”: 3.5,
                        “name”: “Bacon”,
                        “index”: 0,
                        “id”: “d94cd118-e3e8-45ee-a01a-ed66b583af2e”,
                        “addition”: 0
                    }
                ],
                “id”: “393140e8-adce-4cb5-9e27-1cd5ec41adad”,
                “uniqueId”: “f900907b-e51c-4d8d-829b-36a0a137f689”,
                “optionsPrice”: 36,
                “addition”: 0,
                “scalePrices”: null
            }
        ],
        “customer”: {
            “phone”: {
                “number”: “0800 012 3456”,
                “localizer”: “54639728”,
                “localizerExpiration”: “2024-08-21T19:03:48.4556777Z”
            },
            “documentNumber”: null,
            “name”: “PEDIDO DE TESTE – Fulano de Tal”,
            “ordersCountOnMerchant”: null,
            “id”: “910a258a-bcd3-4564-a62b-d29c61c94985”,
            “segmentation”: “Cliente”
        },
        “extraInfo”: null,
        “additionalFees”: null,
        “delivery”: {
            “mode”: “DEFAULT”,
            “pickupCode”: “1492”,
            “deliveredBy”: “Partner”,
            “deliveryAddress”: {
                “reference”: “TESTE”,
                “country”: “XX”,
                “streetName”: “Rua TESTE”,
                “formattedAddress”: “Rua TESTE, 999999”,
                “streetNumber”: “999999”,
                “city”: “TESTE”,
                “postalCode”: “99999999”,
                “coordinates”: {
                    “latitude”: 0,
                    “longitude”: 0
                },
                “neighborhood”: “Bairro TESTE”,
                “state”: “XX”,
                “complement”: “Complemento TESTE”
            },
            “deliveryDateTime”: “2024-08-21T18:03:48.4556777Z”,
            “observations”: null
        },
        “schedule”: null,
        “indoor”: null,
        “takeout”: null,
        “additionalInfometadata”: null
    },
    “statusCode”: 0,
    “reasonPhrase”: null
}

Endpoint de envio dos detalhes do pedido

Este endpoint é responsável por enviar os detalhes de um pedido específico. Ao receber a requisição, o Consumer deve responder com todas as informações completas e atualizadas do respectivo pedido.

Inicialmente, o parceiro envia um evento por meio do polling da API do parceiro, com o objetivo de requisitar os detalhes do pedido.

Inicialmente, o parceiro envia um evento por meio do polling da API do parceiro, com o objetivo de requisitar os detalhes do pedido.

Request Path Parameter

NameTypeDescriptionRequired
OrderIdstringIdentificador único do pedidoYes
EventCodestringCódigo reduzido que representa o evento (Ex.: “ODR”)Yes
EventFullCodestringDescrição completa do evento (Ex.: “ORDER_DETAILS_REQUESTED”)Yes

Request body

{
"OrderId": "cfa5ed42-9bab-4f5e-bac3-83b9a7b3a738",
"EventCode": "ODR",
"EventFull": "Pedido finalizado"
}

Response Body Parameters

NameTypeDescriptionRequired
idstringIdentificador único do eventoYes
orderIdstringIdentificador único do pedido ao qual o evento está relacionadoYes
createdAtstring (DateTime)Data e hora de criação do evento no formato UTC ISO 8601Yes
fullCodestringDescrição completa do status ou evento (Ex.: “ORDER_DETAILS_REQUESTED”)Yes
codestringCódigo reduzido que representa o status ou evento (Ex.: “ODR”)Yes

Response body:

{
"id": "1e97972c-e915-0h0b-b8f4-43dc1401580f",
"orderId": "e7c5fdbb-a3e1-0h0b-a22d-a99c734ef491",
"createdAt": "2025-05-15T20:30:56.5315412Z",
"fullCode": "ORDER_DETAILS_REQUESTED",
"code": "ODR"
}

Ao receber esse evento no polling, o Consumer deve, então, chamar o endpoint definido na API do parceiro, enviando todos os detalhes do pedido por meio de uma requisição POST

NameTypeDescriptionRequired
IdstringID único do pedidoYes
TypestringTipo do pedido (“DELIVERY”, “INDOOR”, etc.)Yes
DisplayIdstringNúmero do pedido visível ao clienteYes
SourceAppIdstringID da aplicação origemNo
SalesChannelstringCanal de venda (“DeliveryHub”, “Desktop”, etc.)No
VirtualBrandstringNome da marca ou unidade virtualNo
CreatedAtdatetimeData/hora de criação do pedidoYes
LastEventstringÚltimo evento do pedido (“CREATED”, etc.)No
OrderTimingstringTipo de entrega (“INSTANT”, “SCHEDULED”)Yes
PreparationStartDateTimedatetimeData/hora de início do preparoYes
MerchantobjectInformação do MerchantYes
Itensarray de objectProdutos e informaçõesYes
OtherFeesobjectInformações relacionadas ao clienteNo
TotalobjectConjunto de campos com a soma dos valores descritos anteriormente na ordemYes
PaymentsobjectToda a descrição do pagamento, como métodos, pré-pagamentos, troco, etcYes
CustomerobjectInformações para pedidos agendadosNo
OrderPrioritystringPrioridade do pedido (“PRIORITY1”, etc.)No
DeliveryobjectInformações para pedidos de ENTREGANo
ExtraInfostringInformações adicionais ou observaçõesNo
  • Merchant
NameTypeDescriptionRequired
IdstringID do estabelecimentoYes
NamestringNome do estabelecimentoYes

  • Itens
NameTypeDescriptionRequired
IdstringID do item (contém informações internas serializadas)Yes
IndexintegerOrdem do itemNo
NamestringNome do produtoYes
ExternalCodestringCódigo interno do produtoYes
QuantitynumberQuantidadeYes
SpecialInstructionsstringObservaçõesNo
UnitPriceobjectPreço unitárioYes
UnitPrice: ValueNumberValor unitárioYes
UnitPrice: CurrencyStringCódigo de moedaYes
OptionsPriceobjectPreço dos opcionaisNo
OptionsPrice: ValueNumberValorYes
OptionsPrice: CurrencyStringCódigo da moedaYes
SubtotalPriceobjectSubtotal (produto sem opcionais)No
SubtotalPrice: ValueNumberValorYes
SubtotalPrice: CurrencyStringCódigo da moedaYes
TotalPriceobjectTotal (produto + opcionais)Yes
TotalPrice: ValueNumberValorYes
TotalPrice: CurrencyStringCódigo da moedaYes
IndoorobjectPropriedades relacionadas ao item para quando o pedido é do tipoINDOORNo
Optionsarray
Lista de complementos ou divisões do produto. Segue mesma linha de raciocínio dos Itens
No
  • Otherfees
NameTypeDescriptionRequired
NamestringNome da taxa (ex.: “TaxaEntrega”)Yes
TypestringTipo da taxa (“DELIVERY_FEE”, etc.)Yes
PriceobjectValor da taxaYes
Price: ValuenumberValorYes
Price: CurrencystringCódigo de moedaYes
ReceivedBystringQuem recebe a taxa (“MERCHANT”, “PARTNER”)Yes
receiverDocumentstringDocumentoNo
observationstringAlgum comentárioNo
  • Total
NameTypeDescriptionRequired
ItemsPriceobjectSoma dos itensYes
OtherFeesobjectSoma das taxasYes
DiscountobjectTotal de descontosYes
OrderAmountobjectValor total do pedidoYes
  • Payments
NameTypeDescriptionRequired
PrepaidnumberValor já pagoYes
PendingnumberValor pendenteYes
MethodsarrayDetalhes dos métodos de pagamentoYes
Methods: valuenumberValor do preçoYes
Methods: currencystringO código de moedaYes
Methods: typestringEnum:
“PREPAID” “PENDING” “PREPAID” se o pagamento foi feito através de alguma plataforma, ou PENDING se será pago na entrega ou em dinheiro, por exemplo.
Yes
Methods: methodstring
Enum:
"CREDIT" "DEBIT" "MEAL_VOUCHER" "FOOD_VOUCHER" "DIGITAL_WALLET" "PIX" "CASH" "CREDIT_DEBIT" "COUPON" "REDEEM" "PREPAID_REDEEM" "OTHER”
Yes
Methods: brandstringEnum:
"VISA" "MASTERCARD" "DINERS" "AMEX" "HIPERCARD" "ELO" "AURA" "DISCOVER" "VR_BENEFICIOS" "SODEXO" "TICKET" "GOOD_CARD" "BANESCARD" "SOROCARD" "POLICARD" "VALECARD" "AGICARD" "JCB" "CREDSYSTEM" "CABAL" "GREEN_CARD" "VEROCHEQUE""AVISTA" "OTHER”
No
Methods: methodInfostringInformações adicionais sobre o método de pagamento. Podem ser usadas para indicar informações úteis sobre o método de pagamento escolhido, como o nome da carteira ou um número de autorizaçãoNo
Methods: transactionobjectDetalhes de autorização e identificação intermediária para transações de cartão de crédito e/ou subsídiosNo
Transaction: authorizationCodestringNúmero de autorização de transação de cartão de crédito e/ou subsídioNo
Transaction: acquirerDocumentstringDocumento do Intermediário de Transação (agência, plataforma de entrega, marketplace e similares) de serviços e negóciosNo
Methods: changeFornumberNúmero < decimal > Indica o total que será pago em dinheiro pelo cliente e que deve ser considerado para o cálculo do trocoNo
  • Customer
NameTypeDescriptionRequired
IdstringID do clienteYes
NamestringNomeYes
PhonestringTelefoneYes
Phone: NumberstringNumeroYes
Phone: extensionstringNo
OrdersCountOnMerchantintTotal de pedidos do cliente no merchantYes
documentNumberstringDocumento do clienteNo
emailstringEmailNo
  • Delivery
NameTypeDescriptionRequired
DeliveredBystringQuem realiza a entregaYes
EstimatedDeliveryDateTimedatetimePrevisão de entregaYes
DeliveryAddressobjectEndereço de entregaYes
deliveryDateTimestringData de entregaNo
pickupCodestring
Ele fornece ao comerciante um código para que o entregador possa retirar o pedido.
 No

Request Body:

{
"Id": "537976a8-0b48-426c-8369-3d5adf7dd5fe",
"Type": "DELIVERY",
"DisplayId": "32",
"SourceAppId": "200971",
"SalesChannel": "DeliveryHub",
"VirtualBrand": "Teste",
"CreatedAt": "2025-05-22T18:04:39Z",
"LastEvent": "CREATED",
"OrderTiming": "INSTANT",
"PreparationStartDateTime": "2025-05-22T18:05:04Z",
"Merchant": {
"Id": "2eff44c8-ff06-4507-8233-e3f72c4e59af",
"Name": "N/D"
},
"Items": [
{
"Id":"{\"ItemID\":739463,\"ParentItemID\":null,\"ItemSource\":\"DeliveryHub\",\"Type\":\"Product\"}",
"Index": 0,
"Name": "Pizza BACALHAU BROTO",
"ExternalCode": "112",
"Unit": "UN",
"Ean": null,
"Quantity": 2,
"SpecialInstructions": "Observação produto principal",
"UnitPrice": {
"Value": 22,
"Currency": "BRL"
},
"OriginalPrice": null,
"ScalePriceApplied": false,
"OptionsPrice": {
"Value": 0,
"Currency": "BRL"
},
"SubtotalPrice": {
"Value": 44,
"Currency": "BRL"
},
"TotalPrice": {
"Value": 44,
"Currency": "BRL"
},
"Indoor": null,
"Options": [],
"ConsumerItemInfo": null
},
{
"Id":"{\"ItemID\":739464,\"ParentItemID\":null,\"ItemSource\":\"DeliveryHub\",\"Type\":\"Product\"}",
"Index": 1,
"Name": "Pizza AZEITONA GRANDE",
"ExternalCode": "107",
"Unit": "UN",
"Ean": null,
"Quantity": 1,
"SpecialInstructions": "Sim, quero ketchup, Maionese Temperada, Ao Ponto, Observação produto principal",
"UnitPrice": {
"Value": 30,
"Currency": "BRL"
},
"OriginalPrice": null,
"ScalePriceApplied": false,
"OptionsPrice": {
"Value": 7.5,
"Currency": "BRL"
},
"SubtotalPrice": {
"Value": 30,
"Currency": "BRL"
},
"TotalPrice": {
"Value": 37.5,
"Currency": "BRL"
},
"Indoor": null,
"Options": [
{
"Index": 0,
"Id":"{\"ItemID\":739465,\"ParentItemID\":739464,\"ItemSource\":\"DeliveryHub\",\"Type\":\"Complement\"}",
"Name": "* Excluído * Borda cheddar",
"ExternalCode": "7",
"Unit": "UN",
"Ean": null,
"Quantity": 2,
"UnitPrice": {
"Value": 3.5,
"Currency": "BRL"
},
"OriginalPrice": null,
"SubtotalPrice": {
"Value": 7,
"Currency": "BRL"
},
"TotalPrice": {
"Value": 7,
"Currency": "BRL"
},
"SpecialInstructions": "",
"ConsumerItemInfo": null
},
{
"Index": 1,
"Id":"{\"ItemID\":739466,\"ParentItemID\":739464,\"ItemSource\":\"DeliveryHub\",\"Type\":\"Product\"}",
"Name": "Pizza CALABRESA ESPECIAL BROTO",
"ExternalCode": "142",
"Unit": "UN",
"Ean": null,
"Quantity": 1,
"UnitPrice": {
"Value": 0.5,
"Currency": "BRL"
},
"OriginalPrice": null,
"SubtotalPrice": {
"Value": 0.5,
"Currency": "BRL"
},
"TotalPrice": {
"Value": 0.5,
"Currency": "BRL"
},
"SpecialInstructions": "",
"ConsumerItemInfo": null
}
],
"ConsumerItemInfo": null
},
{
"Id":"{\"ItemID\":739467,\"ParentItemID\":null,\"ItemSource\":\"DeliveryHub\",\"Type\":\"Product\"}",
"Index": 2,
"Name": "Pizza BACON GRANDE",
"ExternalCode": "110",
"Unit": "UN",
"Ean": null,
"Quantity": 1,
"SpecialInstructions": "Maionese Temperada, Ao Ponto, Observação produto principal",
"UnitPrice": {
"Value": 35,
"Currency": "BRL"
},
"OriginalPrice": null,
"ScalePriceApplied": false,
"OptionsPrice": {
"Value": 34.5,
"Currency": "BRL"
},
"SubtotalPrice": {
"Value": 35,
"Currency": "BRL"
},
"TotalPrice": {
"Value": 69.5,
"Currency": "BRL"
},
"Indoor": null,
"Options": [
{
"Index": 2,
"Id":"{\"ItemID\":739468,\"ParentItemID\":739467,\"ItemSource\":\"DeliveryHub\",\"Type\":\"Complement\"}",
"Name": "* Excluído * Borda cheddar",
"ExternalCode": "7",
"Unit": "UN",
"Ean": null,
"Quantity": 2,
"UnitPrice": {
"Value": 3.5,
"Currency": "BRL"
},
"OriginalPrice": null,
"SubtotalPrice": {
"Value": 7,
"Currency": "BRL"
},
"TotalPrice": {
"Value": 7,
"Currency": "BRL"
},
"SpecialInstructions": "",
"ConsumerItemInfo": null
},
{
"Index": 3,
"Id":"{\"ItemID\":739469,\"ParentItemID\":739467,\"ItemSource\":\"DeliveryHub\",\"Type\":\"Product\"}",
"Name": "Pizza CALABRESA ESPECIAL GRANDE",
"ExternalCode": "143",
"Unit": "UN",
"Ean": null,
"Quantity": 1,
"UnitPrice": {
"Value": 0.5,
"Currency": "BRL"
},
"OriginalPrice": null,
"SubtotalPrice": {
"Value": 0.5,
"Currency": "BRL"
},
"TotalPrice": {
"Value": 0.5,
"Currency": "BRL"
},
"SpecialInstructions": "",
"ConsumerItemInfo": null
},
{
"Index": 4,
"Id":"{\"ItemID\":739470,\"ParentItemID\":739467,\"ItemSource\":\"DeliveryHub\",\"Type\":\"Product\"}",
"Name": "Pizza BACALHAU MEDIA",
"ExternalCode": "114",
"Unit": "UN",
"Ean": null,
"Quantity": 1,
"UnitPrice": {
"Value": 5,
"Currency": "BRL"
},
"OriginalPrice": null,
"SubtotalPrice": {
"Value": 5,
"Currency": "BRL"
},
"TotalPrice": {
"Value": 5,
"Currency": "BRL"
},
"SpecialInstructions": "Copo com limão e gelo",
"ConsumerItemInfo": null
},
{
"Index": 5,
"Id": "{\"ItemID\":739471,\"ParentItemID\":739467,\"ItemSource\":\"DeliveryHub\",\"Type\":\"Product\"}",
"Name": "Pizza BACALHAU GRANDE",
"ExternalCode": "113",
"Unit": "UN",
"Ean": null,
"Quantity": 1,
"UnitPrice": {
"Value": 15,
"Currency": "BRL"
},
"OriginalPrice": null,
"SubtotalPrice": {
"Value": 15,
"Currency": "BRL"
},
"TotalPrice": {
"Value": 22,
"Currency": "BRL"
},
"SpecialInstructions": "Dividir a porção em dois",
"ConsumerItemInfo": null
},
{
"Index": 6,
"Id":"{\"ItemID\":739472,\"ParentItemID\":739471,\"ItemSource\":\"DeliveryHub\",\"Type\":\"Complement\"}",
"Name": "* Excluído * Borda cheddar",
"ExternalCode": "7",
"Unit": "UN",
"Ean": null,
"Quantity": 1,
"UnitPrice": {
"Value": 7,
"Currency": "BRL"
},
"OriginalPrice": null,
"SubtotalPrice": {
"Value": 7,
"Currency": "BRL"
},
"TotalPrice": {
"Value": 7,
"Currency": "BRL"
},
"SpecialInstructions": "",
"ConsumerItemInfo": null
}
],
"ConsumerItemInfo": null
}
],
"OtherFees": [
{
"Name": "TaxaEntrega",
"Type": "DELIVERY_FEE",
"ReceivedBy": "MERCHANT",
"ReceiverDocument": null,
"Price": {
"Value": 3.99,
"Currency": "BRL"
},
"Observation": null
}
],
"Discounts": [],
"Total": {
"ItemsPrice": {
"Value": 151,
"Currency": "BRL"
},
"OtherFees": {
"Value": 3.99,
"Currency": "BRL"
},
"Discount": {
"Value": 0,
"Currency": "BRL"
},
"OrderAmount": {
"Value": 154.99,
"Currency": "BRL"
}
},
"Payments": {
"Prepaid": 0,
"Pending": 103.02,
"Methods": [
{
"Value": 51.97,
"Currency": "BRL",
"Type": "PREPAID",
"Method": "CREDIT",
"Brand": "OTHER",
"MethodInfo": "American Express",
"Transaction": {
"AuthorizationCode": null,
"AcquirerDocument": "228908"
},
"ChangeFor": 0
}
]
},
"TaxInvoice": null,
"Customer": {
"Id": "910a258a-bcd3-4564-a62b-d29c61c94985",
"Name": "PEDIDO DE TESTE - Fulano de Tal",
"DocumentNumber": null,
"Phone": {
"Number": "N/D",
"Extension": null
},
"Email": null,
"OrdersCountOnMerchant": 0
},
"Schedule": null,
"OrderPriority": "PRIORITY1",
"Delivery": {
"DeliveredBy": "MERCHANT",
"DeliveryAddress": {
"Country": "BR",
"State": "XX",
"City": "TESTE",
"District": "TESTE",
"Street": "Rua TESTE",
"Number": "999999",
"Complement": "Complemento TESTE",
"Reference": "TESTE",
"FormattedAddress": "Rua TESTE, 999999, Complemento TESTE, Bairro TESTE - TESTE, XX - Brazil",
"PostalCode": "99999999",
"Coordinates": {
"Latitude": 0,
"Longitude": 0
}
},
"EstimatedDeliveryDateTime": "2025-05-22T18:03:55Z",
"DeliveryDateTime": null,
"PickupCode": null
},
"Takeout": null,
"Indoor": null,
"SendPreparing": false,
"SendDelivered": false,
"SendPickedUp": false,
"SendTracking": false,
"ExtraInfo": "0800 012 3456 ID: 54639728 | Teste de Observação Delivery"
}

Response Body Parameters

NameTypeDescriptionRequired
statusCodeintCódigo de status da resposta da API (0 normalmente indica sucesso)Yes
reasonPhrasestringFrase de motivo ou descrição adicional sobre o status (pode ser nulo)No

Response Body:

{
"statusCode": 0,
"reasonPhrase": "fb82376e-db8c-4bca-85ec-020322e9b1b4 enviado com sucesso."
}

Endpoint de alteração de status do pedido

Após obter os detalhes do pedido e exibir as informações na tela, o Consumer permite que o usuário tome uma decisão: confirmar ou cancelar o pedido.

Depois que o usuário decide, o Consumer deve enviar a alteração de status correspondente para a API do parceiro.

Os status possíveis incluem:

  • Confirmado: O pedido foi confirmado pelo usuário.
  • Cancelado: O pedido foi cancelado pelo usuário.
  • Pronto para Retirada: O pedido está pronto para ser retirado pelo cliente.
  • Saiu para Entrega: O pedido foi despachado para entrega no endereço do cliente.
  • Finalizado: O pedido foi concluído com sucesso.

Esses status são enviados para a API do parceiro para refletir o progresso do pedido em tempo real.

Request Path Parameter

NameTypeDescriptionRequired
orderIdstringID do pedidoYes
statusstringStatus do pedidoYes
justificationstringJustificativa da alteraçãoNo

Request body

{
"orderId": "cfa5ed42-9bab-4f5e-bac3-83b9a7b3a738",
"status": "CONCLUDED",
"justification": "Pedido finalizado"
}

Response Body Parameters

NameTypeDescriptionRequired
statusCodeintegerCódigo de status da operação (ex.: 0 para sucesso)Yes
reasonPhrasestringMensagem descritiva da operaçãoNo

Response body

{
"statusCode": 0,
"reasonPhrase": "cfa5ed42-9bab-4f5e-bac3-83b9a7b3a738 alterado para 'CONCLUDED': Pedido finalizado."
}

Integração dos produtos do pedido

Para garantir uma integração correta dos itens do pedido no Consumer, o primeiro passo essencial é assegurar o preenchimento dos códigos de PDV na plataforma do parceiro.

A API do parceiro deve retornar o código PDV de cada produto ou complemento do pedido no “externalCode“, permitindo que o Consumer identifique claramente todos os itens contidos nele.

O Consumer simplifica esse processo, exibindo os códigos de maneira intuitiva e acessível, facilitando a integração e a gestão dos itens.

Para visualizar o código PDV de cada produto, acesse o menu:

PRODUTOS → PRODUTOS

Para produtos por tamanho marque a opção “Detalhar todos os tamanhos 

Nessa tela é possível identificar o código PDV de todos os produtos, e caso necessário exportar para um arquivo “.xls”.

Para visualizar o código PDV de cada complemento, acesse o menu:

PRODUTOS → COMPLEMENTOS

Também é possível visualizar e exportar toda a lista de códigos acessando o menu:

APPS → Pedidos Online → Exportar Cardápio

A seguir, apresentamos alguns exemplos com diferentes tipos de produtos:

Produto simples

{
...
"items": [
{
"unitPrice": 22,
"quantity": 2,
"externalCode": "112",
"totalPrice": 44,
"index": 1,
"unit": "UN",
"ean": null,
"price": 44,
"observations": "Observação produto principal",
"imageUrl": "https://seusite.com.br/image/e078d2e1-0af0-49c3-ba0d-ea4effffbd54/202305121137_XIHJ_i.jpg",
"name": "Alabama Apimentado",
"options": null,
"id": "31223e2c-c8a4-4018-b7fc-e765b9efaf4e",
"uniqueId": "110d3f32-0359-4ea5-bc7e-05b0ef72e513",
"optionsPrice": 0,
"addition": 0,
"scalePrices": null
}
]
...
}

Produto com complementos e observações como opções

{
...
"items": [
{
"unitPrice": 30,
"quantity": 1,
"externalCode": "107",
"totalPrice": 30,
"index": 2,
"unit": "UN",
"ean": null,
"price": 30,
"observations": "Observação produto principal",
"imageUrl": "https://seusite.com.br/image/e078d2e1-0af0-49c3-ba0d-ea4effffbd54/202305121137_XIHJ_i.jpg",
"name": "Alabama Filé (exemplo perguntas)",
"options": [
{
"unitPrice": 0,
"unit": "UN",
"ean": null,
"quantity": 1,
"externalCode": "WO",
"price": 0,
"name": "Ao Ponto",
"index": 0,
"id": "7ff678cc-7ef0-45b2-b21f-7e90e0b068aa",
"addition": 0
},
{
"unitPrice": 0,
"unit": "UN",
"ean": null,
"quantity": 1,
"externalCode": "WO",
"price": 0,
"name": "Maionese Temperada",
"index": 0,
"id": "dcf7576c-bcc1-431b-bd3b-10594fbde0b1",
"addition": 0
},
{
"unitPrice": 0,
"unit": "UN",
"ean": null,
"quantity": 1,
"externalCode": "WO",
"price": 0,
"name": "Sim, quero ketchup",
"index": 0,
"id": "1b9364ec-dbe6-4c48-a2fb-f4325307a06c",
"addition": 0
},
{
"unitPrice": 3.5,
"unit": "UN",
"ean": null,
"quantity": 2,
"externalCode": "7",
"price": 3.5,
"name": "Bacon",
"index": 0,
"id": "d7b6ebff-c40f-44e8-9834-05a534457c71",
"addition": 0
},
{
"unitPrice": 0.5,
"unit": "UN",
"ean": null,
"quantity": 1,
"externalCode": "142",
"price": 0.5,
"name": "Alface",
"index": 0,
"id": "b99db576-170e-49f4-9975-e5f30901c327",
"addition": 0
}
],
"id": "ae64778e-8315-40e9-890b-30a1003f785b",
"uniqueId": "86cc8c5e-8d04-43c3-9987-9be1171e59fe",
"optionsPrice": 36,
"addition": 0,
"scalePrices": null
}
]
...
}

Produto com complementos, observações e outros produtos como opções

{
...
"items": [
{
"unitPrice": 35,
"quantity": 1,
"externalCode": "110",
"totalPrice": 35,
"index": 2,
"unit": "UN",
"ean": null,
"price": 35,
"observations": "Observação produto principal",
"imageUrl": "https://seusite.com.br/image/e078d2e1-0af0-49c3-ba0d-ea4effffbd54/202305121137_XIHJ_i.jpg",
"name": "Alabama Bacon Duplo",
"options": [
{
"unitPrice": 0,
"unit": "UN",
"ean": null,
"quantity": 1,
"externalCode": "WO",
"price": 0,
"name": "Ao Ponto",
"index": 0,
"id": "784f1edc-c54d-404f-aade-3dd92131695a",
"addition": 0
},
{
"unitPrice": 0,
"unit": "UN",
"ean": null,
"quantity": 1,
"externalCode": "WO",
"price": 0,
"name": "Maionese Temperada",
"index": 0,
"id": "31b31dc1-8c1b-4564-afef-e820de4acea8",
"addition": 0
},
{
"unitPrice": 3.5,
"unit": "UN",
"ean": null,
"quantity": 2,
"externalCode": "7",
"price": 3.5,
"name": "Bacon",
"index": 0,
"id": "3722d2f3-d15e-4388-a0ab-01ef4a99ae35",
"addition": 0
},
{
"unitPrice": 0.5,
"unit": "UN",
"ean": null,
"quantity": 1,
"externalCode": "143",
"price": 0.5,
"name": "Cebola",
"index": 0,
"id": "3cb78b64-8914-4338-82a9-60a2e9d01598",
"addition": 0
},
{
"unitPrice": 5,
"unit": "UN",
"ean": null,
"quantity": 1,
"externalCode": "114",
"price": 5,
"name": "Coca-Cola 350ml",
"index": 0,
"id": "08ec8e17-3e6c-4a55-9287-27e02951fa67",
"addition": 0
},
{
"unitPrice": 0,
"unit": "UN",
"ean": null,
"quantity": 1,
"externalCode": "WO",
"price": 0,
"name": "Copo com limão e gelo",
"index": 0,
"id": "c0fd1a19-534b-47b7-996c-4f595f427b61",
"addition": 0
},
{
"unitPrice": 15,
"unit": "UN",
"ean": null,
"quantity": 1,
"externalCode": "113",
"price": 15,
"name": "Batata Frita Tradicional",
"index": 0,
"id": "29579ed7-6986-4b63-8311-474f6efa597e",
"addition": 0
},
{
"unitPrice": 0,
"unit": "UN",
"ean": null,
"quantity": 1,
"externalCode": "WO",
"price": 0,
"name": "Dividir a porção em dois",
"index": 0,
"id": "700ec387-9163-4103-a3e2-3e47e1c3340f",
"addition": 0
},
{
"unitPrice": 7,
"unit": "UN",
"ean": null,
"quantity": 1,
"externalCode": "7",
"price": 7,
"name": "Bacon",
"index": 0,
"id": "39c7cf96-a2fb-4ff5-a451-1b5082928b03",
"addition": 0
}
],
"id": "bf052fec-8f29-42c0-a863-d711c94a2dfa",
"uniqueId": "2d693a11-daa6-472e-a6bf-2a1b8597f0b9",
"optionsPrice": 36,
"addition": 0,
"scalePrices": null
}
]
...
}

Produto por tamanho com múltiplos sabores e com complementos

{
...
"items": [
{
"unitPrice": 0,
"quantity": 1,
"externalCode": "T8",
"totalPrice": 36,
"index": 2,
"unit": "UN",
"ean": null,
"price": 0,
"observations": "Observação produto principal",
"imageUrl": "https://seusite.com.br/image/e078d2e1-0af0-49c3-ba0d-ea4effffbd54/202305121137_XIHJ_i.jpg",
"name": "Pizza Grande",
"options": [
{
"unitPrice": 18,
"unit": "UN",
"ean": null,
"quantity": 1,
"externalCode": "55",
"price": 18,
"name": "1/2 Calabresa",
"index": 3,
"id": "4727afa0-9542-4474-9aac-32bb4a353305",
"addition": 0.5
},
{
"unitPrice": 17.5,
"unit": "UN",
"ean": null,
"quantity": 1,
"externalCode": "133",
"price": 18,
"name": "1/2 Baiana",
"index": 4,
"id": "f3acf9bd-4529-4d5d-b8e3-6cbb90d85556",
"addition": 0.5
},
{
"unitPrice": 5,
"unit": "UN",
"ean": null,
"quantity": 1,
"externalCode": "4",
"price": 5,
"name": "Borda Catupiry",
"index": 0,
"id": "7914333e-bf6c-4a70-a7eb-739c6306c061",
"addition": 0
}
],
"id": "46e8d008-21c9-4e3b-9722-13335abecbd7",
"uniqueId": "58a97023-5c85-4136-b1ac-ca6c6235583a",
"optionsPrice": 36,
"addition": 0,
"scalePrices": null
}
]
...
}

Configuração no Consumer

Após a conclusão do desenvolvimento e da implementação dos endpoints por parte da empresa parceira, é necessário proceder com a configuração no Consumer. Para isso, solicitamos que o parceiro compartilhe o token de acesso e as URLs dos endpoints com o estabelecimento.

Com essas informações, basta seguir as orientações abaixo para ativar a integração.

Acesse o menu:

APPS → Pedidos Online → API do parceiro

Preencha todos os campos com as informações fornecidas pela empresa parceira, seguindo o exemplo abaixo:

Atenção: preencha o campo “token” com o token fornecido pelo parceiro para garantir a correta identificação da loja e uma integração segura e eficiente com a API do parceiro.

Após preencher e validar todas as informações, a opção para ativar a integração na fila de pedidos online estará disponível.

Acesse o menu:

Principal→ Fila de Pedidos

Ative a fila de pedidos e o Consumer estará pronto para receber os pedidos do parceiro.

Após ativar a fila de pedidos online, os pedidos do parceiro serão integrados e exibidos para atendimento.

Para pedidos do tipo delivery, após atender o pedido ele será listado na tela de pedidos delivery

Para enviar as alterações de status dos pedidos delivery para a API do parceiro, basta selecionar o status desejado na tela do pedido, após isso o Consumer enviará automaticamente a atualização para a API do parceiro.

Pedidos para Mesas e Comandas

A integração também permite o envio de pedidos para mesas e comandas, oferecendo maior flexibilidade no gerenciamento de pedidos. Com esse tipo de pedido, é possível adicionar diferentes itens a uma mesa ou comanda em momentos distintos, conforme o cliente faz novos pedidos.

Essa funcionalidade permite um fluxo contínuo de pedidos até que o cliente decida encerrar sua conta e efetuar o pagamento.

Essa abordagem é ideal para estabelecimentos onde os clientes permanecem por períodos prolongados e fazem pedidos de forma gradual, como em refeições completas, encontros sociais, ou eventos.

Quando um pedido integrado for recebido, ele será exibido na fila de pedidos para atendimento. Após ser atendido, a mesa correspondente será aberta com os itens registrados.

Caso a mesa já esteja aberta, os itens enviados serão adicionados à mesa existente.

Para que o Consumer identifique corretamente os pedidos como mesas e comandas, o endpoint de detalhes do pedido deve retornar um código 200, juntamente com todas as informações detalhadas do pedido.

Exemplo:

{
    “item”: {
        “benefits”: [
            {
            “target”: “CART”,
            “targetId”: “CART”,
            “value”: 10.00,
            “sponsorshipValues”: [
                { “name”: “MERCHANT”, “value”: 10.00, “description”: “Cupom de desconto” }
            ]
            }
        ],
        “orderType”: “INDOOR”,
        “payments”: {
            “methods”: [
                {
                    “method”: “CREDIT”,
                    “prepaid”: false,
                    “currency”: “BRL”,
                    “type”: “OFFLINE”,
                    “value”: 51.97,
                    “cash”: null,
                    “card”: {
                        “brand”: “AMEX”
                    },
                    “wallet”: null
                }
            ],
            “pending”: 51.97,
            “prepaid”: 0
        },
        “merchant”: {
            “name”: “Teste – Consumer Soluções em Tecnologia Ltda”,
            “id”: “2eff44c8-ff06-4507-8233-e3f72c4e59af”
        },
        “salesChannel”: “PARTNER”,
        “picking”: null,
        “orderTiming”: “IMMEDIATE”,
        “createdAt”: “2024-08-27T14:37:05.0380282Z”,
        “total”: {
            “benefits”: 0,
            “deliveryFee”: 3.99,
            “orderAmount”: 51.97,
            “subTotal”: 47.98,
            “additionalFees”: 0
        },
        “preparationStartDateTime”: “2024-08-27T14:37:05.0380282Z”,
        “id”: “e52250f1-9161-49bf-b0df-b6ed884dbe3a”,
        “displayId”: “8078”,
        “items”: [
            {
                “unitPrice”: 22,
                “quantity”: 2,
                “externalCode”: “112”,
                “totalPrice”: 44,
                “index”: 1,
                “unit”: “UN”,
                “ean”: null,
                “price”: 44,
                “observations”: “Observação produto principal”,
                “name”: “Alabama Apimentado”,
                “options”: null,
                “id”: “a87245f8-1216-4183-bd5f-499a057684f5”,
                “uniqueId”: “df26480a-78be-40f1-b978-25ea123b312a”,
                “optionsPrice”: 0,
                “addition”: 0,
                “scalePrices”: null
            },
            {
                “unitPrice”: 30,
                “quantity”: 1,
                “externalCode”: “107”,
                “totalPrice”: 30,
                “index”: 2,
                “unit”: “UN”,
                “ean”: null,
                “price”: 30,
                “observations”: “Observação produto principal”,
                “name”: “Alabama Filé (exemplo perguntas)”,
                “options”: [
                    {
                        “unitPrice”: 0,
                        “unit”: “UN”,
                        “ean”: null,
                        “quantity”: 1,
                        “externalCode”: “WO”,
                        “price”: 0,
                        “name”: “Ao Ponto”,
                        “index”: 0,
                        “id”: “77f5cf34-c8cf-4b7e-b019-2b6d926b555b”,
                        “addition”: 0
                    },
                    {
                        “unitPrice”: 0,
                        “unit”: “UN”,
                        “ean”: null,
                        “quantity”: 1,
                        “externalCode”: “WO”,
                        “price”: 0,
                        “name”: “Maionese Temperada”,
                        “index”: 0,
                        “id”: “f2c57623-55b6-4fda-aef5-8814c2f7b304”,
                        “addition”: 0
                    },
                    {
                        “unitPrice”: 0,
                        “unit”: “UN”,
                        “ean”: null,
                        “quantity”: 1,
                        “externalCode”: “WO”,
                        “price”: 0,
                        “name”: “Sim, quero ketchup”,
                        “index”: 0,
                        “id”: “b8640571-9d9e-4736-9965-723507fbf68d”,
                        “addition”: 0
                    },
                    {
                        “unitPrice”: 3.5,
                        “unit”: “UN”,
                        “ean”: null,
                        “quantity”: 2,
                        “externalCode”: “7”,
                        “price”: 3.5,
                        “name”: “Bacon”,
                        “index”: 0,
                        “id”: “b25e9f1d-59d2-4cf9-a0ed-cb8ff6ac5748”,
                        “addition”: 0
                    },
                    {
                        “unitPrice”: 0.5,
                        “unit”: “UN”,
                        “ean”: null,
                        “quantity”: 1,
                        “externalCode”: “142”,
                        “price”: 0.5,
                        “name”: “Alface”,
                        “index”: 0,
                        “id”: “d6fd3f8e-b963-4cfe-af09-4b4b4f616fbf”,
                        “addition”: 0
                    }
                ],
                “id”: “5655c5cd-e9f5-4e97-9b8c-ecd77df260d7”,
                “uniqueId”: “f7c5360e-f47d-4817-8583-327d8f0a5b01”,
                “optionsPrice”: 36,
                “addition”: 0,
                “scalePrices”: null
            },
            {
                “unitPrice”: 35,
                “quantity”: 1,
                “externalCode”: “110”,
                “totalPrice”: 35,
                “index”: 2,
                “unit”: “UN”,
                “ean”: null,
                “price”: 35,
                “observations”: “Observação produto principal”,
                “name”: “Alabama Bacon Duplo”,
                “options”: [
                    {
                        “unitPrice”: 0,
                        “unit”: “UN”,
                        “ean”: null,
                        “quantity”: 1,
                        “externalCode”: “WO”,
                        “price”: 0,
                        “name”: “Ao Ponto”,
                        “index”: 0,
                        “id”: “1aa4681e-e703-438a-9e72-04b50362428d”,
                        “addition”: 0
                    },
                    {
                        “unitPrice”: 0,
                        “unit”: “UN”,
                        “ean”: null,
                        “quantity”: 1,
                        “externalCode”: “WO”,
                        “price”: 0,
                        “name”: “Maionese Temperada”,
                        “index”: 0,
                        “id”: “d9695e06-01e3-4ed6-b754-9f0c3c67a650”,
                        “addition”: 0
                    },
                    {
                        “unitPrice”: 3.5,
                        “unit”: “UN”,
                        “ean”: null,
                        “quantity”: 2,
                        “externalCode”: “7”,
                        “price”: 3.5,
                        “name”: “Bacon”,
                        “index”: 0,
                        “id”: “73159812-ecab-43fa-8dff-8af33b4aa490”,
                        “addition”: 0
                    },
                    {
                        “unitPrice”: 0.5,
                        “unit”: “UN”,
                        “ean”: null,
                        “quantity”: 1,
                        “externalCode”: “143”,
                        “price”: 0.5,
                        “name”: “Cebola”,
                        “index”: 0,
                        “id”: “630d2f3a-b789-48ad-a46e-08a0846caefa”,
                        “addition”: 0
                    },
                    {
                        “unitPrice”: 5,
                        “unit”: “UN”,
                        “ean”: null,
                        “quantity”: 1,
                        “externalCode”: “114”,
                        “price”: 5,
                        “name”: “Coca-Cola 350ml”,
                        “index”: 0,
                        “id”: “c2d63ae6-41e8-463b-8725-a01c0be8ee0f”,
                        “addition”: 0
                    },
                    {
                        “unitPrice”: 0,
                        “unit”: “UN”,
                        “ean”: null,
                        “quantity”: 1,
                        “externalCode”: “WO”,
                        “price”: 0,
                        “name”: “Copo com limão e gelo”,
                        “index”: 0,
                        “id”: “1cb6e99a-c71d-4792-b2c1-bfe7c263f4c9”,
                        “addition”: 0
                    },
                    {
                        “unitPrice”: 15,
                        “unit”: “UN”,
                        “ean”: null,
                        “quantity”: 1,
                        “externalCode”: “113”,
                        “price”: 15,
                        “name”: “Batata Frita Tradicional”,
                        “index”: 0,
                        “id”: “ef735556-9c48-40d4-9d06-c9d52cab749a”,
                        “addition”: 0
                    },
                    {
                        “unitPrice”: 0,
                        “unit”: “UN”,
                        “ean”: null,
                        “quantity”: 1,
                        “externalCode”: “WO”,
                        “price”: 0,
                        “name”: “Dividir a porção em dois”,
                        “index”: 0,
                        “id”: “2bcff611-7128-40a1-b4b9-5ecdc21999d1”,
                        “addition”: 0
                    },
                    {
                        “unitPrice”: 7,
                        “unit”: “UN”,
                        “ean”: null,
                        “quantity”: 1,
                        “externalCode”: “7”,
                        “price”: 7,
                        “name”: “Bacon”,
                        “index”: 0,
                        “id”: “77aef948-42e4-4012-bf89-4454c641352a”,
                        “addition”: 0
                    }
                ],
                “id”: “3ea96bb2-8108-4956-90a8-6bb1501aaef1”,
                “uniqueId”: “61cf3934-84b8-4b63-8ee9-527f4864e757”,
                “optionsPrice”: 36,
                “addition”: 0,
                “scalePrices”: null
            },
            {
                “unitPrice”: 0,
                “quantity”: 1,
                “externalCode”: “T8”,
                “totalPrice”: 36,
                “index”: 2,
                “unit”: “UN”,
                “ean”: null,
                “price”: 0,
                “observations”: “Observação produto principal”,
                “name”: “Pizza Grande”,
                “options”: [
                    {
                        “unitPrice”: 18,
                        “unit”: “UN”,
                        “ean”: null,
                        “quantity”: 1,
                        “externalCode”: “55”,
                        “price”: 18,
                        “name”: “Calabresa”,
                        “index”: 3,
                        “id”: “01beb51a-5a3e-45d7-94ff-42d7fe4cbe59”,
                        “addition”: 0.5
                    },
                    {
                        “unitPrice”: 17.5,
                        “unit”: “UN”,
                        “ean”: null,
                        “quantity”: 1,
                        “externalCode”: “133”,
                        “price”: 18,
                        “name”: “Baiana”,
                        “index”: 4,
                        “id”: “497b52b8-70d4-4fdf-8d9c-c7817bf14b39”,
                        “addition”: 0.5
                    },
                    {
                        “unitPrice”: 5,
                        “unit”: “UN”,
                        “ean”: null,
                        “quantity”: 1,
                        “externalCode”: “4”,
                        “price”: 5,
                        “name”: “Borda Catupiry”,
                        “index”: 0,
                        “id”: “e49f73fc-f2ab-4da1-bcda-b9b81e3f667b”,
                        “addition”: 0
                    }
                ],
                “id”: “c4c8ec59-1b23-4740-ab79-9526374ea121”,
                “uniqueId”: “8bcee23c-70e9-4bf0-b598-cea393fa7dfb”,
                “optionsPrice”: 36,
                “addition”: 0,
                “scalePrices”: null
            }
        ],
        “customer”: {
            “phone”: {
                “number”: “0800 012 3456”,
                “localizer”: “54639728”,
                “localizerExpiration”: “2024-08-27T15:37:05.0380282Z”
            },
            “documentNumber”: null,
            “name”: “PEDIDO DE TESTE – Fulano de Tal”,
            “ordersCountOnMerchant”: null,
            “id”: “910a258a-bcd3-4564-a62b-d29c61c94985”,
            “segmentation”: “Cliente”
        },
        “extraInfo”: null,
        “additionalFees”: null,
        “delivery”: null,
        “schedule”: null,
        “indoor”: {
            “mode”: “TABLE”,
            “deliveryDateTime”: “2024-08-27T15:37:05.0380282Z”,
            “table”: “1”,
            “observations”: “”
        },
        “takeout”: null,
        “additionalInfometadata”: null
    },
    “statusCode”: 0,
    “reasonPhrase”: null
}

A estrutura geral mantém o mesmo formato de um pedido de delivery. No entanto, é necessário alterar o valor de “orderType” para “INDOOR” e preencher as informações no campo “indoor”.

Exemplos:

{
...
"item": {
...
"orderType": "INDOOR",
...
}
...
}

Preenchimento das informações em “indoor”:

{
"item": {
...
"indoor": {
"mode": "TABLE",
"deliveryDateTime": "2024-08-27T15:37:05.0380282Z",
"table": "1",
"observations": ""
},
...
},
...
}

Conclusão

A integração com o sistema Consumer oferece uma maneira eficiente e automatizada de gerenciar pedidos provenientes de parceiros, melhorando a comunicação e a experiência geral de nossos clientes. Ao seguir as diretrizes e especificações apresentadas neste manual, os parceiros poderão garantir que seus pedidos sejam corretamente incorporados e gerenciados no sistema Consumer.

Lembramos que é essencial testar todos os endpoints e fluxos de integração para assegurar a precisão dos dados e o funcionamento adequado dos processos de pedido e atualização de status.

Em caso de dúvidas ou necessidade de suporte durante a implementação, entre em contato com a equipe de suporte técnico do Consumer, que está à disposição para auxiliar.

E-mail para contato: ajuda@programaconsumer.com.br

Com uma integração bem-sucedida, os parceiros terão acesso a uma solução robusta e confiável, permitindo uma melhor gestão de pedidos e uma experiência aprimorada para seus clientes.

Para facilitar o entendimento do desenvolvedor interessado na implementação, disponibilizamos abaixo um código-fonte de exemplo para download.

Clique aqui para realizar o download.


Ficou com dúvida?

Se você seguiu os passos acima e ainda tem alguma dúvida, nossa equipe está pronta para te ajudar.

Falar com o suporte

Você também pode nos contatar pelos canais:

  • Chat disponível na Central de Ajuda
  • WhatsApp direto com nossa equipe de especialistas

Estamos aqui para garantir que você aproveite ao máximo o Consumer!

Esse artigo foi útil?

Sim
Não
Obrigado pelo feedback!