Instalações
Listar
Lista as instalações de determinada máquina.
GET /api/v1/machines/[machine_id]/installations
Parâmetros de URL:
parâmetro |
descrição |
obrigatório |
|---|---|---|
machine_id |
id da máquina |
sim |
Retorno
status |
descrição |
|---|---|
200 |
OK |
Exemplo:
[
{
"id": 77,
"created_at": "2014-10-17T16:11:43.000-03:00",
"updated_at": "2014-11-20T10:14:31.000-02:00",
"location_id": 34,
"machine_id": 42,
"equipment_id": 314,
"place": "Recepção",
"cash_mode": "cash_and_cashless",
"restock_mode": "restock_and_cash_collect",
"restock_strategy": "allow_pick_list_or_full",
"notifications_enabled": true,
"last_audit_began_at": "2017-08-02T17:59:14.000Z",
"last_audit_ended_at": "2017-08-02T17:59:16.000Z",
"removed_at": null,
"no_vend_schedule_id": 1,
"store_model_id": 3,
"audit_enabled": true,
"enable_audit_schedule": true,
"audit_schedule": "7:00 12:30 18:00 23:50 (instalação)",
"visit_schedule": [],
"enable_bluetooth": false,
"enable_contactless": false,
"issues_invoice": false,
"operation_status": "green",
"states": ["hatched"],
"route_ids": [10, 68, 123],
"last_communication": "26/09/2018 19:13",
"virtual_equipment": false,
"reason_uninstall": "Motivo da inativação de instalação",
"connection": {
"kind": "GPRS",
"label": "wwan0",
"ip": "179.246.209.53",
"tunnel_label": null,
"tunnel_ip": null,
"rssi": 22,
"carrier": "vivo"
},
"services": {
"bluetooth": {
"mac": null,
"status": "inactive"
},
"pl_mifare": {
"mac": null,
"status": "inactive"
}
}
},
{
"id": 88,
"created_at": "2014-10-24T12:25:15.000-02:00",
"updated_at": "2014-11-20T10:14:31.000-02:00",
"location_id": 28,
"machine_id": 42,
"equipment_id": 314,
"place": "Hall Biblioteca",
"cash_mode": "cash_and_cashless",
"restock_mode": "restock_and_cash_collect",
"restock_strategy": "allow_pick_list_or_full",
"notifications_enabled": true,
"last_audit_began_at": "2017-08-02T17:59:14.000Z",
"last_audit_ended_at": "2017-08-02T17:59:16.000Z",
"removed_at": "2014-11-20T10:14:31.000-02:00",
"no_vend_schedule_id": 1,
"store_model_id": 3,
"audit_enabled": true,
"enable_audit_schedule": true,
"audit_schedule": "6:00 10:00 14:00 18:00 22:00 23:50 (padrão)",
"visit_schedule": ["tuesday", "thursday"],
"enable_bluetooth": true,
"enable_contactless": false,
"issues_invoice": false,
"operation_status": "yellow",
"states": ["audit_failure", "hatched"],
"route_ids": [10, 13],
"last_communication": "15/06/2018 23:18",
"virtual_equipment": false,
"reason_uninstall": null
},
{
"id": 138,
"created_at": "2014-11-21T16:54:19.000-02:00",
"updated_at": "2014-11-21T19:40:14.000-02:00",
"location_id": 34,
"machine_id": 42,
"equipment_id": 314,
"place": "Recepção",
"cash_mode": "cash_and_cashless",
"restock_mode": "restock_and_cash_collect",
"restock_strategy": "require_pending_pick_list",
"notifications_enabled": true,
"last_audit_began_at": "2017-08-02T17:59:14.000Z",
"last_audit_ended_at": "2017-08-02T17:59:16.000Z",
"removed_at": "2014-11-21T19:40:14.000-02:00",
"no_vend_schedule_id": null,
"store_model_id": 1,
"audit_enabled": false,
"enable_audit_schedule": false,
"audit_schedule": "",
"visit_schedule": ["monday", "wednesday", "friday"],
"enable_bluetooth": true,
"enable_contactless": true,
"issues_invoice": true,
"operation_status": "red",
"states": ["extended_power_loss", "hatched"],
"route_ids": [23],
"last_communication": "12/09/2018 13:13",
"virtual_equipment": false
}
]
Ver
Mostra determinada instalação de uma máquina.
GET /api/v1/machines/[machine_id]/installations/[id]
Parâmetros de URL:
parâmetro |
descrição |
obrigatório |
|---|---|---|
machine_id |
id da máquina |
sim |
id |
id da instalação |
sim |
Retorno
status |
descrição |
|---|---|
200 |
OK |
O campo removed_at diz respeito a data em que a instalação foi baixada. Os possíveis valores são os seguintes:
Data e hora em formato ISO 8601: Data e hora em que a instalação foi baixada.
null: Caso o valor deste campo seja null, indica que a instalação não foi baixada, ou seja, que a mesma está ativa.
O campo no_vend_schedule_id é o id do alerta de não venda. Caso venha como “null” o sistema considera o alerta padrão do sistema.
O campo audit_schedule é o calendário de auditoria. Corresponde aos horários separados por espaço, seguidos de uma descrição entre parênteses que indica qual valor é utilizado: o da instalação, se o mesmo foi preenchido; ou o padrão, caso tenha sido deixado em branco e o valor de enable_audit_schedule for true. Se enable_audit_schedule for false, o valor deste campo será vazio.
O campo operation_status diz respeito ao estado de operação da instalação. Os possíveis valores são os seguintes:
green: Máquina operando normalmente.
yellow: Máquina operando parcialmente.
red: Máquina fora de operação.
grey: Estado de operação indefinido (a máquina ainda não se comunicou, por exemplo).
O campo states diz respeito ao detalhamento do estado de operação da instalação. Os possíveis valores são os seguintes:
extended_power_loss: Falha de energia.
no_communication: Sem comunicação.
reader_disabled: Fora de serviço.
pay_and_go_offline: Cashless sem conexão com máquina ou operadora de cartões.
audit_failure: Falha de auditoria.
weak_signal: Sinal fraco.
hatched: instalação comunicou pelo menos uma vez (usado para distinguir de instalações que já comunicaram mas nunca apresentaram nenhuma falha).
O campo balance diz respeito aos saldos da instalação:
total_collectable_coins: Saldo coletável no cofre.
total_collectable_bills: Saldo coletável no noteiro.
total_collectable: Saldo total coletável.
total_in_coin_changer: Saldo de troco no modeiro.
total_in_bill_changer: Saldo de troco no reciclador.
total_in_changer: Saldo total de troco.
total_in_coins: Saldo total de moedas.
total_in_bills: Saldo total de notas.
total_in_cash: Saldo total.
O campo current_session diz respeito ao caixa total:
cashbox: Cofre.
bill: Noteiro.
collection: A coletar.
changer: Moedeiro.
recycler: Reciclador.
supplied: Carga/retirada.
cashless: Cashless.
total_vends: Vendas.
difference: Diferença de caixa.
vends: Totais de vendas discrimadas por produto.
O campo connection informa os dados de conexão. Este campo é omitido caso o equipamento não possua nenhuma interface de conexão:
kind: Tipo de conexão (GPRS, ETHERNET ou WIFI)
label: Label da interface de conexão
ip: Ip da interface
tunnel_label: Label da interface de tunel, caso exista
tunnel_ip: Ip da interface de tunel, caso exista
Caso o tipo da conexão seja GPRS:
rssi: Sinal da conexão
carrier: Operadora utilizada
Caso o tipo da conexão seja WIFI:
rssi: Sinal da conexão
essid: Nome da rede wifi
O campo services informa o estado dos serviços. Este campo é omitido caso o equipamento não possua nenhuma das funcionalidades:
bluetooth:
mac: Endereço mac da interface
status: Estado da interface (active ou inactive)
pl_mifare:
mac: Endereço mac da interface
status: Estado da interface (active ou inactive)
O campo payment_authorizer_ids informa quais os autorizadores de QRcode que estão habilitados para o operador
Segue um exemplo de retorno:
{
"id": 123987,
"created_at": "2016-01-26T17:36:44.000-02:00",
"updated_at": "2016-01-26T19:21:27.000-02:00",
"location_id": 12,
"machine_id": 112,
"equipment_id": 123,
"place": "Recepção",
"cash_mode": "cash_and_cashless",
"restock_mode": "restock_and_cash_collect",
"restock_strategy": "allow_pick_list_or_full",
"notifications_enabled": true,
"last_audit_began_at": "2017-08-02T17:59:14.000Z",
"last_audit_ended_at": "2017-08-02T17:59:16.000Z",
"removed_at": "2016-01-26T19:21:27.000-02:00",
"no_vend_schedule_id": 1,
"store_model_id": 3,
"audit_enabled": true,
"enable_audit_schedule": true,
"audit_schedule": "7:00 12:30 18:00 23:50 (instalação)",
"visit_schedule": ["monday", "wednesday", "friday"],
"enable_bluetooth": false,
"enable_contactless": false,
"issues_invoice": false,
"operation_status": "red",
"states": ["extended_power_loss", "hatched"],
"route_ids": [10, 13],
"last_communication": "12/09/2018 13:13",
"payment_authorizer_ids": [1, 2],
"virtual_equipment": false,
"pending_planogram": null,
"current_planogram": {
"id": 189976,
"created_at": "2016-01-26T17:36:44.000-02:00",
"updated_at": "2016-01-26T17:36:44.000-02:00",
"due": "now",
"started_at": "2016-01-26T17:36:44.000-02:00",
"items": [
{
"id": 86717,
"type": "Coil",
"name": "1,2",
"good_id": 10,
"capacity": 20,
"par_level": 20,
"alert_level": 4,
"desired_price": 2.5,
"logical_locator": 1,
"physical_locators":[
"1",
"2"
],
"current_balance": 11.0
},
{
"id": 86718,
"type": "Coil",
"name": "3",
"good_id": 12,
"capacity": 10,
"par_level": 10,
"alert_level": 2,
"desired_price": 2.3,
"logical_locator": 2,
"physical_locators":[
"3"
],
"current_balance": 8.0
},
{
"id": 86719,
"type": "VirtualCoil",
"name": "4",
"good_id": 23,
"desired_price": 4.0,
"logical_locator": 3,
"physical_locators":[
"4"
],
"children": { "1": 2, "2": 1 }
},
{
"id": 86720,
"type": "Canister",
"good_id": 26,
"capacity": 2000,
"par_level": 2000,
"alert_level": 200,
"logical_locator": 4,
"current_balance": 983.3
},
{
"id": 86721,
"type": "Canister",
"good_id": 27,
"capacity": 3000,
"par_level": 3000,
"alert_level": 300,
"logical_locator": 5,
"current_balance": 1975.4
},
{
"id": 86722,
"type": "VirtualCanister",
"good_id": 30,
"name": "5",
"desired_price": 3.0,
"logical_locator": 6,
"physical_locators":[
"5"
],
"children": { "4": 20, "5": 15 }
}
]
},
"balance": {
"total_collectable_coins": 8.7,
"total_collectable_bills": 132.0,
"total_collectable": 140.7,
"total_in_coin_changer": 101.8,
"total_in_bill_changer": 0.0,
"total_in_changer": 101.8,
"total_in_coins": 110.5,
"total_in_bills": 132.0,
"total_in_cash": 242.5
},
"current_session": {
"cashbox": 8.7,
"bill": 132.0,
"collection": 140.7,
"changer": -30.95,
"recycler": 0.0,
"supplied": 132.75,
"cashless": 1218.3,
"total_vends": 1328.05,
"difference": 0.0,
"vends": [
{
"vendible_id": 12,
"quantity": 23.0,
"value": 52.9,
"vendible": {
"type": "Product",
"category_id": 5,
"manufacturer_id": 3,
"name": "Coca cola",
"upc_code": "123",
"barcode": "1234567890"
}
},
{
"vendible_id": 30,
"quantity": 19.0,
"value": 57.0,
"vendible": {
"type": "Mixture",
"category_id": 7,
"manufacturer_id": null,
"name": "Cappuccino",
"upc_code": null,
"barcode": null
}
}
]
},
"connection": {
"kind": "GPRS",
"label": "wwan0",
"ip": "179.246.209.53",
"tunnel_label": null,
"tunnel_ip": null,
"rssi": 22,
"carrier": "vivo"
},
"services": {
"bluetooth": {
"mac": null,
"status": "inactive"
},
"pl_mifare": {
"mac": null,
"status": "inactive"
}
}
}
Erros
status |
descrição |
response body |
|---|---|---|
404 |
máquina ou instalação não encontrada |
(vazio) |
Criar
Cria uma nova instalação em determinada máquina.
Se a máquina já possuir uma instalação ativa, a mesma é baixada automaticamente na data e hora atuais. A instalação criada torna-se a ativa.
POST /api/v1/machines/[machine_id]/installations
Parâmetros de URL:
parâmetro |
descrição |
obrigatório |
|---|---|---|
machine_id |
id da máquina |
sim |
Request:
{
"installation": {
"location_id": 12,
"equipment_id": 123,
"place": "Recepção",
"cash_mode": "cash_and_cashless",
"restock_mode": "restock_and_cash_collect",
"restock_strategy": "allow_pick_list_or_full",
"notifications_enabled": true,
"last_audit_began_at": "2017-08-02T17:59:14.000Z",
"last_audit_ended_at": "2017-08-02T17:59:16.000Z",
"no_vend_schedule_id": 1,
"audit_enabled": true,
"enable_audit_schedule": true,
"audit_schedule": "7:00 12:30 18:00 23:50",
"visit_schedule": ["monday", "wednesday", "friday"],
"enable_bluetooth": true,
"enable_contactless": false,
"issues_invoice": false,
"payment_authorizer_ids": [1, 2],
"planograms_attributes": [
{
"items_attributes": [
{
"type": "Coil",
"name": "1,2",
"good_id": 10,
"capacity": 20,
"par_level": 20,
"alert_level": 4,
"desired_price": 2.5,
"logical_locator": 1
},
{
"type": "Coil",
"name": "3,4",
"good_id": 11,
"capacity": 20,
"par_level": 20,
"alert_level": 4,
"desired_price": 2.5,
"logical_locator": 2
},
{
"type": "Canister",
"good_id": 12,
"capacity": 3000,
"par_level": 3000,
"alert_level": 500,
"logical_locator": 3
},
{
"type": "Canister",
"good_id": 13,
"capacity": 300,
"par_level": 300,
"alert_level": 50,
"logical_locator": 4
},
{
"type": "VirtualCanister",
"name": "5",
"good_id": 15,
"desired_price": 3.5,
"logical_locator": 5,
"children": { "3": 21, "4": 1 }
},
{
"type": "VirtualCoil",
"name": "6",
"good_id": 23,
"desired_price": 6.0,
"logical_locator": 6,
"children": { "1": 2, "2": 1 }
}
]
}
]
}
}
Campos
Obrigatórios
installation
location_id: id do local.
equipment_id: id do equipamento.
cash_mode: modo de pagamento.
Valores permitidos: cash_and_cashless (dinheiro e cartão), cashless_only (somente cartão) ou cash_only (somente dinheiro).
restock_mode: botão de reabastecimento.
Valores permitidos: restock_and_cash_collect (reabastecimento + coleta) ou restock_only (somente reabastecimento).
Se o botão de reabastecimento da máquina for pressionado somente uma única vez, o sistema irá gerar um reabastecimento juntamente com uma coleta ou somente um reabastecimento dependendo da opção selecionada.
Se o botão for pressionado duas vezes, o sistema sempre irá gerar uma coleta.
restock_strategy: estratégia de reabastecimento.
Valores permitidos: allow_pick_list_or_full (padrão) ou require_pending_pick_list (somente por pick list).
notifications_enabled: enviar notificações?
audit_enabled: habilitar auditorias?
enable_audit_schedule: habilitar calendário de auditorias?
É setado automaticamente para false se audit_enabled também for false.
visit_schedule: array contendo os dias da Agenda de Visitas.
Valores permitidos são: sunday, monday, tuesday, wednesday, thursday, friday, saturday.
planograms_attributes: os planogramas da instalação. Nesse caso, somente um planograma é preenchido: o inicial.
items_attributes: um array contendo os items do planograma.
Os items podem ser de 4 tipos: canaletas, combos, canisters e seleções.
Canaletas:
type: deve ser igual a “Coil”.
name: o número da canaleta. Caso se trate de um agrupamento de canaletas, os números devem ser separados por vírgulas. Este campo será mapeado em um vetor no campo physical_locators como pode ser observado no exemplo de retorno.
good_id: id do produto. Nesse caso não pode ser composto. Good neste caso se traduz como bem.
capacity: a capacidade total da canaleta. No caso de agrupameto de canaletas, deve-se colocar aqui a capacidade total, somando-se todas as canaletas.
par_level: o nível de par da canaleta. No caso de agrupameto de canaletas, deve-se colocar aqui o nível de par total, somando-se todas as canaletas.
alert_level: o nível de alerta da canaleta.
desired_price: o preço unitário desejado.
logical_locator: trata-se do identificador lógico da canaleta. Deve-se gerar um inteiro único dentro de todos os items do planograma.
Combos:
type: deve ser igual a “VirtualCoil”.
name: o número de seleção do combo. Este campo será mapeado em um vetor no campo physical_locators como pode ser observado no exemplo de retorno.
good_id: id do produto. Nesse caso deve ser composto e com o type Combo. Good neste caso se traduz como bem.
desired_price: o preço unitário desejado.
logical_locator: trata-se do identificador lógico do combo. Deve-se gerar um inteiro único dentro de todos os items do planograma.
children: as canaletas e suas quantidades que compõe o combo. É um objeto cujas chaves são identificadores lógicos (campo logical_locator) das canaletas e os valores as quantidades. No exemplo acima, o combo é composto de 2 produtos da canaleta cujo name é “1,2” - ou seja, canaletas 1 e 2 agrupadas - e 1 produto da canaleta cujo name é “3,4”.
Canisters:
type: deve ser igual a “Canister”.
capacity: a capacidade total do canister. Deve ser preenchido na mesma unidade do insumo (g, ml ou un).
par_level: o nível de par do canister. Deve ser preenchido na mesma unidade do insumo (g, ml ou un).
alert_level: o nível de alerta do canister. Deve ser preenchido na mesma unidade do insumo (g, ml ou un).
logical_locator: trata-se do identificador lógico do canister. Deve-se gerar um inteiro único dentro de todos os items do planograma.
Seleções:
type: deve ser igual a “VirtualCanister”.
name: o número da seleção. Este campo será mapeado em um vetor no campo physical_locators como pode ser observado no exemplo de retorno.
good_id: id do produto. Nesse caso deve ser composto e com o type Mixture. Good neste caso se traduz como bem.
desired_price: o preço unitário desejado.
logical_locator: trata-se do identificador lógico da seleção. Deve-se gerar um inteiro único dentro de todos os items do planograma.
children: os canisters e suas quantidades que compõe a seleção. É um objeto cujas chaves são identificadores lógicos (campo logical_locator) dos canisters e os valores as quantidades. No exemplo acima, digamos que o insumo de id 12 seja Chocolate Solúvel com Leite e o de id 13, Copo Plástico 160 ml. Logo, a seleção é composta de 21 gramas de Chocolate Solúvel com Leite e 1 unidade de Copo Plástico 160 ml.
Opcionais
installation
place: local interno.
no_vend_schedule_id: id do alerta de não venda. Se enviar “null” o sistema irá considerar o alerta padrão do sistema.
audit_schedule: calendário de auditorias.
Preencher com horários separados por espaços.
No máximo 6 horários são aceitos, acima disso serão desconsiderados.
Horários em formatos inválidos serão desconsiderados. Os formatos válidos são: H, HH, H:MM, HH:MM, H:MM:SS e HH:MM:SS. Exemplo: "2 04 5:30 7:30:00 12:45 18:35:50".
Caso enable_audit_schedule seja false, o campo será automaticamente limpo.
Caso enable_audit_schedule seja true e o campo deixado em branco, será utilizado o calendário padrão.
enable_contactless: habilitar contactless?
Valor será ignorado a menos que o operador tenha suporte à contactless.
issues_invoice: emitir NFCe?
Valor será ignorado a menos que o operador tenha suporte à emissão de NFCe.
payment_authorizer_ids: Autorizadores QRCode
Retorno
status |
descrição |
|---|---|
201 |
Criado com sucesso |
Exemplo:
{
"id": 1109,
"created_at": "2016-02-15T16:19:36.832-02:00",
"updated_at": "2016-02-15T16:19:36.832-02:00",
"location_id": 185,
"machine_id": 612,
"equipment_id": 314,
"place": "Recepção",
"cash_mode": "cash_and_cashless",
"restock_mode": "restock_and_cash_collect",
"restock_strategy": "allow_pick_list_or_full",
"notifications_enabled": true,
"last_audit_began_at": null,
"last_audit_ended_at": null,
"removed_at": null,
"no_vend_schedule_id": 1,
"audit_enabled": true,
"enable_audit_schedule": true,
"audit_schedule": "7:00 12:30 18:00 23:50 (instalação)",
"visit_schedule": ["monday", "wednesday", "friday"],
"enable_bluetooth": true,
"enable_contactless": false,
"issues_invoice": false,
"operation_status": "grey",
"states": [],
"route_ids": [],
"last_communication": "12/09/2018 13:13",
"payment_authorizer_ids": [],
"virtual_equipment": false,
"pending_planogram": null,
"current_planogram": {
"id": 2950,
"created_at": "2016-02-15T16:19:36.841-02:00",
"updated_at": "2016-02-15T16:19:36.841-02:00",
"due": "due_now",
"started_at": "2016-02-15T16:20:36.603-02:00",
"items": [
{
"id": 113846,
"created_at": "2016-02-15T16:19:36.843-02:00",
"updated_at": "2016-02-15T16:19:36.843-02:00",
"planogram_id": 2950,
"type": "Coil",
"good_id": 10,
"name": "1,2",
"capacity": 20,
"par_level": 20,
"alert_level": 4,
"desired_price": 2.5,
"modified": false,
"undefined": false,
"logical_locator": "1",
"physical_locators": [
"1",
"2"
],
"children": null,
"current_balance": 0,
"good": {
"id": 10,
"name": "Amendoin",
"upc_code": "77",
"upc_code_name": "77 - Amendoin",
"unit_description": "Unidade",
"unit_symbol": "un"
}
},
{
"id": 113847,
"created_at": "2016-02-15T16:19:36.843-02:00",
"updated_at": "2016-02-15T16:19:36.843-02:00",
"planogram_id": 2950,
"type": "Coil",
"good_id": 11,
"name": "3,4",
"capacity": 20,
"par_level": 20,
"alert_level": 4,
"desired_price": 2.5,
"modified": false,
"undefined": false,
"logical_locator": "2",
"physical_locators": [
"3",
"4"
],
"children": null,
"current_balance": 0,
"good": {
"id": 11,
"name": "Coca Cola",
"upc_code": "77",
"upc_code_name": "77 - Coca Cola",
"unit_description": "Unidade",
"unit_symbol": "un"
}
},
{
"id":113848,
"created_at":"2016-02-15T16:19:36.843-02:00",
"updated_at":"2016-02-15T16:19:36.843-02:00",
"planogram_id":2950,
"type":"Canister",
"good_id":12,
"name":"Chocolate Solúvel com Leite 1kg",
"capacity":3000.0,
"par_level":3000.0,
"alert_level":500.0,
"desired_price":null,
"modified": false,
"undefined":false,
"logical_locator":"3",
"physical_locators":[],
"children":null,
"current_balance":0,
"good":{
"id":12,
"name":"Chocolate Solúvel com Leite 1kg",
"upc_code":null,
"upc_code_name":"Chocolate Solúvel com Leite 1kg",
"unit_description":"Grama",
"unit_symbol":"g"
}
},
{
"id":113849,
"created_at":"2016-02-15T16:19:36.843-02:00",
"updated_at":"2016-02-15T16:19:36.843-02:00",
"planogram_id":2950,
"type":"Canister",
"good_id":13,
"name":"Copo Plástico 160 ml",
"capacity":300.0,
"par_level":300.0,
"alert_level":50.0,
"desired_price":null,
"modified": false,
"undefined":false,
"logical_locator":"4",
"physical_locators":[],
"children":null,
"current_balance":0,
"good":{
"id":13,
"name":"Copo Plástico 160 ml",
"upc_code":null,
"upc_code_name":"Copo Plástico 160 ml",
"unit_description":"Unidade",
"unit_symbol":"un"
}
},
{
"id": 113850,
"created_at": "2016-02-15T16:19:36.843-02:00",
"updated_at": "2016-02-15T16:19:36.843-02:00",
"planogram_id": 2950,
"type": "VirtualCanister",
"good_id": 15,
"name": "5",
"capacity": 10,
"par_level": 10,
"alert_level": 2,
"desired_price": 3.5,
"modified": false,
"undefined": false,
"logical_locator": "5",
"physical_locators": [
"5"
],
"children": {
"3": "21.00",
"4": "1.00"
},
"current_balance": 0,
"good": {
"id": 15,
"name": "Dose Chocolate Quente",
"upc_code": null,
"upc_code_name": "Dose Chocolate Quente",
"unit_description": "Unidade",
"unit_symbol": "un"
}
},
{
"id": 113851,
"created_at": "2016-02-15T16:19:36.843-02:00",
"updated_at": "2016-02-15T16:19:36.843-02:00",
"planogram_id": 2950,
"type": "VirtualCoil",
"good_id": 23,
"name": "6",
"capacity": 10,
"par_level": 10,
"alert_level": 4,
"desired_price": 6,
"modified": false,
"undefined": false,
"logical_locator": "6",
"physical_locators": [
"6"
],
"children": {
"1": "2.00",
"2": "1.00"
},
"good": {
"id": 23,
"name": "2x Amendoins + 1x Coca Cola",
"upc_code": "0",
"upc_code_name": "0 - 2x Amendoins + 1x Coca Cola",
"unit_description": "Unidade",
"unit_symbol": "un"
}
}
]
},
"balance": {
"total_collectable_coins": 0,
"total_collectable_bills": 0,
"total_collectable": 0,
"total_in_coin_changer": 0,
"total_in_bill_changer": 0,
"total_in_changer": 0,
"total_in_coins": 0,
"total_in_bills": 0,
"total_in_cash": 0
},
"current_session": {
"cashbox": 0,
"bill": 0,
"collection": 0,
"changer": 0,
"recycler": 0,
"supplied": 0,
"cashless": 0,
"total_vends": 0,
"difference": 0,
"vends": []
}
}
Erros
status |
descrição |
response body |
|---|---|---|
400 |
parâmetros faltando |
{ “status”: “400”, “error”: “Bad Request” } |
401 |
não autorizado |
(vazio) |
422 |
erro ao criar |
ver exemplo abaixo |
422 - erro ao criar
{
"location_id": [
"não pode ficar em branco"
]
}
Atualizar
Atualiza uma instalação de determinada máquina.
PATCH /api/v1/machines/[machine_id]/installations/[id]
Parâmetros de URL:
parâmetro |
descrição |
obrigatório |
|---|---|---|
machine_id |
id da máquina |
sim |
id |
id da instalação |
sim |
Request:
{
"installation": {
"location_id": 13,
"equipment_id": 111,
"place": "Recepção 2",
"notifications_enabled": false,
}
}
Campos
Ao menos um campo interno a installation deve ser passado.
Somente os parâmetros equipment_id, location_id, place, cash_mode, restock_mode, restock_strategy, notifications_enabled, audit_enabled, enable_audit_schedule, audit_schedule, visit_schedule, enable_bluetooth, enable_contactless, issues_invoice e payment_authorizer_ids são considerados; os demais são ignorados.
Não é permitido atualizar um planograma ativo, somente cadastrar um outro planograma pendente. Para tanto, ver Planogramas.
Não é permitido atualizar instalações virtuais - isto é, instalações cujo atributo virtual_equipment é true - por este serviço. Para tanto, utilizar Instalações Virtuais.
Retorno
status |
descrição |
|---|---|
200 |
Atualizado com sucesso |
Exemplo:
{
"id": 1119,
"created_at": "2016-02-15T16:50:47.000-02:00",
"updated_at": "2016-02-15T17:23:34.353-02:00",
"location_id": 185,
"machine_id": 612,
"equipment_id": 111,
"place": "Recepção 2",
"cash_mode": "cash_and_cashless",
"restock_mode": "restock_and_cash_collect",
"restock_strategy": "allow_pick_list_or_full",
"notifications_enabled": false,
"last_audit_began_at": "2017-08-02T17:59:14.000Z",
"last_audit_ended_at": "2017-08-02T17:59:16.000Z",
"removed_at": null,
"no_vend_schedule_id": 1,
"audit_enabled": true,
"enable_audit_schedule": true,
"audit_schedule": "7:00 12:30 18:00 23:50 (instalação)",
"visit_schedule": ["monday", "wednesday", "friday"],
"enable_bluetooth": false,
"enable_contactless": false,
"issues_invoice": false,
"operation_status": "green",
"states": ["hatched"],
"route_ids": [23],
"last_communication": "12/09/2018 13:13",
"payment_authorizer_ids": [],
"virtual_equipment": false,
"pending_planogram": null,
"current_planogram": {
"id": 2960,
"created_at": "2016-02-15T16:50:47.000-02:00",
"updated_at": "2016-02-15T16:50:47.000-02:00",
"due": "due_now",
"started_at": "2016-02-15T16:51:47.000-02:00",
"items": [
{
"id": 113845,
"created_at": "2016-02-15T16:50:47.000-02:00",
"updated_at": "2016-02-15T16:50:47.000-02:00",
"planogram_id": 2960,
"type": "Coil",
"good_id": 10,
"name": "1,2",
"capacity": 20,
"par_level": 20,
"alert_level": 4,
"desired_price": 2.5,
"modified": false,
"undefined": false,
"logical_locator": "1",
"physical_locators": [
"1",
"2"
],
"children": null,
"current_balance": 20,
"good": {
"id": 10,
"name": "Amendoin",
"upc_code": "77",
"upc_code_name": "77 - Amendoin",
"unit_description": "Unidade",
"unit_symbol": "un"
}
}
]
},
"balance": {
"total_collectable_coins": 0,
"total_collectable_bills": 0,
"total_collectable": 0,
"total_in_coin_changer": 0,
"total_in_bill_changer": 0,
"total_in_changer": 0,
"total_in_coins": 0,
"total_in_bills": 0,
"total_in_cash": 0
},
"current_session": {
"cashbox": 0,
"bill": 0,
"collection": 0,
"changer": 0,
"recycler": 0,
"supplied": 0,
"cashless": 0,
"total_vends": 0,
"difference": 0,
"vends": []
}
}
Erros
status |
descrição |
response body |
|---|---|---|
400 |
parâmetros faltando |
{ “status”: “400”, “error”: “Bad Request” } |
401 |
não autorizado |
(vazio) |
404 |
máquina ou instalação não encontrada |
(vazio) |
422 |
erro ao atualizar |
ver exemplo abaixo |
422 - erro ao atualizar:
{
"location_id": [
"não é válido"
]
}
Baixar
Baixa uma instalação de determinada máquina.
DELETE /api/v1/machines/[machine_id]/installations/[id]
Parâmetros de URL:
parâmetro |
descrição |
obrigatório |
|---|---|---|
machine_id |
id da máquina |
sim |
id |
id da instalação |
sim |
Retorno
status |
descrição |
response body |
|---|---|---|
204 |
Excluído com sucesso |
(vazio) |
Erros
status |
descrição |
response body |
|---|---|---|
401 |
não autorizado |
(vazio) |
404 |
máquina ou instalação não encontrada |
(vazio) |
Reabastecer manualmente
Efetua o reabastecimento da pick list atualmente pendente, caso exista e a operação seja permitida, isto é, a estratégia de reabastecimento seja require_pending_pick_list (somente por pick list).
POST /api/v1/machines/[machine_id]/installations/[id]/restock
Parâmetros de URL
parâmetro |
descrição |
obrigatório |
|---|---|---|
machine_id |
id da máquina |
sim |
id |
id da instalação |
sim |
supply_category_id |
id da categoria de reabastecimento |
sim, caso utilize mais de uma categoria de abastecimento (Multi Pick) |
Campos
Opcionais
restock_mode: o modo do reabastecimento. Os valores possíveis são restock_and_cash_collect (realiza uma coleta além do reabastecimento) ou restock_only (realiza somente o reabastecimento). Qualquer outro valor diferente desses é ignorado e é feito o que está configurado no atributo restock_mode da instalação (botão de visita). O mesmo acontece caso o campo não seja passado. Caso o atributo restock_mode da instalação esteja configurado como restock_only e seja passado o valor restock_and_cash_collect neste campo, será realizado somente um reabastecimento, a coleta não será realizada.
Retorno
status |
descrição |
|---|---|
200 |
Reabastecimento criado com sucesso |
422 |
Não foi possível criar reabastecimento |
Exemplo:
{
"restock_mode": "restock_only"
}