Páginas filhas
  • API Order Mesa - Payment

Versões comparadas

Chave

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

CONTEÚDO


01. VISÃO GERAL

...

Âncora
ver_geral
ver_geral

Este endpoint é utilizado para realizar o pagamento de pedidos


...

02. ENDPOINT
Âncora
endpoint
endpoint


MétodoURL
POSThttps://api-barramento.meuelevestage.com/order/payment


...

03. EXEMPLO DE UTILIZAÇÃO

01. Corpo da requisição de envio de novo pedidos inteiro:

Âncora
todos_status
todos_status

Bloco de código
titleCorpo da requisição no JSON
linenumberstrue
{
    "integrationHubServiceId": "efdd6093-5539-4ac4-ad84-7423a8078dde",
    "orderKeyType": "TABLE",
    "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
    }
}
Nota
titleNota: 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.


...

02. Retorno da requisição após o processamento do pedido do pagamento:

Âncora
detalhes_pedido_especifico
detalhes_pedido_especifico

Bloco de código
titleJSON Para retornar o status de um pedido específico
linenumberstrue
{
	"errors": [
		{
			"key": "orderKeyType_orderKey",
			"message": "Order Payment request already exists: TABLE-2"
		}
	]
}
Nota
titleNota: HTTP Status Code = 208 Already Reported

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


...


Informações
titleNota:

Este JSON é utilizado para enviar informações de pagamento de um pedido através de um serviço de integração. Ele contém detalhes sobre o pedido, o método de pagamento utilizado e outras informações relevantes para o processamento do pagamento.

Campos:

  • integrationHubServiceId (string, obrigatório)

    • Descrição: Chave de identificação da integração.
    • Exemplo: "5ffec6b8-1c55-4a7d-985f-12d13685b553"
  • orderKeyType (string, obrigatório)

    • Descrição: Tipo da chave do pedido. Pode assumir os valores "TABLE", "CARD" ou "ORDER_ID".
    • Exemplo: "TABLE"
  • orderKey (string, obrigatório)

    • Descrição: Chave do pedido específica. Deve ser fornecida de acordo com o tipo de chave especificado em orderKeyType.
    • Exemplo: "2"
  • paymentObject (object, obrigatório)

    • Descrição: Objeto que contém as informações de pagamento do pedido.

    • Campos do paymentObject:

      • printOrderAtPos (boolean, obrigatório)

        • Descrição: Indica se o pedido deve ser impresso no POS.
        • Valores:
          • true: O pedido será impresso no POS.
          • false: O pedido não será impresso no POS.
        • Exemplo: true
      • generateInvoice (boolean, obrigatório)

        • Descrição: Indica se a fatura deve ser gerada no POS.
        • Valores:
          • true: A fatura será gerada no POS.
          • false: A fatura não será gerada no POS (a integração gerará a fatura).
        • Exemplo: true
      • printInvoiceAtPos (boolean, obrigatório)

        • Descrição: Indica se a fatura deve ser impressa no POS.
        • Valores:
          • true: A fatura será impressa no POS.
          • false: A fatura não será impressa no POS.
        • Exemplo: true
      • sendInvoiceEmail (boolean)

        • Descrição: Indica se a fatura será enviada por e-mail.
        • Valores:
          • true: A fatura será enviada por e-mail.
          • false: A fatura não será enviada por e-mail.
        • Exemplo: false
      • summaryExtract (boolean)

        • Descrição: Indica se um resumo deve ser incluído no retorno da solicitação.
        • Valores:
          • true: O resumo será retornado.
          • false: O resumo não será retornado.
        • Exemplo: false
      • customerDocument (string)

        • Descrição: Documento do cliente, necessário quando documentInReceipt é true.
        • Exemplo: null
      • documentInReceipt (boolean, obrigatório)

        • Descrição: Indica se o documento do cliente deve aparecer na fatura.
        • Valores:
          • true: O documento do cliente aparecerá na fatura.
          • false: O documento do cliente não aparecerá na fatura.
        • Exemplo: false
      • numberPersons (number)

        • Descrição: Informa o número de pessoas quando o pedido é fechado.
        • Exemplo: 1
      • removeServiceFee (boolean, obrigatório)

        • Descrição: Indica se a taxa de serviço deve ser removida do valor total da conta.
        • Valores:
          • true: A taxa de serviço será removida.
          • false: A taxa de serviço não será removida.
        • Exemplo: false
      • methods (array de objetos, obrigatório)

        • Descrição: Lista de métodos de pagamento utilizados no pedido.

        • Campos do methods:

          • value (number, obrigatório)

            • Descrição: Valor do pagamento.
            • Exemplo: 67.10
          • currency (string, obrigatório)

            • Descrição: Código da moeda no formato ISO 4217.
            • Exemplo: "BRL"
          • type (string, obrigatório)

            • Descrição: Tipo de método de pagamento. Pode ser "OFFLINE" ou "ONLINE".
            • Exemplo: "OFFLINE"
          • method (string, obrigatório)

            • Descrição: Método de pagamento utilizado. Pode ser um dos seguintes valores: "CREDIT", "DEBIT", "MEAL_VOUCHER", "FOOD_VOUCHER", "DIGITAL_WALLET", "PIX", "CASH", "CREDIT_DEBIT", "COUPON", "REDEEM", "PREPAID_REDEEM", "OTHER".
            • Exemplo: "CREDIT"
          • methodInfo (string)

            • Descrição: Informações adicionais sobre o método de pagamento, como o nome da bandeira do cartão ou número de autorização.
            • Exemplo: "VISA"
      • orderAmount (number, obrigatório)

        • Descrição: Valor final do pedido (total + taxas - descontos).
        • Exemplo: 61.0
      • discounts (number)

        • Descrição: Valor total de descontos aplicados ao pedido.
        • Exemplo: 0.00
      • fees (number, obrigatório)

        • Descrição: Valor total das taxas aplicadas ao pedido.
        • Exemplo: 6.10
      • total (number, obrigatório)

        • Descrição: Valor total do pedido antes de descontos e taxas.
        • Exemplo: 67.10
