Delivery Direto Admin API (1.0.0)
Download OpenAPI specification:Download
Esta é a especificação do Delivery Direto Admin API, que é referente às operações no painel do administrativo das lojas do Delivery Direto.
Notas gerais:
Todos os Endpoints requerem o uso de um ID do Delivery Direto. Esse ID identifica unicamente uma loja e deve ser passado pelos Headers.
- Nome do Header: X-DeliveryDireto-ID
Todas as integrações criadas a partir de 01/12/2021 devem enviar o Header
X-DeliveryDireto-Client-Id
em todas as requisições, contendo oclient_id
utilizado pela integração. Integrações criadas antes dessa data tem até o dia 01/02/2022 para se adaptar.
Lista de administradores e operadores
Authorizations:
query Parameters
offset | integer >= 0 Default: 0 Posição inicial do objeto a ser retornado. |
limit | integer <= 100 Default: 30 Quantidade de objetos a ser retornado. |
Responses
Response samples
- 200
{- "status": "success",
- "data": {
- "administrators": [
- {
- "id": 1234,
- "administratorsId": 123,
- "firstName": "João",
- "lastName": "da Silva",
- "email": "joaodasilva@mailinator.com",
- "mobilePhone": "11911111111",
- "document": "12345678912",
- "level": "COMMON",
- "hasPermissionToEditOrder": true,
- "hasPermissionToDeleteOrder": true
}
], - "pagination": {
- "currentOffset": 10,
- "limit": 10,
- "totalItems": 50
}
}
}
Criar um administrador ou operador
Authorizations:
Request Body schema: application/json
Dados do administrador
firstName required | string |
lastName required | string |
email required | string |
mobilePhone | string or null |
document | string or null |
level required | string |
hasPermissionToEditOrder required | boolean |
hasPermissionToDeleteOrder required | boolean |
Responses
Request samples
- Payload
{- "firstName": "João",
- "lastName": "da Silva",
- "email": "joaodasilva@mailinator.com",
- "mobilePhone": "11911111111",
- "document": "12345678912",
- "level": "COMMON",
- "hasPermissionToEditOrder": true,
- "hasPermissionToDeleteOrder": true
}
Response samples
- 201
- 422
{- "status": "success",
- "data": {
- "id": 1234,
- "administratorsId": 123,
- "firstName": "João",
- "lastName": "da Silva",
- "email": "joaodasilva@mailinator.com",
- "mobilePhone": "11911111111",
- "document": "12345678912",
- "level": "COMMON",
- "hasPermissionToEditOrder": true,
- "hasPermissionToDeleteOrder": true
}
}
Editar dados de um administrador ou operador
Authorizations:
path Parameters
id required | integer Identificador do administrador ou operador |
Request Body schema: application/json
Dados do administrador ou operador
hasPermissionToEditOrder | boolean or null Default: true Pode editar um pedido? |
hasPermissionToDeleteOrder | boolean or null Default: true Pode apagar um pedido? |
firstName | string or null O primeiro nome do administrador ou operador. |
lastName | string or null O sobrenome do administrador ou operador. |
string or null O e-mail do administrador ou operador. | |
password | string or null Senha do administrador ou operador. |
Responses
Request samples
- Payload
{- "hasPermissionToEditOrder": true,
- "hasPermissionToDeleteOrder": true,
- "firstName": "João",
- "lastName": "da Silva",
- "email": "joaodasilva@mailinator.com",
- "password": "senha123"
}
Response samples
- 200
- 404
- 422
{- "status": "success",
- "data": {
- "id": 1234,
- "administratorsId": 123,
- "firstName": "João",
- "lastName": "da Silva",
- "email": "joaodasilva@mailinator.com",
- "mobilePhone": "11911111111",
- "document": "12345678912",
- "level": "COMMON",
- "hasPermissionToEditOrder": true,
- "hasPermissionToDeleteOrder": true
}
}
Apagar um operador (somente operadores podem ser apagados via API)
Authorizations:
path Parameters
id required | integer Identificador do operador |
Responses
Response samples
- 400
- 404
- 422
{- "status": "fail",
- "errors": [
- {
- "field": "name",
- "message": "O campo name deve estar preenchido"
}
]
}
Response samples
- 200
- 400
- 404
- 422
{- "status": "success",
- "data": {
- "id": 1234,
- "administratorsId": 123,
- "firstName": "João",
- "lastName": "da Silva",
- "email": "joaodasilva@mailinator.com",
- "mobilePhone": "11911111111",
- "document": "12345678912",
- "level": "COMMON",
- "hasPermissionToEditOrder": true,
- "hasPermissionToDeleteOrder": true
}
}
Inicia o processo de cadastro do fator de autenticação TOTP (aplicativo autenticador)
Authorizations:
Responses
Response samples
- 200
- 400
- 404
{- "status": "success",
- "data": {
- "totpProvisioningUri": "otpauth://totp/Example:alice@example.com?secret=AAAABBBBCCCC&issuer=Example"
}
}
Confirma o cadastro do fator de autenticação TOTP (aplicativo autenticador)
Authorizations:
Request Body schema: application/json
Dados usados para confirmar o cadastro do fator
confirmationTotpCode required | string O código gerado pelo aplicativo autenticador. |
Responses
Request samples
- Payload
{- "confirmationTotpCode": "123456"
}
Response samples
- 200
- 400
- 422
{- "status": "success"
}
Response samples
- 200
{- "status": "success",
- "data": {
- "banners": [
- {
- "id": 123,
- "storeId": 123,
- "name": "Promoção black friday",
- "platforms": [
- "WEB"
], - "status": "ACTIVE",
- "type": "EXTERNAL_URL",
- "viewOrder": 1,
- "availabilities": [
- {
- "id": 123,
- "periodStart": "09:00:00-03:00",
- "periodEnd": "09:00:00-03:00",
- "weekday": 3
}
]
}
]
}
}
Cria um novo banner promocional
Authorizations:
Request Body schema: application/json
Informações do novo banner
name required | string Nome do banner |
photoUrl required | string or null URL da imagem do banner |
platforms | Array of strings Items Enum: "WEB" "ANDROID" "IOS" Plataformas no qual o banner está habilidado para ser exibido |
status | string Default: "ACTIVE" Enum: "ACTIVE" "INACTIVE" Status do banner |
type | string Enum: "EXTERNAL_URL" "ITEM" "CATEGORY" "LOYALTY_PROGRAM" "MEMBER_GET_MEMBER" "REWARDS" "VOUCHER" Tipo de banner |
viewOrder | integer Posição do banner utilizado para ordenação |
ExternalUrlBannerDataDTO (object) or ItemBannerDataDTO (object) or CategoryBannerDataDTO (object) or LoyaltyProgramBannerDataDTO (object) or MemberGetMemberBannerDataDTO (object) or RewardsBannerDataDTO (object) or VoucherBannerDataDTO (object) Dados extras de acordo com o tipo de banner | |
Array of objects (BannerAvailabilityDTO) Horários que o banner fica disponível |
Responses
Request samples
- Payload
{- "name": "Promoção black friday",
- "platforms": [
- "WEB"
], - "status": "ACTIVE",
- "type": "EXTERNAL_URL",
- "viewOrder": 1,
- "availabilities": [
- {
- "periodStart": "09:00:00-03:00",
- "periodEnd": "09:00:00-03:00",
- "weekday": 3
}
]
}
Response samples
- 200
- 403
- 422
{- "status": "success",
- "data": {
- "id": 123,
- "storeId": 123,
- "name": "Promoção black friday",
- "platforms": [
- "WEB"
], - "status": "ACTIVE",
- "type": "EXTERNAL_URL",
- "viewOrder": 1,
- "availabilities": [
- {
- "id": 123,
- "periodStart": "09:00:00-03:00",
- "periodEnd": "09:00:00-03:00",
- "weekday": 3
}
]
}
}
Altera a posição dos banners promocionais informados
Authorizations:
Request Body schema: application/json
Lista com os ids dos banners, na posição final dos banners
Responses
Request samples
- Payload
null
Response samples
- 422
{- "status": "error",
- "code": "invalid_fields",
- "message": "Preencha os campos corretamente!"
}
Atualiza um banner promocional
Authorizations:
path Parameters
id required | integer <int64> Identificador do banner |
Request Body schema: application/json
Informações novas do banner
name required | string Nome do banner |
photoUrl required | string or null URL da imagem do banner |
platforms | Array of strings Items Enum: "WEB" "ANDROID" "IOS" Plataformas no qual o banner está habilidado para ser exibido |
status | string Default: "ACTIVE" Enum: "ACTIVE" "INACTIVE" Status do banner |
type | string Enum: "EXTERNAL_URL" "ITEM" "CATEGORY" "LOYALTY_PROGRAM" "MEMBER_GET_MEMBER" "REWARDS" "VOUCHER" Tipo de banner |
viewOrder | integer Posição do banner utilizado para ordenação |
ExternalUrlBannerDataDTO (object) or ItemBannerDataDTO (object) or CategoryBannerDataDTO (object) or LoyaltyProgramBannerDataDTO (object) or MemberGetMemberBannerDataDTO (object) or RewardsBannerDataDTO (object) or VoucherBannerDataDTO (object) Dados extras de acordo com o tipo de banner | |
Array of objects (BannerAvailabilityDTO) Horários que o banner fica disponível |
Responses
Request samples
- Payload
{- "name": "Promoção black friday",
- "platforms": [
- "WEB"
], - "status": "ACTIVE",
- "type": "EXTERNAL_URL",
- "viewOrder": 1,
- "availabilities": [
- {
- "periodStart": "09:00:00-03:00",
- "periodEnd": "09:00:00-03:00",
- "weekday": 3
}
]
}
Response samples
- 200
- 403
- 404
- 422
{- "status": "success",
- "data": {
- "id": 123,
- "storeId": 123,
- "name": "Promoção black friday",
- "platforms": [
- "WEB"
], - "status": "ACTIVE",
- "type": "EXTERNAL_URL",
- "viewOrder": 1,
- "availabilities": [
- {
- "id": 123,
- "periodStart": "09:00:00-03:00",
- "periodEnd": "09:00:00-03:00",
- "weekday": 3
}
]
}
}
Criar os horários de funcionamento da loja
Authorizations:
Request Body schema: application/json
Dados do horário de funcionamento
required | Array of objects (CreateBusinessHourDTO) Lista de horários de funcionamento | ||||||
Array
|
Responses
Request samples
- Payload
{- "businessHours": [
- {
- "shiftStart": "09:00:00-03:00",
- "shiftEnd": "09:00:00-03:00",
- "weekday": 3
}
]
}
Response samples
- 201
- 400
- 404
- 422
{- "status": "success",
- "data": {
- "businessHours": [
- {
- "id": 1234,
- "storesId": 1000,
- "shiftStart": "09:00:00-03:00",
- "shiftEnd": "09:00:00-03:00",
- "weekday": 3
}
]
}
}
Atualiza um horário de funcionamento da loja
Authorizations:
path Parameters
id required | integer Identificador desse horário de operação. |
Request Body schema: application/json
Dados do horário de funcionamento
required | ISO8601Time (string) Horário inicial de operação. |
required | ISO8601Time (string) Horário final de operação. |
weekday required | integer [ 1 .. 7 ] Dia da semana desse horário de operação. Onde 1 representa o domingo e 7 o sábado. |
Responses
Request samples
- Payload
{- "shiftStart": "09:00:00-03:00",
- "shiftEnd": "09:00:00-03:00",
- "weekday": 3
}
Response samples
- 200
- 400
- 404
- 422
{- "status": "success",
- "data": {
- "id": 1234,
- "storesId": 1000,
- "shiftStart": "09:00:00-03:00",
- "shiftEnd": "09:00:00-03:00",
- "weekday": 3
}
}
Apaga um horário de funcionamento da loja
Authorizations:
path Parameters
id required | integer Identificador desse horário de operação. |
query Parameters
force | boolean Força a exclusão do horário de funcionamento |
Responses
Response samples
- 400
- 404
- 422
{- "status": "fail",
- "errors": [
- {
- "field": "name",
- "message": "O campo name deve estar preenchido"
}
]
}
Lista configurações do horário de funcionamento da loja
Authorizations:
Responses
Response samples
- 200
- 400
- 404
{- "status": "success",
- "data": {
- "timezone": "string",
- "acceptScheduledOrders": true,
- "onlyScheduledOrders": true,
- "maxDaysToSchedule": 0,
- "advanceValueScheduledOrders": 0,
- "advanceTypeScheduledOrders": "string",
- "alertEmailScheduledOrders": true
}
}
Atualiza as configurações do horário de funcionamento da loja
Authorizations:
Request Body schema: application/json
Configurações do horário de funcionamento da loja a ser modificadas
timezone | string or null |
acceptScheduledOrders | boolean or null |
onlyScheduledOrders | boolean or null |
maxDaysToSchedule | integer or null |
advanceValueScheduledOrders | integer or null |
advanceTypeScheduledOrders | string or null |
alertEmailScheduledOrders | boolean or null |
Responses
Request samples
- Payload
{- "timezone": "string",
- "acceptScheduledOrders": true,
- "onlyScheduledOrders": true,
- "maxDaysToSchedule": 0,
- "advanceValueScheduledOrders": 0,
- "advanceTypeScheduledOrders": "string",
- "alertEmailScheduledOrders": true
}
Response samples
- 200
- 400
- 404
- 422
{- "status": "success",
- "data": {
- "timezone": "string",
- "acceptScheduledOrders": true,
- "onlyScheduledOrders": true,
- "maxDaysToSchedule": 0,
- "advanceValueScheduledOrders": 0,
- "advanceTypeScheduledOrders": "string",
- "alertEmailScheduledOrders": true
}
}
Listar as categorias
Authorizations:
query Parameters
id | integer Id da categoria. |
name | string Nome da categoria. |
offset | integer >= 0 Default: 0 Posição inicial do objeto a ser retornado. |
limit | integer <= 100 Default: 30 Quantidade de objetos a ser retornado. |
Responses
Response samples
- 200
{- "status": "success",
- "data": {
- "categories": [
- {
- "id": 123,
- "isPizzaModule": true,
- "status": "ACTIVE",
- "totalItems": 1234,
- "showOnMobile": true,
- "hiddenWhenUnavailable": true,
- "showOnlyImage": true,
- "name": "Bebidas",
- "description": "Bebidas diversas não alcoólicas",
- "viewOrder": 0
}
], - "pagination": {
- "currentOffset": 10,
- "limit": 10,
- "totalItems": 50
}
}
}
Criar uma nova categoria
Authorizations:
Request Body schema: application/json
status | string or null Enum: "ACTIVE" "DELETED" Status da categoria |
showOnMobile | boolean or null |
hiddenWhenUnavailable | boolean or null |
showOnlyImage | boolean or null |
name required | string |
description required | string |
viewOrder required | integer |
Responses
Request samples
- Payload
{- "status": "ACTIVE",
- "showOnMobile": true,
- "hiddenWhenUnavailable": true,
- "showOnlyImage": true,
- "name": "Bebidas",
- "description": "Bebidas diversas não alcoólicas",
- "viewOrder": 0
}
Response samples
- 200
- 400
- 422
{- "status": "success",
- "data": {
- "id": 123,
- "isPizzaModule": true,
- "status": "ACTIVE",
- "totalItems": 1234,
- "showOnMobile": true,
- "hiddenWhenUnavailable": true,
- "showOnlyImage": true,
- "name": "Bebidas",
- "description": "Bebidas diversas não alcoólicas",
- "viewOrder": 0
}
}
Atualizar categoria
Authorizations:
path Parameters
categoryId required | integer ID da categoria. |
Request Body schema: application/json
showOnMobile | boolean or null |
hiddenWhenUnavailable | boolean or null |
showOnlyImage | boolean or null |
status | string or null |
name | string or null Nome da categoria |
description | string or null Descrição da categoria |
viewOrder | integer or null Ordem de listagem da categoria |
Responses
Request samples
- Payload
{- "showOnMobile": true,
- "hiddenWhenUnavailable": true,
- "showOnlyImage": true,
- "status": "string",
- "name": "Bebidas",
- "description": "Bebidas diversas não alcoólicas",
- "viewOrder": 0
}
Response samples
- 200
- 400
- 404
- 422
{- "status": "success",
- "data": {
- "id": 123,
- "isPizzaModule": true,
- "status": "ACTIVE",
- "totalItems": 1234,
- "showOnMobile": true,
- "hiddenWhenUnavailable": true,
- "showOnlyImage": true,
- "name": "Bebidas",
- "description": "Bebidas diversas não alcoólicas",
- "viewOrder": 0
}
}
Upload da imagem da categoria
Authorizations:
path Parameters
categoryId required | integer ID da categoria. |
Request Body schema: multipart/form-data
file required | string <file> Arquivo a ser enviado |
Responses
Response samples
- 200
- 400
- 404
- 415
- 422
{- "status": "success",
- "data": {
- "id": 123,
- "isPizzaModule": true,
- "status": "ACTIVE",
- "totalItems": 1234,
- "showOnMobile": true,
- "hiddenWhenUnavailable": true,
- "showOnlyImage": true,
- "name": "Bebidas",
- "description": "Bebidas diversas não alcoólicas",
- "viewOrder": 0
}
}
Lista os horários que esta categoria está disponível
Authorizations:
path Parameters
categoryId required | integer ID da categoria. |
Responses
Response samples
- 200
- 400
- 404
{- "status": "success",
- "data": {
- "categoryAvailabilities": [
- {
- "id": 123,
- "periodStart": "09:00:00-03:00",
- "periodEnd": "09:00:00-03:00",
- "weekday": 3
}
]
}
}
Cria uma novo horário de disponibilidade para a categoria
Authorizations:
path Parameters
categoryId required | integer ID da categoria. |
Request Body schema: application/json
Dados da disponilibidade da categoria a ser adicionado
required | ISO8601Time (string) Horário inicial no qual a categoria fica disponível no formato HH:mm. Ex: 14:34. |
required | ISO8601Time (string) Horário final no qual a categoria fica disponível no formato HH:mm. Ex: 14:34. |
weekday required | integer |
Responses
Request samples
- Payload
{- "periodStart": "09:00:00-03:00",
- "periodEnd": "09:00:00-03:00",
- "weekday": 3
}
Response samples
- 200
- 400
- 404
{- "status": "success",
- "data": {
- "id": 123,
- "periodStart": "09:00:00-03:00",
- "periodEnd": "09:00:00-03:00",
- "weekday": 3
}
}
Apagar um período
Authorizations:
path Parameters
categoryId required | integer ID da categoria. |
id required | integer ID do período a ser excluído. |
Responses
Response samples
- 400
- 404
- 422
{- "status": "error",
- "code": "invalid_fields",
- "message": "Preencha os campos corretamente!"
}
Cria um conjunto de novos horários de disponibilidade para uma categoria
Authorizations:
path Parameters
categoryId required | integer ID da categoria. |
Request Body schema: application/json
Dados da disponilibidades da categoria a ser adicionado
required | Array of objects (CategoryAvailabilityDTO) Lista de disponibilidades | ||||||
Array
|
Responses
Request samples
- Payload
{- "categoryAvailabilities": [
- {
- "periodStart": "09:00:00-03:00",
- "periodEnd": "09:00:00-03:00",
- "weekday": 3
}
]
}
Response samples
- 200
- 400
- 404
- 422
{- "status": "success",
- "data": {
- "categoryAvailabilities": [
- {
- "id": 123,
- "periodStart": "09:00:00-03:00",
- "periodEnd": "09:00:00-03:00",
- "weekday": 3
}
]
}
}
Response samples
- 200
{- "status": "success",
- "data": {
- "checkoutquestions": [
- {
- "answerType": "TEXT",
- "status": "ACTIVE",
- "viewOrder": 1,
- "id": 123,
- "brandId": 123,
- "storeId": 123,
- "question": "true",
- "required": true
}
]
}
}
Cria nova pergunta ao fechar pedido
Authorizations:
Request Body schema: application/json
Dados da nova pergunta
answerType required | string Value: "TEXT" Tipo de resposta da questão |
status required | string Enum: "ACTIVE" "INACTIVE" Status da questão |
viewOrder required | integer Posição da pergunta utilizado para ordenação |
id | integer or null Identificador da pergunta |
brandId | integer or null O identificador da rede que criou a pergunta. |
storeId | integer or null O identificador da loja que criou a pergunta. |
question required | string Texto da pergunta |
required required | boolean Se a questão é obrigatória de ser respondida |
Responses
Request samples
- Payload
{- "answerType": "TEXT",
- "status": "ACTIVE",
- "viewOrder": 1,
- "id": 123,
- "brandId": 123,
- "storeId": 123,
- "question": "true",
- "required": true
}
Response samples
- 201
{- "status": "success",
- "data": {
- "answerType": "TEXT",
- "status": "ACTIVE",
- "viewOrder": 1,
- "id": 123,
- "brandId": 123,
- "storeId": 123,
- "question": "true",
- "required": true
}
}
Atualiza pergunta ao fechar pedido
Authorizations:
path Parameters
id required | integer Identificador da pergunta |
Request Body schema: application/json
Dados da pergunta
answerType required | string Value: "TEXT" Tipo de resposta da questão |
status required | string Enum: "ACTIVE" "INACTIVE" Status da questão |
viewOrder required | integer Posição da pergunta utilizado para ordenação |
id | integer or null Identificador da pergunta |
brandId | integer or null O identificador da rede que criou a pergunta. |
storeId | integer or null O identificador da loja que criou a pergunta. |
question required | string Texto da pergunta |
required required | boolean Se a questão é obrigatória de ser respondida |
Responses
Request samples
- Payload
{- "answerType": "TEXT",
- "status": "ACTIVE",
- "viewOrder": 1,
- "id": 123,
- "brandId": 123,
- "storeId": 123,
- "question": "true",
- "required": true
}
Response samples
- 200
{- "status": "success",
- "data": {
- "answerType": "TEXT",
- "status": "ACTIVE",
- "viewOrder": 1,
- "id": 123,
- "brandId": 123,
- "storeId": 123,
- "question": "true",
- "required": true
}
}
Lista de endereços de um cliente
Authorizations:
path Parameters
customersId required | integer ID do cliente. |
query Parameters
offset | integer >= 0 Default: 0 Posição inicial do objeto a ser retornado. |
limit | integer <= 100 Default: 30 Quantidade de objetos a ser retornado. |
Responses
Response samples
- 200
{- "status": "success",
- "data": {
- "addresses": [
- {
- "street": "Rua Drausio",
- "number": "123",
- "zipcode": "05511-010",
- "neighborhood": "Butantã",
- "city": "São Paulo",
- "state": "SP",
- "complement": "Próximo ao posto de gasolina",
- "reference_point": "Próximo à praça",
- "lat": -23.45,
- "lng": -45.67,
- "id": 123
}
], - "pagination": {
- "currentOffset": 10,
- "limit": 10,
- "totalItems": 50
}
}
}
Cria um novo endereço para um cliente
Authorizations:
path Parameters
customersId required | integer ID do cliente. |
Request Body schema: application/json
street required | string |
number required | string |
zipcode required | string |
neighborhood required | string |
city required | string |
state required | string |
complement required | string |
reference_point | string or null |
lat | number or null <float> A latitude do endereço sendo criado. Opcional, caso não seja informado, o endereço será geolocalizado. |
lng | number or null <float> A longitude do endereço. Opcional, caso não seja informado, o endereço será geolocalizado. |
Responses
Request samples
- Payload
{- "street": "Rua Drausio",
- "number": "123",
- "zipcode": "05511-010",
- "neighborhood": "Butantã",
- "city": "São Paulo",
- "state": "SP",
- "complement": "Próximo ao posto de gasolina",
- "reference_point": "Próximo à praça",
- "lat": -23.45,
- "lng": -45.67
}
Response samples
- 201
- 400
- 422
{- "status": "success",
- "data": {
- "street": "Rua Drausio",
- "number": "123",
- "zipcode": "05511-010",
- "neighborhood": "Butantã",
- "city": "São Paulo",
- "state": "SP",
- "complement": "Próximo ao posto de gasolina",
- "reference_point": "Próximo à praça",
- "lat": -23.45,
- "lng": -45.67,
- "id": 123
}
}
Apaga um endereço de um cliente numa determinada loja
Authorizations:
path Parameters
customersId required | integer ID do cliente. |
id required | integer ID do endereço. |
Responses
Response samples
- 400
- 404
- 422
{- "status": "fail",
- "errors": [
- {
- "field": "name",
- "message": "O campo name deve estar preenchido"
}
]
}
Lista de clientes
Authorizations:
query Parameters
firstName | string Primeiro nome do cliente |
lastName | string Sobrenome do cliente |
string E-mail do cliente | |
telephone | string Telefone do cliente |
document | string Documento (CPF) do cliente formatado: 000.000.000-00 |
offset | integer >= 0 Default: 0 Posição inicial do objeto a ser retornado. |
limit | integer <= 100 Default: 30 Quantidade de objetos a ser retornado. |
Responses
Response samples
- 200
{- "status": "success",
- "data": {
- "customers": [
- {
- "id": 123,
- "birthDate": "2020-01-01",
- "firstName": "João",
- "lastName": "da Silva",
- "email": "joaodasilva@mailinator.com",
- "telephone": "11911111111",
- "document": "12345678912"
}
], - "pagination": {
- "currentOffset": 10,
- "limit": 10,
- "totalItems": 50
}
}
}
Cria um novo cliente
Authorizations:
Request Body schema: application/json
(ISO8601Date (string or null)) A data de nascimento do cliente no formato AAAA-MM-DD. Ex: 1984-05-30 | |
firstName required | string O primeiro nome do cliente |
lastName | string O sobrenome do cliente |
string O e-mail do cliente. | |
telephone required | string O telefone do cliente sem formatação com DDD. Ex: (11) 91111-1111 => 11911111111 |
document | string O CPF do cliente formatado. Ex: 123.123.123-12 |
Responses
Request samples
- Payload
{- "birthDate": "2020-01-01",
- "firstName": "João",
- "lastName": "da Silva",
- "email": "joaodasilva@mailinator.com",
- "telephone": "11911111111",
- "document": "12345678912"
}
Response samples
- 201
- 400
- 422
{- "status": "success",
- "data": {
- "id": 123,
- "birthDate": "2020-01-01",
- "firstName": "João",
- "lastName": "da Silva",
- "email": "joaodasilva@mailinator.com",
- "telephone": "11911111111",
- "document": "12345678912"
}
}
Atualiza os dados de um cliente
Authorizations:
path Parameters
id required | integer ID do cliente. |
Request Body schema: application/json
(ISO8601Date (string or null)) A data de nascimento do cliente no formato AAAA-MM-DD. Ex: 1984-05-30 | |
firstName | string or null O primeiro nome do cliente |
lastName | string or null O sobrenome do cliente |
string or null O e-mail do cliente. | |
telephone | string or null O telefone do cliente sem formatação com DDD. Ex: (11) 91111-1111 => 11911111111 |
document | string or null O CPF do cliente formatado. Ex: 123.123.123-12 |
Responses
Request samples
- Payload
{- "birthDate": "2020-01-01",
- "firstName": "João",
- "lastName": "da Silva",
- "email": "joaodasilva@mailinator.com",
- "telephone": "11911111111",
- "document": "12345678912"
}
Response samples
- 200
- 400
- 404
- 422
{- "status": "success",
- "data": {
- "id": 123,
- "birthDate": "2020-01-01",
- "firstName": "João",
- "lastName": "da Silva",
- "email": "joaodasilva@mailinator.com",
- "telephone": "11911111111",
- "document": "12345678912"
}
}
Estatísticas de um cliente
Authorizations:
path Parameters
customersId required | integer ID do cliente. |
Responses
Response samples
- 200
- 404
{- "status": "success",
- "data": {
- "lastOrder": "2020-01-01",
- "qtyOrders": 48,
- "npsGrade": "5",
- "lastLocationOrder": "Av. Paulista, 100 - São Paulo SP",
- "customerLoyaltyprogram": {
- "approved": 13,
- "approvedPercent": 5.3,
- "pending": 10,
- "pendingPercent": 7.3,
- "isExpired": true,
- "isRewardAvailable": true,
- "returningText": "compras realizadas",
- "numericSumSubtotalMinusDiscount": 1,
- "sumSubtotalMinusDiscount": 9.9,
- "used": 2,
- "description": "A cada 2 pedidos, ganhe 10% de desconto na próxima compra"
}
}
}
Lista as áreas de entrega da loja
Authorizations:
query Parameters
name | string Busca por nome da área de entrega |
deliveryAreaId | integer Busca pelo identificador da área de entrega |
type | string Enum: "CIRCLE" "POLYGON" Tipo da área de entrega. |
offset | integer Default: 0 Posição inicial do objeto a ser retornado. |
limit | integer <= 100 Default: 30 Quantidade de objetos a ser retornado. |
Responses
Response samples
- 200
{- "status": "success",
- "data": {
- "deliveryAreas": [
- {
- "type": "POLYGON",
- "deliveryFeePricingRule": {
- "type": "FIXED",
- "dynamicPriceStart": "09:00:00-03:00",
- "dynamicPriceEnd": "09:00:00-03:00",
- "dynamicPrice": {
- "value": 1000,
- "currency": "BRL"
}, - "freeDeliveryMinimumOrder": {
- "value": 1000,
- "currency": "BRL"
}, - "freeDeliveryTimeout": "2020-01-01T09:00:00-03:00",
- "fixedPrice": {
- "value": 1000,
- "currency": "BRL"
}
}, - "id": 123,
- "minimumWaitingMinutes": 30,
- "maximumWaitingMinutes": 90,
- "inactivationPeriod": {
- "inactivationStart": "09:00:00-03:00",
- "inactivationEnd": "09:00:00-03:00"
}, - "isActive": true,
- "name": "string",
- "polygon": [
- {
- "lat": -23.45,
- "lng": -45.67
}
]
}
], - "pagination": {
- "currentOffset": 10,
- "limit": 10,
- "totalItems": 50
}
}
}
Cria uma área de entrega
Authorizations:
Request Body schema: application/json
Dados da área de entrega a ser criada
type required | string or null Enum: "CIRCLE" "POLYGON" O tipo de area de entrega
|
(GeographicalPoint (object or null)) A localização do centro da área de entrega. Se o campo 'type' for 'CIRCLE', então este campo deve ser preenchido | |
required | object (Money) Uma descrição de quantidade de dinheiro |
(ISO8601Time (string or null)) O horário no qual começa a inativação da área de entrega. | |
(ISO8601Time (string or null)) O horário no qual termina a inativação da área de entrega. | |
(ISO8601Time (string or null)) Caso presente, indica o período final da aplicação da taxa dinâmica. | |
(Money (object or null)) Caso presente, indica o valor que deve ser adicionado a taxa de entrega durante o período de aplicação da taxa dinâmica. | |
name required | string or null Nome da área de entrega |
zipCode | string or null |
address | string or null |
neighborhood | string or null |
radius | number or null <float> O raio da área de entrega, em metros. Se o campo "type" for "CIRCLE", então este campo deve ser preenchido |
(ISO8601Time (string or null)) | |
Array of objects or null (GeographicalPoint) O polígono da área, definido pela sequência de pontos geográficos que o definem. Se o campo "type" for "POLYGON", então este campo deve ser preenchido | |
minimumWaitingMinutes required | integer O tempo mínimo de entrega dessa área, em minutos. |
maximumWaitingMinutes required | integer O tempo máximo de entrega dessa área, em minutos. |
Responses
Request samples
- Payload
{- "type": "POLYGON",
- "center": {
- "lat": -23.45,
- "lng": -45.67
}, - "price": {
- "value": 1000,
- "currency": "BRL"
}, - "inactivationStart": "09:00:00-03:00",
- "inactivationEnd": "09:00:00-03:00",
- "dynamicPriceEnd": "09:00:00-03:00",
- "dynamicPrice": {
- "value": 1000,
- "currency": "BRL"
}, - "name": "string",
- "zipCode": "string",
- "address": "string",
- "neighborhood": "string",
- "radius": 100,
- "dynamicPriceStart": "09:00:00-03:00",
- "polygon": [
- {
- "lat": -23.45,
- "lng": -45.67
}
], - "minimumWaitingMinutes": 30,
- "maximumWaitingMinutes": 90
}
Response samples
- 201
- 422
{- "status": "success",
- "data": {
- "type": "POLYGON",
- "deliveryFeePricingRule": {
- "type": "FIXED",
- "dynamicPriceStart": "09:00:00-03:00",
- "dynamicPriceEnd": "09:00:00-03:00",
- "dynamicPrice": {
- "value": 1000,
- "currency": "BRL"
}, - "freeDeliveryMinimumOrder": {
- "value": 1000,
- "currency": "BRL"
}, - "freeDeliveryTimeout": "2020-01-01T09:00:00-03:00",
- "fixedPrice": {
- "value": 1000,
- "currency": "BRL"
}
}, - "id": 123,
- "minimumWaitingMinutes": 30,
- "maximumWaitingMinutes": 90,
- "inactivationPeriod": {
- "inactivationStart": "09:00:00-03:00",
- "inactivationEnd": "09:00:00-03:00"
}, - "isActive": true,
- "name": "string",
- "polygon": [
- {
- "lat": -23.45,
- "lng": -45.67
}
]
}
}
Response samples
- 200
{- "status": "success",
- "data": {
- "enablePostCheckoutEta": true,
- "freeDeliveryMinimumOrder": {
- "value": 1000,
- "currency": "BRL"
}, - "freeDeliveryTimeout": "2020-01-01T09:00:00-03:00",
- "minimumOrder": {
- "value": 1000,
- "currency": "BRL"
}, - "takeoutMinimumOrder": {
- "value": 1000,
- "currency": "BRL"
}, - "takeoutStatus": true,
- "takeoutTime": 5
}
}
Atualiza as configurações gerais da área de entrega
Authorizations:
Request Body schema: application/json
Configurações gerais da área de entrega a serem atualizadas
enablePostCheckoutEta | boolean or null Default: false Exibir estimativa do tempo de espera |
(Money (object or null)) Valor minimo do pedido para ter taxa de entrega grátis. Se este valor for zero, então não há valor mínimo. | |
(ISO8601DateTime (string or null)) Data e hora que a taxa de entrega ficará zerada. Ex: até o dia 2021-04-31 15:30:00 as taxas de entrega ficarão zeradas. Após essa data, o valor da taxa de entrega voltará ao normal. Se este valor for null, este recurso será desativado. | |
(Money (object or null)) Pedido mínimo de delivery. Se este valor for null, não há valor mínimo do pedido. | |
(Money (object or null)) Valor mínimo do pedido para ser retirado. Se este valor for null, então este recurso está desativado e o valor mínimo da retirada é igual ao do delivery, acho que é legal deixar documentado isso. Para usar este recurso, o campo 'takeoutTime' deverá conter algum valor positivo maior que zero. | |
takeoutStatus | boolean or null Default: false Habilita ou desabilita a retirada na loja |
takeoutTime | integer or null Quantidade de minutos que o cliente poderá retirar o pedido. Ex: 5 minutos. Após 5 minutos do pedido a ser aprovado, o cliente poderá retirar o pedido. Se este valor for zerado, então este recurso está desativado |
Responses
Request samples
- Payload
{- "enablePostCheckoutEta": true,
- "freeDeliveryMinimumOrder": {
- "value": 1000,
- "currency": "BRL"
}, - "freeDeliveryTimeout": "2020-01-01T09:00:00-03:00",
- "minimumOrder": {
- "value": 1000,
- "currency": "BRL"
}, - "takeoutMinimumOrder": {
- "value": 1000,
- "currency": "BRL"
}, - "takeoutStatus": true,
- "takeoutTime": 5
}
Response samples
- 200
- 422
{- "status": "success",
- "data": {
- "enablePostCheckoutEta": true,
- "freeDeliveryMinimumOrder": {
- "value": 1000,
- "currency": "BRL"
}, - "freeDeliveryTimeout": "2020-01-01T09:00:00-03:00",
- "minimumOrder": {
- "value": 1000,
- "currency": "BRL"
}, - "takeoutMinimumOrder": {
- "value": 1000,
- "currency": "BRL"
}, - "takeoutStatus": true,
- "takeoutTime": 5
}
}
Atualiza uma área de entrega
Authorizations:
path Parameters
id required | integer identificador da área de entrega. |
Request Body schema: application/json
Dados da área de entrega a ser atualizada
type | string or null Value: "POLYGON" O tipo de area de entrega
|
required | object (Money) Uma descrição de quantidade de dinheiro |
(ISO8601Time (string or null)) O horário no qual começa a inativação da área de entrega. | |
(ISO8601Time (string or null)) O horário no qual termina a inativação da área de entrega. | |
(ISO8601Time (string or null)) Caso presente, indica o período inicial da aplicação da taxa dinâmica. | |
(ISO8601Time (string or null)) Caso presente, indica o período final da aplicação da taxa dinâmica. | |
(Money (object or null)) Caso presente, indica o valor que deve ser adicionado a taxa de entrega durante o período de aplicação da taxa dinâmica. | |
name | string or null Nome da área de entrega |
zipCode | string or null |
address | string or null |
neighborhood | string or null |
(GeographicalPoint (object or null)) | |
radius | number or null <float> |
Array of objects or null (GeographicalPoint) O polígono da área, definido pela sequência de pontos geográficos que o definem. Se o campo "type" for "POLYGON", então este campo deve ser preenchido | |
minimumWaitingMinutes | integer or null O tempo mínimo de entrega dessa área, em minutos. |
maximumWaitingMinutes | integer or null O tempo máximo de entrega dessa área, em minutos. |
inactivationStatus | boolean or null Status da programação de inativação |
dynamicPriceStatus | boolean or null Status do preço dinâmico |
isActive | boolean or null Status da área de entrega |
Responses
Request samples
- Payload
{- "type": "POLYGON",
- "price": {
- "value": 1000,
- "currency": "BRL"
}, - "inactivationStart": "09:00:00-03:00",
- "inactivationEnd": "09:00:00-03:00",
- "dynamicPriceStart": "09:00:00-03:00",
- "dynamicPriceEnd": "09:00:00-03:00",
- "dynamicPrice": {
- "value": 1000,
- "currency": "BRL"
}, - "name": "string",
- "zipCode": "string",
- "address": "string",
- "neighborhood": "string",
- "center": {
- "lat": -23.45,
- "lng": -45.67
}, - "radius": 0,
- "polygon": [
- {
- "lat": -23.45,
- "lng": -45.67
}
], - "minimumWaitingMinutes": 30,
- "maximumWaitingMinutes": 90,
- "inactivationStatus": false,
- "dynamicPriceStatus": true,
- "isActive": true
}
Response samples
- 200
- 404
- 422
{- "status": "success",
- "data": {
- "type": "POLYGON",
- "deliveryFeePricingRule": {
- "type": "FIXED",
- "dynamicPriceStart": "09:00:00-03:00",
- "dynamicPriceEnd": "09:00:00-03:00",
- "dynamicPrice": {
- "value": 1000,
- "currency": "BRL"
}, - "freeDeliveryMinimumOrder": {
- "value": 1000,
- "currency": "BRL"
}, - "freeDeliveryTimeout": "2020-01-01T09:00:00-03:00",
- "fixedPrice": {
- "value": 1000,
- "currency": "BRL"
}
}, - "id": 123,
- "minimumWaitingMinutes": 30,
- "maximumWaitingMinutes": 90,
- "inactivationPeriod": {
- "inactivationStart": "09:00:00-03:00",
- "inactivationEnd": "09:00:00-03:00"
}, - "isActive": true,
- "name": "string",
- "polygon": [
- {
- "lat": -23.45,
- "lng": -45.67
}
]
}
}
Atualiza algumas configurações em massa
Atualiza os campos minimumWaitingTime, maximumWaitingTime e price de todas as área de entrega e de todas os locais específicos. Esta operação pode demorar.
Authorizations:
Request Body schema: application/json
Dados a serem atualizados
(Money (object or null)) Taxa de entrega da área | |
name | string or null |
zipCode | string or null |
address | string or null |
neighborhood | string or null |
type | string or null |
(GeographicalPoint (object or null)) | |
radius | number or null <float> |
(ISO8601Time (string or null)) | |
(ISO8601Time (string or null)) | |
(Money (object or null)) | |
(ISO8601Time (string or null)) | |
(ISO8601Time (string or null)) | |
minimumWaitingMinutes | integer or null O tempo mínimo de entrega a ser configurado para todas as áreas, em minutos. |
maximumWaitingMinutes | integer or null O tempo máximo de entrega a ser configurado para todas as áreas, em minutos. |
Responses
Request samples
- Payload
{- "price": {
- "value": 1000,
- "currency": "BRL"
}, - "name": "string",
- "zipCode": "string",
- "address": "string",
- "neighborhood": "string",
- "type": "string",
- "center": {
- "lat": -23.45,
- "lng": -45.67
}, - "radius": 0,
- "inactivationStart": "09:00:00-03:00",
- "inactivationEnd": "09:00:00-03:00",
- "dynamicPrice": {
- "value": 1000,
- "currency": "BRL"
}, - "dynamicPriceStart": "09:00:00-03:00",
- "dynamicPriceEnd": "09:00:00-03:00",
- "minimumWaitingMinutes": 30,
- "maximumWaitingMinutes": 90
}
Response samples
- 404
- 422
{- "status": "error",
- "code": "invalid_fields",
- "message": "Preencha os campos corretamente!"
}
Verifica se a loja entrega no endereço especificado
Authorizations:
Request Body schema: application/json
Dados a serem atualizados
(ISO8601DateTime (string or null)) O horário de agendamento do pedido. Caso nulo, calcula a taxa para pedidos não agendados. Se a área de entrega ou o local específico possui um horário de ativação, este campo será usado. | |
street required | string |
number required | string |
zipcode required | string |
neighborhood required | string |
city required | string |
state required | string |
complement required | string |
reference_point | string or null |
Responses
Request samples
- Payload
{- "scheduling": "2020-01-01T09:00:00-03:00",
- "street": "Rua Drausio",
- "number": "123",
- "zipcode": "05511-010",
- "neighborhood": "Butantã",
- "city": "São Paulo",
- "state": "SP",
- "complement": "Próximo ao posto de gasolina",
- "reference_point": "Próximo à praça"
}
Response samples
- 200
- 404
- 422
{- "status": "success",
- "data": {
- "fee": {
- "value": 1000,
- "currency": "BRL"
}, - "minimumWaitingMinutes": 30,
- "maximumWaitingMinutes": 90,
- "deliveryAreasId": 0,
- "specificLocationsId": 0
}
}
Reportar um CEP com problema
Authorizations:
Request Body schema: application/json
CEP
zipcode required | string CEP com problema |
Responses
Request samples
- Payload
{- "zipcode": "05511-010"
}
Response samples
- 404
- 422
{- "status": "error",
- "code": "invalid_fields",
- "message": "Preencha os campos corretamente!"
}
Lista os horários que este item está disponível
Authorizations:
path Parameters
itemId required | integer ID do item. |
Responses
Response samples
- 200
- 400
- 404
{- "status": "success",
- "data": {
- "itemAvailabilities": [
- {
- "id": 123,
- "periodStart": "09:00:00-03:00",
- "periodEnd": "09:00:00-03:00",
- "weekday": 3
}
]
}
}
Cria uma novo horário de disponibilidade para um item
Authorizations:
path Parameters
itemId required | integer ID do item. |
Request Body schema: application/json
Dados da disponilibidade do item a ser adicionado
required | ISO8601Time (string) Horário inicial no qual o item fica disponível no formato HH:mm. Ex: 14:34. |
required | ISO8601Time (string) Horário final no qual o item fica disponível no formato HH:mm. Ex: 14:34. |
weekday required | integer |
Responses
Request samples
- Payload
{- "periodStart": "09:00:00-03:00",
- "periodEnd": "09:00:00-03:00",
- "weekday": 3
}
Response samples
- 200
- 400
- 404
{- "status": "success",
- "data": {
- "id": 123,
- "periodStart": "09:00:00-03:00",
- "periodEnd": "09:00:00-03:00",
- "weekday": 3
}
}
Apagar um período
Authorizations:
path Parameters
itemId required | integer ID do item. |
id required | integer ID do período a ser excluído. |
Responses
Response samples
- 400
- 404
- 422
{- "status": "error",
- "code": "invalid_fields",
- "message": "Preencha os campos corretamente!"
}
Cria um conjunto de novos horários de disponibilidade para um item
Authorizations:
path Parameters
itemId required | integer ID do item. |
Request Body schema: application/json
Dados da disponilibidades do item a ser adicionado
required | Array of objects (ItemAvailabilityDTO) Lista de disponibilidades | ||||||
Array
|
Responses
Request samples
- Payload
{- "itemAvailabilities": [
- {
- "periodStart": "09:00:00-03:00",
- "periodEnd": "09:00:00-03:00",
- "weekday": 3
}
]
}
Response samples
- 200
- 400
- 404
{- "status": "success",
- "data": {
- "itemAvailabilities": [
- {
- "id": 123,
- "periodStart": "09:00:00-03:00",
- "periodEnd": "09:00:00-03:00",
- "weekday": 3
}
]
}
}
Lista os itens de uma categoria
Authorizations:
path Parameters
categoryId required | integer ID da categoria. |
query Parameters
id | integer ID do item. |
name | string Nome do item. |
showDetails | boolean Default: false Mostra as variações e as opções do item |
offset | integer >= 0 Default: 0 Posição inicial do objeto a ser retornado. |
limit | integer <= 100 Default: 30 Quantidade de objetos a ser retornado. |
Responses
Response samples
- 200
- 400
- 404
{- "status": "success",
- "data": {
- "items": [
- {
- "id": 123,
- "encodedName": "refrigerante-light",
- "price": {
- "value": 1000,
- "currency": "BRL"
}, - "type": "CUSTOM",
- "status": "ACTIVE",
- "hiddenWhenUnavailable": true,
- "viewOrder": 1,
- "isFractional": 1,
- "showAtCheckout": true,
- "dayLimitWithTheBadge": "2021-06-16",
- "promotionalOldPrice": {
- "value": 1000,
- "currency": "BRL"
}, - "description": "Refrigerante Light de 350ml gelada",
- "customCode": "string",
- "name": "Refrigerante Light",
- "filters": [
- {
- "id": 123,
- "stores_id": 123,
- "tag": "takeout",
- "name": "Retirada",
- "type": "ORDER_TYPE",
- "icon": "cart"
}
], - "badges": [
- {
- "id": 123,
- "stores_id": 123,
- "tag": "takeout",
- "name": "Retirada",
- "type": "ORDER_TYPE",
- "icon": "cart"
}
]
}
], - "pagination": {
- "currentOffset": 10,
- "limit": 10,
- "totalItems": 50
}
}
}
Criar um novo item
Authorizations:
path Parameters
categoryId required | integer ID da categoria. |
Request Body schema: application/json
required | object (Money) Uma descrição de quantidade de dinheiro |
type | string Default: "CUSTOM" Enum: "CUSTOM" "FIXED" Tipo do item |
status | string Default: "ACTIVE" Enum: "ACTIVE" "SHORT_SUPPLY" "HIDDEN" Status do item ACTIVE: Item Ativo SHORT_SUPPLY: Item em falta, aparece no cardápio, mas não dá para selecionar HIDDEN: Item oculto, não mostra no cardápio |
hiddenWhenUnavailable | boolean or null Default: false Ocultar item se estiver fora do horário de disponibilidade |
viewOrder | integer >= 1 Default: 1 Ordem de listagem do item |
isFractional | integer Default: 0 É item fracionário |
showAtCheckout | boolean or null Default: true Este item aparece no checkout |
(ISO8601Date (string or null)) O dia limite no qual este item irá utilizar a marcação de 'Item Novo' | |
(Money (object or null)) Preço cheio do item. Ex. De R$10,00 por R$20,00. O valor deste atributo seria R$10,00. | |
description | string or null |
customCode | string or null |
name required | string |
Responses
Request samples
- Payload
{- "price": {
- "value": 1000,
- "currency": "BRL"
}, - "type": "CUSTOM",
- "status": "ACTIVE",
- "hiddenWhenUnavailable": true,
- "viewOrder": 1,
- "isFractional": 1,
- "showAtCheckout": true,
- "dayLimitWithTheBadge": "2021-06-16",
- "promotionalOldPrice": {
- "value": 1000,
- "currency": "BRL"
}, - "description": "Refrigerante Light de 350ml gelada",
- "customCode": "string",
- "name": "Refrigerante Light"
}
Response samples
- 200
- 400
- 404
- 422
{- "status": "success",
- "data": {
- "id": 123,
- "encodedName": "refrigerante-light",
- "price": {
- "value": 1000,
- "currency": "BRL"
}, - "type": "CUSTOM",
- "status": "ACTIVE",
- "hiddenWhenUnavailable": true,
- "viewOrder": 1,
- "isFractional": 1,
- "showAtCheckout": true,
- "dayLimitWithTheBadge": "2021-06-16",
- "promotionalOldPrice": {
- "value": 1000,
- "currency": "BRL"
}, - "description": "Refrigerante Light de 350ml gelada",
- "customCode": "string",
- "name": "Refrigerante Light",
- "filters": [
- {
- "id": 123,
- "stores_id": 123,
- "tag": "takeout",
- "name": "Retirada",
- "type": "ORDER_TYPE",
- "icon": "cart"
}
], - "badges": [
- {
- "id": 123,
- "stores_id": 123,
- "tag": "takeout",
- "name": "Retirada",
- "type": "ORDER_TYPE",
- "icon": "cart"
}
]
}
}
Lista de todos itens
Authorizations:
query Parameters
id | integer ID do item. |
name | string Nome do item. |
showDetails | boolean Default: false Mostra as variações e as opções do item |
offset | integer >= 0 Default: 0 Posição inicial do objeto a ser retornado. |
limit | integer <= 100 Default: 30 Quantidade de objetos a ser retornado. |
Responses
Response samples
- 200
- 400
- 404
{- "status": "success",
- "data": {
- "items": [
- {
- "id": 123,
- "encodedName": "refrigerante-light",
- "price": {
- "value": 1000,
- "currency": "BRL"
}, - "type": "CUSTOM",
- "status": "ACTIVE",
- "hiddenWhenUnavailable": true,
- "viewOrder": 1,
- "isFractional": 1,
- "showAtCheckout": true,
- "dayLimitWithTheBadge": "2021-06-16",
- "promotionalOldPrice": {
- "value": 1000,
- "currency": "BRL"
}, - "description": "Refrigerante Light de 350ml gelada",
- "customCode": "string",
- "name": "Refrigerante Light",
- "filters": [
- {
- "id": 123,
- "stores_id": 123,
- "tag": "takeout",
- "name": "Retirada",
- "type": "ORDER_TYPE",
- "icon": "cart"
}
], - "badges": [
- {
- "id": 123,
- "stores_id": 123,
- "tag": "takeout",
- "name": "Retirada",
- "type": "ORDER_TYPE",
- "icon": "cart"
}
]
}
], - "pagination": {
- "currentOffset": 10,
- "limit": 10,
- "totalItems": 50
}
}
}
Atualizar item
Authorizations:
path Parameters
id required | integer ID do item. |
Request Body schema: application/json
type | string or null Default: "CUSTOM" Enum: "CUSTOM" "FIXED" Tipo do item |
status | string or null Default: "ACTIVE" Enum: "ACTIVE" "SHORT_SUPPLY" "HIDDEN" Status do item ACTIVE: Item Ativo SHORT_SUPPLY: Item em falta, aparece no cardápio, mas não dá para selecionar HIDDEN: Item oculto, não mostra no cardápio |
viewOrder | integer or null >= 1 Default: 1 Ordem de listagem do item |
categoryId | integer or null ID da categoria |
(Money (object or null)) Valor do item | |
(ISO8601Date (string or null)) O dia limite no qual este item irá utilizar a marcação de 'Item Novo' | |
(Money (object or null)) Preço cheio do item. Ex. De R$10,00 por R$20,00. O valor deste atributo seria R$10,00. | |
description | string or null |
hiddenWhenUnavailable | boolean or null Esconder o item quando estiver indisponível |
customCode | string or null |
showAtCheckout | boolean or null Este item aparece no checkout |
name | string or null Nome do item |
isFractional | integer or null É item fracionário |
Responses
Request samples
- Payload
{- "type": "CUSTOM",
- "status": "ACTIVE",
- "viewOrder": 1,
- "categoryId": 0,
- "price": {
- "value": 1000,
- "currency": "BRL"
}, - "dayLimitWithTheBadge": "2021-06-16",
- "promotionalOldPrice": {
- "value": 1000,
- "currency": "BRL"
}, - "description": "Refrigerante Light de 350ml gelada",
- "hiddenWhenUnavailable": true,
- "customCode": "string",
- "showAtCheckout": true,
- "name": "Refrigerante Light",
- "isFractional": 0
}
Response samples
- 200
- 400
- 404
- 422
{- "status": "success",
- "data": {
- "id": 123,
- "encodedName": "refrigerante-light",
- "price": {
- "value": 1000,
- "currency": "BRL"
}, - "type": "CUSTOM",
- "status": "ACTIVE",
- "hiddenWhenUnavailable": true,
- "viewOrder": 1,
- "isFractional": 1,
- "showAtCheckout": true,
- "dayLimitWithTheBadge": "2021-06-16",
- "promotionalOldPrice": {
- "value": 1000,
- "currency": "BRL"
}, - "description": "Refrigerante Light de 350ml gelada",
- "customCode": "string",
- "name": "Refrigerante Light",
- "filters": [
- {
- "id": 123,
- "stores_id": 123,
- "tag": "takeout",
- "name": "Retirada",
- "type": "ORDER_TYPE",
- "icon": "cart"
}
], - "badges": [
- {
- "id": 123,
- "stores_id": 123,
- "tag": "takeout",
- "name": "Retirada",
- "type": "ORDER_TYPE",
- "icon": "cart"
}
]
}
}
Upload da imagem do item
Authorizations:
path Parameters
id required | integer ID do item. |
Request Body schema: multipart/form-data
file required | string <file> Imagem a ser enviado |
Responses
Response samples
- 200
- 400
- 404
- 415
- 422
{- "status": "success",
- "data": {
- "id": 123,
- "encodedName": "refrigerante-light",
- "price": {
- "value": 1000,
- "currency": "BRL"
}, - "type": "CUSTOM",
- "status": "ACTIVE",
- "hiddenWhenUnavailable": true,
- "viewOrder": 1,
- "isFractional": 1,
- "showAtCheckout": true,
- "dayLimitWithTheBadge": "2021-06-16",
- "promotionalOldPrice": {
- "value": 1000,
- "currency": "BRL"
}, - "description": "Refrigerante Light de 350ml gelada",
- "customCode": "string",
- "name": "Refrigerante Light",
- "filters": [
- {
- "id": 123,
- "stores_id": 123,
- "tag": "takeout",
- "name": "Retirada",
- "type": "ORDER_TYPE",
- "icon": "cart"
}
], - "badges": [
- {
- "id": 123,
- "stores_id": 123,
- "tag": "takeout",
- "name": "Retirada",
- "type": "ORDER_TYPE",
- "icon": "cart"
}
]
}
}
Ordenar os itens de uma categoria
Faz uma ordenação automática, de forma assíncrona, dos itens de uma categoria. A ordenação é feita de forma ascendente primeiro pelo viewOrder e depois pelo name.
Authorizations:
path Parameters
categoryId required | integer ID da categoria. |
Responses
Response samples
- 404
{- "status": "error",
- "code": "invalid_fields",
- "message": "Preencha os campos corretamente!"
}
Mudar status de todos os items dentro de uma categoria
Authorizations:
path Parameters
categoryId required | integer ID da categoria. |
Request Body schema: application/json
status | string or null Default: "ACTIVE" Enum: "ACTIVE" "SHORT_SUPPLY" "HIDDEN" Status do item ACTIVE: Item Ativo SHORT_SUPPLY: Item em falta, aparece no cardápio, mas não dá para selecionar HIDDEN: Item oculto, não mostra no cardápio |
Responses
Request samples
- Payload
{- "status": "ACTIVE"
}
Response samples
- 404
- 422
{- "status": "error",
- "code": "invalid_fields",
- "message": "Preencha os campos corretamente!"
}
Atualizar quantidade em estoque do item
Authorizations:
path Parameters
id required | integer ID do item. |
Request Body schema: application/json
amount required | integer Quantidade em estoque |
Responses
Request samples
- Payload
{- "amount": 0
}
Response samples
- 200
- 400
- 404
- 422
{- "status": "success",
- "data": {
- "id": 123,
- "itemId": 0,
- "amount": 0
}
}
Cria informações do estoque do item
Authorizations:
path Parameters
id required | integer ID do item. |
Request Body schema: application/json
amount required | integer Quantidade em estoque |
Responses
Request samples
- Payload
{- "amount": 0
}
Response samples
- 200
- 400
- 404
- 422
{- "status": "success",
- "data": {
- "id": 123,
- "itemId": 0,
- "amount": 0
}
}
Lista os programas de fidelidade
Authorizations:
query Parameters
offset | integer >= 0 Default: 0 Posição inicial do objeto a ser retornado. |
limit | integer <= 100 Default: 30 Quantidade de objetos a ser retornado. |
status | string Enum: "pending" "active" "inactive" Status do programa de fidelidade. |
expired | boolean Este programa está expirado. |
Responses
Response samples
- 200
{- "status": "success",
- "data": {
- "loyaltyprograms": [
- {
- "programName": "Meu program customizado",
- "programIcon": "star",
- "dateBegin": "2020-01-01",
- "benefitValue": "Sobremesa grátis",
- "status": "pending",
- "disablePeriodSixHours": true,
- "isBrandProgram": true,
- "valueBaseCount": 10,
- "pointsValidFor": 10,
- "benefitType": "percentage",
- "baseCountType": "spent_money_accumulated_value",
- "dateEnd": "2020-01-01",
- "customCode": "COD123",
- "id": 1234,
- "total": 10,
- "isExpired": true,
- "hasBegun": true,
- "benefitValueComplete": "Sobremesa do Dia",
- "description": "Acumule R$200,00 em produtos e ganhe 20,00% de desconto na próxima compra"
}
], - "pagination": {
- "currentOffset": 10,
- "limit": 10,
- "totalItems": 50
}
}
}
Criar um programa de fidelidade
Authorizations:
Request Body schema: application/json
Dados do programa de fidelidade
required | ISO8601Date (string) Data de início do programa de fidelidade |
benefitValue | string Default: "" Valor do benefício. Ex: sobremesa grátis, 10 (10% de desconto), 15(R$ 15,00 de desconto) |
status | string Default: "active" Enum: "pending" "active" "inactive" Status do programa de fidelidade |
disablePeriodSixHours required | boolean Default: false Oferecer o programa sem o limite de 6 horas a cada compra |
isBrandProgram | boolean or null Default: false Este Programa de fidelidade é válido para a marca toda? |
valueBaseCount required | number <float> Contagem do programa. A cada 10 compras, ganhe x. Gaste pelo menos 200 reais. |
benefitType | string or null Enum: "percentage" "fixed_value" "menu_item" "shipping" "not_applicable" Tipo de benefício. "percentage": desconto de x%; "fixed_value": desconto de R$ x,00; "menu_item": item grátis; "shipping": taxa de entrega grátis; "not_applicable": quando o "baseCountType" for "progressive" |
baseCountType | string or null Default: "spent_money_accumulated_value" Enum: "spent_money_accumulated_value" "itens_bought" "spent_money_minimum_value" "returning" "progressive" "points" Tipo do programa de fidelidade. "spent_money_accumulated_value": gastar x reais nas últimas compras; "spent_money_minimum_value": gastar pelo menos x reais na compra; "returning": item prêmio; "progressive": programa de fidelidade progressivo; "points": programa de pontos. |
(ISO8601Date (string or null)) Data de expiração do programa de fidelidade | |
customCode | string or null Código do produto |
description | string Descrição do programa de fidelidade |
Responses
Request samples
- Payload
{- "dateBegin": "2020-01-01",
- "benefitValue": "Sobremesa grátis",
- "status": "pending",
- "disablePeriodSixHours": true,
- "isBrandProgram": true,
- "valueBaseCount": 10,
- "benefitType": "percentage",
- "baseCountType": "spent_money_accumulated_value",
- "dateEnd": "2020-01-01",
- "customCode": "COD123",
- "description": "Acumule R$200,00 em produtos e ganhe 20,00% de desconto na próxima compra"
}
Response samples
- 201
- 422
{- "status": "success",
- "data": {
- "programName": "Meu program customizado",
- "programIcon": "star",
- "dateBegin": "2020-01-01",
- "benefitValue": "Sobremesa grátis",
- "status": "pending",
- "disablePeriodSixHours": true,
- "isBrandProgram": true,
- "valueBaseCount": 10,
- "pointsValidFor": 10,
- "benefitType": "percentage",
- "baseCountType": "spent_money_accumulated_value",
- "dateEnd": "2020-01-01",
- "customCode": "COD123",
- "id": 1234,
- "total": 10,
- "isExpired": true,
- "hasBegun": true,
- "benefitValueComplete": "Sobremesa do Dia",
- "description": "Acumule R$200,00 em produtos e ganhe 20,00% de desconto na próxima compra"
}
}
Buscar um programa de fidelidade pelo identificador
Authorizations:
path Parameters
id required | integer O identificador do programa de fidelidade |
Responses
Response samples
- 200
{- "status": "success",
- "data": {
- "programName": "Meu program customizado",
- "programIcon": "star",
- "dateBegin": "2020-01-01",
- "benefitValue": "Sobremesa grátis",
- "status": "pending",
- "disablePeriodSixHours": true,
- "isBrandProgram": true,
- "valueBaseCount": 10,
- "pointsValidFor": 10,
- "benefitType": "percentage",
- "baseCountType": "spent_money_accumulated_value",
- "dateEnd": "2020-01-01",
- "customCode": "COD123",
- "id": 1234,
- "total": 10,
- "isExpired": true,
- "hasBegun": true,
- "benefitValueComplete": "Sobremesa do Dia",
- "description": "Acumule R$200,00 em produtos e ganhe 20,00% de desconto na próxima compra"
}
}
Atualiza um programa de fidelidade
Authorizations:
path Parameters
id required | integer ID do programa de fidelidade |
Request Body schema: application/json
Dados do programa de fidelidade a ser atualizado
(ISO8601Date (string or null)) Data de início do programa de fidelidade | |
benefitValue | string or null Default: "" Valor do benefício. Ex: sobremesa grátis, 10 (10% de desconto), 15(R$ 15,00 de desconto) |
status | string or null Default: "active" Enum: "pending" "active" "inactive" Status do programa de fidelidade |
disablePeriodSixHours | boolean or null Default: false Oferecer o programa sem o limite de 6 horas a cada compra |
isBrandProgram | boolean or null Default: false Este Programa de fidelidade é válido para a marca toda? |
valueBaseCount | number or null <float> Contagem do programa. A cada 10 compras, ganhe x. Gaste pelo menos 200 reais. |
benefitType | string or null Enum: "percentage" "fixed_value" "menu_item" "shipping" "not_applicable" Tipo de benefício. "percentage": desconto de x%; "fixed_value": desconto de R$ x,00; "menu_item": item grátis; "shipping": taxa de entrega grátis; "not_applicable": quando o "baseCountType" for "progressive" |
baseCountType | string or null Default: "spent_money_accumulated_value" Enum: "spent_money_accumulated_value" "itens_bought" "spent_money_minimum_value" "returning" "progressive" "points" Tipo do programa de fidelidade. "spent_money_accumulated_value": gastar x reais nas últimas compras; "spent_money_minimum_value": gastar pelo menos x reais na compra; "returning": item prêmio; "progressive": programa de fidelidade progressivo; "points": programa de pontos. |
(ISO8601Date (string or null)) Data de expiração do programa de fidelidade | |
customCode | string or null |
description | string or null Descrição do programa de fidelidade |
Responses
Request samples
- Payload
{- "dateBegin": "2020-01-01",
- "benefitValue": "Sobremesa grátis",
- "status": "pending",
- "disablePeriodSixHours": true,
- "isBrandProgram": true,
- "valueBaseCount": 10,
- "benefitType": "percentage",
- "baseCountType": "spent_money_accumulated_value",
- "dateEnd": "2020-01-01",
- "customCode": "COD123",
- "description": "Acumule R$200,00 em produtos e ganhe 20,00% de desconto na próxima compra"
}
Response samples
- 200
- 404
- 422
{- "status": "success",
- "data": {
- "programName": "Meu program customizado",
- "programIcon": "star",
- "dateBegin": "2020-01-01",
- "benefitValue": "Sobremesa grátis",
- "status": "pending",
- "disablePeriodSixHours": true,
- "isBrandProgram": true,
- "valueBaseCount": 10,
- "pointsValidFor": 10,
- "benefitType": "percentage",
- "baseCountType": "spent_money_accumulated_value",
- "dateEnd": "2020-01-01",
- "customCode": "COD123",
- "id": 1234,
- "total": 10,
- "isExpired": true,
- "hasBegun": true,
- "benefitValueComplete": "Sobremesa do Dia",
- "description": "Acumule R$200,00 em produtos e ganhe 20,00% de desconto na próxima compra"
}
}
Lista de partipantes do programa de fidelidade
Authorizations:
path Parameters
id required | integer ID do programa de fidelidade |
query Parameters
firstName | string Primeiro nome do cliente |
lastName | string Sobrenome do cliente |
string E-mail do cliente | |
telephone | string Telefone do cliente |
document | string Documento (CPF) do cliente formatado: 000.000.000-00 |
offset | integer >= 0 Default: 0 Posição inicial do objeto a ser retornado. |
limit | integer <= 100 Default: 30 Quantidade de objetos a ser retornado. |
Responses
Response samples
- 200
- 404
{- "status": "success",
- "data": {
- "customers": [
- {
- "birthDate": "2020-01-01",
- "firstName": "João",
- "lastName": "da Silva",
- "email": "joaodasilva@mailinator.com",
- "telephone": "11911111111",
- "id": 0,
- "document": "12345678912",
- "acumulated": 12.1,
- "availableRewards": [
- {
- "benefitType": "percentage",
- "id": 123,
- "benefitValue": "10"
}
]
}
], - "pagination": {
- "currentOffset": 10,
- "limit": 10,
- "totalItems": 50
}
}
}
Criar passos do programa de fidelidade progressivo
Authorizations:
path Parameters
id required | integer ID do programa de fidelidade progressivo |
Request Body schema: application/json
Dados do programa de fidelidade
required | Array of objects (LoyaltyprogramStepDTO) Lista de passos do programs de fidelidade | ||||||||
Array
|
Responses
Request samples
- Payload
{- "steps": [
- {
- "step": 2,
- "benefitValue": "Sobremesa grátis",
- "benefitType": "percentage",
- "customCode": "COD123"
}
]
}
Response samples
- 201
- 404
- 422
{- "status": "success",
- "data": {
- "steps": [
- {
- "id": 123,
- "step": 2,
- "benefitValue": "Sobremesa grátis",
- "benefitType": "percentage",
- "customCode": "COD123"
}
]
}
}
Lista passos do programa de fidelidade progressivo
Authorizations:
path Parameters
id required | integer ID do programa de fidelidade progressivo |
Responses
Response samples
- 200
- 404
- 422
{- "status": "success",
- "data": {
- "steps": [
- {
- "id": 123,
- "step": 2,
- "benefitValue": "Sobremesa grátis",
- "benefitType": "percentage",
- "customCode": "COD123"
}
]
}
}
Apaga um passo do programa de fidelidade progressivo
Authorizations:
path Parameters
loyaltyprogramsId required | integer Identificador do programa de fidelidade progressivo. |
id required | integer Identificador do passo do programa de fidelidade progressivo. |
Responses
Response samples
- 400
- 404
- 422
{- "status": "fail",
- "errors": [
- {
- "field": "name",
- "message": "O campo name deve estar preenchido"
}
]
}
Lista os programas de indique um amigo
Authorizations:
query Parameters
memberGetMembersId | integer Busca pelo identificador do programa indique um amigo |
type | string Enum: "CUSTOM" "FIXED" "PERCENT" "SHIPPING" Tipo do programa de indique um amigo. |
offset | integer >= 0 Default: 0 Posição inicial do objeto a ser retornado. |
limit | integer [ 1 .. 100 ] Default: 30 Quantidade de objetos a ser retornado. |
active | boolean Programa indique um amigo está ativo |
expired | boolean Este programa está expirado. |
Responses
Response samples
- 200
{- "status": "success",
- "data": {
- "pagination": {
- "currentOffset": 10,
- "limit": 10,
- "totalItems": 50
}, - "memberGetMembers": [
- {
- "id": 123,
- "value": 0,
- "valuePercent": 0,
- "type": "CUSTOM",
- "active": false,
- "recovered": 123,
- "uses": 123,
- "expires": "2020-01-01",
- "valueText": "Sobremesa de chocolate",
- "customCode": "COD123",
- "description": "Desconto de R$ 12,30"
}
]
}
}
Cria um programa de indique um amigo
Authorizations:
Request Body schema: application/json
Dados do programa de indique um amigo
(Money (object or null)) Default: 0 Valor de desconto em dinheiro | |
type required | string Enum: "CUSTOM" "FIXED" "PERCENT" "SHIPPING" Tipo do programa de indique um amigo
|
active required | boolean Indica se está ativo ou não |
required | (ISO8601Date (string or null)) Data de expiração do cupom |
valuePercent | integer or null Valor de desconto em porcentagem |
valueText | string or null Prêmio personalizado. Ex: barra de chocolate |
customCode | string or null Código do produto |
Responses
Request samples
- Payload
{- "value": 0,
- "type": "CUSTOM",
- "active": false,
- "expires": "2020-01-01",
- "valuePercent": 12,
- "valueText": "Sobremesa de chocolate",
- "customCode": "COD123"
}
Response samples
- 201
- 403
- 404
- 422
{- "status": "success",
- "data": {
- "id": 123,
- "value": 0,
- "valuePercent": 0,
- "type": "CUSTOM",
- "active": false,
- "recovered": 123,
- "uses": 123,
- "expires": "2020-01-01",
- "valueText": "Sobremesa de chocolate",
- "customCode": "COD123",
- "description": "Desconto de R$ 12,30"
}
}
Lista os participantes do programa de indique um amigo
Authorizations:
path Parameters
id required | integer Identificador do programa de indique um amigo |
query Parameters
customersId | integer >= 0 ID do cliente |
offset | integer >= 0 Default: 0 Posição inicial do objeto a ser retornado. |
limit | integer [ 1 .. 100 ] Default: 30 Quantidade de objetos a ser retornado. |
Responses
Response samples
- 200
- 422
{- "status": "success",
- "data": {
- "pagination": {
- "currentOffset": 10,
- "limit": 10,
- "totalItems": 50
}, - "participants": [
- {
- "id": 123,
- "name": "João",
- "phone": "(11) 98111-1111",
- "email": "joao@email.com",
- "recommendedFriends": 3,
- "redeemedPrizes": 3,
- "wasInvited": true,
- "invitedBy": "Maria",
- "invitedById": 123
}
]
}
}
Atualiza um programa de indique um amigo
Authorizations:
path Parameters
id required | integer Identificador do programa de indique um amigo |
Request Body schema: application/json
Dados do programa de indique um amigo a ser atualizado
active | boolean or null Indica se está ativo ou não |
(ISO8601Date (string or null)) Data de expiração do cupom | |
(Money (object or null)) | |
valuePercent | integer or null |
valueText | string or null |
Responses
Request samples
- Payload
{- "active": false,
- "expires": "2020-01-01",
- "value": {
- "value": 1000,
- "currency": "BRL"
}, - "valuePercent": 0,
- "valueText": "string"
}
Response samples
- 200
- 403
- 404
- 422
{- "status": "success",
- "data": {
- "id": 123,
- "value": 0,
- "valuePercent": 0,
- "type": "CUSTOM",
- "active": false,
- "recovered": 123,
- "uses": 123,
- "expires": "2020-01-01",
- "valueText": "Sobremesa de chocolate",
- "customCode": "COD123",
- "description": "Desconto de R$ 12,30"
}
}
Apaga um programa de indique um amigo
Authorizations:
path Parameters
id required | integer Identificador do programa de indique um amigo |
Responses
Response samples
- 403
- 404
- 422
{- "status": "error",
- "code": "invalid_fields",
- "message": "Preencha os campos corretamente!"
}
Atualizar uma opção da variação do item
Authorizations:
path Parameters
itemId required | integer ID do item. |
propertyId required | integer ID da variação. |
id required | integer ID da opção. |
Request Body schema: application/json
maxChoices | integer or null Default: 1 Número máximo de opções da variação do item. Ex 2, deve selecionar pelo menos duas opções. |
minChoices | integer or null Default: 0 Número mínimo de opções obrigatórias da variação do item. Ex 2, deve selecionar pelo menos duas opções. |
(Money (object or null)) Valor da opção da variação do item | |
viewOrder | integer or null >= 1 Default: 1 Ordem de listagem da opção da variação do item |
Responses
Request samples
- Payload
{- "maxChoices": 1,
- "minChoices": 2,
- "price": {
- "value": 1000,
- "currency": "BRL"
}, - "viewOrder": 1
}
Response samples
- 200
- 400
- 404
- 422
{- "status": "success",
- "data": {
- "maxChoices": 1,
- "minChoices": 2,
- "price": {
- "value": 1000,
- "currency": "BRL"
}, - "viewOrder": 1
}
}
Apagar uma opção de uma variação de um item
Authorizations:
path Parameters
itemId required | integer ID do item. |
propertyId required | integer ID da variação. |
id required | integer ID da opção. |
Responses
Response samples
- 400
- 404
- 422
{- "status": "fail",
- "errors": [
- {
- "field": "name",
- "message": "O campo name deve estar preenchido"
}
]
}
Listar opções
Authorizations:
query Parameters
id | integer ID da opção. |
name | string Nome da opção. |
offset | integer Default: 0 Posição inicial do objeto a ser retornado. |
limit | integer <= 100 Default: 30 Quantidade de objetos a ser retornado. |
Responses
Response samples
- 200
- 400
- 404
{- "status": "success",
- "data": {
- "pagination": {
- "currentOffset": 10,
- "limit": 10,
- "totalItems": 50
}, - "options": [
- {
- "id": 123,
- "basePrice": {
- "value": 1000,
- "currency": "BRL"
}, - "status": "ACTIVE",
- "name": "Laranja",
- "description": "Laranja natural",
- "customCode": "LAR001"
}
]
}
}
Criar uma nova opção
Authorizations:
Request Body schema: application/json
Dados da opção a ser adicionado
object (Money) Uma descrição de quantidade de dinheiro | |
status | string or null Default: "ACTIVE" Enum: "ACTIVE" "SHORT_SUPPLY" "HIDDEN" Status da opção |
name required | string |
description | string or null |
customCode | string or null |
Responses
Request samples
- Payload
{- "basePrice": {
- "value": 1000,
- "currency": "BRL"
}, - "status": "ACTIVE",
- "name": "Laranja",
- "description": "Laranja natural",
- "customCode": "LAR001"
}
Response samples
- 201
- 422
{- "status": "success",
- "data": {
- "id": 123,
- "basePrice": {
- "value": 1000,
- "currency": "BRL"
}, - "status": "ACTIVE",
- "name": "Laranja",
- "description": "Laranja natural",
- "customCode": "LAR001"
}
}
Atualizar uma opção
Authorizations:
path Parameters
id required | integer ID da opção. |
Request Body schema: application/json
object (Money) Uma descrição de quantidade de dinheiro | |
status | string or null Default: "ACTIVE" Enum: "ACTIVE" "SHORT_SUPPLY" "HIDDEN" Status da opção |
name required | string Nome da opção |
description | string or null Descrição da opção |
customCode | string or null Código personalizado para esta opção |
Responses
Request samples
- Payload
{- "basePrice": {
- "value": 1000,
- "currency": "BRL"
}, - "status": "ACTIVE",
- "name": "Laranja",
- "description": "Laranja natural",
- "customCode": "LAR001"
}
Response samples
- 200
- 400
- 404
- 422
{- "status": "success",
- "data": {
- "id": 123,
- "basePrice": {
- "value": 1000,
- "currency": "BRL"
}, - "status": "ACTIVE",
- "name": "Laranja",
- "description": "Laranja natural",
- "customCode": "LAR001"
}
}
Lista todas as variações que possuem esta opção
Authorizations:
path Parameters
id required | integer ID da opção. |
query Parameters
offset | integer >= 0 Default: 0 Posição inicial do objeto a ser retornado. |
limit | integer <= 100 Default: 30 Quantidade de objetos a ser retornado. |
Responses
Response samples
- 200
- 400
- 404
{- "status": "success",
- "data": {
- "pagination": {
- "currentOffset": 10,
- "limit": 10,
- "totalItems": 50
}, - "properties": [
- {
- "id": 123,
- "baseComboMinChoices": 1,
- "baseComboMaxChoices": 1,
- "priceCalculationType": "AVERAGE",
- "choiceType": "CHECKBOX",
- "isFractional": 1,
- "name": "Sabor",
- "description": "Tipos de sabores do sorvete"
}
]
}
}
Associar uma opção a uma variação
Authorizations:
path Parameters
propertyId required | integer ID da variação. |
optionId required | integer ID da opção. |
Request Body schema: application/json
baseMinChoices | integer Default: 0 Número mínimo de opções obrigatórias. Ex 2, deve selecionar pelo menos duas opções. |
baseMaxChoices | integer Default: 1 Número máximo de opções que podem ser escolhidas. Ex. 3, só pode selecionar no máximo três opções |
baseViewOrder | integer Default: 1 Ordem de visualização da variação |
object (Money) Uma descrição de quantidade de dinheiro |
Responses
Request samples
- Payload
{- "baseMinChoices": 1,
- "baseMaxChoices": 1,
- "baseViewOrder": 1,
- "basePrice": {
- "value": 1000,
- "currency": "BRL"
}
}
Response samples
- 200
- 400
- 404
- 422
{- "status": "success",
- "data": {
- "id": 123,
- "baseMinChoices": 1,
- "baseMaxChoices": 1,
- "baseViewOrder": 1,
- "basePrice": {
- "value": 1000,
- "currency": "BRL"
}, - "status": "ACTIVE",
- "name": "Laranja",
- "description": "Laranja natural",
- "customCode": "LAR001"
}
}
Apagar associação entre uma opção a uma variação
Authorizations:
path Parameters
propertyId required | integer ID da variação. |
optionId required | integer ID da opção. |
Responses
Response samples
- 400
- 404
- 422
{- "status": "error",
- "code": "invalid_fields",
- "message": "Preencha os campos corretamente!"
}
Lista as opções que possuem esta variação
Authorizations:
path Parameters
propertyId required | integer ID da variação. |
query Parameters
offset | integer >= 0 Default: 0 Posição inicial do objeto a ser retornado. |
limit | integer <= 100 Default: 30 Quantidade de objetos a ser retornado. |
Responses
Response samples
- 200
- 400
- 404
{- "status": "success",
- "data": {
- "pagination": {
- "currentOffset": 10,
- "limit": 10,
- "totalItems": 50
}, - "propertyOptions": [
- {
- "id": 123,
- "baseMinChoices": 1,
- "baseMaxChoices": 1,
- "baseViewOrder": 1,
- "basePrice": {
- "value": 1000,
- "currency": "BRL"
}, - "status": "ACTIVE",
- "name": "Laranja",
- "description": "Laranja natural",
- "customCode": "LAR001"
}
]
}
}
Ordenar as opções de uma variação
Faz uma ordenação automática, de forma assíncrona, das opções de uma variação. A ordenação é feita de forma ascendente primeiro pelo baseViewOrder e depois pelo name.
Authorizations:
path Parameters
propertyId required | integer ID da variação. |
Responses
Response samples
- 404
{- "status": "error",
- "code": "invalid_fields",
- "message": "Preencha os campos corretamente!"
}
Lista de pedidos
Authorizations:
query Parameters
customerName | string Busca por nome do cliente |
customerEmail | string Busca por e-mail do cliente. |
customerPhone | string Busca por telefone do cliente. |
customerId | string Busca por ID do cliente |
status | string Enum: "WAITING" "APPROVED" "DONE" "REJECTED" "HIDDEN" "IN_TRANSIT" "WARNING" Filtra por status do pedido. |
ordersId | integer Busca por identificador do pedido. |
isOnlyScheduled | boolean Default: false Se este parâmetro for |
isOnlyCanceledOrders | boolean Default: false Se este parâmetro for |
includeCanceledOrders | boolean Default: false Se este parâmetro for |
includeWaitingPixPayment | boolean Default: false Se este parâmetro for |
dateStart | string Data de criação inicial da busca no formato yyyy-mm-dd. Ex: 2021-05-01 |
dateEnd | string Data de criação final da busca no formato yyyy-mm-dd. Ex: 2021-05-30 |
lastModifiedStart | string Data inicial da última modificação dos pedidos na busca no formato yyyy-mm-dd. Ex: 2021-05-01 |
lastModifiedEnd | string Data final da última modificação dos pedidos na busca no formato yyyy-mm-dd. Ex: 2021-05-30 |
showItems | boolean Default: false Mostra os itens do pedido |
showExtras | boolean Default: false Mostra as informações extras, como programa de fidelidade, vouchers e member get member. |
showMetadata | boolean Default: false Mostra as informações de metadata do pedido. Ex: source, utm_source e etc |
offset | integer Default: 0 Posição inicial do objeto a ser retornado. |
limit | integer <= 100 Default: 30 Quantidade de objetos a ser retornado. |
Responses
Response samples
- 200
- 400
- 422
{- "status": "success",
- "data": {
- "orders": [
- {
- "created": "2020-01-01T09:00:00-03:00",
- "isGuessCustomer": true,
- "modified": "2020-01-01T09:00:00-03:00",
- "status": "APPROVED",
- "type": "DELIVERY",
- "total": {
- "deliveryFee": {
- "value": 1000,
- "currency": "BRL"
}, - "discount": {
- "value": 1000,
- "currency": "BRL"
}, - "requiredChange": {
- "value": 1000,
- "currency": "BRL"
}, - "serviceFee": {
- "value": 1000,
- "currency": "BRL"
}, - "subtotal": {
- "value": 1000,
- "currency": "BRL"
}, - "total": {
- "value": 1000,
- "currency": "BRL"
}, - "paymentMethodDiscount": 0
}, - "operationTime": {
- "approvedTime": "2020-01-01T09:00:00-03:00",
- "cancelledTime": "2020-01-01T09:00:00-03:00",
- "doneTime": "2020-01-01T09:00:00-03:00",
- "inTransitTime": "2020-01-01T09:00:00-03:00",
- "editedTime": "2020-01-01T09:00:00-03:00",
- "approvedBy": 1234,
- "cancelledBy": 1234,
- "doneBy": 0,
- "inTransitBy": 1234,
- "editedBy": 1234
}, - "metadata": {
- "source": "Android",
- "utmSource": "string",
- "utmMedium": "string",
- "utmCampaign": "string",
- "utmTerm": "string",
- "utmContent": "string",
- "store": {
- "id": 123,
- "deliverydiretoId": "19adFA952...",
- "name": "Zé do Hamburger",
- "companyName": "Loja S/A",
- "lat": 23.56,
- "lng": 43.12,
- "minWaitingTime": 30,
- "maxWaitingTime": 90,
- "document": "121231234000012"
}
}, - "customer": {
- "birthDate": "2020-01-01",
- "document": "111.111.111-11",
- "email": "meucliente@email.com",
- "id": 0,
- "firstName": "João",
- "lastName": "da Silva",
- "telephone": "11981000000"
}, - "source": "Android",
- "paymentMethod": {
- "paymentsId": 8,
- "name": "Dinheiro"
}, - "scheduledOrder": {
- "appearDate": "2020-01-01T09:00:00-03:00",
- "scheduledDate": "2020-01-01T09:00:00-03:00"
}, - "address": {
- "city": "São Paulo",
- "complement": "Bloco 2 Apto 203",
- "reference_point": "Próximo à praça",
- "id": 123,
- "neighborhood": "Bela Vista",
- "number": "123",
- "state": "SP",
- "street": "Avenida Paulista",
- "zipcode": "00000-000",
- "lat": -23.618237,
- "lng": -46.635197
}, - "voucher": {
- "type": "FIXED",
- "value": 0,
- "valuePercent": 0,
- "id": 123,
- "description": "Desconto de 10% no valor total da conta",
- "code": "CUPOM10",
- "customCode": "COD123",
- "valueText": "Sobremesa de chocolate"
}, - "loyaltyprogram": {
- "id": 123,
- "description": "Após 10 pedidos, ganhe uma sobremesa grátis",
- "customCode": "COD123"
}, - "memberGetMember": {
- "value": 0,
- "valuePercent": 0,
- "type": "FIXED",
- "description": "Programa indique um amigo",
- "code": "MGM123",
- "customCode": "COD123",
- "valueText": "Sobremesa de chocolate"
}, - "deliveryArea": {
- "inactivationPeriod": {
- "inactivationStart": "09:00:00-03:00",
- "inactivationEnd": "09:00:00-03:00"
}, - "id": 123,
- "type": "string",
- "minimumWaitingMinutes": 30,
- "maximumWaitingMinutes": 90,
- "deliveryFeePricingRule": null,
- "isActive": true,
- "name": "string"
}, - "table": {
- "idempotencyKey": "7b82751a-8f8e-491d-b1f2-300b801c4ffc",
- "name": "Salão - 00101",
- "number": "01",
- "tablesectionsIdempotencyKey": "2030a62b-a4a0-406c-865a-8051d600fb53"
}, - "isCanceled": null,
- "isOnlinePayment": null,
- "loyaltyprogramReward": {
- "id": 2,
- "loyaltyprogramId": 12345,
- "benefitValue": "Sorvetes caseiros",
- "customCode": "ITEM123",
- "step": 1
}, - "customerOrderNumber": 2,
- "id": 0,
- "isNewCustomer": true,
- "isGuestCustomer": true,
- "isRegisteredInvoice": true,
- "notes": "Colocar guardanapos",
- "orderNumber": 10,
- "registeredDocument": "111.111.111-11",
- "statusReason": "Pedido de teste",
- "items": [
- {
- "price": {
- "value": 1000,
- "currency": "BRL"
}, - "propertiesPrice": {
- "value": 1000,
- "currency": "BRL"
}, - "total": {
- "value": 1000,
- "currency": "BRL"
}, - "amount": 2,
- "customCode": "ITEM123",
- "description": "Sorvetes caseiros",
- "comments": "Sem cebola",
- "id": 123,
- "name": "Sorvetes",
- "ordersItemsId": 1234,
- "sequence": 3,
- "properties": [
- {
- "priceCalculationType": "AVERAGE",
- "description": "Tipo de sabores do sorvete",
- "id": 123,
- "isFractional": false,
- "name": "Sabor",
- "ordersPropertiesId": 12345,
- "sequence": 3,
- "options": [
- {
- "price": null,
- "amount": null,
- "customCode": null,
- "description": null,
- "id": null,
- "name": null,
- "ordersOptionsId": null,
- "sequence": null
}
]
}
]
}
], - "compositeItems": [
- {
- "priceCalculationType": "AVERAGE",
- "propertiesPrice": {
- "value": 1000,
- "currency": "BRL"
}, - "total": {
- "value": 1000,
- "currency": "BRL"
}, - "amount": 1,
- "customCode": "ITEM123",
- "description": "Pizza grande com 8 pedaços",
- "comments": "Sem cebola",
- "id": 123,
- "name": "string",
- "ordersItemsId": 0,
- "sequence": 2,
- "items": [
- {
- "price": {
- "value": 1000,
- "currency": "BRL"
}, - "amount": 1,
- "comments": "string",
- "customCode": "COD123",
- "id": 123,
- "name": "4 queijos",
- "sequence": 2
}
], - "properties": [
- {
- "priceCalculationType": "AVERAGE",
- "description": "Tipo de sabores do sorvete",
- "id": 123,
- "isFractional": false,
- "name": "Sabor",
- "ordersPropertiesId": 12345,
- "sequence": 3,
- "options": [
- {
- "price": null,
- "amount": null,
- "customCode": null,
- "description": null,
- "id": null,
- "name": null,
- "ordersOptionsId": null,
- "sequence": null
}
]
}
]
}
], - "sequentialId": 0
}
], - "pagination": {
- "currentOffset": 10,
- "limit": 10,
- "totalItems": 50
}
}
}
Atualiza o status de um pedido.
Authorizations:
path Parameters
id required | integer Identificador do pedido. |
Request Body schema: application/json
Status do pedido
status required | string Enum: "APPROVED" "DONE" "IN_TRANSIT" "HIDDEN" "REJECTED" "WARNING" Status do pedido
|
statusReason | string or null Motivo do porque está apagando o pedido ou o motivo porque está recusando este pedido. |
Responses
Request samples
- Payload
{- "status": "HIDDEN",
- "statusReason": "O cliente pediu para cancelar o pedido"
}
Response samples
- 400
- 404
- 422
{- "status": "fail",
- "errors": [
- {
- "field": "name",
- "message": "O campo name deve estar preenchido"
}
]
}
Response samples
- 200
{- "status": "success",
- "data": {
- "paymentForms": [
- {
- "id": 123,
- "name": "Visa (Crédito)",
- "encodedName": "visa",
- "askForChange": false,
- "discountPercentage": 0.1,
- "isCardBrand": true,
- "onlineAvailable": true,
- "onlineAcceptance": true,
- "deliveryAcceptance": true
}
], - "splittingConfig": {
- "acceptSplitPayment": true,
- "maxNumberOfInstallments": 0,
- "minValueOfEachInstallment": {
- "value": 1000,
- "currency": "BRL"
}
}
}
}
Criar uma forma de pagamento
Authorizations:
Request Body schema: application/json
Dados da nova forma de pagamento
isTicket | boolean Default: false Se a forma de pagamento é vale refeição ou é vale alimentação. |
isCredit | boolean Default: false Se essa forma de pagamento é um cartão de crédito. |
onlineAcceptance | boolean Default: true Se essa forma de pagamento é aceita para pagamentos online na loja. |
deliveryAcceptance | boolean Default: true Se essa forma de pagamento é aceita para pagamentos na entrega na loja. |
name required | string O nome dessa forma de pagamento. |
Responses
Request samples
- Payload
{- "isTicket": true,
- "isCredit": true,
- "onlineAcceptance": false,
- "deliveryAcceptance": false,
- "name": "Visa (Crédito)"
}
Response samples
- 201
- 422
{- "status": "success",
- "data": {
- "id": 123,
- "name": "Visa (Crédito)",
- "encodedName": "visa",
- "askForChange": false,
- "discountPercentage": 0.1,
- "isCardBrand": true,
- "onlineAvailable": true,
- "onlineAcceptance": true,
- "deliveryAcceptance": true
}
}
Atualiza o status da forma de pagamento
Authorizations:
path Parameters
id required | integer ID da forma de pagamento. |
Request Body schema: application/json
Status da forma de pagamento
status required | boolean Default: true Status da forma de pagamento |
Responses
Request samples
- Payload
{- "status": false
}
Response samples
- 200
- 404
- 422
{- "status": "success",
- "data": {
- "id": 123,
- "name": "Visa (Crédito)",
- "encodedName": "visa",
- "askForChange": false,
- "discountPercentage": 0.1,
- "isCardBrand": true,
- "onlineAvailable": true,
- "onlineAcceptance": true,
- "deliveryAcceptance": true
}
}
Configurações de pagamento
Authorizations:
Request Body schema: application/json
Configurações de pagamento
hasDiscountForCashPayment | integer or null Default: 0 Habilita o desconto em dinheiro, se possuir o módulo de "Desconto por pagamento em dinheiro" habilitado. 1: habilitado; 0: não habilitado |
discountForCashPayment | integer or null Default: 0 Valor em porcentagem do desconto em dinheiro, se possuir o módulo de "Desconto por pagamento em dinheiro" habilitado. Ex 3% |
showUserDocumentInvoice | boolean or null Default: false Permite ou não o CPF na nota |
Responses
Request samples
- Payload
{- "hasDiscountForCashPayment": 1,
- "discountForCashPayment": 3,
- "showUserDocumentInvoice": true
}
Response samples
- 404
- 422
{- "status": "error",
- "code": "invalid_fields",
- "message": "Preencha os campos corretamente!"
}
Lista as opções do tipo de adicional
Authorizations:
path Parameters
id required | integer Identificador da variação da pizza. |
query Parameters
offset | integer Default: 0 Posição inicial do objeto a ser retornado. |
limit | integer <= 100 Default: 30 Quantidade de objetos a ser retornado. |
Responses
Response samples
- 200
- 400
- 404
- 422
{- "status": "success",
- "data": {
- "pagination": {
- "currentOffset": 10,
- "limit": 10,
- "totalItems": 50
}, - "options": [
- {
- "status": "ACTIVE",
- "name": "4 queijos",
- "description": "4 tipos de queijo: mussarela, gorgonzola, prato e chedder",
- "customCode": "COD123",
- "id": 123
}
]
}
}
Cria uma opção de um tipo de adicional
Authorizations:
path Parameters
id required | integer Identificador da variação da pizza. |
Request Body schema: application/json
Dados da opção
status required | string Default: "ACTIVE" Enum: "ACTIVE" "SHORT_SUPPLY" "HIDDEN" Status da opção ACTIVE: Tamanho Ativo SHORT_SUPPLY: Tamanho em falta, aparece no cardápio, mas não dá para selecionar HIDDEN: Tamanho oculto, não mostra no cardápio |
name required | string |
description required | string |
customCode | string or null Código personalizado da opção |
Responses
Request samples
- Payload
{- "status": "ACTIVE",
- "name": "4 queijos",
- "description": "4 tipos de queijo: mussarela, gorgonzola, prato e chedder",
- "customCode": "COD123"
}
Response samples
- 201
- 404
- 422
{- "status": "success",
- "data": {
- "status": "ACTIVE",
- "name": "4 queijos",
- "description": "4 tipos de queijo: mussarela, gorgonzola, prato e chedder",
- "customCode": "COD123",
- "id": 123
}
}
Atualiza uma opção de um tipo de adicional
Authorizations:
path Parameters
propertyId required | integer Identificador da variação da pizza. |
id required | integer Identificador da opção do tipo de adicional. |
Request Body schema: application/json
Dados da opção a ser atualizada
status | string or null Default: "ACTIVE" Enum: "ACTIVE" "SHORT_SUPPLY" "HIDDEN" Status da opção ACTIVE: Opção Ativo SHORT_SUPPLY: Opção em falta, aparece no cardápio, mas não dá para selecionar HIDDEN: Opção oculto, não mostra no cardápio |
name | string or null Nome da opção |
description | string or null Descrição da opção |
customCode | string or null Código personalizado da opção |
Responses
Request samples
- Payload
{- "status": "ACTIVE",
- "name": "4 queijos",
- "description": "4 tipos de queijo: mussarela, gorgonzola, prato e chedder",
- "customCode": "COD123"
}
Response samples
- 200
- 404
- 422
{- "status": "success",
- "data": {
- "status": "ACTIVE",
- "name": "4 queijos",
- "description": "4 tipos de queijo: mussarela, gorgonzola, prato e chedder",
- "customCode": "COD123",
- "id": 123
}
}
Apaga uma opção de um tipo de adicional
Authorizations:
path Parameters
propertyId required | integer Identificador da variação da pizza. |
id required | integer Identificador da opção do tipo de adicional. |
Responses
Response samples
- 400
- 404
- 422
{- "status": "fail",
- "errors": [
- {
- "field": "name",
- "message": "O campo name deve estar preenchido"
}
]
}
Lista os tipos de adicionais da pizza
Authorizations:
query Parameters
offset | integer Default: 0 Posição inicial do objeto a ser retornado. |
limit | integer <= 100 Default: 30 Quantidade de objetos a ser retornado. |
Responses
Response samples
- 200
- 400
- 404
- 422
{- "status": "success",
- "data": {
- "pagination": {
- "currentOffset": 10,
- "limit": 10,
- "totalItems": 50
}, - "properties": [
- {
- "priceCalculationType": "SUM",
- "choiceType": "CHECKBOX",
- "baseComboMinChoices": 1,
- "baseComboMaxChoices": 1,
- "name": "Borda",
- "description": "Escolha um recheio para a borda da pizza",
- "id": 123
}
]
}
}
Cria um tipo de adicional
Authorizations:
Request Body schema: application/json
Dados do tipo a ser criado
choiceType | string or null Default: "RADIO" Enum: "CHECKBOX" "RADIO" Tipo do item. RADIO: opção única; CHECKBOX: opção múltipla; |
baseComboMinChoices | integer or null Default: 0 Número mínimo de opções obrigatórias. Ex 2, deve selecionar pelo menos duas opções. |
baseComboMaxChoices | integer or null Default: 1 Número máximo de opções que podem ser escolhidas. Ex. 3, só pode selecionar no máximo três opções |
name required | string Nome da variação |
description | string or null Descrição da variação. |
Responses
Request samples
- Payload
{- "choiceType": "CHECKBOX",
- "baseComboMinChoices": 1,
- "baseComboMaxChoices": 1,
- "name": "Borda",
- "description": "Escolha um recheio para a borda da pizza"
}
Response samples
- 201
- 400
- 404
- 422
{- "status": "success",
- "data": {
- "priceCalculationType": "SUM",
- "choiceType": "CHECKBOX",
- "baseComboMinChoices": 1,
- "baseComboMaxChoices": 1,
- "name": "Borda",
- "description": "Escolha um recheio para a borda da pizza",
- "id": 123
}
}
Atualiza um tipo de adicional
Authorizations:
path Parameters
id required | integer Identificador da variação da pizza. |
Request Body schema: application/json
Dados do tipo a ser atualizado
choiceType | string or null Default: "RADIO" Enum: "CHECKBOX" "RADIO" Tipo do item. RADIO: opção única; CHECKBOX: opção múltipla; |
baseComboMinChoices | integer or null Default: 0 Número mínimo de opções obrigatórias. Ex 2, deve selecionar pelo menos duas opções. |
baseComboMaxChoices | integer or null Default: 1 Número máximo de opções que podem ser escolhidas. Ex. 3, só pode selecionar no máximo três opções |
name | string or null Nome da variação |
description | string or null Descrição da variação. |
Responses
Request samples
- Payload
{- "choiceType": "CHECKBOX",
- "baseComboMinChoices": 1,
- "baseComboMaxChoices": 1,
- "name": "Borda",
- "description": "Escolha um recheio para a borda da pizza"
}
Response samples
- 200
- 400
- 404
- 422
{- "status": "success",
- "data": {
- "priceCalculationType": "SUM",
- "choiceType": "CHECKBOX",
- "baseComboMinChoices": 1,
- "baseComboMaxChoices": 1,
- "name": "Borda",
- "description": "Escolha um recheio para a borda da pizza",
- "id": 123
}
}
Salva os preços dos tamanhos da opção do tipo de adicional
Authorizations:
path Parameters
propertiesId required | integer Identificador da variação da pizza. |
id required | integer Identificador da opção do tipo de adicional |
Request Body schema: application/json
Lista de preços dos tamanhos da opção
required | Array of objects (CreatePizzaSizeOptionDTO) Lista de preços dos tamanhos | ||||||
Array
|
Responses
Request samples
- Payload
{- "sizeOptions": [
- {
- "price": {
- "value": 1000,
- "currency": "BRL"
}, - "viewOrder": 1,
- "sizesId": 123
}
]
}
Response samples
- 400
- 404
- 422
{- "status": "fail",
- "errors": [
- {
- "field": "name",
- "message": "O campo name deve estar preenchido"
}
]
}
Lista as opções de um tipo de adicional de um determinado tamanho
Authorizations:
path Parameters
sizesId required | integer Identificador do tamanho da pizza. |
propertiesId required | integer Identificador da variação da pizza. |
query Parameters
name | string Nome da opção. |
code | string Código personalizado da opção. |
offset | integer Default: 0 Posição inicial do objeto a ser retornado. |
limit | integer <= 100 Default: 30 Quantidade de objetos a ser retornado. |
Responses
Response samples
- 200
- 400
- 404
- 422
{- "status": "success",
- "data": {
- "pagination": {
- "currentOffset": 10,
- "limit": 10,
- "totalItems": 50
}, - "sizeOptions": [
- {
- "maxChoices": 1,
- "minChoices": 2,
- "price": {
- "value": 1000,
- "currency": "BRL"
}, - "viewOrder": 1,
- "status": "ACTIVE",
- "name": "4 queijos",
- "description": "4 tipos de queijo: mussarela, gorgonzola, prato e chedder",
- "customCode": "COD123",
- "id": 123
}
]
}
}
Lista de disponibilidades do sabor
Authorizations:
path Parameters
flavorId required | integer Identificador do sabor da pizza. |
Responses
Response samples
- 200
- 400
- 404
- 422
{- "status": "success",
- "data": {
- "itemAvailabilities": [
- {
- "id": 123,
- "periodStart": "09:00:00-03:00",
- "periodEnd": "09:00:00-03:00",
- "weekday": 3
}
]
}
}
Criar os horários em que este sabor estará disponível
Authorizations:
path Parameters
flavorId required | integer Identificador do sabor da pizza. |
Request Body schema: application/json
Horários de disponibilidades do sabor a serem adicionados
required | Array of objects (CreatePizzaItemAvailabilityDTO) Lista de disponibilidade | ||||||
Array
|
Responses
Request samples
- Payload
{- "availabilities": [
- {
- "periodStart": "09:00:00-03:00",
- "periodEnd": "09:00:00-03:00",
- "weekday": 3
}
]
}
Response samples
- 201
- 400
- 404
- 422
{- "status": "success",
- "data": {
- "itemAvailabilities": [
- {
- "id": 123,
- "periodStart": "09:00:00-03:00",
- "periodEnd": "09:00:00-03:00",
- "weekday": 3
}
]
}
}
Atualiza uma disponibilidade de um sabor
Authorizations:
path Parameters
flavorId required | integer Identificador do sabor da pizza. |
id required | integer Identificador desse horário de disponibilidade a ser alterado. |
Request Body schema: application/json
Horários de disponibilidades do sabor a serem alterados
required | ISO8601Time (string) Horário inicial no qual o item fica disponível no formato HH:mm. Ex: 14:34. |
required | ISO8601Time (string) Horário final no qual o item fica disponível no formato HH:mm. Ex: 14:34. |
weekday required | integer |
Responses
Request samples
- Payload
{- "periodStart": "09:00:00-03:00",
- "periodEnd": "09:00:00-03:00",
- "weekday": 3
}
Response samples
- 200
- 400
- 404
- 422
{- "status": "success",
- "data": {
- "id": 123,
- "periodStart": "09:00:00-03:00",
- "periodEnd": "09:00:00-03:00",
- "weekday": 3
}
}
Apaga uma disponibilidade de um sabor
Authorizations:
path Parameters
flavorId required | integer Identificador do sabor da pizza. |
id required | integer Identificador da disponibilidade a ser apagada. |
Responses
Response samples
- 400
- 404
- 422
{- "status": "fail",
- "errors": [
- {
- "field": "name",
- "message": "O campo name deve estar preenchido"
}
]
}
Lista os sabores das pizzas
Authorizations:
query Parameters
name | string Nome do sabor. |
type | string Enum: "SAVORY" "SWEET" Tipo do sabor. |
offset | integer Default: 0 Posição inicial do objeto a ser retornado. |
limit | integer <= 100 Default: 30 Quantidade de objetos a ser retornado. |
Responses
Response samples
- 200
- 400
- 422
{- "status": "success",
- "data": {
- "pagination": {
- "currentOffset": 10,
- "limit": 10,
- "totalItems": 50
}, - "flavors": [
- {
- "status": "ACTIVE",
- "type": "SAVORY",
- "viewOrder": 1,
- "name": "Calabresa",
- "description": "Sabor calabresa",
- "hiddenWhenUnavailable": true,
- "dayLimitWithTheBadge": "2021-03-31",
- "id": 123,
}
]
}
}
Criar um novo sabor de pizza
Authorizations:
Request Body schema: application/json
Dados do sabor
status required | string Enum: "ACTIVE" "SHORT_SUPPLY" "HIDDEN" Status do sabor de pizza. ACTIVE: Tamanho Ativo SHORT_SUPPLY: Tamanho em falta, aparece no cardápio, mas não dá para selecionar HIDDEN: Tamanho oculto, não mostra no cardápio |
type required | string Enum: "SAVORY" "SWEET" Tipo do sabor. SAVORY: salgado SWEET: doce |
viewOrder required | integer >= 1 Ordem de listagem do sabor de pizza. |
(ISO8601Date (string or null)) Adicionar uma tag 'novo' ao sabor. Máximo de 15 dias. | |
name required | string |
description required | string |
hiddenWhenUnavailable required | boolean |
Responses
Request samples
- Payload
{- "status": "ACTIVE",
- "type": "SAVORY",
- "viewOrder": 1,
- "dayLimitWithTheBadge": "2020-01-01",
- "name": "Calabresa",
- "description": "Sabor calabresa",
- "hiddenWhenUnavailable": true
}
Response samples
- 201
- 404
- 422
{- "status": "success",
- "data": {
- "status": "ACTIVE",
- "type": "SAVORY",
- "viewOrder": 1,
- "name": "Calabresa",
- "description": "Sabor calabresa",
- "hiddenWhenUnavailable": true,
- "dayLimitWithTheBadge": "2021-03-31",
- "id": 123,
}
}
Atualiza um sabor de pizza
Authorizations:
path Parameters
id required | integer Identificador do sabor da pizza. |
Request Body schema: application/json
Dados do sabor a ser atualizado
status | string or null Default: "ACTIVE" Enum: "ACTIVE" "SHORT_SUPPLY" "HIDDEN" Status do sabor de pizza. |
type | string or null Enum: "SAVORY" "SWEET" Tipo do sabor. SAVORY: salgado SWEET: doce |
viewOrder | integer or null >= 1 Ordem de listagem do sabor de pizza. |
(ISO8601Date (string or null)) Adicionar uma tag 'novo' ao sabor. Máximo de 15 dias. | |
name | string or null O nome desse sabor de pizza. |
description | string or null A descrição desse sabor de pizza. |
hiddenWhenUnavailable | boolean or null Ocultar item se estiver fora do horário de disponibilidade |
Responses
Request samples
- Payload
{- "status": "ACTIVE",
- "type": "SAVORY",
- "viewOrder": 1,
- "dayLimitWithTheBadge": "2020-01-01",
- "name": "Calabresa",
- "description": "Sabor calabresa",
- "hiddenWhenUnavailable": true
}
Response samples
- 200
- 404
- 422
{- "status": "success",
- "data": {
- "status": "ACTIVE",
- "type": "SAVORY",
- "viewOrder": 1,
- "name": "Calabresa",
- "description": "Sabor calabresa",
- "hiddenWhenUnavailable": true,
- "dayLimitWithTheBadge": "2021-03-31",
- "id": 123,
}
}
Upload da imagem do sabor da pizza
Authorizations:
path Parameters
id required | integer Identificador do sabor da pizza. |
Request Body schema: multipart/form-data
file required | string <file> Imagem a ser enviado |
Responses
Response samples
- 200
- 400
- 404
- 422
{- "status": "success",
- "data": {
- "status": "ACTIVE",
- "type": "SAVORY",
- "viewOrder": 1,
- "name": "Calabresa",
- "description": "Sabor calabresa",
- "hiddenWhenUnavailable": true,
- "dayLimitWithTheBadge": "2021-03-31",
- "id": 123,
}
}
Lista os tamanhos de pizza deste sabor
Authorizations:
path Parameters
id required | integer Identificador do sabor da pizza. |
query Parameters
offset | integer Default: 0 Posição inicial do objeto a ser retornado. |
limit | integer <= 100 Default: 30 Quantidade de objetos a ser retornado. |
Responses
Response samples
- 200
- 400
- 404
- 422
{- "status": "success",
- "data": {
- "pagination": {
- "currentOffset": 10,
- "limit": 10,
- "totalItems": 50
}, - "flavorSizes": [
- {
- "price": {
- "value": 1000,
- "currency": "BRL"
}, - "promotionalOldPrice": {
- "value": 1000,
- "currency": "BRL"
}, - "sizeId": 123,
- "customCode": "COD0012",
- "sizeName": "Grande"
}
]
}
}
Atualiza um ou mais tamanhos de pizza do sabor.
Authorizations:
path Parameters
id required | integer Identificador do sabor da pizza. |
Request Body schema: application/json
Dados dos tamanhos a serem atualizados neste sabor
required | Array of objects (UpdatePizzaFlavorSizeDTO) Lista de tamanhos a ser atualizados desse sabor | ||||||||
Array
|
Responses
Request samples
- Payload
{- "flavorSizes": [
- {
- "price": {
- "value": 1000,
- "currency": "BRL"
}, - "promotionalOldPrice": {
- "value": 1000,
- "currency": "BRL"
}, - "sizeId": 123,
- "customCode": "COD0012"
}
]
}
Response samples
- 200
- 400
- 404
- 422
{- "status": "success",
- "data": {
- "flavorSizes": [
- {
- "price": {
- "value": 1000,
- "currency": "BRL"
}, - "promotionalOldPrice": {
- "value": 1000,
- "currency": "BRL"
}, - "sizeId": 123,
- "customCode": "COD0012",
- "sizeName": "Grande"
}
]
}
}
Adiciona um ou mais tamanhos de pizza no sabor
Authorizations:
path Parameters
id required | integer Identificador do sabor da pizza. |
Request Body schema: application/json
Dados dos tamanhos a serem adicionados neste sabor
required | Array of objects (CreatePizzaFlavorSizeDTO) Lista de tamanhos a ser criados no sabor | ||||||||
Array
|
Responses
Request samples
- Payload
{- "flavorSizes": [
- {
- "price": {
- "value": 1000,
- "currency": "BRL"
}, - "promotionalOldPrice": {
- "value": 1000,
- "currency": "BRL"
}, - "sizeId": 123,
- "customCode": "COD0012"
}
]
}
Response samples
- 201
- 400
- 404
- 422
{- "status": "success",
- "data": {
- "flavorSizes": [
- {
- "price": {
- "value": 1000,
- "currency": "BRL"
}, - "promotionalOldPrice": {
- "value": 1000,
- "currency": "BRL"
}, - "sizeId": 123,
- "customCode": "COD0012",
- "sizeName": "Grande"
}
]
}
}
Lista os tamanhos da pizza
Authorizations:
query Parameters
name | string Nome do tamanho. |
offset | integer Default: 0 Posição inicial do objeto a ser retornado. |
limit | integer <= 100 Default: 30 Quantidade de objetos a ser retornado. |
Responses
Response samples
- 200
- 400
- 422
{- "status": "success",
- "data": {
- "pagination": {
- "currentOffset": 10,
- "limit": 10,
- "totalItems": 50
}, - "sizes": [
- {
- "customCode": "TAM_PEQ12.",
- "name": "Média",
- "description": "Pizza de tamanho médio, com 6 fatias.",
- "slices": 6,
- "maximumFlavors": 2,
- "status": "string",
- "priceCalculationType": "string",
- "viewOrder": 1,
- "showAtCheckout": true,
- "hiddenWhenUnavailable": true,
- "id": 123,
}
]
}
}
Criar um novo tamanho de pizza
Authorizations:
Request Body schema: application/json
Dados do tamanho da pizza
slices required | integer >= 1 A quantidade de pedaços que a pizza contém. |
maximumFlavors required | integer >= 1 A quantidade máxima de sabores que a pizza pode ter. |
status required | string Enum: "ACTIVE" "SHORT_SUPPLY" "HIDDEN" Status do sabor de pizza. ACTIVE: Tamanho Ativo SHORT_SUPPLY: Tamanho em falta, aparece no cardápio, mas não dá para selecionar HIDDEN: Tamanho oculto, não mostra no cardápio |
priceCalculationType required | string Enum: "HIGHER" "SUM" "AVERAGE" "SMALLER" O método de cálculo do preço para este tamanho. |
viewOrder required | integer >= 1 Ordem de listagem do tamanho da pizza. |
customCode | string or null |
name required | string |
description required | string |
showAtCheckout required | boolean |
hiddenWhenUnavailable required | boolean |
Responses
Request samples
- Payload
{- "slices": 6,
- "maximumFlavors": 2,
- "status": "ACTIVE",
- "priceCalculationType": "AVERAGE",
- "viewOrder": 1,
- "customCode": "TAM_PEQ12.",
- "name": "Média",
- "description": "Pizza de tamanho médio, com 6 fatias.",
- "showAtCheckout": true,
- "hiddenWhenUnavailable": true
}
Response samples
- 201
- 404
- 422
{- "status": "success",
- "data": {
- "customCode": "TAM_PEQ12.",
- "name": "Média",
- "description": "Pizza de tamanho médio, com 6 fatias.",
- "slices": 6,
- "maximumFlavors": 2,
- "status": "string",
- "priceCalculationType": "string",
- "viewOrder": 1,
- "showAtCheckout": true,
- "hiddenWhenUnavailable": true,
- "id": 123,
}
}
Atualizar um tamanho de pizza
Authorizations:
path Parameters
id required | integer Identificador do tamanho da pizza. |
Request Body schema: application/json
Dados do tamanho da pizza
status | string or null Default: "ACTIVE" Enum: "ACTIVE" "SHORT_SUPPLY" "HIDDEN" Status do sabor de pizza. ACTIVE: Tamanho Ativo SHORT_SUPPLY: Tamanho em falta, aparece no cardápio, mas não dá para selecionar HIDDEN: Tamanho oculto, não mostra no cardápio |
priceCalculationType | string or null Enum: "HIGHER" "SUM" "AVERAGE" "SMALLER" O método de cálculo do preço para este tamanho. |
customCode | string or null Código do tamanho |
name | string or null O nome desse tamanho de pizza. |
description | string or null A descrição desse tamanho de pizza. |
slices | integer or null A quantidade de pedaços que a pizza contém. |
maximumFlavors | integer or null A quantidade máxima de sabores que a pizza pode ter. |
viewOrder | integer or null Ordem de listagem do sabor de pizza. |
showAtCheckout | boolean or null Este tamanho aparece no checkout como sugestão |
hiddenWhenUnavailable | boolean or null Ocultar item se estiver fora do horário de disponibilidade |
Responses
Request samples
- Payload
{- "status": "ACTIVE",
- "priceCalculationType": "AVERAGE",
- "customCode": "TAM_PEQ12.",
- "name": "Média",
- "description": "Pizza de tamanho médio, com 6 fatias.",
- "slices": 6,
- "maximumFlavors": 2,
- "viewOrder": 1,
- "showAtCheckout": true,
- "hiddenWhenUnavailable": true
}
Response samples
- 200
- 404
- 422
{- "status": "success",
- "data": {
- "customCode": "TAM_PEQ12.",
- "name": "Média",
- "description": "Pizza de tamanho médio, com 6 fatias.",
- "slices": 6,
- "maximumFlavors": 2,
- "status": "string",
- "priceCalculationType": "string",
- "viewOrder": 1,
- "showAtCheckout": true,
- "hiddenWhenUnavailable": true,
- "id": 123,
}
}
Upload da imagem do tamanho da pizza
Authorizations:
path Parameters
id required | integer Identificador do tamanho da pizza. |
Request Body schema: multipart/form-data
file required | string <file> Imagem a ser enviado |
Responses
Response samples
- 200
- 400
- 404
- 422
{- "status": "success",
- "data": {
- "customCode": "TAM_PEQ12.",
- "name": "Média",
- "description": "Pizza de tamanho médio, com 6 fatias.",
- "slices": 6,
- "maximumFlavors": 2,
- "status": "string",
- "priceCalculationType": "string",
- "viewOrder": 1,
- "showAtCheckout": true,
- "hiddenWhenUnavailable": true,
- "id": 123,
}
}
Lista os sabores deste tamanho
Authorizations:
path Parameters
id required | integer Identificador do tamanho da pizza. |
query Parameters
offset | integer Default: 0 Posição inicial do objeto a ser retornado. |
limit | integer <= 100 Default: 30 Quantidade de objetos a ser retornado. |
Responses
Response samples
- 200
- 400
- 404
- 422
{- "status": "success",
- "data": {
- "pagination": {
- "currentOffset": 10,
- "limit": 10,
- "totalItems": 50
}, - "sizeFlavors": [
- {
- "promotionalOldPrice": {
- "value": 1000,
- "currency": "BRL"
}, - "price": {
- "value": 1000,
- "currency": "BRL"
}, - "flavorId": 123,
- "customCode": "COD0011",
- "flavorName": "Brigadeiro"
}
]
}
}
Apagar um sabor de um tamanho
Authorizations:
path Parameters
sizeId required | integer Identificador do tamanho da pizza. |
flavorId required | integer Identificador do sabor da pizza. |
Responses
Response samples
- 400
- 404
- 422
{- "status": "fail",
- "errors": [
- {
- "field": "name",
- "message": "O campo name deve estar preenchido"
}
]
}
Lista de disponibilidades do tamanho
Authorizations:
path Parameters
sizesId required | integer Identificador do tamanho da pizza. |
Responses
Response samples
- 200
- 400
- 404
- 422
{- "status": "success",
- "data": {
- "itemAvailabilities": [
- {
- "id": 123,
- "periodStart": "09:00:00-03:00",
- "periodEnd": "09:00:00-03:00",
- "weekday": 3
}
]
}
}
Criar os horários em que este tamanho estará disponível
Authorizations:
path Parameters
sizesId required | integer Identificador do tamanho da pizza. |
Request Body schema: application/json
Dados das disponilibidades do tamanho a serem adicionados
required | Array of objects (CreatePizzaItemAvailabilityDTO) Lista de disponibilidade | ||||||
Array
|
Responses
Request samples
- Payload
{- "availabilities": [
- {
- "periodStart": "09:00:00-03:00",
- "periodEnd": "09:00:00-03:00",
- "weekday": 3
}
]
}
Response samples
- 201
- 400
- 404
- 422
{- "status": "success",
- "data": {
- "itemAvailabilities": [
- {
- "id": 123,
- "periodStart": "09:00:00-03:00",
- "periodEnd": "09:00:00-03:00",
- "weekday": 3
}
]
}
}
Atualizar a disponilidade de um tamanho
Authorizations:
path Parameters
sizesId required | integer Identificador do tamanho da pizza. |
id required | integer Identificador desse horário de disponibilidade a ser alterado. |
Request Body schema: application/json
Dados da disponilibidade do tamanho a serem alterados
required | ISO8601Time (string) Horário inicial no qual o item fica disponível no formato HH:mm. Ex: 14:34. |
required | ISO8601Time (string) Horário final no qual o item fica disponível no formato HH:mm. Ex: 14:34. |
weekday required | integer |
Responses
Request samples
- Payload
{- "periodStart": "09:00:00-03:00",
- "periodEnd": "09:00:00-03:00",
- "weekday": 3
}
Response samples
- 200
- 400
- 404
- 422
{- "status": "success",
- "data": {
- "id": 123,
- "periodStart": "09:00:00-03:00",
- "periodEnd": "09:00:00-03:00",
- "weekday": 3
}
}
Apaga uma disponibilidade de um tamanho
Authorizations:
path Parameters
sizesId required | integer Identificador do tamanho da pizza. |
id required | integer Identificador da disponibilidade a ser apagada. |
Responses
Response samples
- 400
- 404
- 422
{- "status": "fail",
- "errors": [
- {
- "field": "name",
- "message": "O campo name deve estar preenchido"
}
]
}
Lista as variações de um item
Authorizations:
path Parameters
itemsId required | integer ID do item |
query Parameters
offset | integer >= 0 Default: 0 Posição inicial do objeto a ser retornado. |
limit | integer <= 100 Default: 30 Quantidade de objetos a ser retornado. |
Responses
Response samples
- 200
- 400
- 404
{- "status": "success",
- "data": {
- "pagination": {
- "currentOffset": 10,
- "limit": 10,
- "totalItems": 50
}, - "itemProperties": [
- {
- "id": 123,
- "comboMinChoices": 1,
- "comboMaxChoices": 1,
- "viewOrder": 1,
- "priceCalculationType": "AVERAGE",
- "choiceType": "CHECKBOX",
- "isFractional": 1,
- "name": "Sabor",
- "description": "Tipos de sabores do sorvete"
}
]
}
}
Associar uma variação a um item
Authorizations:
path Parameters
itemId required | integer ID do item. |
propertyId required | integer ID da variação. |
Request Body schema: application/json
comboMinChoices | integer Default: 0 Número mínimo de opções obrigatórias. Ex 2, deve selecionar pelo menos duas opções. |
comboMaxChoices | integer Default: 1 Número máximo de opções que podem ser escolhidas. Ex. 3, só pode selecionar no máximo três opções |
viewOrder | integer Default: 1 Ordem de visualização da variação |
Responses
Request samples
- Payload
{- "comboMinChoices": 1,
- "comboMaxChoices": 1,
- "viewOrder": 1
}
Response samples
- 200
- 400
- 404
- 422
{- "status": "success",
- "data": {
- "id": 123,
- "comboMinChoices": 1,
- "comboMaxChoices": 1,
- "viewOrder": 1,
- "priceCalculationType": "AVERAGE",
- "choiceType": "CHECKBOX",
- "isFractional": 1,
- "name": "Sabor",
- "description": "Tipos de sabores do sorvete"
}
}
Apagar associação entre uma variação e um item
Authorizations:
path Parameters
itemId required | integer ID do item. |
propertyId required | integer ID da variação. |
Responses
Response samples
- 400
- 404
- 422
{- "status": "error",
- "code": "invalid_fields",
- "message": "Preencha os campos corretamente!"
}
Ordenar as variações de um item
Faz uma ordenação automática, de forma assíncrona, das variações de um item. A ordenação é feita de forma ascendente primeiro pelo viewOrder e depois pelo name.
Authorizations:
path Parameters
itemId required | integer ID do item. |
Responses
Response samples
- 404
{- "status": "error",
- "code": "invalid_fields",
- "message": "Preencha os campos corretamente!"
}
Ordenar as opções de uma variação que pertence à um item
Faz uma ordenação automática, de forma assíncrona, das opções de uma variação que pertence à um item. A ordenação é feita de forma ascendente primeiro pelo viewOrder e depois pelo name.
Authorizations:
path Parameters
itemId required | integer ID do item. |
propertyId required | integer ID da variação. |
Responses
Response samples
- 404
{- "status": "error",
- "code": "invalid_fields",
- "message": "Preencha os campos corretamente!"
}
Lista de variações
Authorizations:
query Parameters
id | integer ID da variação. |
offset | integer >= 0 Default: 0 Posição inicial do objeto a ser retornado. |
limit | integer <= 100 Default: 30 Quantidade de objetos a ser retornado. |
Responses
Response samples
- 200
- 400
- 404
{- "status": "success",
- "data": {
- "pagination": {
- "currentOffset": 10,
- "limit": 10,
- "totalItems": 50
}, - "properties": [
- {
- "id": 123,
- "baseComboMinChoices": 1,
- "baseComboMaxChoices": 1,
- "priceCalculationType": "AVERAGE",
- "choiceType": "CHECKBOX",
- "isFractional": 1,
- "name": "Sabor",
- "description": "Tipos de sabores do sorvete"
}
]
}
}
Criar uma nova variação
Authorizations:
Request Body schema: application/json
Dados da variação a ser adicionado
baseComboMinChoices | integer Default: 0 Número mínimo de opções obrigatórias. Ex 2, deve selecionar pelo menos duas opções. |
baseComboMaxChoices | integer Default: 1 Número máximo de opções que podem ser escolhidas. Ex. 3, só pode selecionar no máximo três opções |
priceCalculationType | string Default: "HIGHER" Enum: "AVERAGE" "HIGHER" "SMALLER" "SUM" Tipo que cálculo. Ex. "AVERAGE" o valor final da variação será a média dos preços das opções |
choiceType | string Default: "CHECKBOX" Enum: "CHECKBOX" "RADIO" "MULTIPLE" Tipo do item. RADIO: opção única; CHECKBOX: opção múltipla; MULTIPLE - opção somável |
isFractional | integer Default: 0 É usado para saber se o produto é ou não do tipo fracionário, propriedade utilizada para integração em alguns PDVs |
name required | string |
description | string |
Responses
Request samples
- Payload
{- "baseComboMinChoices": 1,
- "baseComboMaxChoices": 1,
- "priceCalculationType": "AVERAGE",
- "choiceType": "CHECKBOX",
- "isFractional": 1,
- "name": "Sabor",
- "description": "Tipos de sabores do sorvete"
}
Response samples
- 201
- 422
{- "status": "success",
- "data": {
- "id": 123,
- "baseComboMinChoices": 1,
- "baseComboMaxChoices": 1,
- "priceCalculationType": "AVERAGE",
- "choiceType": "CHECKBOX",
- "isFractional": 1,
- "name": "Sabor",
- "description": "Tipos de sabores do sorvete"
}
}
Atualizar uma variação
Authorizations:
path Parameters
id required | integer ID da variação. |
Request Body schema: application/json
priceCalculationType | string or null Default: "HIGHER" Enum: "AVERAGE" "HIGHER" "SMALLER" "SUM" Tipo que cálculo. Ex. "AVERAGE" o valor final da variação será a média dos preços das opções |
choiceType | string or null Default: "CHECKBOX" Enum: "CHECKBOX" "RADIO" "MULTIPLE" Tipo do item. RADIO: opção única; CHECKBOX: opção múltipla; MULTIPLE - opção somável |
isFractional | integer or null Default: 0 É usado para saber se o produto é ou não do tipo fracionário, propriedade utilizada para integração em alguns PDVs |
baseComboMinChoices | integer or null Default: 0 Número mínimo de opções obrigatórias. Ex 2, deve selecionar pelo menos duas opções. |
baseComboMaxChoices | integer or null Default: 1 Número máximo de opções que podem ser escolhidas. Ex. 3, só pode selecionar no máximo três opções |
name | string or null Nome da variação |
description | string or null Descrição da variação |
Responses
Request samples
- Payload
{- "priceCalculationType": "AVERAGE",
- "choiceType": "CHECKBOX",
- "isFractional": 1,
- "baseComboMinChoices": 1,
- "baseComboMaxChoices": 1,
- "name": "Sabor",
- "description": "Tipos de sabores do sorvete"
}
Response samples
- 200
- 400
- 404
- 422
{- "status": "success",
- "data": {
- "id": 123,
- "baseComboMinChoices": 1,
- "baseComboMaxChoices": 1,
- "priceCalculationType": "AVERAGE",
- "choiceType": "CHECKBOX",
- "isFractional": 1,
- "name": "Sabor",
- "description": "Tipos de sabores do sorvete"
}
}
Lista todos os itens que possui esta variação
Authorizations:
path Parameters
id required | integer ID da variação. |
query Parameters
offset | integer >= 0 Default: 0 Posição inicial do objeto a ser retornado. |
limit | integer <= 100 Default: 30 Quantidade de objetos a ser retornado. |
Responses
Response samples
- 200
- 400
- 404
{- "status": "success",
- "data": {
- "items": [
- {
- "id": 123,
- "encodedName": "refrigerante-light",
- "price": {
- "value": 1000,
- "currency": "BRL"
}, - "type": "CUSTOM",
- "status": "ACTIVE",
- "hiddenWhenUnavailable": true,
- "viewOrder": 1,
- "isFractional": 1,
- "showAtCheckout": true,
- "dayLimitWithTheBadge": "2021-06-16",
- "promotionalOldPrice": {
- "value": 1000,
- "currency": "BRL"
}, - "description": "Refrigerante Light de 350ml gelada",
- "customCode": "string",
- "name": "Refrigerante Light",
- "filters": [
- {
- "id": 123,
- "stores_id": 123,
- "tag": "takeout",
- "name": "Retirada",
- "type": "ORDER_TYPE",
- "icon": "cart"
}
], - "badges": [
- {
- "id": 123,
- "stores_id": 123,
- "tag": "takeout",
- "name": "Retirada",
- "type": "ORDER_TYPE",
- "icon": "cart"
}
]
}
], - "pagination": {
- "currentOffset": 10,
- "limit": 10,
- "totalItems": 50
}
}
}
Lista as localizações específicas da loja
Authorizations:
query Parameters
name | string Busca por nome do local específico |
specificLocationId | integer Busca pelo identificador do local específico |
zipcode | string Busca pelo CEP do local específico |
offset | integer Default: 0 Posição inicial do objeto a ser retornado. |
limit | integer <= 100 Default: 30 Quantidade de objetos a ser retornado. |
Responses
Response samples
- 200
{- "status": "success",
- "data": {
- "specificLocations": [
- {
- "type": "SPECIFIC",
- "id": 123,
- "minimumWaitingMinutes": 30,
- "maximumWaitingMinutes": 90,
- "inactivationPeriod": {
- "inactivationStart": "09:00:00-03:00",
- "inactivationEnd": "09:00:00-03:00"
}, - "deliveryFeePricingRule": null,
- "isActive": true,
- "name": "string",
- "street": "Rua das Flores",
- "neighborhood": "Jardim Belo",
- "zipcode": "01234-567"
}
], - "pagination": {
- "currentOffset": 10,
- "limit": 10,
- "totalItems": 50
}
}
}
Cria uma localização específica
Authorizations:
Request Body schema: application/json
Dados da localização específica a ser criada
required | object (Money) Uma descrição de quantidade de dinheiro |
(ISO8601Time (string or null)) O horário no qual começa a inativação da área de entrega. | |
(ISO8601Time (string or null)) O horário no qual termina a inativação da área de entrega. | |
(ISO8601Time (string or null)) Caso presente, indica o período inicial da aplicação da taxa dinâmica. | |
(ISO8601Time (string or null)) Caso presente, indica o período final da aplicação da taxa dinâmica. | |
(Money (object or null)) Caso presente, indica o valor que deve ser adicionado a taxa de entrega durante o período de aplicação da taxa dinâmica. | |
name required | string or null Nome do local específico |
zipCode required | string or null CEP do local específico |
address | string or null Logradouro do local específico. Use este campo para detalhar com mais precisão a área específica que você deseja adicionar. Limpe os campos adicionais para utilizar somente o CEP como referência. |
neighborhood | string or null Bairro do local específico. Use este campo para detalhar com mais precisão a área específica que você deseja adicionar. Limpe os campos adicionais para utilizar somente o CEP como referência. |
type | string or null |
(GeographicalPoint (object or null)) | |
radius | number or null <float> |
minimumWaitingMinutes required | integer O tempo mínimo de entrega dessa área, em minutos. |
maximumWaitingMinutes required | integer O tempo máximo de entrega dessa área, em minutos. |
isActive required | boolean Status da área de entrega |
Responses
Request samples
- Payload
{- "price": {
- "value": 1000,
- "currency": "BRL"
}, - "inactivationStart": "09:00:00-03:00",
- "inactivationEnd": "09:00:00-03:00",
- "dynamicPriceStart": "09:00:00-03:00",
- "dynamicPriceEnd": "09:00:00-03:00",
- "dynamicPrice": {
- "value": 1000,
- "currency": "BRL"
}, - "name": "Área específica",
- "zipCode": "01234-567",
- "address": "Avenida Paulista",
- "neighborhood": "Bela Vista",
- "type": "string",
- "center": {
- "lat": -23.45,
- "lng": -45.67
}, - "radius": 0,
- "minimumWaitingMinutes": 30,
- "maximumWaitingMinutes": 90,
- "isActive": true
}
Response samples
- 201
- 422
{- "status": "success",
- "data": {
- "type": "SPECIFIC",
- "id": 123,
- "minimumWaitingMinutes": 30,
- "maximumWaitingMinutes": 90,
- "inactivationPeriod": {
- "inactivationStart": "09:00:00-03:00",
- "inactivationEnd": "09:00:00-03:00"
}, - "deliveryFeePricingRule": null,
- "isActive": true,
- "name": "string",
- "street": "Rua das Flores",
- "neighborhood": "Jardim Belo",
- "zipcode": "01234-567"
}
}
Atualiza uma localização específica
Authorizations:
path Parameters
id required | integer identificador do local específico. |
Request Body schema: application/json
Dados do local específico a ser atualizado
(Money (object or null)) Taxa de entrega do local específico | |
(ISO8601Time (string or null)) O horário no qual começa a inativação da área de entrega. | |
(ISO8601Time (string or null)) O horário no qual termina a inativação da área de entrega. | |
(ISO8601Time (string or null)) Caso presente, indica o período inicial da aplicação da taxa dinâmica. | |
(ISO8601Time (string or null)) Caso presente, indica o período final da aplicação da taxa dinâmica. | |
(Money (object or null)) Caso presente, indica o valor que deve ser adicionado a taxa de entrega durante o período de aplicação da taxa dinâmica. | |
name | string or null Nome do local específico |
zipCode | string or null CEP do local específico |
address | string or null Logradouro do local específico. Use este campo para detalhar com mais precisão a área específica que você deseja adicionar. Limpe os campos adicionais para utilizar somente o CEP como referência. |
neighborhood | string or null Bairro do local específico. Use este campo para detalhar com mais precisão a área específica que você deseja adicionar. Limpe os campos adicionais para utilizar somente o CEP como referência. |
type | string or null |
(GeographicalPoint (object or null)) | |
radius | number or null <float> |
minimumWaitingMinutes | integer or null O tempo mínimo de entrega dessa área, em minutos. |
maximumWaitingMinutes | integer or null O tempo máximo de entrega dessa área, em minutos. |
inactivationStatus | boolean or null Status da programação de inativação |
dynamicPriceStatus | boolean or null Status do preço dinâmico |
isActive | boolean or null Status da área de entrega |
Responses
Request samples
- Payload
{- "price": {
- "value": 1000,
- "currency": "BRL"
}, - "inactivationStart": "09:00:00-03:00",
- "inactivationEnd": "09:00:00-03:00",
- "dynamicPriceStart": "09:00:00-03:00",
- "dynamicPriceEnd": "09:00:00-03:00",
- "dynamicPrice": {
- "value": 1000,
- "currency": "BRL"
}, - "name": "Área específica",
- "zipCode": "01234-567",
- "address": "Avenida Paulista",
- "neighborhood": "Bela Vista",
- "type": "string",
- "center": {
- "lat": -23.45,
- "lng": -45.67
}, - "radius": 0,
- "minimumWaitingMinutes": 30,
- "maximumWaitingMinutes": 90,
- "inactivationStatus": true,
- "dynamicPriceStatus": true,
- "isActive": true
}
Response samples
- 200
- 404
- 422
{- "status": "success",
- "data": {
- "type": "SPECIFIC",
- "id": 123,
- "minimumWaitingMinutes": 30,
- "maximumWaitingMinutes": 90,
- "inactivationPeriod": {
- "inactivationStart": "09:00:00-03:00",
- "inactivationEnd": "09:00:00-03:00"
}, - "deliveryFeePricingRule": null,
- "isActive": true,
- "name": "string",
- "street": "Rua das Flores",
- "neighborhood": "Jardim Belo",
- "zipcode": "01234-567"
}
}
Response samples
- 200
{- "status": "success",
- "data": {
- "status": "ACTIVE",
- "id": 123,
- "deliverydiretoId": "19adFA952...",
- "name": "Zé do Hamburger",
- "companyName": "Loja S/A",
- "description": "A Zé do Hamburger opera no mercado a...",
- "encodedName": "ze-do-hamburger",
- "lat": 23.56,
- "lng": 43.12,
- "minimumOrder": {
- "value": 1000,
- "currency": "BRL"
}, - "takeoutMinimumOrder": {
- "value": 1000,
- "currency": "BRL"
}, - "minWaitingTime": 30,
- "maxWaitingTime": 90,
- "onlinePaymentTypesAvailable": [
- "string"
], - "onlinePaymentAvailable": true,
- "offlinePaymentAvailable": true,
- "saveCardAvailable": true,
- "document": "121231234000012",
- "hideAddress": true,
- "businessHours": [
- {
- "id": 1234,
- "storesId": 1000,
- "shiftStart": "09:00:00-03:00",
- "shiftEnd": "09:00:00-03:00",
- "weekday": 3
}
], - "address": {
- "street": "Rua Drausio",
- "number": "123",
- "zipcode": "05511-010",
- "neighborhood": "Butantã",
- "city": "São Paulo",
- "state": "SP",
- "complement": "Próximo ao posto de gasolina",
- "reference_point": "Próximo à praça",
- "lat": -23.45,
- "lng": -45.67,
- "id": 123
}, - "contactTelephone": "11912345678",
- "enabledReceiveOrders": true,
- "enabledAlertSound": true,
- "enabledAutoPrintNewOrders": true,
- "primaryColor": "#EB4034",
- "secondaryColor": "#EB4034",
- "fontColor": "#FFFFFF",
- "backgroundColor": "#FFFFFF",
- "backgroundPosition": "center",
- "backgroundRepeat": "no-repeat"
}
}
Altera a disponibilidade de recebimento de pedidos da loja.
Authorizations:
Request Body schema: application/json
Dados do status de recebimento de pedidos da loja
accept_orders | boolean or null Indica se a loja está aceitando pedidos no momento |
Responses
Request samples
- Payload
{- "accept_orders": false
}
Response samples
- 200
{- "status": "success",
- "data": {
- "tablesections": [
- {
- "idempotencyKey": "092b72db-a906-4d69-8dac-4f3b4d207198",
- "name": "Salão A",
- "prefixCode": "00",
- "status": "ACTIVE",
- "viewOrder": 1,
- "tables": [
- {
- "idempotencyKey": "18473e50-4989-42e4-a81a-ea157036ba27",
- "title": "Mesa",
- "number": "01",
- "code": "0001"
}
]
}
]
}
}
Cria uma nova seção
Authorizations:
Request Body schema: application/json
name required | string O nome da seção |
tableQuantity required | integer Quantidade de meses que a seção terá |
status | string or null Status da seção |
viewOrder | integer or null Ordem da visualização da seção |
prefixCode | integer or null Código da Seção |
Responses
Request samples
- Payload
{- "name": "Centro",
- "tableQuantity": 3,
- "status": "ACTIVE",
- "viewOrder": 1,
- "prefixCode": 1
}
Response samples
- 201
- 400
- 422
{- "status": "success",
- "data": {
- "idempotencyKey": "092b72db-a906-4d69-8dac-4f3b4d207198",
- "name": "Salão A",
- "prefixCode": "00",
- "status": "ACTIVE",
- "viewOrder": 1,
- "tables": [
- {
- "idempotencyKey": "18473e50-4989-42e4-a81a-ea157036ba27",
- "title": "Mesa",
- "number": "01",
- "code": "0001"
}
]
}
}
Atualiza os dados de uma seção
Authorizations:
path Parameters
idempotencyKey required | string IdempotencyKey da seção |
Request Body schema: application/json
name | string or null Nome da seção. |
status | string or null Status da seção |
prefixCode | integer or null Código da Seção |
tableQuantity required | integer Quantidade de meses que a seção terá |
Responses
Request samples
- Payload
{- "name": "Seção 1",
- "status": "ACTIVE",
- "prefixCode": 1,
- "tableQuantity": 3
}
Response samples
- 200
- 400
- 404
- 422
{- "status": "success",
- "data": {
- "idempotencyKey": "092b72db-a906-4d69-8dac-4f3b4d207198",
- "name": "Salão A",
- "prefixCode": "00",
- "status": "ACTIVE",
- "viewOrder": 1,
- "tables": [
- {
- "idempotencyKey": "18473e50-4989-42e4-a81a-ea157036ba27",
- "title": "Mesa",
- "number": "01",
- "code": "0001"
}
]
}
}
Lista os horários que este cupom é aplicável
Authorizations:
path Parameters
id required | integer ID do cupom de desconto. |
Responses
Response samples
- 200
- 400
- 404
{- "status": "success",
- "data": {
- "voucherAvailabilities": [
- {
- "shiftStart": "09:00:00-03:00",
- "shiftEnd": "09:00:00-03:00",
- "weekday": 3,
- "id": 123
}
]
}
}
Criar os horários que este cupom é aplicável
Authorizations:
path Parameters
id required | integer ID do cupom de desconto. |
Request Body schema: application/json
Dados da disponilibidade do cupom a ser adicionado
required | Array of objects (CreateVoucherAvailabilityDTO) Lista de disponibilidade | ||||||
Array
|
Responses
Request samples
- Payload
{- "voucherAvailabilities": [
- {
- "shiftStart": "09:00:00-03:00",
- "shiftEnd": "09:00:00-03:00",
- "weekday": 3
}
]
}
Response samples
- 201
- 400
- 404
- 422
{- "status": "success",
- "data": {
- "voucherAvailabilities": [
- {
- "shiftStart": "09:00:00-03:00",
- "shiftEnd": "09:00:00-03:00",
- "weekday": 3,
- "id": 123
}
]
}
}
Editar uma disponibilidade de um cupom
Authorizations:
path Parameters
vouchersId required | integer ID do cupom de desconto. |
id required | integer Identificador desse horário de operação |
Request Body schema: application/json
Dados da disponilibidade do cupom a ser adicionado
required | ISO8601Time (string) Disponibilidade inicial do cupom. |
required | ISO8601Time (string) Disponibilidade final do cupom. |
weekday required | integer [ 1 .. 7 ] Dia da semana desse horário de operação. Onde 1 representa o domingo e 7 o sábado. |
Responses
Request samples
- Payload
{- "shiftStart": "09:00:00-03:00",
- "shiftEnd": "09:00:00-03:00",
- "weekday": 3
}
Response samples
- 200
- 400
- 404
- 422
{- "status": "success",
- "data": {
- "shiftStart": "09:00:00-03:00",
- "shiftEnd": "09:00:00-03:00",
- "weekday": 3,
- "id": 123
}
}
Apaga uma disponibilidade de um cupom
Authorizations:
path Parameters
vouchersId required | integer ID do cupom de desconto. |
id required | integer Identificador da disponibilidade a ser apagada |
Responses
Response samples
- 400
- 404
- 422
{- "status": "fail",
- "errors": [
- {
- "field": "name",
- "message": "O campo name deve estar preenchido"
}
]
}
Listar os cupons de descontos
Authorizations:
query Parameters
code | string Código do cupom de desconto |
offset | integer >= 0 Default: 0 Posição inicial do objeto a ser retornado. |
limit | integer <= 100 Default: 30 Quantidade de objetos a ser retornado. |
active | boolean Cupom está ativo. |
expired | boolean Este cupom está expirado. |
Responses
Response samples
- 200
- 400
- 404
{- "status": "success",
- "data": {
- "vouchers": [
- {
- "id": 123,
- "value": {
- "value": 1000,
- "currency": "BRL"
}, - "valuePercent": 0,
- "minOrder": {
- "value": 1000,
- "currency": "BRL"
}, - "hasSchedule": true,
- "type": "FIXED",
- "isIndividual": false,
- "isBirthdayType": false,
- "active": false,
- "totalTimes": 12,
- "isOnlyFirstOrder": true,
- "isOnlyApps": true,
- "applyTo": "GLOBAL",
- "isBrandVoucher": true,
- "isWhatsappType": true,
- "expires": "2020-01-01",
- "description": "Cupom de desconto de natal com 10% de desconto",
- "code": "PROMO10",
- "valueText": "Sobremesa de chocolate",
- "limitOfUses": 10,
- "customCode": "COD123"
}
], - "pagination": {
- "currentOffset": 10,
- "limit": 10,
- "totalItems": 50
}
}
}
Criar um novo cupom de desconto
Authorizations:
Request Body schema: application/json
Dados do cupom de desconto
object (Money) Uma descrição de quantidade de dinheiro | |
valuePercent | integer Default: 0 Valor de desconto em percentagem |
object (Money) Uma descrição de quantidade de dinheiro | |
type required | string Default: "PERCENT" Enum: "FIXED" "PERCENT" "CUSTOM" "SHIPPING" Tipo de cupom de desconto
|
isIndividual | boolean Default: true Indica se é de uso individual |
isBirthdayType | boolean Default: true Indica se é um cupom de aniversário |
active | boolean Default: true Indica se está ativo ou não |
totalTimes | integer Default: 0 Total de vezes que este cupom já foi usado pelos clientes |
isOnlyFirstOrder | boolean Default: false Indica se é de uso só na primeira compra |
isOnlyApps | boolean Default: false Indica se é de uso somente nos aplicativos mobile |
applyTo | string Default: "GLOBAL" Enum: "GLOBAL" "CATEGORY" Indica qual tipo de uso do cupom. GLOBAL: uso geral; CATEGORY: uso somente em algumas categorias. |
isBrandVoucher | boolean Default: false Indica se o cupom foi criado pela marca |
isWhatsappType | boolean Default: false Indica se é de uso para pedidos vindo do WhatsApp |
(ISO8601Date (string or null)) Data de expiração do cupom | |
description | string Descrição do cupom de desconto |
code | string Código do cupom de desconto |
valueText | string or null Prêmio personalizado. Ex: barra de chocolate |
limitOfUses | integer or null Quantidade máxima que o cupom pode ser usado. Ex: 10 Só pode ser usada 10 vezes este cupom. |
customCode | string or null Código do produto |
Responses
Request samples
- Payload
{- "value": {
- "value": 1000,
- "currency": "BRL"
}, - "valuePercent": 0,
- "minOrder": {
- "value": 1000,
- "currency": "BRL"
}, - "type": "FIXED",
- "isIndividual": false,
- "isBirthdayType": false,
- "active": false,
- "totalTimes": 12,
- "isOnlyFirstOrder": true,
- "isOnlyApps": true,
- "applyTo": "GLOBAL",
- "isBrandVoucher": true,
- "isWhatsappType": true,
- "expires": "2020-01-01",
- "description": "Cupom de desconto de natal com 10% de desconto",
- "code": "PROMO10",
- "valueText": "Sobremesa de chocolate",
- "limitOfUses": 10,
- "customCode": "COD123"
}
Response samples
- 201
- 422
{- "status": "success",
- "data": {
- "id": 123,
- "value": {
- "value": 1000,
- "currency": "BRL"
}, - "valuePercent": 0,
- "minOrder": {
- "value": 1000,
- "currency": "BRL"
}, - "hasSchedule": true,
- "type": "FIXED",
- "isIndividual": false,
- "isBirthdayType": false,
- "active": false,
- "totalTimes": 12,
- "isOnlyFirstOrder": true,
- "isOnlyApps": true,
- "applyTo": "GLOBAL",
- "isBrandVoucher": true,
- "isWhatsappType": true,
- "expires": "2020-01-01",
- "description": "Cupom de desconto de natal com 10% de desconto",
- "code": "PROMO10",
- "valueText": "Sobremesa de chocolate",
- "limitOfUses": 10,
- "customCode": "COD123"
}
}
Lista de categorias associado ao cupom de desconto
Authorizations:
path Parameters
id required | integer ID do cupom de desconto |
Responses
Response samples
- 200
- 400
- 404
{- "status": "success",
- "data": {
- "categories": [
- {
- "id": 123,
- "isPizzaModule": true,
- "status": "ACTIVE",
- "totalItems": 1234,
- "showOnMobile": true,
- "hiddenWhenUnavailable": true,
- "showOnlyImage": true,
- "name": "Bebidas",
- "description": "Bebidas diversas não alcoólicas",
- "viewOrder": 0
}
], - "pagination": {
- "currentOffset": 10,
- "limit": 10,
- "totalItems": 50
}
}
}
Adicionar novas categorias a um cupom de desconto
Authorizations:
path Parameters
id required | integer ID do cupom de desconto |
Request Body schema: application/json
IDs da categoria a ser adicionada
categoryIds required | Array of integers Lista de id da categoria |
Responses
Request samples
- Payload
{- "categoryIds": [
- 1
]
}
Response samples
- 404
- 422
{- "status": "error",
- "code": "invalid_fields",
- "message": "Preencha os campos corretamente!"
}
Remover categorias do cupom de desconto
Authorizations:
path Parameters
id required | integer ID do cupom de desconto |
Request Body schema: application/json
IDs da categoria a ser removida
categoryIds required | Array of integers Lista de id da categoria |
Responses
Request samples
- Payload
{- "categoryIds": [
- 1
]
}
Response samples
- 404
- 422
{- "status": "error",
- "code": "invalid_fields",
- "message": "Preencha os campos corretamente!"
}
Atualiza um cupom de desconto
Authorizations:
path Parameters
id required | integer ID do cupom de desconto |
Request Body schema: application/json
Dados do cupom de desconto
type | string or null Enum: "FIXED" "PERCENT" "CUSTOM" "SHIPPING" Tipo de cupom de desconto
|
(ISO8601Date (string or null)) Data de expiração do cupom | |
applyTo | string or null Enum: "GLOBAL" "CATEGORY" Indica qual tipo de uso do cupom. GLOBAL: uso geral; CATEGORY: uso somente em algumas categorias. |
(Money (object or null)) Valor de desconto em dinheiro | |
(Money (object or null)) Valor mínimo que o cupom possa ser usado. 0.00 indica que não tem valor mínimo. | |
description | string or null Descrição do cupom de desconto |
code | string or null Código do cupom de desconto |
valueText | string or null Prêmio personalizado. Ex: barra de chocolate |
isIndividual | boolean or null Indica se é de uso individual |
isBirthdayType | boolean or null Indica se é um cupom de aniversário |
active | boolean or null Indica se está ativo ou não |
totalTimes | integer or null Total de vezes que este cupom já foi usado pelos clientes |
isOnlyFirstOrder | boolean or null Indica se é de uso só na primeira compra |
isOnlyApps | boolean or null Indica se é de uso somente nos aplicativos mobile |
isBrandVoucher | boolean or null Indica se o cupom foi criado pela marca |
limitOfUses | integer or null Quantidade máxima que o cupom pode ser usado. Ex: 10 Só pode ser usada 10 vezes este cupom. |
isWhatsappType | boolean or null Indica se é de uso para pedidos vindo do WhatsApp |
valuePercent | integer or null Valor de desconto em percentagem |
customCode | string or null Código do produto |
Responses
Request samples
- Payload
{- "type": "FIXED",
- "expires": "2020-01-01",
- "applyTo": "GLOBAL",
- "value": {
- "value": 1000,
- "currency": "BRL"
}, - "minOrder": {
- "value": 1000,
- "currency": "BRL"
}, - "description": "Cupom de desconto de natal com 10% de desconto",
- "code": "PROMO10",
- "valueText": "Sobremesa de chocolate",
- "isIndividual": false,
- "isBirthdayType": false,
- "active": false,
- "totalTimes": 12,
- "isOnlyFirstOrder": false,
- "isOnlyApps": false,
- "isBrandVoucher": false,
- "limitOfUses": 10,
- "isWhatsappType": false,
- "valuePercent": 12,
- "customCode": "COD123"
}
Response samples
- 200
- 404
- 422
{- "status": "success",
- "data": {
- "id": 123,
- "value": {
- "value": 1000,
- "currency": "BRL"
}, - "valuePercent": 0,
- "minOrder": {
- "value": 1000,
- "currency": "BRL"
}, - "hasSchedule": true,
- "type": "FIXED",
- "isIndividual": false,
- "isBirthdayType": false,
- "active": false,
- "totalTimes": 12,
- "isOnlyFirstOrder": true,
- "isOnlyApps": true,
- "applyTo": "GLOBAL",
- "isBrandVoucher": true,
- "isWhatsappType": true,
- "expires": "2020-01-01",
- "description": "Cupom de desconto de natal com 10% de desconto",
- "code": "PROMO10",
- "valueText": "Sobremesa de chocolate",
- "limitOfUses": 10,
- "customCode": "COD123"
}
}
Listar os clientes que usaram este cupom de desconto
Authorizations:
path Parameters
id required | integer ID do cupom de desconto |
query Parameters
offset | integer >= 0 Default: 0 Posição inicial do objeto a ser retornado. |
limit | integer <= 100 Default: 30 Quantidade de objetos a ser retornado. |
Responses
Response samples
- 200
- 400
- 404
{- "status": "success",
- "data": {
- "customers": [
- {
- "id": 123,
- "birthDate": "2020-01-01",
- "firstName": "João",
- "lastName": "da Silva",
- "email": "joaodasilva@mailinator.com",
- "telephone": "11911111111",
- "document": "12345678912"
}
], - "pagination": {
- "currentOffset": 10,
- "limit": 10,
- "totalItems": 50
}
}
}
Use os webhooks do Delivery Direto para ser notificado em tempo real dos eventos que acontecem no sistema. Caso a URL não responda por qualquer motivo, o webhook será executado novamente em outros momentos: 1 minuto depois da última tentativa; se falhar, tenta depois 2 minutos; se falhar, tenta mais uma vez depois de 5 minutos; se falhar, faz uma última tentativa depois de 10 minutos.
Lista de webhooks
Lista todos os webhooks que foram cadastrados e não apagados.
Authorizations:
query Parameters
offset | integer >= 0 Default: 0 Posição inicial do objeto a ser retornado. |
limit | integer [ 1 .. 100 ] Default: 30 Quantidade de objetos a ser retornado. |
Responses
Response samples
- 200
{- "status": "success",
- "data": {
- "pagination": {
- "currentOffset": 10,
- "limit": 10,
- "totalItems": 50
}, - "webhooks": [
- {
- "eventType": "string",
- "status": "string"
}
]
}
}
Configura um webhook
Authorizations:
Request Body schema: application/json
Dados do webhook a ser configurado
eventType required | string Default: "ORDER_PLACED" Enum: "ORDER_EDITED" "ORDER_PLACED" "ORDER_STATUS_CHANGED" Tipo de evento
|
status required | string Default: "ACTIVE" Enum: "ACTIVE" "INACTIVE" Status do webhook |
webhookUrl required | string A URL que será chamada |
Responses
Request samples
- Payload
{- "eventType": "ORDER_EDITED",
- "status": "ACTIVE",
}
Response samples
- 200
- 404
- 422
{- "status": "success",
- "data": {
- "eventType": "string",
- "status": "string"
}
}
Apaga um webhook
O tipo de evento que dever ser passado deve ser em letras maiúsculas. Ex: ORDER_PLACED. Se passar order_placed ou orDEr_placED não será reconhecido.
Authorizations:
path Parameters
eventType required | string Enum: "ORDER_EDITED" "ORDER_PLACED" "ORDER_STATUS_CHANGED" Tipo de evento |
Responses
Response samples
- 403
- 404
- 422
{- "status": "error",
- "code": "invalid_fields",
- "message": "Preencha os campos corretamente!"
}
Exemplo de um webhook
Neste exemplo, iremos fazer um POST https://deliverydireto.com.br/admin-api/v1/webhooks/example com o seguinte body e o que é esperado na resposta. Iremos enviar o status modificado ou o pedido completo. O webhook deve responder com código 200 (OK) em menos de 10 segundos, caso contrário o webhook será considerado como ERROR.
Authorizations:
header Parameters
X-DeliveryDireto-Signature required | string A assinatura HMAC do corpo da resposta, utilizando o algoritmo SHA256, e o |
Request Body schema: application/json
Conteúdo do webhook
eventType required | string Enum: "ORDER_EDITED" "ORDER_PLACED" "ORDER_STATUS_CHANGED" Tipo de evento
|
orderStatus | string or null Enum: "APPROVED" "DONE" "IN_TRANSIT" "HIDDEN" "REJECTED" "WAITING" "WARNING" Status do pedido
|
ordersId required | integer Identificador do pedido |
storesId required | integer Identificador da loja |
(AdminOrderDTO (object or null)) Pedido |
Responses
Request samples
- Payload
{- "eventType": "ORDER_EDITED",
- "orderStatus": "APPROVED",
- "ordersId": 123,
- "storesId": 1234,
- "order": {
- "created": "2020-01-01T09:00:00-03:00",
- "isGuessCustomer": true,
- "modified": "2020-01-01T09:00:00-03:00",
- "status": "APPROVED",
- "type": "DELIVERY",
- "total": {
- "deliveryFee": {
- "value": 1000,
- "currency": "BRL"
}, - "discount": {
- "value": 1000,
- "currency": "BRL"
}, - "requiredChange": {
- "value": 1000,
- "currency": "BRL"
}, - "serviceFee": {
- "value": 1000,
- "currency": "BRL"
}, - "subtotal": {
- "value": 1000,
- "currency": "BRL"
}, - "total": {
- "value": 1000,
- "currency": "BRL"
}, - "paymentMethodDiscount": 0
}, - "operationTime": {
- "approvedTime": "2020-01-01T09:00:00-03:00",
- "cancelledTime": "2020-01-01T09:00:00-03:00",
- "doneTime": "2020-01-01T09:00:00-03:00",
- "inTransitTime": "2020-01-01T09:00:00-03:00",
- "editedTime": "2020-01-01T09:00:00-03:00",
- "approvedBy": 1234,
- "cancelledBy": 1234,
- "doneBy": 0,
- "inTransitBy": 1234,
- "editedBy": 1234
}, - "metadata": {
- "source": "Android",
- "utmSource": "string",
- "utmMedium": "string",
- "utmCampaign": "string",
- "utmTerm": "string",
- "utmContent": "string",
- "store": {
- "id": 123,
- "deliverydiretoId": "19adFA952...",
- "name": "Zé do Hamburger",
- "companyName": "Loja S/A",
- "lat": 23.56,
- "lng": 43.12,
- "minWaitingTime": 30,
- "maxWaitingTime": 90,
- "document": "121231234000012"
}
}, - "customer": {
- "birthDate": "2020-01-01",
- "document": "111.111.111-11",
- "email": "meucliente@email.com",
- "id": 0,
- "firstName": "João",
- "lastName": "da Silva",
- "telephone": "11981000000"
}, - "source": "Android",
- "paymentMethod": {
- "paymentsId": 8,
- "name": "Dinheiro"
}, - "scheduledOrder": {
- "appearDate": "2020-01-01T09:00:00-03:00",
- "scheduledDate": "2020-01-01T09:00:00-03:00"
}, - "address": {
- "city": "São Paulo",
- "complement": "Bloco 2 Apto 203",
- "reference_point": "Próximo à praça",
- "id": 123,
- "neighborhood": "Bela Vista",
- "number": "123",
- "state": "SP",
- "street": "Avenida Paulista",
- "zipcode": "00000-000",
- "lat": -23.618237,
- "lng": -46.635197
}, - "voucher": {
- "type": "FIXED",
- "value": 0,
- "valuePercent": 0,
- "id": 123,
- "description": "Desconto de 10% no valor total da conta",
- "code": "CUPOM10",
- "customCode": "COD123",
- "valueText": "Sobremesa de chocolate"
}, - "loyaltyprogram": {
- "id": 123,
- "description": "Após 10 pedidos, ganhe uma sobremesa grátis",
- "customCode": "COD123"
}, - "memberGetMember": {
- "value": 0,
- "valuePercent": 0,
- "type": "FIXED",
- "description": "Programa indique um amigo",
- "code": "MGM123",
- "customCode": "COD123",
- "valueText": "Sobremesa de chocolate"
}, - "deliveryArea": {
- "inactivationPeriod": {
- "inactivationStart": "09:00:00-03:00",
- "inactivationEnd": "09:00:00-03:00"
}, - "id": 123,
- "type": "string",
- "minimumWaitingMinutes": 30,
- "maximumWaitingMinutes": 90,
- "deliveryFeePricingRule": null,
- "isActive": true,
- "name": "string"
}, - "table": {
- "idempotencyKey": "7b82751a-8f8e-491d-b1f2-300b801c4ffc",
- "name": "Salão - 00101",
- "number": "01",
- "tablesectionsIdempotencyKey": "2030a62b-a4a0-406c-865a-8051d600fb53"
}, - "isCanceled": null,
- "isOnlinePayment": null,
- "loyaltyprogramReward": {
- "id": 2,
- "loyaltyprogramId": 12345,
- "benefitValue": "Sorvetes caseiros",
- "customCode": "ITEM123",
- "step": 1
}, - "customerOrderNumber": 2,
- "id": 0,
- "isNewCustomer": true,
- "isGuestCustomer": true,
- "isRegisteredInvoice": true,
- "notes": "Colocar guardanapos",
- "orderNumber": 10,
- "registeredDocument": "111.111.111-11",
- "statusReason": "Pedido de teste",
- "items": [
- {
- "price": {
- "value": 1000,
- "currency": "BRL"
}, - "propertiesPrice": {
- "value": 1000,
- "currency": "BRL"
}, - "total": {
- "value": 1000,
- "currency": "BRL"
}, - "amount": 2,
- "customCode": "ITEM123",
- "description": "Sorvetes caseiros",
- "comments": "Sem cebola",
- "id": 123,
- "name": "Sorvetes",
- "ordersItemsId": 1234,
- "sequence": 3,
- "properties": [
- {
- "priceCalculationType": "AVERAGE",
- "description": "Tipo de sabores do sorvete",
- "id": 123,
- "isFractional": false,
- "name": "Sabor",
- "ordersPropertiesId": 12345,
- "sequence": 3,
- "options": [
- {
- "price": {
- "value": 1000,
- "currency": "BRL"
}, - "amount": 2,
- "customCode": "string",
- "description": "Coca-cola de 350ml gelada",
- "id": 123,
- "name": "Coca-cola",
- "ordersOptionsId": 12345,
- "sequence": 2
}
]
}
]
}
], - "compositeItems": [
- {
- "priceCalculationType": "AVERAGE",
- "propertiesPrice": {
- "value": 1000,
- "currency": "BRL"
}, - "total": {
- "value": 1000,
- "currency": "BRL"
}, - "amount": 1,
- "customCode": "ITEM123",
- "description": "Pizza grande com 8 pedaços",
- "comments": "Sem cebola",
- "id": 123,
- "name": "string",
- "ordersItemsId": 0,
- "sequence": 2,
- "items": [
- {
- "price": {
- "value": 1000,
- "currency": "BRL"
}, - "amount": 1,
- "comments": "string",
- "customCode": "COD123",
- "id": 123,
- "name": "4 queijos",
- "sequence": 2
}
], - "properties": [
- {
- "priceCalculationType": "AVERAGE",
- "description": "Tipo de sabores do sorvete",
- "id": 123,
- "isFractional": false,
- "name": "Sabor",
- "ordersPropertiesId": 12345,
- "sequence": 3,
- "options": [
- {
- "price": {
- "value": 1000,
- "currency": "BRL"
}, - "amount": 2,
- "customCode": "string",
- "description": "Coca-cola de 350ml gelada",
- "id": 123,
- "name": "Coca-cola",
- "ordersOptionsId": 12345,
- "sequence": 2
}
]
}
]
}
], - "sequentialId": 0
}
}
Lista de webhooks que foram chamados
Authorizations:
query Parameters
offset | integer >= 0 Default: 0 Posição inicial do objeto a ser retornado. |
limit | integer [ 1 .. 100 ] Default: 30 Quantidade de objetos a ser retornado. |
Responses
Response samples
- 200
{- "status": "success",
- "data": {
- "pagination": {
- "currentOffset": 10,
- "limit": 10,
- "totalItems": 50
}, - "webhooks": [
- {
- "lastAttempt": "2020-01-01T09:00:00-03:00",
- "status": "ERROR",
- "webhooksId": 123,
- "attempts": 2,
- "payload": "{\"eventType\": \"ORDER_STATUS_CHANGED\", \"orderStatus\": \"APPROVED\", \"ordersId\": 123, \"storesId\": 1235, \"order\": null}",
- "errorCode": "500"
}
]
}
}
Força uma nova chamada para os webhooks
Faz uma nova tentativa de chamada nestes webhooks e estas chamadas são assíncronas.
Authorizations:
Request Body schema: application/json
Lista de identificadores do webhook a ser chamado novamente
ids | Array of integers[ items >= 1 ] Lista de identificadores do log do webhook |
Responses
Request samples
- Payload
{- "ids": [
- 123
]
}
Lista de pedidos
Authorizations:
query Parameters
dateStart | string Data de inicial da busca no formato yyyy-MM-dd HH:mm:ss em UTC. Ex: 2023-06-22 15:34:45, serão exibidos todos os pedidos que foram aprovados a partir de 2023-06-22 15:34:45 até hoje |
offset | integer Default: 0 Posição inicial do objeto a ser retornado. |
limit | integer <= 100 Default: 30 Quantidade de objetos a ser retornado. |
Responses
Response samples
- 200
- 400
- 422
{- "status": "success",
- "data": {
- "kdsOrders": [
- {
- "approvedTime": "2020-01-01T09:00:00-03:00",
- "status": "DONE",
- "type": "DELIVERY",
- "voucher": {
- "type": "FIXED",
- "value": 0,
- "valuePercent": 0,
- "id": 123,
- "description": "Desconto de 10% no valor total da conta",
- "code": "CUPOM10",
- "customCode": "COD123",
- "valueText": "Sobremesa de chocolate"
}, - "memberGetMember": {
- "value": 0,
- "valuePercent": 0,
- "type": "FIXED",
- "description": "Programa indique um amigo",
- "code": "MGM123",
- "customCode": "COD123",
- "valueText": "Sobremesa de chocolate"
}, - "loyaltyprogramReward": {
- "id": 2,
- "loyaltyprogramId": 12345,
- "benefitValue": "Sorvetes caseiros",
- "customCode": "ITEM123",
- "step": 1
}, - "table": {
- "idempotencyKey": "7b82751a-8f8e-491d-b1f2-300b801c4ffc",
- "name": "Salão - 00101",
- "number": "01",
- "tablesectionsIdempotencyKey": "2030a62b-a4a0-406c-865a-8051d600fb53"
}, - "id": 0,
- "ordersId": 0,
- "notes": "Colocar guardanapos",
- "adminNotes": "Colocar guardanapos",
- "items": [
- {
- "price": {
- "value": 1000,
- "currency": "BRL"
}, - "propertiesPrice": {
- "value": 1000,
- "currency": "BRL"
}, - "total": {
- "value": 1000,
- "currency": "BRL"
}, - "amount": 2,
- "customCode": "ITEM123",
- "description": "Sorvetes caseiros",
- "comments": "Sem cebola",
- "id": 123,
- "name": "Sorvetes",
- "ordersItemsId": 1234,
- "sequence": 3,
- "properties": [
- {
- "priceCalculationType": "AVERAGE",
- "description": "Tipo de sabores do sorvete",
- "id": 123,
- "isFractional": false,
- "name": "Sabor",
- "ordersPropertiesId": 12345,
- "sequence": 3,
- "options": [
- {
- "price": null,
- "amount": null,
- "customCode": null,
- "description": null,
- "id": null,
- "name": null,
- "ordersOptionsId": null,
- "sequence": null
}
]
}
]
}
], - "compositeItems": [
- {
- "priceCalculationType": "AVERAGE",
- "propertiesPrice": {
- "value": 1000,
- "currency": "BRL"
}, - "total": {
- "value": 1000,
- "currency": "BRL"
}, - "amount": 1,
- "customCode": "ITEM123",
- "description": "Pizza grande com 8 pedaços",
- "comments": "Sem cebola",
- "id": 123,
- "name": "string",
- "ordersItemsId": 0,
- "sequence": 2,
- "items": [
- {
- "price": {
- "value": 1000,
- "currency": "BRL"
}, - "amount": 1,
- "comments": "string",
- "customCode": "COD123",
- "id": 123,
- "name": "4 queijos",
- "sequence": 2
}
], - "properties": [
- {
- "priceCalculationType": "AVERAGE",
- "description": "Tipo de sabores do sorvete",
- "id": 123,
- "isFractional": false,
- "name": "Sabor",
- "ordersPropertiesId": 12345,
- "sequence": 3,
- "options": [
- {
- "price": null,
- "amount": null,
- "customCode": null,
- "description": null,
- "id": null,
- "name": null,
- "ordersOptionsId": null,
- "sequence": null
}
]
}
]
}
], - "sequentialId": 0
}
], - "pagination": {
- "currentOffset": 10,
- "limit": 10,
- "totalItems": 50
}
}
}
Atualiza o status do pedido no KDS
Authorizations:
path Parameters
id required | integer Identificador do pedido. |
Request Body schema: application/json
Status do pedido no KDS
status required | string Enum: "IN_PRODUCTION" "DONE" Status do pedido kds
|
Responses
Request samples
- Payload
{- "status": "IN_PRODUCTION"
}
Response samples
- 400
- 404
- 422
{- "status": "fail",
- "errors": [
- {
- "field": "name",
- "message": "O campo name deve estar preenchido"
}
]
}
Pega o pedido pelo id do pedido
Authorizations:
query Parameters
orderId | integer Id do pedido |
Responses
Response samples
- 200
- 400
- 422
{- "status": "success",
- "data": {
- "approvedTime": "2020-01-01T09:00:00-03:00",
- "status": "DONE",
- "type": "DELIVERY",
- "voucher": {
- "type": "FIXED",
- "value": 0,
- "valuePercent": 0,
- "id": 123,
- "description": "Desconto de 10% no valor total da conta",
- "code": "CUPOM10",
- "customCode": "COD123",
- "valueText": "Sobremesa de chocolate"
}, - "memberGetMember": {
- "value": 0,
- "valuePercent": 0,
- "type": "FIXED",
- "description": "Programa indique um amigo",
- "code": "MGM123",
- "customCode": "COD123",
- "valueText": "Sobremesa de chocolate"
}, - "loyaltyprogramReward": {
- "id": 2,
- "loyaltyprogramId": 12345,
- "benefitValue": "Sorvetes caseiros",
- "customCode": "ITEM123",
- "step": 1
}, - "table": {
- "idempotencyKey": "7b82751a-8f8e-491d-b1f2-300b801c4ffc",
- "name": "Salão - 00101",
- "number": "01",
- "tablesectionsIdempotencyKey": "2030a62b-a4a0-406c-865a-8051d600fb53"
}, - "id": 0,
- "ordersId": 0,
- "notes": "Colocar guardanapos",
- "adminNotes": "Colocar guardanapos",
- "items": [
- {
- "price": {
- "value": 1000,
- "currency": "BRL"
}, - "propertiesPrice": {
- "value": 1000,
- "currency": "BRL"
}, - "total": {
- "value": 1000,
- "currency": "BRL"
}, - "amount": 2,
- "customCode": "ITEM123",
- "description": "Sorvetes caseiros",
- "comments": "Sem cebola",
- "id": 123,
- "name": "Sorvetes",
- "ordersItemsId": 1234,
- "sequence": 3,
- "properties": [
- {
- "priceCalculationType": "AVERAGE",
- "description": "Tipo de sabores do sorvete",
- "id": 123,
- "isFractional": false,
- "name": "Sabor",
- "ordersPropertiesId": 12345,
- "sequence": 3,
- "options": [
- {
- "price": {
- "value": 1000,
- "currency": "BRL"
}, - "amount": 2,
- "customCode": "string",
- "description": "Coca-cola de 350ml gelada",
- "id": 123,
- "name": "Coca-cola",
- "ordersOptionsId": 12345,
- "sequence": 2
}
]
}
]
}
], - "compositeItems": [
- {
- "priceCalculationType": "AVERAGE",
- "propertiesPrice": {
- "value": 1000,
- "currency": "BRL"
}, - "total": {
- "value": 1000,
- "currency": "BRL"
}, - "amount": 1,
- "customCode": "ITEM123",
- "description": "Pizza grande com 8 pedaços",
- "comments": "Sem cebola",
- "id": 123,
- "name": "string",
- "ordersItemsId": 0,
- "sequence": 2,
- "items": [
- {
- "price": {
- "value": 1000,
- "currency": "BRL"
}, - "amount": 1,
- "comments": "string",
- "customCode": "COD123",
- "id": 123,
- "name": "4 queijos",
- "sequence": 2
}
], - "properties": [
- {
- "priceCalculationType": "AVERAGE",
- "description": "Tipo de sabores do sorvete",
- "id": 123,
- "isFractional": false,
- "name": "Sabor",
- "ordersPropertiesId": 12345,
- "sequence": 3,
- "options": [
- {
- "price": {
- "value": 1000,
- "currency": "BRL"
}, - "amount": 2,
- "customCode": "string",
- "description": "Coca-cola de 350ml gelada",
- "id": 123,
- "name": "Coca-cola",
- "ordersOptionsId": 12345,
- "sequence": 2
}
]
}
]
}
], - "sequentialId": 0
}
}