Páginas filhas
  • orders

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

...

Deck of Cards
idAPI Order
Card
labelnewOrder

01. VISÃO GERAL

Essa requisição é responsável por realizar pedidos, também conhecida como pedidos online, a API Order/newOrder tem a responsabilidade de suprir todas as necessidades de pedidos online de um pdv, podendo ser lançado, pedidos normais, com adicional, fracionado, com taxa ou sem, realizar o pagamento junto ao pedido entre outros.


02. ENDPOINT

03. HEADER

Chave

Valor

x-mpn-integrations-signaturet=1651674844016,sign=8ebcf9cb577c0f0847969fee25c904a72c1e70aa13c197f44ef489768ec84a71

04. CORPO DA REQUISIÇÃO

Estrutura completa do corpo da requisição:

Corpo da requisição:

Status CodeCorpo da requisiçãoLegenda
200
Bloco de código
firstline0
titleCorpo da Requisição
linenumberstrue
{
  "integrationHubServiceId": "string",
  "data": {
    "id": "string",
    "type": "DELIVERY",
    "displayId": "string",
    "sourceAppId": "string",
    "salesChannel": "string",
    "virtualBrand": "string",
    "createdAt": "string",
    "lastEvent": "CREATED",
    "orderTiming": "INSTANT",
    "preparationStartDateTime": "string",
    "merchant": {
      "id": "string",
      "name": "string"
    },
    "items": [
      {
        "id": "string",
        "index": "string",
        "name": "string",
        "externalCode": "string",
        "unit": "UN",
        "ean": "string",
        "quantity": 0,
        "specialInstructions": "string",
        "unitPrice": {
          "value": 0,
          "currency": "string"
        },
        "originalPrice": {
          "value": 0,
          "currency": "string"
        },
        "optionsPrice": {
          "value": 0,
          "currency": "string"
        },
        "subtotalPrice": {
          "value": 0,
          "currency": "string"
        },
        "totalPrice": {
          "value": 0,
          "currency": "string"
        },
        "indoor": {
          "productionPoint": "string"
        },
        "options": [
          {
            "index": "string",
            "id": "string",
            "name": "string",
            "externalCode": "string",
            "unit": "UN",
            "ean": "string",
            "quantity": 0,
            "unitPrice": {
              "value": 0,
              "currency": "string"
            },
            "originalPrice": {
              "value": 0,
              "currency": "string"
            },
            "totalPrice": {
              "value": 0,
              "currency": "string"
            },
            "specialInstructions": "string"
          }
        ]
      }
    ],
    "otherFees": [
      {
        "name": "string",
        "type": "DELIVERY_FEE",
        "receivedBy": "MARKETPLACE",
        "receiverDocument": "string",
        "price": {
          "value": 0,
          "currency": "string"
        },
        "observation": "string"
      }
    ],
    "discounts": [
      {
        "name": "string",
        "value": 0
      }
    ],
    "total": {
      "itemsPrice": {
        "value": 0,
        "currency": "string"
      },
      "otherFees": {
        "value": 0,
        "currency": "string"
      },
      "discount": {
        "value": 0,
        "currency": "string"
      },
      "orderAmount": {
        "value": 0,
        "currency": "string"
      }
    },
    "payments": {
      "prepaid": 0,
      "pending": 0,
      "methods": [
        {
          "value": 0,
          "currency": "string",
          "type": "PREPAID",
          "method": "CREDIT",
          "brand": "VISA",
          "methodInfo": "string",
          "transaction": {
            "authorizationCode": "string",
            "acquirerDocument": "string"
          },
          "changeFor": 0
        }
      ]
    },
    "taxInvoice": {
      "issued": true,
      "taxInvoiceURL": "string"
    },
    "customer": {
      "id": "string",
      "name": "string",
      "documentNumber": "string",
      "phone": {
        "number": "string",
        "extension": "string"
      },
      "email": "string",
      "ordersCountOnMerchant": "string"
    },
    "schedule": {
      "scheduledDateTimeStart": "string",
      "scheduledDateTimeEnd": "string"
    },
    "orderPriority": "PRIORITY1",
    "delivery": {
      "deliveredBy": "MARKETPLACE",
      "deliveryAddress": {
        "country": "string",
        "state": "string",
        "city": "string",
        "district": "string",
        "street": "string",
        "number": "string",
        "complement": "string",
        "reference": "string",
        "formattedAddress": "string",
        "postalCode": "string",
        "coordinates": {
          "latitude": 0,
          "longitude": 0
        }
      },
      "estimatedDeliveryDateTime": "string",
      "deliveryDateTime": "string",
      "pickupCode": "string"
    },
    "takeout": {
      "mode": "DEFAULT",
      "takeoutDateTime": "string"
    },
    "indoor": {
      "mode": "DEFAULT",
      "indoorDateTime": "string",
      "place": "string",
      "seat": "string",
      "tab": "string",
      "waiterCode": 0
    },
    "sendDelivered": true,
    "sendPickedUp": true,
    "sendTracking": true,
    "extraInfo": "string"
  }
}
CampoTipoLegenda
{  IntegrationHubServiceIdStringO identificador exclusivo do pedido. O ID do pedido é gerado pelo Aplicativo de Pedidos.
data: {ObjetoServe como cabeçalho do pedido.
idStringO identificador exclusivo do pedido. O ID do pedido é gerado pelo Aplicativo de Pedidos.
typeStringDELIVERY, TAKEOUT ou INDOOR.
displayIdStringID do pedido mostrado na interface do aplicativo de pedidos do cliente.
sourceAppIdStringId da aplicação que envia o pedido.
salesChannelStringIndica canal de vendas que foi original do pedido
virtualBrandStringIdentificador alternativo para caso o merchant tenha multiplas brands(Bandeiras).
createdAtStringData, formato = AAAA-MM-DDThh:mm:ss
lastEventStringÚtimo evento capturato por Pooling ou Webhook, Enum de valores: [ CREATED, CONFIRMED, DISPATCHED, READY_FOR_PICKUP, PICKUP_AREA_ASSIGNED, DELIVERED, CONCLUDED, CANCELLATION_REQUESTED, CANCELLATION_REQUEST_DENIED, CANCELLED, ORDER_CANCELLATION_REQUEST, CANCELLED_DENIED ]
orderTimingStringÚltimo evento válido capturado pelo pooling ou webhook, Enum de valores: [ INSTANT, SCHEDULED, ONDEMAND ]
preparationStartDateTimeStringData de inicio de preparação do pedido. O padrão é o mesmo tempo do order creation time(created at).
merchant  {  ObjetoObjeto que tem dados do merchant.
idStringIdentificador da loja.
name   },StringNome da loja.
Items  [ {Lista de objetosLista os dados relacionados a items.
idStringIdentificador único de pedidos.
indexStringPosição do item.
nameStringNome do produto.
external codeStringcódigo do produto no PDV.
unitStringUnidade de medida, Enum: UN - Unit
KG - Kilogram
L - Liter
OZ - Ounce
LB - Pound
GAL - Gallon
Em caso de pedido fracionado deveria passar um float example: 500 gramas = 0.5kg.
eanStringCódigo EAN.
quantityNumberQuantidade do item, em caso de pedido fracionado deveria passar um float example: 500 gramas = 0.5kg.
specialInstructionsStringInstruções extras.
unitPrice  {ObjetoObjeto de preço unitário
valueNumberValor unitário do produto, aceita até 4 casas decimais.
currency  },StringCódigo da moeda, com base na ISO 4217.
originalPrice  {ObjetoObjeto do preço original
valueNumberValor original do produto, aceita até 4 casas decimais.
currency  },StringCódigo da moeda, com base na ISO 4217.
optionsPrice  {ObjetoObjeto de preço do adicional
valueNumberValor de preço adicional do produto, aceita até 4 casas decimais.
currency  },StringCódigo da moeda, com base na ISO 4217.
subtotalPrice  {ObjetoObjeto do preço do subtotal
valueNumberValor do preço do subtotal do produto, aceita até 4 casas decimais.
currency  },StringCódigo da moeda, com base na ISO 4217.
totalPrice  {ObjetoObjeto do preço total.
valueNumberValor original do produto, aceita até 4 casas decimais.
currency  },StringCódigo da moeda, com base na ISO 4217.
indoor   {ObjetoIndoor = Pedido pra o local.
productionPoint   },StringPonto de produção.
options   [ {ObjetoObjeto que contém os adicionais.
indexStringPosição do adicionar.
idStringIdentificador único do item.
nameStringNome do adicional.
externalCodeStringCódigo do produto.
unitStringUnidade de medida, Enum: UN - Unit
KG - Kilogram
L - Liter
OZ - Ounce
LB - Pound
GAL - Gallon
Em caso de pedido fracionado deveria passar um float example: 500 gramas = 0.5kg.
eanStringCódigo EAN.
quantityNumberQuantidade do item, em caso de pedido fracionado deveria passar um float example: 500 gramas = 0.5kg.
unitPrice   {ObjetoObjeto de preço unitário
valueNumberValor unitário do produto, aceita até 4 casas decimais.
currency   },StringCódigo da moeda, com base na ISO 4217.
originalPrice   {ObjetoObjeto do preço original
valueNumberValor original do produto, aceita até 4 casas decimais.
currency   },StringCódigo da moeda, com base na ISO 4217.
totalPrice   {ObjetoObjeto do preço total.
valueNumberValor original do produto, aceita até 4 casas decimais.
currency   },StringCódigo da moeda, com base na ISO 4217.
specialInstructions   } ] } ],StringInstruções extras.
OtherFees   [  {Lista de ObjetosEsse objeto contém dados sobre as taxas.
nameStringnome da taxa.
typeStringTipo de Taxa. Enum : [ DELIVERY_FEE, SERVICE_FEE, TIP ]
receivedByStringrecebido por. Enum: [ MARKETPLACE, MERCHANT, LOGISTIC_SERVICES ]
receivedDocumentStringObeigatório se o receivedBy for marketPlace.
price   {ObjetoObjeto do preço original
valueNumberValor original do produto, aceita até 4 casas decimais.
currency   },StringCódigo da moeda, com base na ISO 4217.
observation   } ],StringObservação.
discounts   [ {Lista de ObjetoContém os dados de disconto.
nameStringnome do desconto dado.
value   } ]Numbervalor do desconto.

total   {

ObjetoObjeto que contém todos os totais.
unitPrice   {ObjetoObjeto de preço unitário
valueNumberValor unitário do produto, aceita até 4 casas decimais.
currency   },StringCódigo da moeda, com base na ISO 4217.
otherFees   {ObjetoObjeto do preço original
valueNumberValor original do produto, aceita até 4 casas decimais.
currency   },StringCódigo da moeda, com base na ISO 4217.
discount   {ObjetoObjeto de preço do adicional
valueNumberValor de preço adicional do produto, aceita até 4 casas decimais.
currency   },StringCódigo da moeda, com base na ISO 4217.
orderAmount   {ObjetoObjeto do preço do subtotal
valueNumberValor do preço do subtotal do produto, aceita até 4 casas decimais.
currency   } },StringCódigo da moeda, com base na ISO 4217.
payments   {ObjetoObjeto que contém os dados de pagamento.
prepaidNumberValor pago antecipadamente.
pendingNumberValor pendente de pagamento.
methods   [ {Lista de Objetoslista de objetos com dados de pagamento.
valueNumbervalor do pagamento.
currencyStringCódigo da moeda, com base na ISO 4217.
typeString

Enum: Prepaid e Pending.

O Prepaind é quando algum pagamento já foi feito em outra plataforma.

O Pending é quando algum pagamento vai ser pago na entrega ou no dinheiro.

methodStringMétodos de pagamento: "CREDIT" "DEBIT" "MEAL_VOUCHER" "FOOD_VOUCHER" "DIGITAL_WALLET" "PIX" "CASH" "CREDIT_DEBIT" "COUPON" "REDEEM" "PREPAID_REDEEM" "OTHER"*
brandStringIndica a bandeira do cartão selecionado no método acima.
esse campo deve ser preechido se o método acima for CREDIT, DEBIT, CREDIT_DEBIT, MEAL_VOUCHER or FOOD_VOUCHER.
Se OTHER foi escolhido, é recomendado informar a bandeira no campo methodInfo. Enum: [ 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 ]
methodInfoStringInformação extra sobre o método.
transaction   {ObjetoObjeto com dados da transação.
authorizationCodeStringCartão de crédito e/ou subsidiária número da autorização da transação.
acquirerDocument   },StringDocumento da intermediária da transação( agência, plataforma de delivery, marketplace e outros) do serviço.
changeFor   } ] },NumberIndica o total que será pago em dinheiro pelo consumidor e será considerado para o calculo de troco.
(ex. o consumidor vai pagar um pedido de $43 com uma nota de $50. Então deve inserir $50.).
Obrigatório quando o método é CASH.
taxInvoice   {ObjetoObjeto com dados da nota.
issuesBoolInforma se a nota fiscal já foi emitida para esse pedido.
taxInvoiceURL   },StringURL da nota para ser baixada.
customer   {ObjetoDados do consumidor. Obrigatório se o tipo do pedido for delivery
idStringIdentificador único do consumidor.
nameStringNome do consumidor
documentNumberStringDocumento do consumidor. Documento poderá ser enviado para tratar de questões tributárias. 
phone   {ObjectObjeto com dados do telefone
numberStringNúmero de telefone.
extension   },StringExtensão do número.
emailStringE-mail do consumidor. E-mail poderá ser enviado para tratar de questões tributárias.
orderCountOnMerchant   },StringTotal de pedidos feito pelo consumidor na loja.
Schedule   {ObjetoObjeto de agendamento.
scheduledDateTimeStartStringData, formato = AAAA-MM-DDThh:mm:ss. O padrão é o mesmo tempo do order creation time(created at).
scheduledDateTimeEnd   },StringData, formato = AAAA-MM-DDThh:mm:ss. O padrão é o mesmo tempo do order creation time(created at).
orderPriorityStringDefine a prioridade do pedido em relação a outros pedidos com base na aplicação do pedido.
Quanto menor a prioridade, mas rápido deve ser atendido.
Note: Esse campo depende se a aplicação de pedidos e o pdv suportam a funcionalidade. Enum: [ PRIORITY1, PRIORITY2, PRIORITY3, PRIORITY4 ]
delivery   {ObjetoObjeto que contém os dados de delivery.
deliveredByStringEnum: [ MARKETPLACE, MERCHANT ]
deliveredAddress   {ObjetoObjeto do endereço.
countryStringCódigo do país de duas letras ISO 3166-1 alpha-2. 
stateStringEstado baseado na ISO 3166-2, Não é obrigatório mas sim recomendado.
cityStringNome da cidade.
districtStringDistrito ou município.
streetStringNome da rua.
numberStringNúmero.
complementStringComplemento do endereço.
referenceStringPonto de referência.
formattedAddressStringEndereço completo.
postalCodeStringCódigo Postal.
coordinates   {ObjetoObjeto de coordenadas
latitudeNumberLatitude em graus. Limitado pelos valores [[-90, 90]].
longitude   }  },NumberLongitude em graus. Limitado pelos valores [[-180, 180]].
estimatedDeliveryDateTimeStringData e hora estimada da entrega. Mesma data e hora apresentada na aplicação de pedido.
deliveryDateTimeStringData e hora em que a entrega aconteceu.
pickupCode   },StringCódigo para o entregador pegar o pacote. Não confundir com o código do consumidor pra receber.
takeout   {ObjetoObjeto que contém os dados de takeout.
modeStringEnum: [ DEFAULT, PICKUP_AREA ]
takeoutDateTime   }StringData e tempo em que o pedido está pronto. Pode ser calculado pelo aplicativo de entrega pelo tempo médio de preparo. Padrão é o mesmo horário do Creation Time
indoor   {ObjetoObjeto para pedidos feitos para consumir no local. 
modeString

Identificador Indoor Mode:
DEFAULT: Consumir dentro do estabelecimento.
PLACE: Consumir dentro do estabelecimento em lugar específico, como uma mesa.
TAB: Usado pra controlar pedidos via Tab ou cartão consumo. Enum:[ DEFAULT, PLACE, TAB, TERMINAL ]

indoorDateTimeStringData e hora que o pedido ficou pronto. Pode ser calculado pelo aplicativo de entrega pelo tempo médio de preparo. Padrão é o mesmo horário do Creation Time.
placeStringIdentificador do Place. Obrigatório quando o mode recebe o valor do Place.
seatStringIdentificador do Seat. Obrigatório quando o mode recebe o valor do Seat.
tabStringIdentificador do Tab. Obrigatório quando o mode recebe o valor do Tab.
waiterCode   },StringCódigo do garçom.
sendDeliveredBoolEste campo indica se é necessário que o Serviço de Software faça uma solicitação ao terminal para indicar ao Aplicativo de Pedido que o pedido foi entregue ao cliente. true: Indica que o Aplicativo de Pedido está aguardando uma solicitação. falso ou não informado: Não é obrigatório fazer solicitação.
sendPickedUpBoolEste campo indica se é necessário que o Serviço de Software faça uma solicitação ao endpoint para indicar ao Aplicativo de Pedido que o pedido foi retirado pelo cliente. true: Indica que o Aplicativo de Pedido está aguardando uma solicitação. falso ou não informado: Não é obrigatório fazer solicitação.
sendTrackingBoolEste campo indica se é necessário que o Serviço de Software faça uma solicitação ao terminal para informar o Aplicativo de Pedido sobre atualizações de entrega. true: Indica que o Aplicativo de Pedido está aguardando uma solicitação. falso ou não informado: Não é obrigatório fazer solicitação.
extraInfoStringInformação extra caso seja necessário.


05. RESPONSES

Status CodeResponse
200Your request has been accepted but not yet processed, wait a few moments and look for the status.
400

Bad request.

401Missing or invalid credentials.
403Missing Authentication Token.
404

One or more posted information could not be found.


Bloco de código
languagec#
firstline0
titleResposta New Order 404
linenumberstrue
{
  "errors": [
    {
      "key": "string",
      "message": "string"
    }
  ]
}
Card
labelgetStatus

CONTEÚDO


01. VISÃO GERAL

Este endpoint é utilizado para obter informações detalhadas sobre os pedidos, fornecendo um retorno em formato JSON com diversos atributos relevantes. Ao enviar uma solicitação no formato especificado, como nos exemplos abaixo, o endpoint processa a requisição e retorna um conjunto de dados que inclui o status mais recente do pedido, a identificação do serviço, a chave do pedido e detalhes específicos de cada item relacionado ao pedido.



02. ENDPOINT




03. EXEMPLO DE UTILIZAÇÃO

3.1 - Request - Obter detalhes de um pedido específico:

Essa requisição é utilizada para buscar informações detalhadas sobre um pedido específico:

Payload

Legenda

JSON Para retornar o status de um pedido específico

1
2
3
4
5

{
  "integrationHubServiceId": "7056c970-cb11-400f-9d4f-9f30253f3b0b",
  "orderKeyType": "INDOOR",
  "orderKey": ["40"]
}

Chave

Tipo

Legenda

integrationHubServiceIdStringId da configuração da integração
orderKeyTypeStringProcurar pelo order id ou pelo tipo indoor. Enum: [ INDOOR, ORDER_ID ]
orderKey

Lista de

String

Id do pedido, caso vazio retorna todo do type escolhido.

Nota: HTTP Status Code = 202 Accepted

A solicitação foi aceita, mas ainda não foi processada. É necessário aguardar alguns momentos e, em seguida, entrar em contato no mesmo endereço para obter o status do pedido solicitado.




3.2 - Request - Ao reenviar a solicitação, a resposta será a seguinte:

Ao reenviar a requisição, você receberá uma resposta contendo o status atualizado e os detalhes do pedido.
JSON de resposta do retorno de um pedido específico HTTP Status Code = 208

1
2
3
4
5
6
7
8

{
    "errors": [
        {
            "key": "orderKeyType_orderKey",
            "message": "Order status request already exists: INDOOR_40"
        }
    ]
}  

Nota: HTTP Status Code = 208 Already Reported

A solicitação já foi enviada. É necessário aguardar alguns momentos e, em seguida, entrar em contato no mesmo endereço para obter o status do pedido solicitado.




3.3 - Request - Reenvio da solicitação, resposta de processamento:

Reenviando a solicitação, o sistema processará o pedido e fornecerá a resposta com o status do processamento. 
JSON de resposta do retorno de um pedido

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23

{
    "success": true,
    "error": null,
    "integrationHubServiceId": "1853f0ab-faf7-47d6-a193-610b20807143",
    "orderKeyType": "INDOOR",
    "orderKey": [
        "40"
    ],
    "lastestUpdatedStatus": "2024-06-28 09:04:06",
    "items": [
        {
            "id": "50425147-5d06-4b87-a05b-4586f2dccc71",
            "status": {
                "code": 505,
                "description": "TABLE_IN_USE"
            },
            "deliveryAgent": null,
            "deliveryDateTime": null,
            "cancellationReason": null,
            "tableCardNumber": "40"
        }
    ]
}

Nota: HTTP Status Code = 226 IM Used

A solicitação foi processada com sucesso e o resultado foi retornado conforme esperado.




3.4 - Request - Retornar o status de múltiplos pedidos:

Essa requisição é utilizada para obter o status atualizado de diversos pedidos simultaneamente. O sistema retornará as informações detalhadas de cada pedido
JSON Para retornar múltiplos pedidos

1
2
3
4
5

{
  "integrationHubServiceId": "7056c970-cb11-400f-9d4f-9f30253f3b0b",
  "orderKeyType": "INDOOR",
  "orderKey": ["40", "20"]
}

Nota: HTTP Status Code = 202 Accepted

A solicitação foi aceita, mas ainda não foi processada. É necessário aguardar alguns momentos e, em seguida, entrar em contato no mesmo endereço para obter o status do pedido solicitado.




3.5 - Request - Ao reenviar a solicitação, a resposta será a seguinte:

Ao reenviar a requisição, receberá uma resposta contendo o status atualizado e os detalhes dos pedidos.
JSON de resposta do retorno de um pedido específico HTTP Status Code = 208

1
2
3
4
5
6
7
8

{
    "errors": [
        {
            "key": "orderKeyType_orderKey",
            "message": "Order status request already exists: INDOOR_40, 20"
        }
    ]
}  

Nota: HTTP Status Code = 208 Already Reported

A solicitação já foi enviada. É necessário aguardar alguns momentos e, em seguida, entrar em contato no mesmo endereço para obter o status do pedido solicitado.




3.6 - Request - Reenvio da solicitação, resposta de processamento:

Reenviando a solicitação, o sistema processará o pedido e fornecerá a resposta com o status do processamento. 
JSON de retorno de múltiplos pedidos

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35

{
    "success": true,
    "error": null,
    "integrationHubServiceId": "647469f8-b31b-4fae-ba33-99e04def555b",
    "orderKeyType": "INDOOR",
    "orderKey": [
        "40",
        "20"
    ],
    "lastestUpdatedStatus": "2024-06-28 09:13:46",
    "items": [
        {
            "id": "8c3752a1-ae15-42a1-bafb-189ca95f0211",
            "status": {
                "code": 505,
                "description": "TABLE_IN_USE"
            },
            "deliveryAgent": null,
            "deliveryDateTime": null,
            "cancellationReason": null,
            "tableCardNumber": "18"
        },
        {
            "id": "5ebf990f-9075-462c-b675-a8c57a350d61",
            "status": {
                "code": 504,
                "description": "OPEN_TABLE"
            },
            "deliveryAgent": null,
            "deliveryDateTime": null,
            "cancellationReason": null,
            "tableCardNumber": "19"
        }
    ]
}

Nota: HTTP Status Code = 226 IM Used

A solicitação foi processada com sucesso e o resultado foi retornado conforme esperado.




3.7 - Request - Retornar o status de múltiplos pedidos:

Essa requisição é utilizada para obter o status atualizado de diversos pedidos simultaneamente. O sistema retornará as informações detalhadas de cada pedido.
JSON Para retornar o status de todos os pedidos

1
2
3
4
5

{
  "integrationHubServiceId": "7056c970-cb11-400f-9d4f-9f30253f3b0b",
  "orderKeyType": "INDOOR",
  "orderKey": []
}

Nota: HTTP Status Code = 202 Accepted

A solicitação foi aceita, mas ainda não foi processada. É necessário aguardar alguns momentos e, em seguida, entrar em contato no mesmo endereço para obter o status do pedido solicitado.




3.8 - Request - Ao reenviar a solicitação, a resposta será a seguinte:

Ao reenviar a requisição, receberá uma resposta contendo o status atualizado e os detalhes dos pedidos.
JSON de resposta do retorno de um pedido específico HTTP Status Code = 208

1
2
3
4
5
6
7
8

{
    "errors": [
        {
            "key": "orderKeyType_orderKey",
            "message": "Order status request already exists: INDOOR"
        }
    ]
}  

Nota: HTTP Status Code = 208 Already Reported

A solicitação já foi enviada. É necessário aguardar alguns momentos e, em seguida, entrar em contato no mesmo endereço para obter o status do pedido solicitado.




3.9 - Request - Ao reenviar a solicitação, a resposta será a seguinte:

Ao reenviar a requisição, receberá uma resposta contendo o status atualizado e os detalhes dos pedidos.
Resposta do JSON da requisição

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43

{
    "success": true,
    "error": null,
    "integrationHubServiceId": "ab3e5b94-3a02-423a-8500-bbb5292fb13a",
    "orderKeyType": "INDOOR",
    "orderKey": [],
    "lastestUpdatedStatus": "2024-09-24 17:35:52",
    "items": [
        {
            "id": "f217d261-126c-456a-86d5-d92eda8fbd1a",
            "status": {
                "code": 504,
                "description": "OPEN_TABLE"
            },
            "deliveryAgent": null,
            "deliveryDateTime": null,
            "cancellationReason": null,
            "tableCardNumber": "204"
        },
        {
            "id": "1730ccab-ba9e-4b0b-b7f2-ad2652659d0a",
            "status": {
                "code": 504,
                "description": "OPEN_TABLE"
            },
            "deliveryAgent": null,
            "deliveryDateTime": null,
            "cancellationReason": null,
            "tableCardNumber": "500"
        },
        {
            "id": "dbd9bc55-6c26-4160-bee3-e74822d8b81b",
            "status": {
                "code": 504,
                "description": "OPEN_TABLE"
            },
            "deliveryAgent": null,
            "deliveryDateTime": null,
            "cancellationReason": null,
            "tableCardNumber": "503"
        }
    ]
}

Nota: HTTP Status Code = 226 IM Used

A solicitação foi processada com sucesso e o resultado foi retornado conforme esperado.




Campos obrigatórios

Campos marcaos com o * (asteristico) o seu preenchimento é obrigatório



04. ERROS

Quando a requisição for reenviada, o sistema processará a solicitação e retornará uma resposta com o status atualizado, juntamente com os detalhes de cada pedido solicitado. Isso garante que qualquer modificação ou atualização recente seja refletida na resposta.
A seguir, alguns dos erros comuns que podem ser apresentados ao lidar com requisições HTTP e suas respectivas respostas:

  • HTTP Status Code - 400 - Bad Request

O código de status HTTP 400, conhecido como "Bad Request" (Requisição Inválida), indica que o servidor não pôde processar a requisição do cliente devido a uma sintaxe inválida, estrutura malformada ou dados inválidos presentes na requisição.

4.1 - Formato inválido do JSON esperado:

A requisição foi enviada com um JSON malformado ou inválido, o que impede o sistema de interpretá-la corretamente. Isso ocorre quando a estrutura JSON contém erros de sintaxe, como chaves ou colchetes incorretos.
JSON Inválido

1
2
3
4
5

{
    "integrationHubServiceId": "393d9572-2ec9-4cda-9ad3-5b69e02c988d",
      "orderKeyType": "string",
       "orderKey": ["string"]
}


JSON Resposta

1
2
3
4
5
6
7
8

{
    "errors": [
        {
            "key": "orderKeyType",
            "message": "body.orderKeyType must be one of [ORDER_ID, INDOOR]"
        }
    ]
}




4.2 - JSON enviado com a ausência de um ou mais campos obrigatórios:

Se a requisição estiver faltando um ou mais campos obrigatórios, o servidor responderá com um erro 400. Cada campo requerido deve estar presente para que a operação seja processada corretamente.
JSON Inválido

1
2
3

{
    "integrationHubServiceId": "a5c4e135-aacd-49c1-b051-160a78a83b56"
}


JSON Resposta

1
2
3
4
5
6
7
8
9
10
11
12

{
    "errors": [
        {
            "key": "orderKeyType",
            "message": "body.orderKeyType is required"
        },
        {
            "key": "orderKey",
            "message": "body.orderKey is required"
        }
    ]
}




4.3 - GUID incorreto:

O GUID (Identificador Globalmente Único) enviado na requisição está incorreto ou malformado, o que pode resultar em um erro. Um GUID é uma sequência específica que deve seguir o padrão correto.
JSON com o GUID inválido

1
2
3
4
5

{
    "integrationHubServiceId": "9a1cf326-c962-456f-8c49-c1bb2f340fc6A",
      "orderKeyType": "TABLE",
      "orderKey": []
}


JSON Inválido GUID incorreto

1
2
3
4
5
6
7
8

{
    "errors": [
        {
            "key": "integrationHubServiceId",
            "message": "body.integrationHubServiceId must be a valid GUID"
        }
    ]
}




4.4 - Requisição enviada sem informar o orderKey corretamente:

Caso a requisição seja enviada sem o campo orderKey ou com o valor incorreto, o sistema não conseguirá identificar o pedido, resultando em um erro 400. O orderKey deve estar corretamente preenchido e de acordo com o orderKeyType informado.
JSON com sem informar o código da orderKey

1
2
3
4
5

{
    "integrationHubServiceId": "808c143d-d6d4-4b95-8c37-efa3a934f222",
      "orderKeyType": "INDOOR",
      "orderKey": [""]
}


JSON Response

1
2
3
4
5
6
7
8

{
    "errors": [
        {
            "key": 0,
            "message": "body.orderKey[0] is not allowed to be empty"
        }
    ]
}

Nota: HTTP Status Code = 400 Bad Request

A solicitação é inválida e não pôde ser processada devido a erros na entrada fornecida. Verifique os dados enviados e tente novamente.



  • HTTP Status Code 401 - Unauthorized  

O código de status HTTP 401, conhecido como "Unauthorized" (Não Autorizado), indica que a requisição não foi aplicada porque carece de credenciais de autenticação válidas para o recurso alvo. Diferente do código 403 (Forbidden), que significa que o servidor entendeu a requisição, mas se recusa a autorizá-la, o 401 é usado especificamente quando a autenticação é necessária e falhou ou ainda não foi fornecida.


Nota: HTTP Status Code = 401 Unauthorized

A solicitação não pôde ser processada porque o usuário não possui as permissões necessárias. Verifique suas credenciais e tente novamente.



  • HTTP Status Code 403 - Forbidden

O código de status HTTP 403, conhecido como "Forbidden" (Proibido), indica que o servidor não entendeu a requisição do cliente por está tentando acessar uma URL incorreta



URL enviada incorreda


JSON Response para URL incorreta

1
2
3

{
    "message": "Missing Authentication Token"
}

Nota: HTTP Status Code = 403 - Forbidden

O cliente não enviou uma requisição para a URL  incorreta.



  • HTTP Status Code 404 - Not Found

O código de status HTTP 404, conhecido como "Not Found" (Não Encontrado), indica que o servidor não encontrou o recurso solicitado. Isso pode ocorrer quando o integrationHubId  está incorreto ou inválido.



Integration Hub Code Inválido

1
2
3
4
5

{
    "integrationHubServiceId": "f1b874af-96ab-4535-aac3-25118fe586cc",
      "orderKeyType": "TABLE",
      "orderKey": ["5"]
}


JSON Response

1
2
3
4
5
6
7
8

{
    "errors": [
        {
            "key": "integrationHubServiceId",
            "message": "Provider Merchant for integrationHubServiceId \"f1b874af-96ab-4535-aac3-25118fe586cc\" not found or disabled"
        }
    ]
}

Nota: HTTP Status Code = 404 - Not Found

IntegrationHubId incorreto ou inválido



  • HTTP Status Code 412 - Precondition Failed

O código de status HTTP 412, conhecido como "Precondition Failed" (Pré-condição Falhou), indica que o servidor não atendeu a uma das pré-condições que o cliente colocou no cabeçalho da requisição. 



JSON

1
2
3
4
5

{
    "integrationHubServiceId": "8f7949c3-cdd6-4db0-8746-369e651026b4",
      "orderKeyType": "TABLE",
      "orderKey": []
}


HTTP Status Code 412 = Precpndition Failed

1
2
3
4

{
    "message": "NOT_FOUND",
    "code": 412
}

Nota: HTTP Status Code = 412 Precondition Failed

Alguma regra necessária para a execução da solicitação não foi atendida. É necessário analisar o conteúdo da resposta retornada para identificar os motivos.



  • HTTP Status Code 429 - Too Many Requests

O código de status HTTP 429, conhecido como "Too Many Requests" (Muitas Requisições), indica que o cliente excedeu o limite de requisições permitido para um determinado período de tempo. Esse limite é definido pelo servidor e pode variar de acordo com a política de limitação de taxa implementada.



JSON da requisição

1
2
3
4
5

{
    "integrationHubServiceId": "7d7d205b-83ba-47c5-91ba-e4f32a2bbd9e",
      "orderKeyType": "TABLE",
        "orderKey": ["5"]
}


Resposta da última execução

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23

{
    "success": true,
    "error": null,
    "integrationHubServiceId": "7d7d205b-83ba-47c5-91ba-e4f32a2bbd9e",
    "orderKeyType": "TABLE",
    "orderKey": [
        "5"
    ],
    "lastestUpdatedStatus": "2024-07-02 18:54:28",
    "items": [
        {
            "id": "de9fd388-c223-4325-a64d-08889250f839",
            "status": {
                "code": 504,
                "description": "OPEN_TABLE"
            },
            "deliveryAgent": null,
            "deliveryDateTime": null,
            "cancellationReason": null,
            "tableCardNumber": "5"
        }
    ]
}

Nota: HTTP Status Code = 429 - Too Many Requests

Alguma regra para atender ao seu pedido não foi cumprida; analise o corpo da resposta para descobrir as razões.







Card
labelstatus

CONTEÚDO


01. VISÃO GERAL

O endpoint Get Status da API Order Mesa é utilizado para o envio do resultado da solicitação de status dos pedidos do Ponto de Venda (PDV). Este endpoint recebe o mesmo corpo de resposta obtido pelo endpoint GetOrderStatus -   API Order Mesa - Get Status



02. ENDPOINT




03. EXEMPLO DE UTILIZAÇÃO

3.1 - Request - O corpo da requisição enviada para retornar todos os status dos pedidos é o seguinte:

Ao enviar essa requisição, o sistema processa a solicitação e retorna o status atualizado de todos os pedidos. O corpo da requisição contém informações essenciais que permitem ao sistema identificar e consultar o status de cada pedido.
Corpo da requisição no JSO


Status CodeCorpo da requisiçãoLegenda
200
Bloco de código
firstline0
titleCorpo da Requisição
linenumberstrue
{
  "integrationHubServiceId": "7354ffcc-3d8b-4b5e-b345-2ff1f31c960b",
  "success": true,
  "lastestUpdatedStatus": "string",
  "orderKey": "string",
  "orderKeyType": "INDOOR",
  "items": [
    {
      "id": "string",
      "status": {
        "code": 0,
        "description": "string"
      },
      "deliveryAgent": "string",
      "deliveryDateTime": "string",
      "cancellationReason": "string"
    }
  ],
  "error": {
    "code": "string",
    "message": "string"
  }
}
CampoTipoLegenda
{  IntegrationHubServiceIdStringO identificador exclusivo do pedido. O ID do pedido é gerado pelo Aplicativo de Pedidos.
successBooleanIndica se houve sucesso.
lastestUpdateStatusStringÚltima atualização do status do pedido - Formato: AAAA-MM-DD h:m:s.
orderKeyStringIdentificador do pedido.
OrderKeyTypeStringProcurar pelo order id ou pelo tipo indoor. Enum: [ INDOOR, ORDER_ID ].
itemsLista de ObjetoLista os items.
idStringIdentificador do item.
statusObjetoObjeto que indica o status do pedido.
codeNumberCódigo do Status.
descriptionStringDescrição do Status.
deliveryAgentStringNome do entregador, Obrigatório quando o pedido é delivery.
deliveryDateTimeStringData do momento da entrega - Formato: AAAA-MM-DD h:m:s.
cancellationReasonStringMotivo do cancelamento.
errorObjetoObjeto com dados de erro.
codeStringCódigo do erro.
messageStringMensagem do erro.



Nota: HTTP Status Code = 226 IM Used

Status enviado com sucesso.




3.2 - Request - Enviando o pedido para obter o status de um pedido específico:

Essa requisição é utilizada para consultar o status de um único pedido. Ao enviar o identificador do pedido, o sistema retornará o status detalhado do pedido solicitado, incluindo todas as informações relacionadas ao seu processamento.
Corpo da requisição no JSON

Bloco de código
firstline0
titleCorpo da requisição
linenumberstrue
{
  "integrationHubServiceId": "7354ffcc-3d8b-4b5e-b345-2ff1f31c960b",
  "success": true,
  "lastestUpdatedStatus": "string",
  "orderKey": ["1"],
  "orderKeyType": "INDOOR",
  "items": [
    {
      "id": "string",
      "status": {
        "code": 0,
        "description": "string"
      },
      "deliveryAgent": "string",
      "deliveryDateTime": "string",
      "cancellationReason": "string"
    }
  ],
  "error": {
    "code": "string",
    "message": "string"
  }
}


Nota: HTTP Status Code = 226 IM Used

Status enviado com sucesso.




3.3 - Request - Corpo da requisição para obter o status de múltiplos pedidos:

Ao utilizar essa requisição, é possível consultar o status atualizado de vários pedidos simultaneamente. O sistema retornará informações detalhadas sobre cada pedido, permitindo uma visão geral do processamento de múltiplas solicitações ao mesmo tempo.
Corpo da requisição no JSON


Bloco de código
firstline0
titleCorpo da requisição
linenumberstrue
{
  "integrationHubServiceId": "7354ffcc-3d8b-4b5e-b345-2ff1f31c960b",
  "success": true,
  "lastestUpdatedStatus": "string",
  "orderKey": ["1", "2"],
  "orderKeyType": "INDOOR",
  "items": [
    {
      "id": "1",
      "status": {
        "code": 001,
        "description": "string"
      },
      "deliveryAgent": "string",
      "deliveryDateTime": "string",
      "cancellationReason": "string"
    },
    {
      "id": "2",
      "status": {
        "code": 002,
        "description": "string"
      },
      "deliveryAgent": "string",
      "deliveryDateTime": "string",
      "cancellationReason": "string"
    }
  ],
  "error": {
    "code": "string",
    "message": "string"
  }
}


Nota: HTTP Status Code = 226 IM Used

Status enviado com sucesso.

Dica

O corpo da requisição enviada é o mesmo que o corpo da resposta obtida através do endpoint GetOrderStatus.


Dicionário de Requisição

Essa requisição permite verificar o o status atualizado do(s) pedido(s), retornando informações de acordo com o corpo da response obtida atráves do endpoint getStatus.


  • Detalhamento dos campos da requisição:


CampoValorDescrição
integrationHubServiceId *stringChave de identificação da integração no hub
success *booleanIndica se a operação foi bem-sucedida
trueA operação foi concluída com sucesso e o status dos pedidos será retornado
falseA operação falhou, com detalhes fornecidos no campo error
lastestUpdatedStatus *stringData e hora da última atualização do status dos pedidos
orderKey *arrayLista de identificadores dos pedidos (neste caso, o número da mesa)
orderKeyType *enum Tipo de chave do pedido, que pode ser mesa, cartão ou ID do pedido
items *arrayLista de itens associados ao pedido, detalhando o status de cada item


  • Itens associados detalhados:

Campo

Valor

Descrição

id *stringIdentificador do item dentro do pedido
status *objetoObjeto contendo informações detalhadas sobre o status do item
deliveryAgentstringAgente responsável pela entrega (obrigatório para pedidos de entrega)
deliveryDateTimestringData e hora em que a entrega foi realizada (obrigatório para pedidos de entrega)
cancellationReasonstringMotivo do cancelamento do item (se o item foi cancelado)


  • Estrutura do Enum Items - Status 

Campo

Valor

Descrição

code *numberCódigo do status
description *stringDescrição do status


  • Erro (quando success é false):

Campo

Valor

Descrição

code *código do erroIdentifica o tipo de erro ocorrido
message *mensagem descritivaDetalha a falha e fornece mais informações sobre o erro

Campos obrigatórios

Campos marcaos com o * (asteristico) o seu preenchimento é obrigatório



04. ERROS

A seguir, alguns dos erros comuns que podem ser apresentados ao lidar com requisições HTTP e suas respectivas respostas:

  • HTTP Status Code - 400 - Bad Request

O código de status HTTP 400, conhecido como "Bad Request" (Requisição Inválida), indica que o servidor não pôde processar a requisição do cliente devido a uma sintaxe inválida, estrutura malformada ou dados inválidos presentes na requisição.


4.1 - Formato inválido do JSON esperado:

A requisição foi enviada com um JSON malformado ou inválido, o que impede o sistema de interpretá-la corretamente. Isso ocorre quando a estrutura JSON contém erros de sintaxe, como chaves ou colchetes incorretos.
Corpo da requisição no JSON faltando campos

1
2
3
4
5
6
7
8
9
10
11
12
13

{
    "integrationHubServiceId": "5ffec6b8-1c55-4a7d-985f-12d13685b5538",
    "success": true,
    "orderStatus": [
        {
            "id": "bd768726-91ef-4161-b35b-4e28e711dfd8",
            "status": {
                "code": 1,
                "description": "Em Preparo"
            }
        }
    ]
}


Resposta do JSON da requisição

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

{
    "errors": [
        {
            "key": "integrationHubServiceId",
            "message": "body.integrationHubServiceId must be a valid GUID"
        },
        {
            "key": "orderKeyType",
            "message": "body.orderKeyType is required"
        },
        {
            "key": "orderKey",
            "message": "body.orderKey is required"
        }
    ]
}




3.2 - JSON enviado com a ausência de um ou mais campos obrigatórios:

Se a requisição estiver faltando um ou mais campos obrigatórios, o servidor responderá com um erro 400. Cada campo requerido deve estar presente para que a operação seja processada corretamente.
JSON Inválido

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23

{
    "success": true,
    "error": null,
    "integrationHubServiceId": "644a4d3c-6d2c-4154-a089-c1ab3fd89151",
    "orderKeyType": "String",
    "orderKey": [
        "22"
    ],
    "lastestUpdatedStatus": "2024-07-16 15:48:30",
    "items": [
        {
            "id": "975dbf9b-a11d-4efe-b491-197ee123bfe4",
            "status": {
                "code": 504,
                "description": "OPEN_TABLE"
            },
            "deliveryAgent": null,
            "deliveryDateTime": null,
            "cancellationReason": null,
            "tableCardNumber": "22"
        }
    ]
}


Resposta do JSON da requisição

1
2
3
4
5
6
7
8

{
    "errors": [
        {
            "key": "orderKeyType",
            "message": "body.orderKeyType must be one of [ORDER_ID, TABLE, CARD]"
        }
    ]
}

Nota: HTTP Status Code = 400 Bad Request

A solicitação é inválida e não pôde ser processada devido a erros na entrada fornecida. Verifique os dados enviados e tente novamente.



  • HTTP Status Code 401 - Unauthorized  

O código de status HTTP 401, conhecido como "Unauthorized" (Não Autorizado), indica que a requisição não foi aplicada porque carece de credenciais de autenticação válidas para o recurso alvo. Diferente do código 403 (Forbidden), que significa que o servidor entendeu a requisição, mas se recusa a autorizá-la, o 401 é usado especificamente quando a autenticação é necessária e falhou ou ainda não foi fornecida.


Nota: HTTP Status Code = 401 Unauthorized

A solicitação não pôde ser processada porque o usuário não possui as permissões necessárias. Verifique suas credenciais e tente novamente.



  • HTTP Status Code 403 - Forbidden

O código de status HTTP 403, conhecido como "Forbidden" (Proibido), indica que o servidor não entendeu a requisição do cliente por está tentando acessar uma URL incorreta



URL enviada incorreda


Corpo da requisição no JSON

1
2
3
4
5

{
    "integrationHubServiceId": "1188f64e-3ce8-45be-882c-6c8dcfcb70d4",
      "orderKeyType": "TABLE",
       "orderKey": ["09"]
}

Nota: HTTP Status Code = 403 - Forbidden

O cliente não enviou uma requisição para a URL  incorreta.



  • HTTP Status Code 404 - Not Found

O código de status HTTP 404, conhecido como "Not Found" (Não Encontrado), indica que o servidor não encontrou o recurso solicitado. Isso ocorrer quando o token  da requisição da autenticação, é diferente do token gerado utilizando o integrationHubId  diferente do corpo da requisição.



JSON de retorno de múltiplos pedidos

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23

{
    "success": true,
    "error": null,
    "integrationHubServiceId": "f1b874af-96ab-4535-aac3-25118fe586cc",
    "orderKeyType": "TABLE",
    "orderKey": [
        "19"
    ],
    "lastestUpdatedStatus": "2024-07-15 17:02:35",
    "items": [
        {
            "id": "406a2a14-ac79-422a-b667-769fa1d2a9a0",
            "status": {
                "code": 505,
                "description": "TABLE_IN_USE"
            },
            "deliveryAgent": null,
            "deliveryDateTime": null,
            "cancellationReason": null,
            "tableCardNumber": "19"
        }
    ]
}


Resposta do JSON da requisição

1
2
3
4
5
6
7
8

{
    "errors": [
        {
            "key": "orderKeyType_orderKey",
            "message": "Order status for: TABLE_22 not found"
        }
    ]
}

Nota: HTTP Status Code = 404 - Not Found

Uma ou mais informações enviadas não puderam ser encontradas.



05. LINKS




Card
labelgetConsumption

CONTEÚDO


01. VISÃO GERAL


Este endpoint é utilizado para obter informações detalhadas sobre consumo, fornecendo um retorno em formato JSON com diversos atributos relevantes. Ao enviar uma solicitação conforme especificado nos exemplos abaixo, o endpoint processa a requisição e retorna um conjunto de dados que inclui o status mais recente do consumo.



02. ENDPOINT




03. EXEMPLO DE UTILIZAÇÃO

3.1- Request - Retornar todos os status dos consumos:

Ao fazer essa requisição, o sistema processa a solicitação para obter o status dos consumos indicados, retornando as informações de cada consumo solicitado.

Payload

Legenda

JSON Para retornar o status de um pedido específico

1
2
3
4
5

{
  "integrationHubServiceId": "7056c970-cb11-400f-9d4f-9f30253f3b0b",
  "orderKeyType": "INDOOR",
  "orderKey": ["40"]
}

Chave

Tipo

Legenda

integrationHubServiceIdStringId da configuração da integração
orderKeyTypeStringProcurar pelo order id ou pelo tipo indoor. Enum: [ INDOOR, ORDER_ID ]
orderKey

Lista de

String

Id do pedido, caso vazio retorna todo do type escolhido.



Nota: HTTP Status Code = 202 Accepted

O seu pedido foi aceite, mas ainda não foi processado, aguarde alguns instantes e contacte a mesma morada para obter o consumo solicitado.




3.2-  Request - Ao reenviar a solicitação, a resposta retornada será a seguinte:
Após reenviar a requisição para o mesmo endpoint, o sistema retornará uma resposta detalhando o status atualizado dos consumos solicitados.

JSON de resposta do retorno de um consumo específico HTTP Status Code = 208

1
2
3
4
5
6
7
8

{
    "errors": [
        {
            "key": "orderKeyType_orderKey",
            "message": "Order consumption request already exists: INDOOR_"
        }
    ]
}  

Nota: HTTP Status Code = 208 Already Reported

Seu pedido já foi enviado, aguarde alguns instantes e entre em contato com o mesmo endereço para obter o consumo solicitado.




3.3 - Request - Ao enviar novamente a solicitação, o processamento será realizado conforme a seguinte resposta:
Reenviando a requisição após o processamento, o sistema retornará o status final dos consumos, indicando se o processamento foi concluído com sucesso e exibindo as informações detalhadas.

Resposta do JSON da requisição

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320

{
   "success":true,
   "error":null,
   "integrationHubServiceId":"ea2aecdb-7a37-449f-99e1-aa1346b09524",
   "orderKeyType":"INDOOR",
   "orderKey":[
      "06",
      "10",
      "19"
   ],
   "consumption":[
      {
         "orderId":"7cf20761-adc7-4a79-98c3-2259dd2b2856",
         "type":"TABLE",
         "createdAt":"2024-02-08 10:12:05",
         "customerName":"TOTVS",
         "items":[
            {
               "id":"251",
               "index":"331811",
               "name":"TESTE MYTAPP",
               "externalCode":"251",
               "unit":"UNIT",
               "ean":"",
               "quantity":1,
               "specialInstructions":"",
               "unitPrice":{
                  "value":99.9,
                  "currency":"R$"
               },
               "optionsPrice":{
                  "value":0,
                  "currency":"R$"
               },
               "totalPrice":{
                  "value":99.9,
                  "currency":"R$"
               },
               "options":null,
               "productionPoint":[
                  {
                     "name":"NENHUM"
                  }
               ]
            }
         ],
         "otherFees":[
            {
               "name":"Taxa de Serviço",
               "type":"SERVICE_FEE",
               "receivedBy":"MERCHANT",
               "receiverDocument":"",
               "price":{
                  "value":9.99,
                  "currency":"R$"
               },
               "observation":""
            }
         ],
         "discounts":null,
         "total":{
            "items":99.9,
            "otherFees":9.99,
            "discount":0,
            "orderAmount":109.89
         },
         "delivery":null,
         "takeout":null,
         "indoor":null,
         "table":{
            "waiterCode":9999,
            "tableNumber":6,
            "chairNumber":0
         },
         "card":null
      },
      {
         "orderId":"244e2bc1-b7ef-4260-bbf5-49251bdc5f0f",
         "type":"TABLE",
         "createdAt":"2024-02-08 10:45:02",
         "customerName":"TOTVS",
         "items":[
            {
               "id":"1",
               "index":"331820",
               "name":"A FRANCESA",
               "externalCode":"1",
               "unit":"UNIT",
               "ean":"",
               "quantity":1,
               "specialInstructions":"",
               "unitPrice":{
                  "value":69.9,
                  "currency":"R$"
               },
               "optionsPrice":{
                  "value":0,
                  "currency":"R$"
               },
               "totalPrice":{
                  "value":69.9,
                  "currency":"R$"
               },
               "options":null,
               "productionPoint":[
                  {
                     "name":"COZINHA"
                  }
               ]
            },
            {
               "id":"4",
               "index":"331821",
               "name":"AVELA",
               "externalCode":"4",
               "unit":"UNIT",
               "ean":"",
               "quantity":1,
               "specialInstructions":"",
               "unitPrice":{
                  "value":37.99,
                  "currency":"R$"
               },
               "optionsPrice":{
                  "value":0,
                  "currency":"R$"
               },
               "totalPrice":{
                  "value":37.99,
                  "currency":"R$"
               },
               "options":null,
               "productionPoint":[
                  {
                     "name":"COZINHA"
                  }
               ]
            }
         ],
         "otherFees":[
            {
               "name":"Taxa de Serviço",
               "type":"SERVICE_FEE",
               "receivedBy":"MERCHANT",
               "receiverDocument":"",
               "price":{
                  "value":10.78,
                  "currency":"R$"
               },
               "observation":""
            }
         ],
         "discounts":null,
         "total":{
            "items":107.89,
            "otherFees":10.78,
            "discount":0,
            "orderAmount":118.67
         },
         "delivery":null,
         "takeout":null,
         "indoor":null,
         "table":{
            "waiterCode":1,
            "tableNumber":10,
            "chairNumber":0
         },
         "card":null
      },
      {
         "orderId":"b6017f3d-e680-4840-b69f-d2b573d4f8c0",
         "type":"TABLE",
         "createdAt":"2024-02-25 14:01:50",
         "customerName":"TOTVS",
         "items":[
            {
               "id":"5",
               "index":"331838",
               "name":"BRIGADEIRO COM BABA DE MOCA",
               "externalCode":"5",
               "unit":"UNIT",
               "ean":"",
               "quantity":2,
               "specialInstructions":"",
               "unitPrice":{
                  "value":29.99,
                  "currency":"R$"
               },
               "optionsPrice":{
                  "value":0,
                  "currency":"R$"
               },
               "totalPrice":{
                  "value":30.2,
                  "currency":"R$"
               },
               "options":null,
               "productionPoint":[
                  {
                     "name":"COZINHA"
                  }
               ]
            },
            {
               "id":"6",
               "index":"331839",
               "name":"BRIGADEIRO 2",
               "externalCode":"6",
               "unit":"UNIT",
               "ean":"",
               "quantity":2,
               "specialInstructions":"",
               "unitPrice":{
                  "value":63,
                  "currency":"R$"
               },
               "optionsPrice":{
                  "value":0,
                  "currency":"R$"
               },
               "totalPrice":{
                  "value":63.42,
                  "currency":"R$"
               },
               "options":null,
               "productionPoint":[
                  {
                     "name":"COZINHA"
                  }
               ]
            },
            {
               "id":"5",
               "index":"331841",
               "name":"BRIGADEIRO COM BABA DE MOCA",
               "externalCode":"5",
               "unit":"UNIT",
               "ean":"",
               "quantity":1,
               "specialInstructions":"",
               "unitPrice":{
                  "value":29.99,
                  "currency":"R$"
               },
               "optionsPrice":{
                  "value":0,
                  "currency":"R$"
               },
               "totalPrice":{
                  "value":15.11,
                  "currency":"R$"
               },
               "options":null,
               "productionPoint":[
                  {
                     "name":"COZINHA"
                  }
               ]
            },
            {
               "id":"6",
               "index":"331842",
               "name":"BRIGADEIRO 2",
               "externalCode":"6",
               "unit":"UNIT",
               "ean":"",
               "quantity":1,
               "specialInstructions":"",
               "unitPrice":{
                  "value":63,
                  "currency":"R$"
               },
               "optionsPrice":{
                  "value":0,
                  "currency":"R$"
               },
               "totalPrice":{
                  "value":31.7,
                  "currency":"R$"
               },
               "options":null,
               "productionPoint":[
                  {
                     "name":"COZINHA"
                  }
               ]
            }
         ],
         "otherFees":[
            {
               "name":"Taxa de Serviço",
               "type":"SERVICE_FEE",
               "receivedBy":"MERCHANT",
               "receiverDocument":"",
               "price":{
                  "value":14.04,
                  "currency":"R$"
               },
               "observation":""
            }
         ],
         "discounts":null,
         "total":{
            "items":140.43,
            "otherFees":14.04,
            "discount":0,
            "orderAmount":154.47
         },
         "delivery":null,
         "takeout":null,
         "indoor":null,
         "table":{
            "waiterCode":9999,
            "tableNumber":19,
            "chairNumber":0
         },
         "card":null
      }
   ]
}

Nota: HTTP Status Code = 226 IM Used

Sua solicitação foi retornada com sucesso.




3.4 - Request - Obter detalhes de um consumo específico:

Ao fazer essa requisição, o sistema processa a solicitação e retorna os detalhes completos de um consumo específico, incluindo todas as informações relevantes sobre o pedido consumido
JSON Para retornar o status de um consumo específico

1
2
3
4
5

{
  "integrationHubServiceId": "7056c970-cb11-400f-9d4f-9f30253f3b0b",
  "orderKeyType": "INDOOR",
  "orderKey": ["40"]
}

Nota: HTTP Status Code = 202 Accepted

O seu pedido foi aceite, mas ainda não foi processado, aguarde alguns instantes e contacte a mesma morada para obter o consumo solicitado.




3.5 - Request - Reenviando a solicitação para obter os detalhes de um consumo:

Ao reenviar a requisição para o mesmo endpoint, o sistema retornará as informações atualizadas sobre o consumo solicitado, refletindo seu status mais recente.
JSON de resposta do retorno de um consumo específico HTTP Status Code = 208

1
2
3
4
5
6
7
8

{
    "errors": [
        {
            "key": "orderKeyType_orderKey",
            "message": "Order consumption request already exists: INDOOR_40"
        }
    ]
}  

Nota: HTTP Status Code = 208 Already Reported

Seu pedido já foi enviado, aguarde alguns instantes e entre em contato com o mesmo endereço para obter o consumo solicitado.




3.6 - Request - Solicitação de processamento para obter detalhes específicos do consumo:

Reenviando a requisição, o sistema processará o pedido de forma detalhada e retornará as informações completas sobre o consumo, conforme os dados disponíveis no momento.
JSON de resposta do retorno de um consumo

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74

{
    "success": true,
    "error": null,
    "integrationHubServiceId": "7056c970-cb11-400f-9d4f-9f30253f3b0b",
    "orderKeyType": "INDOOR",
    "orderKey": ["40"],
    "consumption": [
        {
            "orderId": "d8ef12c3-ce5f-4bfa-b1d2-ebde107a2f02",
            "type": "TABLE",
            "createdAt": "2024-06-28 17:27:20",
            "customerName": "TOTVS",
            "items": [
                {
                    "id": "39735945",
                    "index": "4",
                    "name": "MARACUJA",
                    "externalCode": "58",
                    "unit": "UNIT",
                    "ean": "",
                    "quantity": 1,
                    "specialInstructions": "TESTE",
                    "unitPrice": {
                        "value": 61,
                        "currency": "R$"
                    },
                    "optionsPrice": {
                        "value": 0,
                        "currency": "R$"
                    },
                    "totalPrice": {
                        "value": 61,
                        "currency": "R$"
                    },
                    "options": null,
                    "productionPoint": [
                        {
                            "name": "NENHUM"
                        }
                    ]
                }
            ],
            "otherFees": [
                {
                    "name": "Taxa de Serviço",
                    "type": "SERVICE_FEE",
                    "receivedBy": "MERCHANT",
                    "receiverDocument": "",
                    "price": {
                        "value": 6.1,
                        "currency": "R$"
                    },
                    "observation": ""
                }
            ],
            "discounts": [],
            "total": {
                "items": 61,
                "otherFees": 6.1,
                "discount": 0,
                "orderAmount": 67.1
            },
            "delivery": null,
            "takeout": null,
            "indoor": null,
            "table": {
                "waiterCode": 9999,
                "tableNumber": 40,
                "chairNumber": 0
            },
            "card": null
        }
    ]
}

Nota: HTTP Status Code = 226 IM Used

Sua solicitação foi retornada com sucesso.



3.7 - Request - Retornar o status de múltiplos pedidos:

Ao realizar essa requisição, o sistema processa a solicitação e fornece o status atualizado de vários pedidos ao mesmo tempo, incluindo informações detalhadas sobre cada um deles.
JSON Para retornar múltiplos consumos

1
2
3
4
5

{
  "integrationHubServiceId": "ab70a3ce-915b-42ee-9d7f-049d36e26eca",
  "orderKeyType": "TABLE",
  "orderKey": ["20", "40"]
}

Nota: HTTP Status Code = 202 Accepted

O seu pedido foi aceite, mas ainda não foi processado, aguarde alguns instantes e contacte a mesma morada para obter o consumo solicitado.




3.8 - Request - Reenviando a solicitação para obter o status de múltiplos pedidos:

Ao reenviar a requisição, o sistema retornará as informações atualizadas sobre o status dos pedidos solicitados, refletindo quaisquer alterações desde a última consulta.
JSON de resposta do retorno de um consumo específico HTTP Status Code = 208

1
2
3
4
5
6
7
8

{
    "errors": [
        {
            "key": "orderKeyType_orderKey",
            "message": "Order consumption request already exists: TABLE_20, 40"
        }
    ]
}  

Nota: HTTP Status Code = 208 Already Reported

Seu pedido já foi enviado, aguarde alguns instantes e entre em contato com o mesmo endereço para obter o consumo solicitado.




3.9 - Request - Solicitação de processamento para o status de múltiplos pedidos:

Reenviando a requisição, o sistema processará o pedido e fornecerá uma resposta que detalha o status atual de todos os pedidos incluídos na solicitação.
JSON de retorno de múltiplos consumos

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77

{
    "success": true,
    "error": null,
    "integrationHubServiceId": "ab70a3ce-915b-42ee-9d7f-049d36e26eca",
    "orderKeyType": "TABLE",
    "orderKey": [
        "20",
        "40"
    ],
    "consumption": [
        {
            "orderId": "2299a4af-2363-4aa8-803b-b95f7d8e8a7b",
            "type": "TABLE",
            "createdAt": "2024-06-28 17:27:20",
            "customerName": "TOTVS",
            "items": [
                {
                    "id": "39735945",
                    "index": "4",
                    "name": "MARACUJA",
                    "externalCode": "58",
                    "unit": "UNIT",
                    "ean": "",
                    "quantity": 1,
                    "specialInstructions": "TESTE",
                    "unitPrice": {
                        "value": 61,
                        "currency": "R$"
                    },
                    "optionsPrice": {
                        "value": 0,
                        "currency": "R$"
                    },
                    "totalPrice": {
                        "value": 61,
                        "currency": "R$"
                    },
                    "options": null,
                    "productionPoint": [
                        {
                            "name": "NENHUM"
                        }
                    ]
                }
            ],
            "otherFees": [
                {
                    "name": "Taxa de Serviço",
                    "type": "SERVICE_FEE",
                    "receivedBy": "MERCHANT",
                    "receiverDocument": "",
                    "price": {
                        "value": 6.1,
                        "currency": "R$"
                    },
                    "observation": ""
                }
            ],
            "discounts": [],
            "total": {
                "items": 61,
                "otherFees": 6.1,
                "discount": 0,
                "orderAmount": 67.1
            },
            "delivery": null,
            "takeout": null,
            "indoor": null,
            "table": {
                "waiterCode": 9999,
                "tableNumber": 20,
                "chairNumber": 0
            },
            "card": null
        }
    ]
}

Nota: HTTP Status Code = 226 IM Used

Sua solicitação foi retornada com sucesso.

Campos obrigatórios

Campos marcaos com o * (asteristico) o seu preenchimento é obrigatório



04. ERROS

A seguir, alguns dos erros comuns que podem ser apresentados ao lidar com requisições HTTP e suas respectivas respostas:

  • HTTP Status Code - 400 - Bad Request

O código de status HTTP 400, conhecido como "Bad Request" (Requisição Inválida), indica que o servidor não pôde processar a requisição do cliente devido a uma sintaxe inválida, estrutura malformada ou dados inválidos presentes na requisição.

4.1 - Formato inválido do JSON esperado:

A requisição foi enviada com um JSON malformado ou inválido, o que impede o sistema de interpretá-la corretamente. Isso ocorre quando a estrutura JSON contém erros de sintaxe, como chaves ou colchetes incorretos.
JSON Inválido

1
2
3
4
5

{
    "integrationHubServiceId": "a9cad639-5775-4f8a-917b-2ae0f2d284d8",
      "orderKeyType": "string",
       "orderKey": ["string"]
}


JSON Resposta

1
2
3
4
5
6
7
8

{
    "errors": [
        {
            "key": "orderKeyType",
            "message": "body.orderKeyType must be one of [ORDER_ID, INDOOR]"
        }
    ]
}




4.2 - JSON enviado com a ausência de um ou mais campos obrigatórios:

Se a requisição estiver faltando um ou mais campos obrigatórios, o servidor responderá com um erro 400. Cada campo requerido deve estar presente para que a operação seja processada corretamente.
JSON Inválido

1
2
3

{
    "integrationHubServiceId": "a5c4e135-aacd-49c1-b051-160a78a83b56"
}


JSON Resposta

1
2
3
4
5
6
7
8
9
10
11
12

{
    "errors": [
        {
            "key": "orderKeyType",
            "message": "body.orderKeyType is required"
        },
        {
            "key": "orderKey",
            "message": "body.orderKey is required"
        }
    ]
}




4.3 -  GUID incorreto:

O GUID (Identificador Globalmente Único) enviado na requisição está incorreto ou malformado, o que pode resultar em um erro. Um GUID é uma sequência específica que deve seguir o padrão correto.

 
JSON com o GUID inválido

1
2
3
4
5

{
    "integrationHubServiceId": "9a1cf326-c962-456f-8c49-c1bb2f340fc6A",
      "orderKeyType": "INDOOR",
      "orderKey": []
}


JSON Inválido GUID incorreto

1
2
3
4
5
6
7
8

{
    "errors": [
        {
            "key": "integrationHubServiceId",
            "message": "body.integrationHubServiceId must be a valid GUID"
        }
    ]
}



4.4 - Requisição enviada sem informar o orderKey corretamente:

Caso a requisição seja enviada sem o campo orderKey ou com o valor incorreto, o sistema não conseguirá identificar o pedido, resultando em um erro 400. O orderKey deve estar corretamente preenchido e de acordo com o orderKeyType informado.
JSON com sem informar o código da orderKey

1
2
3
4
5

{
    "integrationHubServiceId": "808c143d-d6d4-4b95-8c37-efa3a934f222",
      "orderKeyType": "INDOOR",
      "orderKey": [""]
}


JSON Response

1
2
3
4
5
6
7
8

{
    "errors": [
        {
            "key": 0,
            "message": "body.orderKey[0] is not allowed to be empty"
        }
    ]
}

Nota: HTTP Status Code = 400 Bad Request

A solicitação é inválida e não pôde ser processada devido a erros na entrada fornecida. Verifique os dados enviados e tente novamente.



  • HTTP Status Code 401 - Unauthorized  

O código de status HTTP 401, conhecido como "Unauthorized" (Não Autorizado), indica que a requisição não foi aplicada porque carece de credenciais de autenticação válidas para o recurso alvo. Diferente do código 403 (Forbidden), que significa que o servidor entendeu a requisição, mas se recusa a autorizá-la, o 401 é usado especificamente quando a autenticação é necessária e falhou ou ainda não foi fornecida.


Nota: HTTP Status Code = 401 Unauthorized

A solicitação não pôde ser processada porque o usuário não possui as permissões necessárias. Verifique suas credenciais e tente novamente.



  • HTTP Status Code 403 - Forbidden

O código de status HTTP 403, conhecido como "Forbidden" (Proibido), indica que o servidor entendeu a requisição do cliente, mas está se recusando a cumpri-la. Isso geralmente ocorre quando o cliente não possui permissões adequadas para acessar o recurso solicitado, mesmo que as credenciais de autenticação tenham sido fornecidas corretamente.



URL enviada incorreda


JSON Response para URL incorreta

1
2
3

{
    "message": "Missing Authentication Token"
}

Nota: HTTP Status Code = 403 - Forbidden

O cliente enviou a URL incorreta para solicitação da requisição.



  • HTTP Status Code 404 - Not Found

O código de status HTTP 404, conhecido como "Not Found" (Não Encontrado), indica que o servidor não encontrou o recurso solicitado. Isso pode ocorrer quando o URL fornecido está incorreto, o recurso foi removido permanentemente ou não está disponível no momento da requisição.
Integration Hub Code Inválido

1
2
3
4
5

{
    "integrationHubServiceId": "f1b874af-96ab-4535-aac3-25118fe586cc",
      "orderKeyType": "INDOOR",
        "orderKey": ["5"]
}


JSON Response

1
2
3
4
5
6
7
8

{
    "errors": [
        {
            "key": "integrationHubServiceId",
            "message": "Provider Merchant for integrationHubServiceId \"f1b874af-96ab-4535-aac3-25118fe586cc\" not found or disabled"
        }
    ]
}

Nota: HTTP Status Code = 404 - Not Found

Uma ou mais informações enviadas não puderam ser encontradas.



  • HTTP Status Code 412 - Precondition Failed VERIFICAR COM O KENNEDY

O código de status HTTP 412, conhecido como "Precondition Failed" (Pré-condição Falhou), indica que o servidor não atendeu a uma das pré-condições que o cliente colocou no cabeçalho da requisição. 
JSON

1
2
3
4
5

{
    "integrationHubServiceId": "8f7949c3-cdd6-4db0-8746-369e651026b4",
      "orderKeyType": "INDOOR",
      "orderKey": []
}


HTTP Status Code 412 = Precpndition Failed

1
2
3
4

{
    "message": "NOT_FOUND",
    "code": 412
}

Nota: HTTP Status Code = 412 Precondition Failed

Alguma regra necessária para a execução da solicitação não foi atendida. É necessário analisar o conteúdo da resposta retornada para identificar os motivos.



  • HTTP Status Code 429 - Too Many Requests

O código de status HTTP 429, conhecido como "Too Many Requests" (Muitas Requisições), indica que o cliente excedeu o limite de requisições permitido para um determinado período de tempo. Esse limite é definido pelo servidor e pode variar de acordo com a política de limitação de taxa implementada.
JSON da requisição

1
2
3
4
5

{
    "integrationHubServiceId": "7d7d205b-83ba-47c5-91ba-e4f32a2bbd9e",
      "orderKeyType": "INDOOR",
        "orderKey": ["20", "40"]
}


Resposta da última execução

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77

{
    "success": true,
    "error": null,
    "integrationHubServiceId": "7d7d205b-83ba-47c5-91ba-e4f32a2bbd9e",
    "orderKeyType": "INDOOR",
    "orderKey": [
        "20",
        "40"
    ],
    "consumption": [
        {
            "orderId": "f5fee4b4-c13f-482d-8e98-0dd840629e02",
            "type": "TABLE",
            "createdAt": "2024-06-28 17:27:20",
            "customerName": "TOTVS",
            "items": [
                {
                    "id": "39735945",
                    "index": "4",
                    "name": "MARACUJA",
                    "externalCode": "58",
                    "unit": "UNIT",
                    "ean": "",
                    "quantity": 1,
                    "specialInstructions": "TESTE",
                    "unitPrice": {
                        "value": 61,
                        "currency": "R$"
                    },
                    "optionsPrice": {
                        "value": 0,
                        "currency": "R$"
                    },
                    "totalPrice": {
                        "value": 61,
                        "currency": "R$"
                    },
                    "options": null,
                    "productionPoint": [
                        {
                            "name": "NENHUM"
                        }
                    ]
                }
            ],
            "otherFees": [
                {
                    "name": "Taxa de Serviço",
                    "type": "SERVICE_FEE",
                    "receivedBy": "MERCHANT",
                    "receiverDocument": "",
                    "price": {
                        "value": 6.1,
                        "currency": "R$"
                    },
                    "observation": ""
                }
            ],
            "discounts": [],
            "total": {
                "items": 61,
                "otherFees": 6.1,
                "discount": 0,
                "orderAmount": 67.1
            },
            "delivery": null,
            "takeout": null,
            "indoor": null,
            "table": {
                "waiterCode": 9999,
                "tableNumber": 20,
                "chairNumber": 0
            },
            "card": null
        }
    ]
}

Nota: HTTP Status Code = 429 - Too Many Requests

Alguma regra para atender ao seu pedido não foi cumprida; analise o corpo da resposta para descobrir as razões.


05. LINKS






Card
labelconsumption

CONTEÚDO


01. VISÃO GERAL

O endpoint Status da API Order Mesa é utilizado para envio do resultado da solicitação de consumo do pedido através do Ponto de Venda (PDV). Este endpoint recebe o mesmo corpo de resposta obtida pelo endpoint GetConsumption -   API Order Mesa - Get Consumption



02. ENDPOINT




03. EXEMPLO DE UTILIZAÇÃO

3.1. Request - Corpo da requisição para retornar o consumo específico:

Essa requisição é enviada para obter detalhes sobre o consumo de um pedido específico, retornando as informações relevantes do consumo solicitado.
Corpo da requisição no JSON

1
Status Code
2
Body
3
Legendas
4
200
5
Bloco de código
6
firstline
7
0
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76{
    "success": true,
    "error": null,
    "integrationHubServiceId": "5ffec6b8-1c55-4a7d-985f-12d13685b553",
    "orderKeyType": "TABLE",
    "orderKey": [
        "204"
    ],
    "consumption": [
        {
            "orderId": "f217d261-126c-456a-86d5-d92eda8fbd1a",
            "type": "TABLE",
            "createdAt": "2024-09-24 11:07:41",
            "customerName": "TOTVS",
            "items": [
                {
                    "id": "204",
                    "index": "204",
                    "name": "A FRANCESA",
                    "externalCode": "1",
                    "unit": "UNIT",
                    "ean": "",
                    "quantity": 1,
                    "specialInstructions": "TESTE",
                    "unitPrice": {
                        "value": 69.9,
                        "currency": "R$"
                    },
                    "optionsPrice": {
                        "value": 0,
                        "currency": "R$"
                    },
                    "totalPrice": {
                        "value": 69.9,
                        "currency": "R$"
                    },
                    "options": null,
                    "productionPoint": [
                        {
                            "name": "COZINHA"
                        }
                    ]
                }
            ],
            "otherFees": [
                {
                    "name": "Taxa de Serviço",
                    "type": "SERVICE_FEE",
                    "receivedBy": "MERCHANT",
                    "receiverDocument": "",
                    "price": {
                        "value": 6.99,
                        "currency": "R$"
                    },
                    "observation": ""
                }
            ],
            "discounts": null,
            "total": {
                "items": 69.9,
                "otherFees": 6.99,
                "discount": 0,
                "orderAmount": 76.89
            },
            "delivery": null,
            "takeout": null,
            "indoor": null,
            "table": {
                "waiterCode": 9999,
                "tableNumber": 204,
                "chairNumber": 0
            },
            "card": null
        }
    ]
}
linenumberstrue
{
    "integrationHubServiceId": "7354ffcc-3d8b-4b5e-b345-2ff1f31c960b",
    "orderKeyType": "INDOOR",
    "orderKey": [
      "29"
    ],
    "success": true,
    "consumptions": [
      {
        "type": "INDOOR",
        "createdAt": "2025-01-09T17:35:00",
        "customerName": "Testinho",
        "items": [
          {
                  "id": "283",
                  "index": "283",
                  "name": "A FRANCESA",
                  "externalCode": "1",
                  "unit": "UN",
                  "ean": "string",
                  "quantity": 1,
                  "specialInstructions": "teste",
                  "unitPrice": {
                      "value": 69.9,
                      "currency": "R$"
                  },
                  "price": {
                      "value": 69.9,
                      "currency": "R$"
                  },
                  "originalPrice": {
                      "value": 69.9,
                      "currency": "R$"
                  },
                  "optionsPrice": {
                      "value": 0,
                      "currency": "R$"
                  },
                  "totalPrice": {
                      "value": 69.9,
                      "currency": "R$"
                  },
            "indoor": {
              "productionPoint": "string"
            },
            "options": []
          }
        ],
        "otherFees": [],
        "discounts": [],
        "total": {
          "itemsPrice": {
            "value": 0,
            "currency": "string"
          },
          "otherFees": {
            "value": 0,
            "currency": "string"
          },
          "discount": {
            "value": 0,
            "currency": "string"
          },
          "orderAmount": {
            "value": 0,
            "currency": "string"
          }
        },
        "delivery": {
          "deliveredBy": "MARKETPLACE",
          "deliveryAddress": {
            "country": "string",
            "state": "string",
            "city": "string",
            "district": "string",
            "street": "string",
            "number": "string",
            "complement": "string",
            "reference": "string",
            "formattedAddress": "string",
            "postalCode": "string",
            "coordinates": {
              "latitude": 0,
              "longitude": 0
            }
          },
          "estimatedDeliveryDateTime": "string",
          "deliveryDateTime": "string",
          "pickupCode": "string"
        },
        "takeout": {
          "mode": "DEFAULT",
          "takeoutDateTime": "string"
        }
      }
    ],
    "error": {
      "code": "string",
      "message": "string"
    }
  }
CampoTipoValor
integrationHubServiceIdStringIdentificador da integração
orderKeyTypeStringTipo da orderKey do pedido. Enum: [ "INDOOR","ORDER_ID"]
orderKeyLista de StringLista de key que vinculam o pedido.
successBooleanIndica se teve sucesso ou não.
consumptionsLista de ObjetoLista com os objetos da consumação.
typeStringtipo do pedido.
createdAtStringdata de criação desse pedido. Formato: AAAA-MM-DDThh:mm:ss
customerNameStringNome do cliente.
itemsLista de ObjetoLista com os objetos dos items do pedido.
idStringidentificado do produto.
indexStringIndex de exibição no PDV.
nameStringnome do produto no PDV.
externalCodeString

Código do produto no PDV.

unitString

Unidade de medida, Enum: UN - Unit
KG - Kilogram
L - Liter
OZ - Ounce
LB - Pound
GAL - Gallon
Em caso de pedido fracionado deveria passar um float example: 500 gramas = 0.5kg.

eanString

Código de barras do produto.

quantityNumber

Quantidade do produto.

specialInstructionsString

Instruções extras do pedido.

unitPrice  {ObjetoObjeto de preço unitário
valueNumberValor unitário do produto, aceita até 4 casas decimais.
currency  },StringCódigo da moeda, com base na ISO 4217.
originalPrice  {ObjetoObjeto do preço original
valueNumberValor original do produto, aceita até 4 casas decimais.
currency  },StringCódigo da moeda, com base na ISO 4217.
optionsPrice  {ObjetoObjeto de preço do adicional
valueNumberValor de preço adicional do produto, aceita até 4 casas decimais.
currency  },StringCódigo da moeda, com base na ISO 4217.
subtotalPrice  {ObjetoObjeto do preço do subtotal
valueNumberValor do preço do subtotal do produto, aceita até 4 casas decimais.
currency  },StringCódigo da moeda, com base na ISO 4217.
totalPrice  {ObjetoObjeto do preço total.
valueNumberValor original do produto, aceita até 4 casas decimais.
currency  },StringCódigo da moeda, com base na ISO 4217.
indoorObjetoObjeto que contém o dado de quando o pedido for INDOOR.
productionPointStringIndica o ponto de produção que o pedido foi feito.

























































Nota: HTTP Status Code = 226 IM Used

A solicitação foi processada com sucesso e o resultado foi retornado conforme esperado.




3.2. Request - Corpo da requisição para obter o status de múltiplos pedidos:

Essa requisição é utilizada para consultar o status atualizado de vários pedidos simultaneamente, retornando as informações detalhadas de cada pedido solicitado.
Corpo da requisição no JSON

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226

{
    "success": true,
    "error": null,
    "integrationHubServiceId": "644a4d3c-6d2c-4154-a089-c1ab3fd8915",
    "orderKeyType": "TABLE",
    "orderKey": [
        "06",
        "19"
    ],
    "consumption": [
        {
            "orderId": "c5c1bf93-d112-4f4c-af3b-450b39519e12",
            "type": "TABLE",
            "createdAt": "2024-02-08 10:12:05",
            "customerName": "TOTVS",
            "items": [
                {
                    "id": "251",
                    "index": "331811",
                    "name": "TESTE MYTAPP",
                    "externalCode": "251",
                    "unit": "UNIT",
                    "ean": "",
                    "quantity": 1,
                    "specialInstructions": "",
                    "unitPrice": {
                        "value": 99.9,
                        "currency": "R$"
                    },
                    "optionsPrice": {
                        "value": 0,
                        "currency": "R$"
                    },
                    "totalPrice": {
                        "value": 99.9,
                        "currency": "R$"
                    },
                    "options": null,
                    "productionPoint": [
                        {
                            "name": "NENHUM"
                        }
                    ]
                }
            ],
            "otherFees": [
                {
                    "name": "Taxa de Serviço",
                    "type": "SERVICE_FEE",
                    "receivedBy": "MERCHANT",
                    "receiverDocument": "",
                    "price": {
                        "value": 9.99,
                        "currency": "R$"
                    },
                    "observation": ""
                }
            ],
            "discounts": null,
            "total": {
                "items": 99.9,
                "otherFees": 9.99,
                "discount": 0,
                "orderAmount": 109.89
            },
            "delivery": null,
            "takeout": null,
            "indoor": null,
            "table": {
                "waiterCode": 9999,
                "tableNumber": 6,
                "chairNumber": 0
            },
            "card": null
        },
        {
            "orderId": "644a4d3c-6d2c-4154-a089-c1ab3fd89151",
            "type": "TABLE",
            "createdAt": "2024-02-25 14:01:50",
            "customerName": "TOTVS",
            "items": [
                {
                    "id": "5",
                    "index": "331838",
                    "name": "BRIGADEIRO COM BABA DE MOCA",
                    "externalCode": "5",
                    "unit": "UNIT",
                    "ean": "",
                    "quantity": 2,
                    "specialInstructions": "",
                    "unitPrice": {
                        "value": 29.99,
                        "currency": "R$"
                    },
                    "optionsPrice": {
                        "value": 0,
                        "currency": "R$"
                    },
                    "totalPrice": {
                        "value": 30.2,
                        "currency": "R$"
                    },
                    "options": null,
                    "productionPoint": [
                        {
                            "name": "COZINHA"
                        }
                    ]
                },
                {
                    "id": "6",
                    "index": "331839",
                    "name": "BRIGADEIRO 2",
                    "externalCode": "6",
                    "unit": "UNIT",
                    "ean": "",
                    "quantity": 2,
                    "specialInstructions": "",
                    "unitPrice": {
                        "value": 63,
                        "currency": "R$"
                    },
                    "optionsPrice": {
                        "value": 0,
                        "currency": "R$"
                    },
                    "totalPrice": {
                        "value": 63.42,
                        "currency": "R$"
                    },
                    "options": null,
                    "productionPoint": [
                        {
                            "name": "COZINHA"
                        }
                    ]
                },
                {
                    "id": "5",
                    "index": "331841",
                    "name": "BRIGADEIRO COM BABA DE MOCA",
                    "externalCode": "5",
                    "unit": "UNIT",
                    "ean": "",
                    "quantity": 1,
                    "specialInstructions": "",
                    "unitPrice": {
                        "value": 29.99,
                        "currency": "R$"
                    },
                    "optionsPrice": {
                        "value": 0,
                        "currency": "R$"
                    },
                    "totalPrice": {
                        "value": 15.11,
                        "currency": "R$"
                    },
                    "options": null,
                    "productionPoint": [
                        {
                            "name": "COZINHA"
                        }
                    ]
                },
                {
                    "id": "6",
                    "index": "331842",
                    "name": "BRIGADEIRO 2",
                    "externalCode": "6",
                    "unit": "UNIT",
                    "ean": "",
                    "quantity": 1,
                    "specialInstructions": "",
                    "unitPrice": {
                        "value": 63,
                        "currency": "R$"
                    },
                    "optionsPrice": {
                        "value": 0,
                        "currency": "R$"
                    },
                    "totalPrice": {
                        "value": 31.7,
                        "currency": "R$"
                    },
                    "options": null,
                    "productionPoint": [
                        {
                            "name": "COZINHA"
                        }
                    ]
                }
            ],
            "otherFees": [
                {
                    "name": "Taxa de Serviço",
                    "type": "SERVICE_FEE",
                    "receivedBy": "MERCHANT",
                    "receiverDocument": "",
                    "price": {
                        "value": 14.04,
                        "currency": "R$"
                    },
                    "observation": ""
                }
            ],
            "discounts": null,
            "total": {
                "items": 140.43,
                "otherFees": 14.04,
                "discount": 0,
                "orderAmount": 154.47
            },
            "delivery": null,
            "takeout": null,
            "indoor": null,
            "table": {
                "waiterCode": 9999,
                "tableNumber": 19,
                "chairNumber": 0
            },
            "card": null
        }
    ]
}

Nota: HTTP Status Code = 226 IM Used

Consumo enviado com sucesso..




Dica

O corpo da requisição enviada é o mesmo que o corpo da resposta obtida através do endpoint GetConsumption.


Dicionário da Request

O endpoint Consumption retorna informações sobre o consumo, utilizando o como corpo da requisição a resposta do status code 226 do endpoint API Order Mesa - Get Consumption.

O endpoint Consumption permite consultar os dados de consumo de uma mesa ou várias mesas. Ele retorna informações detalhadas sobre os itens pedidos, preços e outros dados relevantes, facilitando o gerenciamento dos consumos em ambientes de atendimento.


  • Estrutura OrderConsumption:

Campo

Valor

Descrição

integrationHubServiceId *stringIdentificador único da integração
orderKeyType *enum Tipo de chave do pedido (veja na tabela orderKeyType)
orderKey *arrayChave do pedido correspondente 
success *booleanIndica se a operação foi bem-sucedida
consumptionsarrayDetalhes dos consumos relacionados ao pedido. (veja na tabela consumptios)
errorarrayO erro é necessário quando o sucesso é falso. (veja na tabela de error)


  • Estrutura Consumption (dentro de consumptions):

Campo

Valor

Descrição

type *enumTipo do consumo (veja na tabela type)
createdAt *string Data e hora da criação do pedidos
customerName *stringNome do cliente
items *arrayItens do pedido (veja na tabela de items)
ortherFessarrayOutras taxas que podem ser aplicadas (veja na tabela otherFees)
discountsarrayQuaisquer descontos que possam ser aplicados (veja na tabela discounts)
total *arrayConjunto de campos com a soma dos valores descritos anteriormente no pedido (veja na tabela total)
deliveryarrayInformações para pedidos DELIVERY. OBRIGATÓRIO se o tipo escolhido for DELIVERY. (veja tabela delivery)
takeoutarrayInformações para pedidos TAKEOUT. OBRIGATÓRIO se o tipo escolhido for TAKEOUT (veja na tabela takeout)
tablearrayInformações para pedidos de TABLE. OBRIGATÓRIO se o tipo escolhido for TABLE (veja na tabela table)
cardarrayInformações para pedidos CARD. OBRIGATÓRIO se o tipo escolhido for CARTÃO (veja na tabela de card)
errorarrayErro é necessário quando o sucesso é falso (veja tabela de error)


  • Estrutura Consumption (dentro de items):

Campo

Valor

Descrição

id *stringIdentificador único do item
indexstringPosição do item (opcional)
name *stringNome do produto
externalCode *stringCódigo externo do produto (opcional)
unit *stringUnidade de medida do item (veja na tabela unit)
eanstringCódigo de barras EAN do item (opcional)
quantity *numberQuantidade de itens
specialInstructionsstringInstruções especiais sobre o item (opcional)
unitPrice *arrayPreço por unidade, considerando 4 casas decimais (veja tabela de unitPrice)
originalPricearrayPreço original do produto (opcional) (veja tabela de originalPrice)
optionsPricearrayPreço total das opções (opcional) (veja tabela de optionsPrice)
totalPrice *numberPreço total do item (veja tabela de totalPrice)
optionsarrayExtras opcionais escolhidos pelo consumidor. (veja na tabela de options)
productionPoint *stringPonto de produção do produto


  • Estrutura Consumption - items (dentro de options):

Campo

Valor

Descrição

indexstringPosição da opção (opcional)
id *stringIdentificador único da opção
name *stringNome da opção

externalCode *

stringCódigo do produto externo
unit *enumUnidade de medida da opção (veja na tabela unit)
eanstringEAN é o padrão de código de barras usado nos itens.
quantity *numberQuantidade de itens opcionais
unitPrice *arrayPreço por unidade, considerando 4 casas decimais (veja tabela de unitPrice).

originalPrice

arrayPreço original do produto (opcional) (veja tabela de originalPrice).
totalPrice *arrayPreço total da opção (veja tabela de totalPrice)
specialInstructionsstringInstruções especiais sobre a opção (opcional)
productionPoint *stringPonto de produção da opção (opcional)


  • Estrutura Consumption (dentro de otherFees):

Campo

Valor

Descrição

name *stringNome relacionado às taxas
type *enumTipo da taxa (veja na tabela type)
receivedBy *enumPedido recebido por (veja na tabela receivedBy)
receiverDocumentstringDocumento do receptor de outras taxas
price *arrayPreço da taxa(veja tabela de price).
observationstringObservação de outras taxas. Quaisquer comentários extras


  • Estrutura Consumption (dentro de discounts):

Campo

Valor

Descrição

value *numberValor do desconto
target *enumDestino do desconto (vejna na tabela de cart)
targetIdstring

Identificador do alvo (obrigatório quando target = ITEM).

sponsorshipValues *

arrayValores patrocinados por qualquer uma das partes. A soma dos valores listados neste atributo deverá corresponder ao valor informado no atributo valor acima (veja na tabela sponsorshipValues)


  • Estrutura Consumption (dentro de total):

Campo

Valor

Descrição

items *numberSoma do preço total dos itens listados no atributo itens
otherFeesnumberSoma do valor total das demais taxas listadas no atributo otherFees. Se não houver, use 0
discountnumberSoma de quaisquer descontos que possam estar listados no atributo descontos. Se não houver, use 0
orderAmount *numberO valor final da encomenda (itens + outrasTaxas +Taxas adicionais +Taxa de entrega - descontos)
additionalFeesnumberSoma do valor total das taxas adicionais listadas no atributo adicionalFees. Se não houver, use 0
deliveryFeenumberSoma do valor total da taxa de entrega listada no atributo deliveryFee. Se não houver, use 0


  • Estrutura Consumption (dentro de delevery):

Campo

Valor

Descrição

deliveredBy *

enumSolicitar entrega por (veja na tabela de deliveredBy)

deliveryAddress *

arrayO endereço onde o pedido será entregue (veja na tabela deliveryAddress)

estimatedDeliveryDateTime *

stringData e hora estimada de entrega. A mesma data mostrada ao cliente, na interface do Aplicativo de Pedidos

deliveryDateTime

stringData de entrega. A data e hora em que a entrega realmente ocorreu.




Tabela de auxiliares e enumerações

  • Estrutura Enumeração orderKeyType

Enum

Valor

Descrição

TABLETABLEIdentifica o pedido pelo número da mesa
CARDCARDIdentifica o pedido pelo número do cartão
ORDER_IDORDER_IDIdentifica o pedido por um ID exclusivo


  • Estrutura Consumption (dentro de type):

Campo

Valor

Descrição

valuenumberValor do preço
currencystringCódigo da moeda ISO 4217


  • Estrutura Enumeração Consumption - items (dentro de unit):

Enum

Valor

Descrição

UNUNUnidade de medida simples
KGKGQuilograma
LLLitro
OZOZOnça
LBLBLibra
GALGALGalão


  • Estrutura Consumption - items (dentro de unitPrice):

Campo

Valor

Descrição

value *numberValor do preço
currency *stringCódigo da moeda ISO 4217


  • Estrutura Consumption - items (dentro de originalPrice):

Campo

Valor

Descrição

value *numberValor do preço
currency *stringCódigo da moeda ISO 4217


  • Estrutura Consumption - items (dentro de optionsPrice):

Campo

Valor

Descrição

value *numberValor do preço
currency *stringCódigo da moeda ISO 4217


  • Estrutura Consumption - items (dentro de totalPrice):

Campo

Valor

Descrição

value *numberValor do preço
currency *stringCódigo da moeda ISO 4217


  • Estrutura Enumeração Consumption - otherFees (dentro de type):

Enum

Valor

Descrição

DELIVERY_FEEDELIVERY_FEETaxa de entrega
SERVICE_FEESERVICE_FEETaxa de serviço
TIPTIPGorjeta


  • Estrutura Enumeração Consumption - otherFees (dentro de receivedBy):

Enum

Valor

Descrição

MARKETPLACEMARKETPLACEEntidade que recebeu o pedido é o marketplace
MERCHANTMERCHANTEntidade que recebeu o pedido é o comerciante
LOGISTIC_SERVICESLOGISTIC_SERVICESEntidade que recebeu o pedido é a logística


  • Estrutura Enumeração Consumption - delivery (dentro de deliveredBy):

Enum

Valor

Descrição

MARKETPLACEMARKETPLACEEntidade responsável pela entrega é o marketplace
MERCHANTMERCHANTEntidade responsável pela entrega é o comerciante


  • Estrutura Consumption - otherFees (dentro de price):

Campo

Valor

Descrição

value *numberValor do preço
currency *stringCódigo da moeda ISO 4217


  • Estrutura Enumeração Consumption - discounts(dentro de sponsorshipValues):

Enum

Valor

Descrição

MARKETPLACEMARKETPLACEEntidade responsável pela entrega é o marketplace
MERCHANTMERCHANTEntidade responsável pela entrega é o comerciante


  • Estrutura Consumption - delivery (dentro de deliveryAddress):

Campo

Valor

Descição

country *

stringTipo de pedido País do endereço de entrega. *Código de país ISO 3166-1 alfa-2 de duas letras.

state *

stringSubdivisão de estado ou país. É recomendado (mas não obrigatório) que você use a representação ISO 3166-2

city *

stringNome da cidade

district *

stringBairro ou Distrito

street *

stringNome da rua

number *

stringNúmero da rua

complement

stringComplemento de endereço

reference *

stringReferência de endereço

formattedAddress *

stringTexto de endereço totalmente formatado

postalCode *

stringCódigo postal

coordinates *

arrayTipo de pedido Endereço de entrega Coordenadas latitude (veja na tabela coordinates)


  • Estrutura Consumption - delivery - deliveryAddress (dentro de coordinates):

Campo

Valor

Descrição

latitude *

numberLatitude em graus. Os valores estão restritos ao intervalo [[-90, 90]]

longitude *

numberLongitude em graus. Os valores estão restritos ao intervalo [[-180, 180]]


  • Estrutura Consumption (dentro de takeout):

Campo

Valor

Descrição

mode *enumModo de pedido para viagem (veja na tabela mode)

takeoutDateTime *

stringData e hora em que o pedido estará pronto. Pode ser calculado pelo Aplicativo de Pedidos utilizando o tempo médio de preparo dos pratos. O padrão é o mesmo horário de criação do pedido


  • Estrutura Enumeração Consumption - takeout (dentro de mode):

Campo

Valor

Descrição

DEFAULT*DEFAULTIndica que o pedido será retirado pelo cliente sem um local específico de coleta, ou seja, de maneira padrão no estabelecimento

PICKUP_AREA*

PICKUP_AREAIndica que o pedido será retirado em uma área de coleta designada dentro do estabelecimento


  • Estrutura Consumption (dentro de table):

Campo

Valor

Descrição

waiterCode *

numberO identificador do garçom

tableNumber *

numberO identificador da tabela

chairNumber *

numberO identificador do presidente


  • Estrutura Consumption (dentro de card):

Campo

Valor

Descrição

waiterCode *

numberO identificador do garçom

tableNumber *

numberO identificador da tabela

deliveryTableNumber *

numberO identificador da mesa


  • Estrutura Error:

Campo

Valor

Descrição

code *string
Código de erro
message *string
Mensagem de erro

Campos obrigatórios

Campos marcaos com o * (asteristico) o seu preenchimento é obrigatório



04. ERROS

A seguir, alguns dos erros comuns que podem ser apresentados ao lidar com requisições HTTP e suas respectivas respostas:

  • HTTP Status Code - 400 - Bad Request

O código de status HTTP 400, conhecido como "Bad Request" (Requisição Inválida), indica que o servidor não pôde processar a requisição do cliente devido a uma sintaxe inválida, estrutura malformada ou dados inválidos presentes na requisição.


4.1 - Formato inválido do JSON esperado:

A requisição foi enviada com um JSON malformado ou inválido, o que impede o sistema de interpretá-la corretamente. Isso ocorre quando a estrutura JSON contém erros de sintaxe, como chaves ou colchetes incorretos.
JSON Inválido

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76

{
    "success": true,
    "error": null,
    "integrationHubServiceId": "644a4d3c-6d2c-4154-a089-c1ab3fd89151",
    "orderKeyType": "String",
    "orderKey": [
        "06"
    ],
    "consumption": [
        {
            "orderId": "542e6b3e-8e63-4498-bdc8-1e334a22012e",
            "type": "TABLE",
            "createdAt": "2024-02-08 10:12:05",
            "customerName": "TOTVS",
            "items": [
                {
                    "id": "251",
                    "index": "331811",
                    "name": "TESTE MYTAPP",
                    "externalCode": "251",
                    "unit": "UNIT",
                    "ean": "",
                    "quantity": 1,
                    "specialInstructions": "",
                    "unitPrice": {
                        "value": 99.9,
                        "currency": "R$"
                    },
                    "optionsPrice": {
                        "value": 0,
                        "currency": "R$"
                    },
                    "totalPrice": {
                        "value": 99.9,
                        "currency": "R$"
                    },
                    "options": null,
                    "productionPoint": [
                        {
                            "name": "NENHUM"
                        }
                    ]
                }
            ],
            "otherFees": [
                {
                    "name": "Taxa de Serviço",
                    "type": "SERVICE_FEE",
                    "receivedBy": "MERCHANT",
                    "receiverDocument": "",
                    "price": {
                        "value": 9.99,
                        "currency": "R$"
                    },
                    "observation": ""
                }
            ],
            "discounts": null,
            "total": {
                "items": 99.9,
                "otherFees": 9.99,
                "discount": 0,
                "orderAmount": 109.89
            },
            "delivery": null,
            "takeout": null,
            "indoor": null,
            "table": {
                "waiterCode": 9999,
                "tableNumber": 6,
                "chairNumber": 0
            },
            "card": null
        }
    ]
}


Resposta do JSON da requisição

1
2
3
4
5
6
7
8

{
    "errors": [
        {
            "key": "orderKeyType",
            "message": "body.orderKeyType must be one of [ORDER_ID, TABLE, CARD]"
        }
    ]
}




4.2 - JSON enviado com a ausência de um ou mais campos obrigatórios:

Se a requisição estiver faltando um ou mais campos obrigatórios, o servidor responderá com um erro 400. Cada campo requerido deve estar presente para que a operação seja processada corretamente.
JSON Inválido

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74

{
    "integrationHubServiceId": "644a4d3c-6d2c-4154-a089-c1ab3fd89151",
    "orderKeyType": "String",
    "orderKey": [
        "06"
    ],
    "consumption": [
        {
            "orderId": "542e6b3e-8e63-4498-bdc8-1e334a22012e",
            "type": "TABLE",
            "createdAt": "2024-02-08 10:12:05",
            "customerName": "TOTVS",
            "items": [
                {
                    "id": "251",
                    "index": "331811",
                    "name": "TESTE MYTAPP",
                    "externalCode": "251",
                    "unit": "UNIT",
                    "ean": "",
                    "quantity": 1,
                    "specialInstructions": "",
                    "unitPrice": {
                        "value": 99.9,
                        "currency": "R$"
                    },
                    "optionsPrice": {
                        "value": 0,
                        "currency": "R$"
                    },
                    "totalPrice": {
                        "value": 99.9,
                        "currency": "R$"
                    },
                    "options": null,
                    "productionPoint": [
                        {
                            "name": "NENHUM"
                        }
                    ]
                }
            ],
            "otherFees": [
                {
                    "name": "Taxa de Serviço",
                    "type": "SERVICE_FEE",
                    "receivedBy": "MERCHANT",
                    "receiverDocument": "",
                    "price": {
                        "value": 9.99,
                        "currency": "R$"
                    },
                    "observation": ""
                }
            ],
            "discounts": null,
            "total": {
                "items": 99.9,
                "otherFees": 9.99,
                "discount": 0,
                "orderAmount": 109.89
            },
            "delivery": null,
            "takeout": null,
            "indoor": null,
            "table": {
                "waiterCode": 9999,
                "tableNumber": 6,
                "chairNumber": 0
            },
            "card": null
        }
    ]
}


Resposta do JSON da requisição

1
2
3
4
5
6
7
8

{
    "errors": [
        {
            "key": "success",
            "message": "body.success is required"
        }
    ]
}

Nota: HTTP Status Code = 400 Bad Request

A solicitação é inválida e não pôde ser processada devido a erros na entrada fornecida. Verifique os dados enviados e tente novamente.



  • HTTP Status Code 401 - Unauthorized  

O código de status HTTP 401, conhecido como "Unauthorized" (Não Autorizado), indica que a requisição não foi aplicada porque carece de credenciais de autenticação válidas para o recurso alvo. Diferente do código 403 (Forbidden), que significa que o servidor entendeu a requisição, mas se recusa a autorizá-la, o 401 é usado especificamente quando a autenticação é necessária e falhou ou ainda não foi fornecida.


Nota: HTTP Status Code = 401 Unauthorized

A solicitação não pôde ser processada porque o usuário não possui as permissões necessárias. Verifique suas credenciais e tente novamente.



  • HTTP Status Code 403 - Forbidden

O código de status HTTP 403, conhecido como "Forbidden" (Proibido), indica que o servidor não entendeu a requisição do cliente por está tentando acessar uma URL incorreta



URL enviada incorreda


Corpo da requisição no JSON

1
2
3
4
5

{
    "integrationHubServiceId": "1188f64e-3ce8-45be-882c-6c8dcfcb70d4",
      "orderKeyType": "TABLE",
       "orderKey": ["09"]
}

Nota: HTTP Status Code = 403 - Forbidden

O cliente não enviou uma requisição para a URL  incorreta.



  • HTTP Status Code 404 - Not Found

O código de status HTTP 404, conhecido como "Not Found" (Não Encontrado), indica que o servidor não encontrou o recurso solicitado. Isso ocorrer quando o token  da requisição da autenticação, é diferente do token gerado utilizando o integrationHubId  diferente do corpo da requisição.
Corpo da requisição no JSON

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76

{
    "success": true,
    "error": null,
    "integrationHubServiceId": "644a4d3c-6d2c-4154-a089-c1ab3fd891513",
    "orderKeyType": "TABLE",
    "orderKey": [
        "06"
    ],
    "consumption": [
        {
            "orderId": "542e6b3e-8e63-4498-bdc8-1e334a22012e",
            "type": "TABLE",
            "createdAt": "2024-02-08 10:12:05",
            "customerName": "TOTVS",
            "items": [
                {
                    "id": "251",
                    "index": "331811",
                    "name": "TESTE MYTAPP",
                    "externalCode": "251",
                    "unit": "UNIT",
                    "ean": "",
                    "quantity": 1,
                    "specialInstructions": "",
                    "unitPrice": {
                        "value": 99.9,
                        "currency": "R$"
                    },
                    "optionsPrice": {
                        "value": 0,
                        "currency": "R$"
                    },
                    "totalPrice": {
                        "value": 99.9,
                        "currency": "R$"
                    },
                    "options": null,
                    "productionPoint": [
                        {
                            "name": "NENHUM"
                        }
                    ]
                }
            ],
            "otherFees": [
                {
                    "name": "Taxa de Serviço",
                    "type": "SERVICE_FEE",
                    "receivedBy": "MERCHANT",
                    "receiverDocument": "",
                    "price": {
                        "value": 9.99,
                        "currency": "R$"
                    },
                    "observation": ""
                }
            ],
            "discounts": null,
            "total": {
                "items": 99.9,
                "otherFees": 9.99,
                "discount": 0,
                "orderAmount": 109.89
            },
            "delivery": null,
            "takeout": null,
            "indoor": null,
            "table": {
                "waiterCode": 9999,
                "tableNumber": 6,
                "chairNumber": 0
            },
            "card": null
        }
    ]
}


Resposta do JSON da requisição

1
2
3

{
    "Message": "User is not authorized to access this resource with an explicit deny"
}

Nota: HTTP Status Code = 404 - Not Found

Uma ou mais informações enviadas não puderam ser encontradas.



05. LINKS




Card
labelgetCancelledItems

CONTEÚDO


01. VISÃO GERAL


Este endpoint é utilizado para obter itens de cancelamento de pedidos por meio de integração do PDV, fornecendo um retorno em formato JSON com os itens cancelados.

Obtenha os itens cancelados atribuídos a um ou mais pedidos utilizando o parâmetro orderKeyType, que pode ser ORDER_ID, TABLE ou CARD.



02. ENDPOINT




03. EXEMPLO DE UTILIZAÇÃO


3.1 - Request - Enviando a solicitação para o cancelamento de um pedido específico:

Ao fazer essa requisição, o sistema processa a solicitação de cancelamento do pedido indicado.

Payload

Legenda

JSON Para retornar o status de um pedido específico

1
2
3
4
5

{
  "integrationHubServiceId": "7056c970-cb11-400f-9d4f-9f30253f3b0b",
  "orderKeyType": "INDOOR",
  "orderKey": ["40"]
}

Chave

Tipo

Legenda

integrationHubServiceIdStringId da configuração da integração
orderKeyTypeStringProcurar pelo order id ou pelo tipo indoor. Enum: [ INDOOR, ORDER_ID ]
orderKey

Lista de

String

Id do pedido, caso vazio retorna todo do type escolhido.

Nota: HTTP Status Code = 202 Accepted

A solicitação foi aceita, mas ainda não foi processada. É necessário aguardar alguns momentos e, em seguida, entrar em contato no mesmo endereço para obter o status do pedido solicitado.




3.2 - Request - Ao reenviar a solicitação, a resposta retornada será a seguinte:

Após reenviar a requisição, você receberá uma resposta detalhando o status atualizado do processamento do pedido.
JSON de resposta do retorno - HTTP Status Code = 208

1
2
3
4
5
6
7
8

{
    "errors": [
        {
            "key": "orderKeyType_orderKey",
            "message": "Order cancelled itens request already exists: INDOOR_22"
        }
    ]
}

Nota: HTTP Status Code = 208 Already Reported

Seu pedido já foi enviado, aguarde alguns instantes e entre em contato com o mesmo endereço para obter os itens cancelados solicitados.




3.3 - Request - Ao enviar novamente a solicitação, o processamento será realizado conforme a seguinte resposta:

Reenviando a requisição, o sistema processará o pedido e retornará uma resposta que reflete o status do processamento realizado.



JSON de resposta do retorno - Status Code = 226

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22

{
    "success": true,
    "error": null,
    "integrationHubServiceId": "7056c970-cb11-400f-9d4f-9f30253f3b0b",
    "orderKeyType": "INDOOR",
    "orderKey": ["22"],
    "lastestUpdatedStatus": "2024-07-17 14:21:24",
    "items": [
        {
            "id": "39735945",
            "index": "5",
            "name": "MARACUJA",
            "externalCode": "58",
            "quantity": 1,
            "cancellationAgent": "ALBINO",
            "cancellationDateTime": "2024-07-17 14:19:33",
            "cancellationReason": " 55596;",
            "tableCardNumber": "22",
            "productionPoint": "NENHUM"
        }
    ]
}

Nota: HTTP Status Code = 226 IM Used

A solicitação foi processada com sucesso e o resultado foi retornado conforme esperado.




3.4 -  Request - Enviando o pedido para requisição do cancelamento de múltiplos pedidos:
Essa requisição é utilizada para solicitar o cancelamento de diversos pedidos simultaneamente, permitindo que o sistema processe e cancele cada pedido listado de forma eficiente.
Corpo da requisição no JSON

1
2
3
4
5

{
  "integrationHubServiceId": "7056c970-cb11-400f-9d4f-9f30253f3b0b",
  "orderKeyType": "INDOOR",
  "orderKey": ["22", "23"]
}

Nota: HTTP Status Code = 202 Accepted

A solicitação foi aceita, mas ainda não foi processada. É necessário aguardar alguns momentos e, em seguida, entrar em contato no mesmo endereço para obter o status do pedido solicitado.




3.5 - Request - Ao reenviar a solicitação, a resposta retornada será a seguinte:

Após reenviar a requisição, você receberá uma resposta detalhando o status atualizado do processamento do pedido.
JSON de resposta do retorno - HTTP Status Code = 208

1
2
3
4
5
6
7
8

{
    "errors": [
        {
            "key": "orderKeyType_orderKey",
            "message": "Order cancelled itens request already exists: INDOOR_22,23"
        }
    ]
}

Nota: HTTP Status Code = 208 Already Reported

A solicitação já foi enviada. É necessário aguardar alguns momentos e, em seguida, entrar em contato no mesmo endereço para obter o status do pedido solicitado.




3.6 - Request - Ao enviar novamente a solicitação, o processamento será realizado conforme a seguinte resposta:

Reenviando a requisição, o sistema processará o pedido e retornará uma resposta que reflete o status do processamento realizado.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37

{
    "success": true,
    "error": null,
    "integrationHubServiceId": "7056c970-cb11-400f-9d4f-9f30253f3b0b",
    "orderKeyType": "INDOOR",
    "orderKey": [
        "22",
        "23"
    ],
    "lastestUpdatedStatus": "2024-07-17 16:18:40",
    "items": [
        {
            "id": "39735945",
            "index": "5",
            "name": "MARACUJA",
            "externalCode": "58",
            "quantity": 1,
            "cancellationAgent": "ALBINO",
            "cancellationDateTime": "2024-07-17 14:19:33",
            "cancellationReason": " 55596;",
            "tableCardNumber": "22",
            "productionPoint": "NENHUM"
        },
        {
            "id": "3973594011",
            "index": "19",
            "name": "MARACUJA",
            "externalCode": "58",
            "quantity": 1,
            "cancellationAgent": "ALBINO",
            "cancellationDateTime": "2024-07-17 16:04:27",
            "cancellationReason": " 55596;",
            "tableCardNumber": "23",
            "productionPoint": "NENHUM"
        }
    ]
}

Nota: HTTP Status Code = 226 IM Used

A solicitação foi processada com sucesso e o resultado foi retornado conforme esperado.

Campos obrigatórios

Campos marcaos com o * (asteristico) o seu preenchimento é obrigatório



04. ERROS

A seguir, alguns dos erros comuns que podem ser apresentados ao lidar com requisições HTTP e suas respectivas respostas:

  • HTTP Status Code - 400 - Bad Request

O código de status HTTP 400, conhecido como "Bad Request" (Requisição Inválida), indica que o servidor não pôde processar a requisição do cliente devido a uma sintaxe inválida, estrutura malformada ou dados inválidos presentes na requisição:


4.1 - Formato inválido do JSON esperado:

A requisição foi enviada com um JSON malformado ou inválido, o que impede o sistema de interpretá-la corretamente. Isso ocorre quando a estrutura JSON contém erros de sintaxe, como chaves ou colchetes incorretos.
JSON Inválido

1
2
3
4
5

{
    "integrationHubServiceId": "7056c970-cb11-400f-9d4f-9f30253f3b0b",
      "orderKeyType": "string",
      "orderKey": ["22"]
}


JSON Resposta

1
2
3
4
5
6
7
8

{
    "errors": [
        {
            "key": "orderKeyType",
            "message": "body.orderKeyType must be one of [ORDER_ID, INDOOR]"
        }
    ]
}




4.2 - JSON enviado com a ausência de um ou mais campos obrigatórios:

Se a requisição estiver faltando um ou mais campos obrigatórios, o servidor responderá com um erro 400. Cada campo requerido deve estar presente para que a operação seja processada corretamente.
JSON Inválido

1
2
3

{
    "integrationHubServiceId": "a5c4e135-aacd-49c1-b051-160a78a83b56"
}


JSON Resposta

1
2
3
4
5
6
7
8
9
10
11
12

{
    "errors": [
        {
            "key": "orderKeyType",
            "message": "body.orderKeyType is required"
        },
        {
            "key": "orderKey",
            "message": "body.orderKey is required"
        }
    ]
}




4.3 -  GUID incorreto:

O GUID (Identificador Globalmente Único) enviado na requisição está incorreto ou malformado, o que pode resultar em um erro. Um GUID é uma sequência específica que deve seguir o padrão correto.
JSON com o GUID inválido

1
2
3
4
5

{
    "integrationHubServiceId": "9a1cf326-c962-456f-8c49-c1bb2f340fc6A",
      "orderKeyType": "INDOOR",
      "orderKey": []
}


JSON Inválido GUID incorreto

1
2
3
4
5
6
7
8

{
    "errors": [
        {
            "key": "integrationHubServiceId",
            "message": "body.integrationHubServiceId must be a valid GUID"
        }
    ]
}




4.4 - Requisição enviada sem informar o orderKey corretamente:

Caso a requisição seja enviada sem o campo orderKey ou com o valor incorreto, o sistema não conseguirá identificar o pedido, resultando em um erro 400. O orderKey deve estar corretamente preenchido e de acordo com o orderKeyType informado.
JSON com sem informar o código da orderKey

1
2
3
4
5

{
    "integrationHubServiceId": "808c143d-d6d4-4b95-8c37-efa3a934f222",
      "orderKeyType": "TABLE",
      "orderKey": [""]
}


JSON Response

1
2
3
4
5
6
7
8

{
    "errors": [
        {
            "key": "orderKeyType",
            "message": "body.orderKeyType must be one of [ORDER_ID, TABLE, CARD]"
        }
    ]
}

Nota: HTTP Status Code = 400 Bad Request

A solicitação é inválida e não pôde ser processada devido a erros na entrada fornecida. Verifique os dados enviados e tente novamente.



  • HTTP Status Code 401 - Unauthorized  

O código de status HTTP 401, conhecido como "Unauthorized" (Não Autorizado), indica que a requisição não foi aplicada porque carece de credenciais de autenticação válidas para o recurso alvo. Diferente do código 403 (Forbidden), que significa que o servidor entendeu a requisição, mas se recusa a autorizá-la, o 401 é usado especificamente quando a autenticação é necessária e falhou ou ainda não foi fornecida.


Nota: HTTP Status Code = 401 Unauthorized

A solicitação não pôde ser processada porque o usuário não possui as permissões necessárias. Verifique suas credenciais e tente novamente.



  • HTTP Status Code 403 - Forbidden

O código de status HTTP 403, conhecido como "Forbidden" (Proibido), indica que o servidor não entendeu a requisição do cliente por está tentando acessar uma URL incorreta



URL enviada incorreda


JSON Response para URL incorreta

1
2
3

{
    "message": "Missing Authentication Token"
}

Nota: HTTP Status Code = 403 - Forbidden

O cliente não enviou uma requisição para a URL  incorreta.



  • HTTP Status Code 404 - Not Found

O código de status HTTP 404, conhecido como "Not Found" (Não Encontrado), indica que o servidor não encontrou o recurso solicitado. Isso pode ocorrer quando o integrationHubId  está incorreto ou inválido.



Integration Hub Code Inválido

1
2
3
4
5

{
    "integrationHubServiceId": "f1b874af-96ab-4535-aac3-25118fe586cc",
      "orderKeyType": "INDOOR",
      "orderKey": ["5"]
}


JSON Response

1
2
3
4
5
6
7
8

{
    "errors": [
        {
            "key": "integrationHubServiceId",
            "message": "Provider Merchant for integrationHubServiceId \"f1b874af-96ab-4535-aac3-25118fe586cc\" not found or disabled"
        }
    ]
}

Nota: HTTP Status Code = 404 - Not Found

IntegrationHubId incorreto ou inválido



  • HTTP Status Code 429 - Too Many Requests

O código de status HTTP 429, conhecido como "Too Many Requests" (Muitas Requisições), indica que o cliente excedeu o limite de requisições permitido para um determinado período de tempo. Esse limite é definido pelo servidor e pode variar de acordo com a política de limitação de taxa implementada.



JSON da requisição

1
2
3
4
5

{
    "integrationHubServiceId": "7d7d205b-83ba-47c5-91ba-e4f32a2bbd9e",
      "orderKeyType": "INDOOR",
      "orderKey": ["5"]
}


Resposta da última execução

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24

{
    "success": true,
    "error": null,
    "integrationHubServiceId": "5ffec6b8-1c55-4a7d-985f-12d13685b553",
    "orderKeyType": "INDOOR",
    "orderKey": [
        "22"
    ],
    "lastestUpdatedStatus": "2024-07-17 17:08:45",
    "items": [
        {
            "id": "39735945",
            "index": "5",
            "name": "MARACUJA",
            "externalCode": "58",
            "quantity": 1,
            "cancellationAgent": "ALBINO",
            "cancellationDateTime": "2024-07-17 14:19:33",
            "cancellationReason": " 55596;",
            "tableCardNumber": "22",
            "productionPoint": "NENHUM"
        }
    ]
}

Nota: HTTP Status Code = 429 - Too Many Requests

Alguma regra para atender ao seu pedido não foi cumprida; analise o corpo da resposta para descobrir as razões.


05. LINKS







Card
labelcancelledItems

CONTEÚDO


01. VISÃO GERAL

O endpoint CancelledItems da API Order Mesa é utilizado para envio do resultado da solicitação de itens cancelados de pedido através do Ponto de Vendas (PDV). Este endpoint recebe o mesmo corpo da resposta obtida pelo endpoint GetCancelledItems -   API Order Mesa - Get Cancelled Items



02. ENDPOINT




03. EXEMPLO DE UTILIZAÇÃO

3.1 - Envio da requisição para obter o status de um item cancelado no PDV:
Ao enviar a requisição para este endpoint, o sistema processa a solicitação e retorna o status atualizado de um item cancelado no PDV. O corpo da requisição deve conter os dados obtidos no endpoint getCancelledItems, e a resposta fornecerá as informações detalhadas sobre o cancelamento solicitado.
Corpo da requisição no JSON

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22

{
    "success": true,
    "error": null,
    "integrationHubServiceId": "5ffec6b8-1c55-4a7d-985f-12d13685b553",
    "orderKeyType": "TABLE",
    "orderKey": ["22"],
    "lastestUpdatedStatus": "2024-07-18 09:26:47",
    "items": [
        {
            "id": "39735945",
            "index": "5",
            "name": "MARACUJA",
            "externalCode": "58",
            "quantity": 1,
            "cancellationAgent": "ALBINO",
            "cancellationDateTime": "2024-07-17 14:19:33",
            "cancellationReason": " 55596;",
            "tableCardNumber": "22",
            "productionPoint": "NENHUM"
        }
    ]
}

Nota: HTTP Status Code = 226 IM Used

A solicitação foi processada com sucesso e o resultado foi retornado conforme esperado.




3.2. Request - Corpo da requisição para consultar o cancelamento de vários pedidos no PDV específico:

Essa requisição é enviada para verificar se os itens de vários pedidos cancelados em um PDV específico foram transmitidos com sucesso. 
Corpo da requisição no JSON

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37

{
    "success": true,
    "error": null,
    "integrationHubServiceId": "d01ea5cd-7952-4b77-b0ae-ed93aa32e832",
    "orderKeyType": "TABLE",
    "orderKey": [
        "22",
        "23"
    ],
    "lastestUpdatedStatus": "2024-07-18 09:48:03",
    "items": [
        {
            "id": "39735945",
            "index": "5",
            "name": "MARACUJA",
            "externalCode": "58",
            "quantity": 1,
            "cancellationAgent": "ALBINO",
            "cancellationDateTime": "2024-07-17 14:19:33",
            "cancellationReason": " 55596;",
            "tableCardNumber": "22",
            "productionPoint": "NENHUM"
        },
        {
            "id": "3973594011",
            "index": "19",
            "name": "MARACUJA",
            "externalCode": "58",
            "quantity": 1,
            "cancellationAgent": "ALBINO",
            "cancellationDateTime": "2024-07-17 16:04:27",
            "cancellationReason": " 55596;",
            "tableCardNumber": "23",
            "productionPoint": "NENHUM"
        }
    ]
}

Request

O corpo da request preenchida, deverá ser obrigatóriamente o é o mesmo que o corpo do response obtido através do endpoint GetCancelledItems


Dicionário de Request


Informações sobre o campos da request da API cancelledItems, é utilizada para retornar os dados do(s) pedido(s) cancelado(s).

  • Estrutura cancelledItems:

Campo

Valor

Descrição

success *booleanIndica se a operação foi bem-sucedida
errorobjetoContém informações sobre erros, se houver (veja na tabela de error)
integrationHubServiceId *stringChave de identificação de integração
orderKeyType *enumTipo da chave do pedido (veja na tabela orderKeyType)
orderKey *arrayLista de identificadores de pedidos (números de mesa, cartão, ou ID de pedido)
lastestUpdatedStatus *string (data e hora)Data e hora da última atualização do status dos pedidos
items *arrayLista de itens cancelados


  • Enumerações para orderKeyType:

Enum

Valor

Descrição

TABLETABLEIdentifica o pedido pelo número da mesa
CARDCARDIdentifica o pedido pelo número do cartão
ORDER_IDORDER_IDIdentifica o pedido por um ID exclusivo


  • Estrutura cancelledItems (dentro de item):

Campo

Valor

Descrição

id *stringIdentificador do produto no lançamento.
index *stringPosição do produto no lançamento.
name *stringNome do item/produto.
externalCode *stringCódigo do produto no PDV integrado.
quantity *númeroQuantidade do item cancelado.
cancellationAgent *stringOperador responsável pelo cancelamento.
cancellationDateTime *string (data e hora)Data e hora do cancelamento.
cancellationReason *stringMotivo do cancelamento.
tableCardNumber *stringNúmero da mesa ou cartão associado ao item cancelado
productionPoint *stringPonto de produção relacionado ao item


  • Estrutura Error:

Enum

Valor

Descrição

code *código do erroIdentifica o código do erro
message *messagem do erroDescrição detalhada do erro ocorrido, ex: "body.orderKeyType must be one of [ORDER_ID, TABLE, CARD]"

Campos obrigatórios

Campos marcaos com o * (asteristico) o seu preenchimento é obrigatório



04. ERROS

A seguir, alguns dos erros comuns que podem ser apresentados ao lidar com requisições HTTP e suas respectivas respostas:

  • HTTP Status Code - 400 - Bad Request

O código de status HTTP 400, conhecido como "Bad Request" (Requisição Inválida), indica que o servidor não pôde processar a requisição do cliente devido a uma sintaxe inválida, estrutura malformada ou dados inválidos presentes na requisição:


4.1 - Formato inválido do JSON esperado:

A requisição foi enviada com um JSON malformado ou inválido, o que impede o sistema de interpretá-la corretamente. Isso ocorre quando a estrutura JSON contém erros de sintaxe, como chaves ou colchetes incorretos.
Corpo da requisição no JSON faltando campos

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35

{
    "integrationHubServiceId": "5ffec6b8-1c55-4a7d-985f-12d13685b553",
    "orderKeyType": "TABLE",
    "orderKey": [
        "22",
        "23"
    ],
    "lastestUpdatedStatus": "2024-07-18 09:48:03",
    "items": [
        {
            "id": "39735945",
            "index": "5",
            "name": "MARACUJA",
            "externalCode": "58",
            "quantity": 1,
            "cancellationAgent": "ALBINO",
            "cancellationDateTime": "2024-07-17 14:19:33",
            "cancellationReason": " 55596;",
            "tableCardNumber": "22",
            "productionPoint": "NENHUM"
        },
        {
            "id": "3973594011",
            "index": "19",
            "name": "MARACUJA",
            "externalCode": "58",
            "quantity": 1,
            "cancellationAgent": "ALBINO",
            "cancellationDateTime": "2024-07-17 16:04:27",
            "cancellationReason": " 55596;",
            "tableCardNumber": "23",
            "productionPoint": "NENHUM"
        }
    ]
}


Resposta do JSON da requisição

1
2
3
4
5
6
7
8

{
    "errors": [
        {
            "key": "success",
            "message": "body.success is required"
        }
    ]
}




4.2 - JSON enviado com a ausência de um ou mais campos obrigatórios:

Se a requisição estiver faltando um ou mais campos obrigatórios, o servidor responderá com um erro 400. Cada campo requerido deve estar presente para que a operação seja processada corretamente
JSON Inválido

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37

{
    "success": true,
    "error": null,
    "integrationHubServiceId": "5ffec6b8-1c55-4a7d-985f-12d13685b553",
    "orderKeyType": "String",
    "orderKey": [
        "22",
        "23"
    ],
    "lastestUpdatedStatus": "2024-07-18 09:48:03",
    "items": [
        {
            "id": "39735945",
            "index": "5",
            "name": "MARACUJA",
            "externalCode": "58",
            "quantity": 1,
            "cancellationAgent": "ALBINO",
            "cancellationDateTime": "2024-07-17 14:19:33",
            "cancellationReason": " 55596;",
            "tableCardNumber": "22",
            "productionPoint": "NENHUM"
        },
        {
            "id": "3973594011",
            "index": "19",
            "name": "MARACUJA",
            "externalCode": "58",
            "quantity": 1,
            "cancellationAgent": "ALBINO",
            "cancellationDateTime": "2024-07-17 16:04:27",
            "cancellationReason": " 55596;",
            "tableCardNumber": "23",
            "productionPoint": "NENHUM"
        }
    ]
}


Resposta do JSON da requisição

1
2
3
4
5
6
7
8

{
    "errors": [
        {
            "key": "orderKeyType",
            "message": "body.orderKeyType must be one of [ORDER_ID, TABLE, CARD]"
        }
    ]
}

Nota: HTTP Status Code = 400 Bad Request

A solicitação é inválida e não pôde ser processada devido a erros na entrada fornecida. Verifique os dados enviados e tente novamente.



  • HTTP Status Code 401 - Unauthorized  

O código de status HTTP 401, conhecido como "Unauthorized" (Não Autorizado), indica que a requisição não foi aplicada porque carece de credenciais de autenticação válidas para o recurso alvo. Diferente do código 403 (Forbidden), que significa que o servidor entendeu a requisição, mas se recusa a autorizá-la, o 401 é usado especificamente quando a autenticação é necessária e falhou ou ainda não foi fornecida.


Nota: HTTP Status Code = 401 Unauthorized

A solicitação não pôde ser processada porque o usuário não possui as permissões necessárias. Verifique suas credenciais e tente novamente.



  • HTTP Status Code 403 - Forbidden

O código de status HTTP 403, conhecido como "Forbidden" (Proibido), indica que o servidor não entendeu a requisição, por causa do Token de autenticação ausente.



  • HTTP Status Code 404 - Not Found

O código de status HTTP 404, conhecido como "Not Found" (Não Encontrado), indica que o servidor não encontrou o recurso solicitado. Isso ocorrer quando o token  da requisição da autenticação, é diferente do token gerado utilizando o integrationHubId  diferente do corpo da requisição.
JSON de retorno de múltiplos pedidos

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23

{
    "success": true,
    "error": null,
    "integrationHubServiceId": "f1b874af-96ab-4535-aac3-25118fe586cc",
    "orderKeyType": "TABLE",
    "orderKey": [
        "19"
    ],
    "lastestUpdatedStatus": "2024-07-15 17:02:35",
    "items": [
        {
            "id": "406a2a14-ac79-422a-b667-769fa1d2a9a0",
            "status": {
                "code": 505,
                "description": "TABLE_IN_USE"
            },
            "deliveryAgent": null,
            "deliveryDateTime": null,
            "cancellationReason": null,
            "tableCardNumber": "19"
        }
    ]
}


Resposta do JSON da requisição

1
2
3
4
5
6
7
8

{
    "errors": [
        {
            "key": "orderKeyType_orderKey",
            "message": "Order status for: TABLE_22 not found"
        }
    ]
}

Nota: HTTP Status Code = 404 - Not Found

Uma ou mais informações enviadas não puderam ser encontradas.



05. LINKS




Card
labelpayment

CONTEÚDO


01. VISÃO GERAL

Este endpoint é utilizado para realizar o pagamento de pedidos



02. ENDPOINT




03. EXEMPLO DE UTILIZAÇÃO

3.1 - Envio da solicitação de processamento de um pagamento:

Na primeira requisição, o pagamento é enviado ao sistema e colocado na fila de processamento. Esse é o ponto inicial onde o sistema apenas confirma o recebimento da solicitação e inicia os preparativos para validar e processar o pagamento. A resposta indicará que o pagamento foi registrado e está aguardando processamento.



Payload

Legenda

JSON Para retornar o status de um pedido específico

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35

{
  "integrationHubServiceId": "string",
  "orderKeyType": "INDOOR",
  "orderKey": "string",
  "paymentObject": {
    "printOrderAtPos": true,
    "generateInvoice": true,
    "printInvoiceAtPos": true,
    "sendInvoiceEmail": true,
    "summaryExtract": true,
    "customerDocument": "string",
    "documentInReceipt": true,
    "numberPersons": 0,
    "removeServiceFee": true,
    "methods": [
      {
        "value": 0,
        "currency": "string",
        "type": "PREPAID",
        "method": "CREDIT",
        "brand": "VISA",
        "methodInfo": "string",
        "transaction": {
          "authorizationCode": "string",
          "acquirerDocument": "string"
        },
        "changeFor": 0
      }
    ],
    "orderAmount": 0,
    "discounts": 0,
    "fees": 0,
    "total": 0
  }
}

Chave

Tipo

Legenda

integrationHubServiceIdStringId da configuração da integração
orderKeyTypeStringProcurar pelo order id ou pelo tipo indoor. Enum: [ INDOOR, ORDER_ID ]
orderKey

Lista de

String

Id do pedido, caso vazio retorna todo do type escolhido.
paymentObject

Objeto

Objeto com dados de Pagamento
printOrderAtPos

Bool

Indica se o pedido deve ser exibidor no POS
generateInvoice

Bool

Indica se a nota deve ser emitida.
printInvoiceAtPos

Bool

Indica se a nota deve ser exibida no POS.
sendInvoiceEmail

Bool

Indica se a nota deve ser enviada por email
summaryExtract

Bool

Este campo controla se um extrato resumido deve vir junto com o retorno da solicitação
customerDocument

String

customerDocument é obrigatório quando documentInReceipt é true.
documentInReceipt

bool

Indica se o documento do cliente deve aparecer na nota.
numberPerson

Number

Serve para indicar o número de pessoas 
removeServiceFee

Bool

Remove a taxa de serviço do total da conta.
methods

Lista de Objeto

Lista dos métodos de pagamentos
value

Number

Valor do pagamento
currency

String

O código de 3 dígitos de moeda seguindo o padrão ISO 4217 .
type

String

Prepaid se o pagamento foi feito através de alguma plataforma, ou pending se for pago na entrega ou à vista, por exemplo. Enum: [ PREPAID, PENDING ]
method

String

Enum: [ CREDIT, DEBIT, MEAL_VOUCHER, FOOD_VOUCHER, DIGITAL_WALLET, PIX, CASH, CREDIT_DEBIT, COUPON, REDEEM, PREPAID_REDEEM, OTHER ]
brand

String

Indica a marca do cartão selecionado no campo método. Este campo só deverá ser preenchido se o método for CREDIT, DEBIT, CREDIT_DEBIT, MEAL_VOUCHER ou FOOD_VOUCHER

Enum: [ 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 ]

methodInfo

String

Informações adicionais sobre a forma de pagamento. Pode ser utilizado para indicar algumas informações úteis do meio de pagamento escolhido, como o nome da carteira ou um número de autorização. Este campo pode ser utilizado para qualquer método informado, mas é altamente recomendável preenchê-lo quando o método escolhido for OTHER.
transaction

Objeto

Objeto com dados da transação.
authorizationCode

String

Cartão de crédito e/ou subsidiária número da autorização da transação.
acquirerDocument

String

Documento da intermediária da transação( agência, plataforma de delivery, marketplace e outros) do serviço.
changeFor

Number

Indica o total que será pago em dinheiro pelo consumidor e será considerado para o calculo de troco.
(ex. o consumidor vai pagar um pedido de $43 com uma nota de $50. Então deve inserir $50.).
Obrigatório quando o método é CASH.
orderAmount

Number

Valor final do pedido
discounts

Number

Total de desconto aplicado.
fees

Number

O valor total de taxas.
total

Number

Valor total dos pedidos após o somatório



Nota: HTTP Status Code = 202 Accepted

O seu pedido foi aceite, mas ainda não foi processado, aguarde alguns instantes e contacte o mesmo endereço para obter o resultado do pagamento da encomenda solicitada.




3.2 - Reenvio da requisição para verificação do processamento do pagamento

Na segunda requisição, o pagamento já entrou na fase de processamento ativo. O sistema estará validando os dados da transação e realizando a autorização junto às instituições financeiras. O status retornado confirmará que o pagamento está sendo processado, mas ainda não foi concluído.
JSON Para retornar o status de um pedido específico

1
2
3
4
5
6
7
8

{
    "errors": [
        {
            "key": "orderKeyType_orderKey",
            "message": "Order Payment request already exists: INDOOR-2"
        }
    ]
}

Nota: HTTP Status Code = 208 Already Reported

Sua solicitação foi aceita mas ainda não processada, aguarde alguns instantes e procure o status.




3.3 - Reenvio final da requisição com o retorno do processamento e emissão da NFC-e

Ao reenviar a requisição, o pagamento terá sido processado com sucesso. O sistema retornará a NFC-e (Nota Fiscal de Consumidor Eletrônica) como comprovante fiscal, confirmando que a transação foi finalizada e concluída com êxito.
JSON da resposta do processamento

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258

{
    "integrationHubServiceId": "4bac08db-2c6e-4663-a285-d7acfdce579c",
    "success": true,
    "orderKeyType": "TABLE",
    "orderKey": "50",
    "paymentObject": {
        "printOrderAtPos": true,
        "generateInvoice": true,
        "printInvoiceAtPos": true,
        "sendInvoiceEmail": false,
        "summaryExtract": false,
        "customerDocument": null,
        "documentInReceipt": false,
        "numberPersons": 1,
        "removeServiceFee": false,
        "methods": [
            {
                "value": 67.1,
                "currency": "BRL",
                "type": "ONLINE",
                "method": "CREDIT",
                "methodInfo": "VISA"
            }
        ],
        "orderAmount": 61,
        "discounts": 0,
        "fees": 6.1,
        "total": 67.1
    },
    "invoiceDetails": {
        "orderXML": "
<?xml version=\"1.0\" encoding=\"UTF-8\"?>
<nfeProc versao=\"4.00\"
    xmlns=\"http://www.portalfiscal.inf.br/nfe\" >
    <NFe>
        <infNFe versao=\"4.00\" Id=\"NFe35240882373077000171650010004112441194594623\">
            <ide>
                <cUF>35</cUF>
                <cNF>19459462</cNF>
                <natOp>VENDA</natOp>
                <mod>65</mod>
                <serie>1</serie>
                <nNF>411244</nNF>
                <dhEmi>2024-08-16T15:17:35-03:00</dhEmi>
                <tpNF>1</tpNF>
                <idDest>1</idDest>
                <cMunFG>3539806</cMunFG>
                <tpImp>4</tpImp>
                <tpEmis>1</tpEmis>
                <cDV>3</cDV>
                <tpAmb>2</tpAmb>
                <finNFe>1</finNFe>
                <indFinal>1</indFinal>
                <indPres>1</indPres>
                <procEmi>0</procEmi>
                <verProc>03.2408.</verProc>
            </ide>
            <emit>
                <CNPJ>82373077000171</CNPJ>
                <xNome>ALBINO LTDA</xNome>
                <xFant>BOTECO DO ALBINO</xFant>
                <enderEmit>
                    <xLgr>AMELIA LATURRE</xLgr>
                    <nro>100</nro>
                    <xBairro>CENTRO</xBairro>
                    <cMun>3539806</cMun>
                    <xMun>POA</xMun>
                    <UF>SP</UF>
                    <CEP>13211815</CEP>
                    <cPais>1058</cPais>
                    <xPais>BRASIL</xPais>
                    <fone>4145838800</fone>
                </enderEmit>
                <IE>128571670117</IE>
                <IM>65656565</IM>
                <CRT>3</CRT>
            </emit>
            <det nItem=\"1\">
                <prod>
                    <cProd>058</cProd>
                    <cEAN>SEM GTIN</cEAN>
                    <xProd>NOTA FISCAL EMITIDA EM AMBIENTE DE HOMOLOGACAO - SEM VALOR FISCAL</xProd>
                    <NCM>22021000</NCM>
                    <cBenef>PR810000</cBenef>
                    <CFOP>5101</CFOP>
                    <uCom>UN</uCom>
                    <qCom>1.0000</qCom>
                    <vUnCom>61.0000</vUnCom>
                    <vProd>61.00</vProd>
                    <cEANTrib>SEM GTIN</cEANTrib>
                    <uTrib>UN</uTrib>
                    <qTrib>1.0000</qTrib>
                    <vUnTrib>61.0000</vUnTrib>
                    <indTot>1</indTot>
                </prod>
                <imposto>
                    <vTotTrib>19.45</vTotTrib>
                    <ICMS>
                        <ICMS20>
                            <orig>0</orig>
                            <CST>20</CST>
                            <modBC>3</modBC>
                            <pRedBC>12.0000</pRedBC>
                            <vBC>53.68</vBC>
                            <pICMS>18.0000</pICMS>
                            <vICMS>9.66</vICMS>
                        </ICMS20>
                    </ICMS>
                    <PIS>
                        <PISNT>
                            <CST>07</CST>
                        </PISNT>
                    </PIS>
                    <COFINS>
                        <COFINSNT>
                            <CST>07</CST>
                        </COFINSNT>
                    </COFINS>
                </imposto>
            </det>
            <det nItem=\"2\">
                <prod>
                    <cProd>999</cProd>
                    <cEAN>SEM GTIN</cEAN>
                    <xProd>TAXA SERVICO</xProd>
                    <NCM>22021000</NCM>
                    <CFOP>5102</CFOP>
                    <uCom>UN</uCom>
                    <qCom>6.1000</qCom>
                    <vUnCom>1.0000</vUnCom>
                    <vProd>6.10</vProd>
                    <cEANTrib>SEM GTIN</cEANTrib>
                    <uTrib>UN</uTrib>
                    <qTrib>6.1000</qTrib>
                    <vUnTrib>1.0000</vUnTrib>
                    <indTot>1</indTot>
                </prod>
                <imposto>
                    <vTotTrib>1.95</vTotTrib>
                    <ICMS>
                        <ICMS00>
                            <orig>0</orig>
                            <CST>00</CST>
                            <modBC>3</modBC>
                            <vBC>6.10</vBC>
                            <pICMS>3.0000</pICMS>
                            <vICMS>0.18</vICMS>
                        </ICMS00>
                    </ICMS>
                    <PIS>
                        <PISNT>
                            <CST>07</CST>
                        </PISNT>
                    </PIS>
                    <COFINS>
                        <COFINSNT>
                            <CST>07</CST>
                        </COFINSNT>
                    </COFINS>
                </imposto>
            </det>
            <total>
                <ICMSTot>
                    <vBC>59.78</vBC>
                    <vICMS>9.84</vICMS>
                    <vICMSDeson>0.00</vICMSDeson>
                    <vFCP>0.00</vFCP>
                    <vBCST>0.00</vBCST>
                    <vST>0.00</vST>
                    <vFCPST>0.00</vFCPST>
                    <vFCPSTRet>0.00</vFCPSTRet>
                    <vProd>67.10</vProd>
                    <vFrete>0.00</vFrete>
                    <vSeg>0.00</vSeg>
                    <vDesc>0.00</vDesc>
                    <vII>0.00</vII>
                    <vIPI>0.00</vIPI>
                    <vIPIDevol>0.00</vIPIDevol>
                    <vPIS>0.00</vPIS>
                    <vCOFINS>0.00</vCOFINS>
                    <vOutro>0.00</vOutro>
                    <vNF>67.10</vNF>
                    <vTotTrib>21.40</vTotTrib>
                </ICMSTot>
            </total>
            <transp>
                <modFrete>9</modFrete>
            </transp>
            <pag>
                <detPag>
                    <indPag>0</indPag>
                    <tPag>03</tPag>
                    <vPag>67.10</vPag>
                    <card>
                        <tpIntegra>2</tpIntegra>
                    </card>
                </detPag>
                <vTroco>0.00</vTroco>
            </pag>
            <infAdic>
                <infCpl>Mesa: 50 Pedido:48 TOTVS CHEF  Aplicativo: TOTVS Chef 03.2408. Serie: 96736041 Valor aproximado dos tributos deste cupom: Federal: R$ 9.32 Estadual: R$ 12.08 Municipal: R$ 0.00 Fonte IBPT/empresometro.com.br SP B047CD</infCpl>
                <obsCont xCampo=\"Series\">
                    <xTexto>MDAxMDAwNDExMjQ0MDAxMDAwNDExMjQ0</xTexto>
                </obsCont>
            </infAdic>
            <infRespTec>
                <CNPJ>82373077000171</CNPJ>
                <xContato>Renato Alves</xContato>
                <email>resp_tecnico_dfe_varejo@totvs.com.br</email>
                <fone>1120997271</fone>
            </infRespTec>
        </infNFe>
        <infNFeSupl>
            <qrCode>
                <![CDATA[https://www.homologacao.nfce.fazenda.sp.gov.br/qrcode?p=35240882373077000171650010004112441194594623|2|2|3|8D40911388AD28F90084AE3719A34693E143BFC3]]>
            </qrCode>
            <urlChave>https://www.homologacao.nfce.fazenda.sp.gov.br/consulta</urlChave>
        </infNFeSupl>
        <Signature
            xmlns=\"http://www.w3.org/2000/09/xmldsig#\">
            <SignedInfo>
                <CanonicalizationMethod Algorithm=\"http://www.w3.org/TR/2001/REC-xml-c14n-20010315\"/>
                <SignatureMethod Algorithm=\"http://www.w3.org/2000/09/xmldsig#rsa-sha1\"/>
                <Reference URI=\"#NFe35240882373077000171650010004112441194594623\">
                    <Transforms>
                        <Transform Algorithm=\"http://www.w3.org/2000/09/xmldsig#enveloped-signature\"/>
                        <Transform Algorithm=\"http://www.w3.org/TR/2001/REC-xml-c14n-20010315\"/>
                    </Transforms>
                    <DigestMethod Algorithm=\"http://www.w3.org/2000/09/xmldsig#sha1\"/>
                    <DigestValue>MXavema7a33mkklhtGM9J06sZG0=</DigestValue>
                </Reference>
            </SignedInfo>
            <SignatureValue>E231EM9ovdpJzgrXNoM0cNxnmrJ11uvRJqlWHtIEZPqYFoCE89vQ/H9ZI2+XjBsaqFzjBzM/Q0MaeACVb8/6pboktVvUc51dFlsc43ZE29btX7USJveK17XOUvZB/vQ3ig7nEnPbiQUI/fJHwUaTyhZx4IUNyOKBp9mHoMIyKcrsMkVcsOBRvz1TW3w5deoLVpcYk3hiqeNzax00wGZqhJqE0kGEyayCmN6By5WkzBvOuJd388R6ZX28a2ABekUVOwv7XlkVon7QhqXm47umON7sR5ksvQ2Op+OKxL8NlzKeTjb4AG6SwRitAJ6XHCMuN9pl3ZTOTmGHdF8e7jB77Q==</SignatureValue>
            <KeyInfo>
                <X509Data>
                    <X509Certificate>MIIH5DCCBcygAwIBAgIUEU0TcJfzT1nRO/DUHjQaoGrv4vQwDQYJKoZIhvcNAQELBQAwejELMAkGA1UEBhMCQlIxEzARBgNVBAoTCklDUC1CcmFzaWwxNjA0BgNVBAsTLVNlY3JldGFyaWEgZGEgUmVjZWl0YSBGZWRlcmFsIGRvIEJyYXNpbCAtIFJGQjEeMBwGA1UEAxMVQUMgRElHSVRBTFNJR04gUkZCIEczMB4XDTIzMDkxMTE2NTY0NVoXDTI0MDkxMTE2NTY0NFowggEAMQswCQYDVQQGEwJCUjETMBEGA1UECgwKSUNQLUJyYXNpbDELMAkGA1UECAwCU1AxEjAQBgNVBAcMCVNhbyBQYXVsbzE2MDQGA1UECwwtU2VjcmV0YXJpYSBkYSBSZWNlaXRhIEZlZGVyYWwgZG8gQnJhc2lsIC0gUkZCMRYwFAYDVQQLDA1SRkIgZS1DTlBKIEExMRcwFQYDVQQLDA4yNDE4MTI1MzAwMDE3NzETMBEGA1UECwwKcHJlc2VuY2lhbDE9MDsGA1UEAww0VE9UVlMgTEFSR0UgRU5URVJQUklTRSBURUNOT0xPR0lBIFMgQTo4MjM3MzA3NzAwMDE3MTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKpuos2YqOPC3XUCl1CiFuCYT9wgEc9Et2om5idQt2/NCZPNaLQrbHC9yGTZrRZbYi28J52pXoWMlAl8nqindCUaxKbnBrdt6tQ/6wMj3bDYBg5eStD9gCAIATMERo/8RrD6G5RkUrrGLKvSoSwKkoF80tRhSbjYNkKpHwy8tmG0mTm1TTZzbs3OPR1nQXtMDxv0BED2Lydi2bIYCkKK45IGHHpsnE3VxP+XymnYK0y7D1s5pY2SxWT9lNsrNrfclP9UpYUt7wyB4yoh80lEb0o9GnoBf6zba0jXrxUtzo25SCVe/2rKyiSDyEprvUGgh0X36KCg03plBo/fIGp4Ck0CAwEAAaOCAtgwggLUMAkGA1UdEwQCMAAwHwYDVR0jBBgwFoAU3bi13QLcuFDKfgZUQ8F+/K70rXswgagGCCsGAQUFBwEBBIGbMIGYMF0GCCsGAQUFBzAChlFodHRwOi8vd3d3LmRpZ2l0YWxzaWduY2VydGlmaWNhZG9yYS5jb20uYnIvcmVwb3NpdG9yaW8vcmZiL0FDRElHSVRBTFNJR05SRkJHMy5wN2IwNwYIKwYBBQUHMAGGK2h0dHA6Ly9vY3NwLmRpZ2l0YWxzaWduY2VydGlmaWNhZG9yYS5jb20uYnIwXQYDVR0gBFYwVDBSBgZgTAECASwwSDBGBggrBgEFBQcCARY6aHR0cDovL3d3dy5kaWdpdGFsc2lnbmNlcnRpZmljYWRvcmEuY29tLmJyL3JlcG9zaXRvcmlvL3JmYjAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwQwgbEGA1UdHwSBqTCBpjBXoFWgU4ZRaHR0cDovL3d3dy5kaWdpdGFsc2lnbmNlcnRpZmljYWRvcmEuY29tLmJyL3JlcG9zaXRvcmlvL3JmYi9BQ0RJR0lUQUxTSUdOUkZCRzMuY3JsMEugSaBHhkVodHRwOi8vd3d3LmRpZ2l0YWx0cnVzdC5jb20uYnIvcmVwb3NpdG9yaW8vcmZiL0FDRElHSVRBTFNJR05SRkJHMy5jcmwwDgYDVR0PAQH/BAQDAgXgMIG4BgNVHREEgbAwga2BGW5ld3Rvbi5jZXNhckB0b3R2cy5jb20uYnKgOAYFYEwBAwSgLwQtMDYxMjE5NzUxNzQxODkyODgwNzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwoCIGBWBMAQMCoBkEF0dJTFNPTUFSIE1BSUEgU0VCQVNUSUFPoBkGBWBMAQMDoBAEDjgyMzczMDc3MDAwMTcxoBcGBWBMAQMHoA4EDDAwMDAwMDAwMDAwMDANBgkqhkiG9w0BAQsFAAOCAgEAOcL9EqIH7BChrULLpdyC9XynpllmCt30JNcccHWXNBac1X5XEtNKhPGJowtqBx/hWoo3bh/kJfFPH9vTXVhBaH3llduBU+xQwaBD1wuURPtZqDaKIIOmxBZUqfFlGt1U6JptB+zBiNRUe16cMmEJ86rlgVqlCgLe7161HDBEX+JyjfQyuolfObimjP9IilQWAFUkqJDvnBVfXYEwz69gg0JM8tYL3O18ldrkpDQ68KiZAiMoImkbr6oL48js+MQEfhMA0Q33LAXYj1enqlsimw4w/zZMZGvdE5PBbrv9spL0mg8AQIxy+GTx/QMwoC8XHgUrq+mAv9Eflp/w+LP2D0eP/ELilfwBDzPE2FECU+F8Bz5AQcbD8VHGAn0f5FtdqEssPlJyjOhGN26aYnoZ++2wLHPUq60qsZAM+9xEo2anwCwERJpwN64PsJItk2qQfGJeKYXGJrmMrGtxGRuONO1bW506Sdn4i/UdBt1XZhnaT2U4R/nytcuQ2E7DnBcLLdHD/MCP5UavJ4+1cQbCwD6xe6+GpkJTnk0Ei76HRSRdHRZR2xU6ebMV4x+Dcc7jR4pH0mMoXFkAn+IMd2M3JGKMjOikh49PguWRUYDtQo37Hs/cYTBc/3h452dV9qV6GI9c3Eg4vZPX3LebnsjYYkSdRdvqXYW+8xibmxa1vF8=</X509Certificate>
                </X509Data>
            </KeyInfo>
        </Signature>
    </NFe>
    <protNFe versao=\"4.00\">
        <infProt>
            <tpAmb>2</tpAmb>
            <verAplic>SP_NFCE_PL_009_V400</verAplic>
            <chNFe>35240882373077000171650010004112441194594623</chNFe>
            <dhRecbto>2024-08-16T15:17:38-03:00</dhRecbto>
            <nProt>135240002154737</nProt>
            <digVal>MXavema7a33mkklhtGM9J06sZG0=</digVal>
            <cStat>100</cStat>
            <xMotivo>Autorizado o uso da NF-e</xMotivo>
        </infProt>
    </protNFe>
</nfeProc>",
        "invoiceKey": "35240882373077000171650010004112441194594623",
        "qrCode": "https://www.homologacao.nfce.fazenda.sp.gov.br/qrcode?p=35240882373077000171650010004112441194594623|2|2|3|8D40911388AD28F90084AE3719A34693E143BFC3"
    },
    "error": null
}

Campos obrigatórios

Campos marcaos com o * (asteristico) o seu preenchimento é obrigatório



04. ERROS

A seguir, alguns dos erros comuns que podem ser apresentados ao lidar com requisições HTTP e suas respectivas respostas:

  • HTTP Status Code - 400 - Bad Request

O código de status HTTP 400, conhecido como "Bad Request" (Requisição Inválida), indica que o servidor não pôde processar a requisição do cliente devido a uma sintaxe inválida, estrutura malformada ou dados inválidos presentes na requisição:


4.1 - Formato inválido do JSON esperado:

A requisição foi enviada com um JSON malformado ou inválido, o que impede o sistema de interpretá-la corretamente. Isso ocorre quando a estrutura JSON contém erros de sintaxe, como chaves ou colchetes incorretos.
JSON Inválido

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30

{
    "integrationHubServiceId": "02990348-9d85-416d-a573-6dc83eee52e7",
    "orderKeyType": "INDOOR",
    "orderKey": 2,
    "paymentObject": {
        "printOrderAtPos": true,
        "generateInvoice": true,
        "printInvoiceAtPos": true,
        "sendInvoiceEmail": false,
        "summaryExtract": false,
        "customerDocument": null,
        "documentInReceipt": false,
        "numberPersons": 1,
        "removeServiceFee": false,
        "methods": [
            {
                "value": 67.10,
                "currency": "BRL",
                "type": "OFFLINE",
                "method": "CREDIT",
                "methodInfo": "VISA"
            }
         
        ],
        "orderAmount": 61.0,
        "discounts": 0.00,
        "fees": 6.10,
        "total": 67.10
    }
}


JSON Resposta

1
2
3
4
5
6
7
8

{
    "errors": [
        {
            "key": "orderKey",
            "message": "body.orderKey must be a string"
        }
    ]
}




4.2 - JSON enviado com a ausência de um ou mais campos obrigatórios:

Se a requisição estiver faltando um ou mais campos obrigatórios, o servidor responderá com um erro 400. Cada campo requerido deve estar presente para que a operação seja processada corretamente.
JSON Inválido

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29

{
    "integrationHubServiceId": "02990348-9d85-416d-a573-6dc83eee52e7",
    "orderKey": 2,
    "paymentObject": {
        "printOrderAtPos": true,
        "generateInvoice": true,
        "printInvoiceAtPos": true,
        "sendInvoiceEmail": false,
        "summaryExtract": false,
        "customerDocument": null,
        "documentInReceipt": false,
        "numberPersons": 1,
        "removeServiceFee": false,
        "methods": [
            {
                "value": 67.10,
                "currency": "BRL",
                "type": "OFFLINE",
                "method": "CREDIT",
                "methodInfo": "VISA"
            }
         
        ],
        "orderAmount": 61.0,
        "discounts": 0.00,
        "fees": 6.10,
        "total": 67.10
    }
}


JSON Resposta

1
2
3
4
5
6
7
8

{
    "errors": [
        {
            "key": "orderKeyType",
            "message": "body.orderKeyType is required"
        }
    ]
}




4.3 -  GUID incorreto:

O GUID (Identificador Globalmente Único) enviado na requisição está incorreto ou malformado, o que pode resultar em um erro. Um GUID é uma sequência específica que deve seguir o padrão correto.
JSON com o GUID inválido

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29

{
    "integrationHubServiceId": "02990348-9d85-416d-a573-6dc83eee52eA",
    "orderKey": 2,
    "paymentObject": {
        "printOrderAtPos": true,
        "generateInvoice": true,
        "printInvoiceAtPos": true,
        "sendInvoiceEmail": false,
        "summaryExtract": false,
        "customerDocument": null,
        "documentInReceipt": false,
        "numberPersons": 1,
        "removeServiceFee": false,
        "methods": [
            {
                "value": 67.10,
                "currency": "BRL",
                "type": "OFFLINE",
                "method": "CREDIT",
                "methodInfo": "VISA"
            }
         
        ],
        "orderAmount": 61.0,
        "discounts": 0.00,
        "fees": 6.10,
        "total": 67.10
    }
}


JSON Inválido GUID incorreto

1
2
3
4
5
6
7
8

{
    "errors": [
        {
            "key": "integrationHubServiceId",
            "message": "body.integrationHubServiceId must be a valid GUID"
        }
    ]
}




4.4 - Requisição enviada sem informar o orderKey corretamente:

Caso a requisição seja enviada sem o campo orderKey ou com o valor incorreto, o sistema não conseguirá identificar o pedido, resultando em um erro 400. O orderKey deve estar corretamente preenchido e de acordo com o orderKeyType informado.
JSON com sem informar o código da orderKey

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

{
    "integrationHubServiceId": "02990348-9d85-416d-a573-6dc83eee52e7",
    "orderKey": 2,
    "paymentObject": {
        "printOrderAtPos": true,
        "generateInvoice": true,
        "printInvoiceAtPos": true,
        "sendInvoiceEmail": false,
        "summaryExtract": false,
        "customerDocument": null,
        "documentInReceipt": false,
        "numberPersons": 1,
        "removeServiceFee": false,
        "methods": [],
        "orderAmount": 61.0,
        "discounts": 0.00,
        "fees": 6.10,
        "total": 67.10
    }
}


JSON Response

1
2
3
4
5
6
7
8

{
    "errors": [
        {
            "key": "methods",
            "message": "body.paymentObject.methods must contain at least 1 items"
        }
    ]
}

Nota: HTTP Status Code = 400 Bad Request

A solicitação é inválida e não pôde ser processada devido a erros na entrada fornecida. Verifique os dados enviados e tente novamente.



  • HTTP Status Code 401 - Unauthorized  

O código de status HTTP 401, conhecido como "Unauthorized" (Não Autorizado), indica que a requisição não foi aplicada porque carece de credenciais de autenticação válidas para o recurso alvo. Diferente do código 403 (Forbidden), que significa que o servidor entendeu a requisição, mas se recusa a autorizá-la, o 401 é usado especificamente quando a autenticação é necessária e falhou ou ainda não foi fornecida.


Nota: HTTP Status Code = 401 Unauthorized

A solicitação não pôde ser processada porque o usuário não possui as permissões necessárias. Verifique suas credenciais e tente novamente.



  • HTTP Status Code 403 - Forbidden

O código de status HTTP 403, conhecido como "Forbidden" (Proibido), indica que o servidor não entendeu a requisição do cliente por está tentando acessar uma URL incorreta



URL enviada incorreda


JSON Response para URL incorreta

1
2
3

{
    "message": "Missing Authentication Token"
}

Nota: HTTP Status Code = 403 - Forbidden

O cliente não enviou uma requisição para a URL  incorreta.



  • HTTP Status Code 404 - Not Found

O código de status HTTP 404, conhecido como "Not Found" (Não Encontrado), indica que o servidor não encontrou o recurso solicitado. Isso pode ocorrer quando o integrationHubId  está incorreto ou inválido.



Integration Hub Code Inválido

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30

{
    "integrationHubServiceId": "02990348-9d85-416d-a573-6dc83eee52e7",
    "orderKeyType": "INDOOR",
    "orderKey": "2",
    "paymentObject": {
        "printOrderAtPos": true,
        "generateInvoice": true,
        "printInvoiceAtPos": true,
        "sendInvoiceEmail": false,
        "summaryExtract": false,
        "customerDocument": null,
        "documentInReceipt": false,
        "numberPersons": 1,
        "removeServiceFee": false,
        "methods": [
            {
                "value": 67.10,
                "currency": "BRL",
                "type": "OFFLINE",
                "method": "CREDIT",
                "methodInfo": "VISA"
            }
         
        ],
        "orderAmount": 61.0,
        "discounts": 0.00,
        "fees": 6.10,
        "total": 67.10
    }
}


JSON Response

1
2
3
4
5
6
7
8

{
    "errors": [
        {
            "key": "integrationHubServiceId",
            "message": "Provider Merchant for integrationHubServiceId \"02990348-9d85-416d-a573-6dc83eee52e7\" not found or disabled"
        }
    ]
}

Nota: HTTP Status Code = 404 - Not Found

IntegrationHubId incorreto ou inválido



  • HTTP Status Code 412 - Precondition Failed

O código de status HTTP 412, conhecido como "Precondition Failed" (Pré-condição Falhou), alguma regra para atendimento de sua solicitação não foi atendida, analise o corpo da declaração para saber os motivos.



JSON

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30

{
    "integrationHubServiceId": "efdd6093-5539-4ac4-ad84-7423a8078dde",
    "orderKeyType": "INDOOR",
    "orderKey": "2",
    "paymentObject": {
        "printOrderAtPos": true,
        "generateInvoice": true,
        "printInvoiceAtPos": true,
        "sendInvoiceEmail": false,
        "summaryExtract": false,
        "customerDocument": null,
        "documentInReceipt": false,
        "numberPersons": 1,
        "removeServiceFee": false,
        "methods": [
            {
                "value": 67.10,
                "currency": "BRL",
                "type": "OFFLINE",
                "method": "CREDIT",
                "methodInfo": "VISA"
            }
         
        ],
        "orderAmount": 61.0,
        "discounts": 0.00,
        "fees": 6.10,
        "total": 67.10
    }
}


HTTP Status Code 412 = Precpndition Failed

1
2
3
4

{
    "message": "Mesa não possui itens sem vinculo com cadeiras para recebimento completo.;Total dos produtos informado é diferente do total dos produtos das Cadeiras informadas.;Total da Conta informada é diferente do total da conta no sistema.",
    "code": 412
}

Nota: HTTP Status Code = 412 Precondition Failed

Alguma regra necessária para a execução da solicitação não foi atendida. É necessário analisar o conteúdo da resposta retornada para identificar os motivos.



  • HTTP Status Code 429 - Too Many Requests

O código de status HTTP 429, conhecido como "Too Many Requests" (Muitas Requisições), indica que o cliente excedeu o limite de requisições permitido para um determinado período de tempo. Esse limite é definido pelo servidor e pode variar de acordo com a política de limitação de taxa implementada.



JSON da requisição

1
2
3
4
5

{
    "integrationHubServiceId": "7d7d205b-83ba-47c5-91ba-e4f32a2bbd9e",
      "orderKeyType": "INDOOR",
        "orderKey": ["5"]
}


Resposta da última execução

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23

{
    "success": true,
    "error": null,
    "integrationHubServiceId": "7d7d205b-83ba-47c5-91ba-e4f32a2bbd9e",
    "orderKeyType": "TABLE",
    "orderKey": [
        "5"
    ],
    "lastestUpdatedStatus": "2024-07-02 18:54:28",
    "items": [
        {
            "id": "de9fd388-c223-4325-a64d-08889250f839",
            "status": {
                "code": 504,
                "description": "OPEN_TABLE"
            },
            "deliveryAgent": null,
            "deliveryDateTime": null,
            "cancellationReason": null,
            "tableCardNumber": "5"
        }
    ]
}

Nota: HTTP Status Code = 429 - Too Many Requests

Alguma regra para atender ao seu pedido não foi cumprida; analise o corpo da resposta para descobrir as razões.


05. LINKS






Card
labelpaymentResult