Informações
titleInformação:

integrationHubServiceId: é um código da integração da loja com o Integration Hub

orderKey: é o código do pedido


...

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
    Âncora
    status_code_400
    status_code_400

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.


01. Formando inválido do JSON esperado.

Bloco de código
titleJSON Inválido
linenumberstrue
{
    "integrationHubServiceId": "02990348-9d85-416d-a573-6dc83eee52e7",
    "orderKeyType": "TABLE",
    "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
    }
}
Bloco de código
titleJSON Resposta
linenumberstrue
{
	"errors": [
		{
			"key": "orderKey",
			"message": "body.orderKey must be a string"
		}
	]
}


...

02. JSON enviando faltando um ou mais campos.

Bloco de código
titleJSON Inválido
linenumberstrue
{
    "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
    }
}
Bloco de código
titleJSON Resposta
linenumberstrue
{
	"errors": [
		{
			"key": "orderKeyType",
			"message": "body.orderKeyType is required"
		}
	]
}


...

03. GUID incorreto 

Bloco de código
titleJSON com o GUID inválido
linenumberstrue
{
    "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
    }
}
Bloco de código
titleJSON Inválido GUID incorreto
linenumberstrue
{
	"errors": [
		{
			"key": "integrationHubServiceId",
			"message": "body.integrationHubServiceId must be a valid GUID"
		}
	]
}


...


04. Enviando uma requisição sem informar o código da orderKey corretamente

Bloco de código
titleJSON com sem informar o código da orderKey
linenumberstrue
{
    "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
    }
}
Bloco de código
titleJSON Response
linenumberstrue
{
	"errors": [
		{
			"key": "methods",
			"message": "body.paymentObject.methods must contain at least 1 items"
		}
	]
}
Nota
titleNota: 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
    Âncora
    status_code_401
    status_code_401
     

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
titleNota: 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
    Âncora
    status_code_403
    status_code_403

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


Bloco de código
titleURL enviada incorreda
https://api-barramento.meuelevestage.com/order/paymentS
Bloco de código
titleJSON Response para URL incorreta
linenumberstrue
{
	"message": "Missing Authentication Token"
}
Nota
titleNota: HTTP Status Code = 403 - Forbidden

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


...


  • HTTP Status Code 404 - Not Found
    Âncora
    status_code_404
    status_code_404

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.


Bloco de código
titleIntegration Hub Code Inválido
linenumberstrue
{
    "integrationHubServiceId": "02990348-9d85-416d-a573-6dc83eee52e7",
    "orderKeyType": "TABLE",
    "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
    }
}
Bloco de código
titleJSON Response
linenumberstrue
{
	"errors": [
		{
			"key": "integrationHubServiceId",
			"message": "Provider Merchant for integrationHubServiceId \"02990348-9d85-416d-a573-6dc83eee52e7\" not found or disabled"
		}
	]
}
Nota
titleNota: HTTP Status Code = 404 - Not Found

IntegrationHubId incorreto ou inválido


...


  • HTTP Status Code 412 - Precondition Failed
    Âncora
    status_code_412
    status_code_412

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.


Bloco de código
titleJSON
linenumberstrue
{
    "integrationHubServiceId": "efdd6093-5539-4ac4-ad84-7423a8078dde",
    "orderKeyType": "TABLE",
    "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
    }
}
Bloco de código
titleHTTP Status Code 412 = Precpndition Failed
linenumberstrue
{
	"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
titleNota: 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
    Âncora
    status_code_429
    status_code_429

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.


Bloco de código
titleJSON da requisição
linenumberstrue
{
    "integrationHubServiceId": "7d7d205b-83ba-47c5-91ba-e4f32a2bbd9e",
	  "orderKeyType": "TABLE",
		"orderKey": ["5"]
}
Bloco de código
titleResposta da última execução
linenumberstrue
{
	"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
titleNota: 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.

...


Esse endpoint serve para realizar um pagamento.

...



Templatedocumentos