Download OpenAPI specification:Download
Open Delivery propõe resolver o desafio de organizar o fluxo de informações entre estabelecimentos e aplicativos de pedido, estabelecendo um padrão único de comunicação para todos, por meio de um conjunto de APIs REST.
Assim, cardápios e pedidos são padronizados, e as solicitações dos clientes são recebidas em um único lugar, de forma organizada e eficiente, permitindo que o estabelecimento trabalhe com mais parceiros no ambiente de delivery.
Esta documentação está baseada na documentação oficial do Open Delivery, disponível em https://abrasel-nacional.github.io/docs/. Alguns endpoints e campos não foram implementados, pois no Delivery Direto não fazem sentido ou, em alguns casos, não há como implementá-los – por exemplo, os endpoints de logística.
O Delivery Direto possui uma API própria, que pode ser encontrada em https://developers.deliverydireto.com.br/. Nela, você consegue usar os recursos do Delivery Direto para criar, atualizar e consultar pedidos, cardápios, clientes, entre outros.
Operações de autenticação utilizando OAuth2.
Para gerar um token de credenciais do cliente, o Software Service do lojista deve obter o clientId e o clientSecret de uma empresa do Ordering Application e acessar o endpoint /oauth/token.
O campo accessToken conterá o token usado para autenticação nas APIs do Open Delivery. Após obter esse token, você deve incluí-lo no cabeçalho 'Authorization' das requisições feitas a endpoints que exigem escopos de credenciais do cliente.
O campo expiresIn indica o tempo de vida do token de acesso, em segundos. Esse token deve ser armazenado em cache e reutilizado em requisições até o momento de sua expiração (ou pouco antes), sem a necessidade de gerá-lo novamente a cada requisição.
curl \n
-H 'authorization: Bearer <TOKEN>' \n
https://{baseURL}/v1/events:polling
Solicita um novo token de acesso para acessar os recursos da API do Aplicativo de Pedidos. Ref: https://abrasel-nacional.github.io/docs/#tag/authentication/operation/getToken
| client_id required | string Identificador do cliente fornecido pelo Aplicativo de Pedidos. |
| client_secret required | string Segredo do cliente fornecido pelo Aplicativo de Pedidos. |
| grant_type required | string O tipo de concessão OAuth. Atualmente, o único tipo de concessão suportado é client_credentials. |
{- "client_id": "3f48c0df-...-ab83835c1fee",
- "client_secret": "4b208527-...-1e996625ece4",
- "grant_type": "client_credentials"
}{- "expires_in": 21600,
- "access_token": "3d4fcad2...",
- "token_type": "bearer"
}Operações de eventos de pedidos. Para receber eventos de novos pedidos, o Software Service do lojista deve consultar regularmente o endpoint de polling, em intervalos de tempo determinados pelo Ordering Application.
Consulta eventos de pedidos de estabelecimentos associados ao usuário autenticado. Cada evento recebido deste endpoint deve ser devidamente confirmado, caso contrário continuará a ser retornado em solicitações futuras. Ref: https://abrasel-nacional.github.io/docs/#tag/ordersPolling/operation/pollingEvents
| eventType | Array of strings Items Enum: "CREATED" "CONFIRMED" "DISPATCHED" "READY_FOR_PICKUP" "PICKED_UP" "DELIVERED" "CANCELLED" Automaticamente reconhecidos e omitidos da resposta. Deve ser omitido ou não vazio. |
[- {
- "eventId": "string",
- "eventType": "CREATED",
- "orderId": "string",
- "orderURL": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "sourceAppId": "string",
- "virtualBrand": "string"
}
]Reconhecer um conjunto de eventos, descartando-os de futuras consultas de polling. Ref: https://abrasel-nacional.github.io/docs/#tag/ordersPolling/operation/pollingAcknowledgment
| id required | string Um identificador único do evento. |
| orderId required | string O identificador único do pedido. O ID do pedido é gerado pelo Aplicativo de Pedidos. |
| eventType required | string Enum: "CREATED" "CONFIRMED" "READY_FOR_PICKUP" "DISPATCHED" "PICKED_UP" "DELIVERED" "CANCELLED" O tipo de evento. |
[- {
- "id": "string",
- "orderId": "string",
- "eventType": "CREATED"
}
]{- "title": "Unexpected error",
- "status": 500
}Informa ao Aplicativo de Pedidos que o pedido foi aceito e o preparo será iniciado em breve. Ref: https://abrasel-nacional.github.io/docs/#tag/ordersStatus/operation/confirmOrder
| orderId required | string <uuid> O identificador único do pedido. O ID do pedido é gerado pelo Aplicativo de Pedidos. |
| createdAt | string or null <date-time> Data e hora de criação do pedido. (Data e hora em formato ISO timestamp UTC). |
| orderExternalCode | string or null Código externo do pedido, que pode ser utilizado pelo comércio ou marketplace. |
| reason | string or null Campo livre para mais informações sobre a confirmação do pedido, como por exemplo, qual funcionário aceitou o pedido. |
| preparationTime | integer or null Indica uma estimativa do tempo de preparação (em minutos) do pedido sendo confirmado. |
{- "createdAt": "2019-08-24T14:15:22Z",
- "orderExternalCode": "string",
- "reason": "string",
- "preparationTime": 0
}{- "title": "Unexpected error",
- "status": 500
}Informa ao Aplicativo de Pedidos que o pedido está pronto. Para pedidos TAKEOUT, altera o status para IN_TRANSIT. Para pedidos DELIVERY, apenas registra o evento sem alterar o status. Ref: https://abrasel-nacional.github.io/docs/#tag/ordersStatus/operation/orderReady
| orderId required | string <uuid> O identificador único do pedido. O ID do pedido é gerado pelo Aplicativo de Pedidos. |
{- "title": "Unexpected error",
- "status": 500
}Informa ao Aplicativo de Pedidos que o pedido foi retirado. ATENÇÃO: Este endpoint só pode ser usado para pedidos do tipo TAKEOUT. Altera o status do pedido para DONE. Ref: https://abrasel-nacional.github.io/docs/#tag/ordersStatus/operation/orderPickedUp
| orderId required | string <uuid> O identificador único do pedido. O ID do pedido é gerado pelo Aplicativo de Pedidos. |
{- "title": "Unexpected error",
- "status": 500
}Informa ao Aplicativo de Pedidos que o pedido foi entregue. Este endpoint pode ser usado para qualquer tipo de pedido e altera o status para DONE. Ref: https://abrasel-nacional.github.io/docs/#tag/ordersStatus/operation/orderDelivered
| orderId required | string <uuid> O identificador único do pedido. O ID do pedido é gerado pelo Aplicativo de Pedidos. |
{- "title": "Unexpected error",
- "status": 500
}Informa ao Aplicativo de Pedidos que o pedido foi despachado. Ref: https://abrasel-nacional.github.io/docs/#tag/ordersStatus/operation/dispatchOrder
| orderId required | string <uuid> O identificador único do pedido. O ID do pedido é gerado pelo Aplicativo de Pedidos. |
object (Order Confirmation) Information about the endpoints that are hosted at the Ordering Application. | |||||||||||||
| |||||||||||||
{- "deliveryTrackingInfo": {
- "event": {
- "type": "DELIVERY_ONGOING",
- "datetime": "2019-08-24T14:15:22Z",
- "message": "string"
}, - "problem": {
- "reason": "DELIVERYPERSON_OCCURRENCE",
- "datetime": "2019-08-24T14:15:22Z",
- "message": "string"
}, - "vehicle": {
- "type": [
- "MOTORBIKE_BAG"
], - "licencePlate": "string"
}, - "eta": {
- "deliveryEtaInMinutes": 0,
- "deliveryEtaDatetime": "2019-08-24T14:15:22Z",
- "message": "string",
- "maxDeliveryTime": "2019-08-24T14:15:22Z"
}, - "deliveryPerson": {
- "id": "string",
- "name": "string",
- "pictureURL": "string"
}, - "externalTrackingURL": "string"
}
}{- "title": "Unexpected error",
- "status": 500
}Solicitar cancelamento do pedido ao Aplicativo de Pedidos. Ref: https://abrasel-nacional.github.io/docs/#tag/ordersCancellation/operation/requestCancellation
| orderId required | string <uuid> O identificador único do pedido. O ID do pedido é gerado pelo Aplicativo de Pedidos. |
| reason required | string Campo de texto livre indicando o motivo do cancelamento. |
| code required | string Enum: "MOTORBIKE_BAG" "MOTORBIKE_BOX" "CAR" "BICYCLE" "SCOOTER" "VUC" |
| mode required | string Enum: "AUTO" "MANUAL" Indica se a solicitação de cancelamento foi feita por um processo automático ou manual no Software Service. |
| outOfStockItems | Array of strings or null Itens que não estão no estoque do estabelecimento. |
| invalidItems | Array of strings or null Itens que não existem no inventário do estabelecimento. |
{- "reason": "string",
- "code": "MOTORBIKE_BAG",
- "mode": "AUTO",
- "outOfStockItems": [
- "string"
], - "invalidItems": [
- "string"
]
}{- "title": "Unexpected error",
- "status": 500
}Operações relacionadas aos detalhes dos pedidos. Antes de confirmar ou cancelar um pedido, é necessário obter os detalhes do pedido para que o usuário do Software Service do lojista possa verificar:
O Software Service pode recuperar todas as informações de um pedido através do endpoint GET /orders/{id}.
Endpoint para consultar os detalhes de um pedido. Ref.: https://abrasel-nacional.github.io/docs/#tag/ordersDetails
| orderId required | string <uuid> Example: 4578731a-b6f5-4931-95fd-5527dcc8c1bd O identificador único do pedido. O ID do pedido é gerado pelo Aplicativo de Pedidos. |
{- "id": "4578731a-b6f5-4931-95fd-5527dcc8c1bd",
- "type": "DELIVERY",
- "displayId": "string",
- "createdAt": "2024-03-20T14:30:00Z",
- "orderTiming": "INSTANT",
- "preparationStartDateTime": "2024-03-20T14:35:00Z",
- "merchant": {
- "id": "4578731a-b6f5-4931-95fd-5527dcc8c1bd",
- "name": "string"
}, - "items": [
- {
- "id": "4578731a-b6f5-4931-95fd-5527dcc8c1bd",
- "name": "X-Burger Especial",
- "externalCode": "SKU123",
- "unit": "UN",
- "quantity": 2,
- "unitPrice": {
- "value": 10.5,
- "currency": "BRL"
}, - "totalPrice": {
- "value": 10.5,
- "currency": "BRL"
}, - "index": 1,
- "ean": "string",
- "specialInstructions": "Sem cebola",
- "originalPrice": {
- "value": 10.5,
- "currency": "BRL"
}, - "scalePriceApplied": false,
- "optionsPrice": {
- "value": 10.5,
- "currency": "BRL"
}, - "subtotalPrice": {
- "value": 10.5,
- "currency": "BRL"
}, - "indoor": {
- "productionPoint": "string"
}, - "options": [
- {
- "id": "4578731a-b6f5-4931-95fd-5527dcc8c1bd",
- "name": "Bacon Extra",
- "externalCode": "OPT001",
- "unit": "UN",
- "quantity": 1,
- "unitPrice": {
- "value": 10.5,
- "currency": "BRL"
}, - "totalPrice": {
- "value": 10.5,
- "currency": "BRL"
}, - "index": 1,
- "ean": "7891234567890",
- "originalPrice": {
- "value": 10.5,
- "currency": "BRL"
}, - "subtotalPrice": {
- "value": 10.5,
- "currency": "BRL"
}, - "specialInstructions": "string"
}
]
}
], - "total": {
- "itemsPrice": {
- "value": 10.5,
- "currency": "BRL"
}, - "otherFees": {
- "value": 10.5,
- "currency": "BRL"
}, - "discount": {
- "value": 10.5,
- "currency": "BRL"
}, - "orderAmount": {
- "value": 10.5,
- "currency": "BRL"
}
}, - "payments": {
- "prepaid": 50,
- "pending": 25.5,
- "methods": [
- {
- "value": 50,
- "currency": "BRL",
- "type": "PREPAID",
- "method": "CREDIT",
- "brand": "VISA",
- "methodInfo": "4 parcelas sem juros",
- "transaction": {
- "authorizationCode": "123456",
- "acquirerDocument": "12345678000123"
}, - "changeFor": 100
}
]
}, - "sourceAppId": "fb08c6b7-a844-43c6-b104-98e70c00fc20",
- "salesChannel": "string",
- "virtualBrand": "string",
- "lastEvent": "CREATED",
- "otherFees": [
- {
- "name": "Taxa de Entrega",
- "type": "DELIVERY_FEE",
- "receivedBy": "MERCHANT",
- "price": {
- "value": 10.5,
- "currency": "BRL"
}, - "receiverDocument": "string",
- "observation": "string"
}
], - "discounts": [
- {
- "amount": {
- "value": 10.5,
- "currency": "BRL"
}, - "target": "DELIVERY_FEE",
- "sponsorshipValues": [
- {
- "name": "MARKETPLACE",
- "amount": {
- "value": 10.5,
- "currency": "BRL"
}, - "discountCode": "string"
}
], - "targetId": "string"
}
], - "taxInvoice": {
- "issued": false,
- "taxInvoiceURL": "string"
}, - "customer": {
- "id": "4578731a-b6f5-4931-95fd-5527dcc8c1bd",
- "name": "string",
- "phone": {
- "number": "string",
- "extension": "string"
}, - "ordersCountOnMerchant": 5,
- "documentNumber": "12345678900",
- "email": "string"
}, - "schedule": {
- "scheduledDateTimeStart": "2024-03-20T15:30:00.000Z",
- "scheduledDateTimeEnd": "2024-03-20T16:00:00.000Z"
}, - "orderPriority": "PRIORITY1",
- "delivery": {
- "deliveredBy": "MERCHANT",
- "deliveryAddress": {
- "country": "BR",
- "state": "BR-SP",
- "city": "São Paulo",
- "district": "Vila Mariana",
- "street": "Rua Vergueiro",
- "number": "1234",
- "formattedAddress": "Rua Vergueiro, 1234 - Vila Mariana, São Paulo - SP",
- "postalCode": "04101-000",
- "coordinates": {
- "latitude": -23.5506,
- "longitude": -46.6333
}, - "complement": "Apto 123",
- "reference": "Próximo ao metrô Vila Mariana"
}, - "estimatedDeliveryDateTime": "2024-03-20T15:30:00.000Z",
- "deliveryDateTime": "2024-03-20T15:25:00.000Z",
- "pickupCode": "string"
}, - "takeout": {
- "mode": "DEFAULT",
- "takeoutDateTime": "2024-03-20T15:30:00.000Z"
}, - "indoor": {
- "mode": "DEFAULT",
- "indoorDateTime": "2024-03-20T15:30:00.000Z",
- "place": "string",
- "tab": "string",
- "seat": "string",
- "waiterCode": "string"
}, - "sendDelivered": true,
- "sendPickedUp": true,
- "sendTracking": true,
- "extraInfo": "string"
}