Introdução

Bem-vindo à documentação da API NeoCloud. Esta API permite integração com o ecossistema NeoCloud/NeoCash para gerenciamento de produtos, comandas, pagamentos e movimentações de restaurantes e estabelecimentos comerciais.

🌐 Base URL

PRODUÇÃO http://neocloud.neomais.com.br
HOMOLOGAÇÃO http://homologacao.neomais.com.br

Use o ambiente de homologação para testes de integração. Os tokens são diferentes para cada ambiente.

📋 Formato

Todas as requisições e respostas utilizam JSON. Defina o header Content-Type: application/json em requisições POST/PUT.

📄 Paginação

Endpoints que retornam listas suportam paginação via query string: ?pagina=1

⚠️ Rate Limiting

A API possui limite de 100 requisições por minuto por token. Requisições excedentes retornarão 429 Too Many Requests.

Exemplo de Requisição
curl -X GET \
  http://neocloud.neomais.com.br/api/neocloud/v1/categorias \
  -H "ApplicationToken: seu-app-token" \
  -H "CompanyToken: seu-company-token" \
  -H "DeviceToken: seu-device-token"
RESPOSTA
200 401 400
{
  "status": 200,
  "mensagem": "Sucesso.",
  "objeto": { ... }
}

Autenticação

Todas as requisições à API NeoCloud exigem 3 headers de autenticação. Esses tokens são fornecidos pela equipe Neo Mais no momento do cadastro da integração.

HeaderTipoObrigatórioDescrição
ApplicationTokenstringSimToken do sistema que está fazendo a integração
CompanyTokenstringSimToken da empresa/restaurante no NeoCloud
DeviceTokenstringNãoToken do dispositivo (tablet, celular). Obrigatório para endpoints de carga.

🔒 Segurança

Nunca exponha seus tokens em código client-side. Utilize um backend intermediário para fazer as chamadas à API.

ERRO 401 — Token Inválido
{
  "status": 401,
  "mensagem": "Não autorizado. CompanyToken inválido.",
  "objeto": "Organização não encontrada"
}

Login GET

GET/api/neocloud/v1/login/

Valida as credenciais de um usuário (garçom, gerente) e retorna os dados do dispositivo vinculado.

Query Parameters

ParâmetroTipoObrigatórioDescrição
dsloginstringSimLogin do usuário
vlsenhastringSimSenha do usuário

Respostas

200 Login bem-sucedido
401 Token inválido
404 Usuário/senha incorretos ou dispositivo não informado
Requisição
curl -X GET \
  "http://neocloud.neomais.com.br/api/neocloud/v1/login/?dslogin=garcom01&vlsenha=1234" \
  -H "ApplicationToken: seu-app-token" \
  -H "CompanyToken: seu-company-token" \
  -H "DeviceToken: seu-device-token"
RESPOSTA 200
{
  "IdOrganizao": 1,
  "IdDispositivo": 10,
  "IdPessoaUsuario": 42,
  "Dslogin": "garcom01",
  "VlSenha": "1234"
}

Listar Categorias GET

GET/api/neocloud/v1/categorias

Retorna todas as categorias do cardápio (Entradas, Pratos Principais, Bebidas, Sobremesas, etc.).

Respostas

200 Lista de categorias retornada
401 Token inválido

💡 Dica

Use /api/neocloud/v1/produtocategoria para obter o vínculo entre produtos e categorias.

Requisição
curl -X GET \
  http://neocloud.neomais.com.br/api/neocloud/v1/categorias \
  -H "ApplicationToken: seu-app-token" \
  -H "CompanyToken: seu-company-token"
RESPOSTA 200
[
  {
    "IdOrganizacao": 1,
    "IdCategoria": 10,
    "DsCategoria": "Entradas",
    "IdCategoriaPai": null,
    "BnAtivo": true
  },
  {
    "IdOrganizacao": 1,
    "IdCategoria": 20,
    "DsCategoria": "Pratos Principais",
    "IdCategoriaPai": null,
    "BnAtivo": true
  },
  {
    "IdOrganizacao": 1,
    "IdCategoria": 30,
    "DsCategoria": "Bebidas",
    "IdCategoriaPai": null,
    "BnAtivo": true
  }
]

Listar Produtos GET

GET/api/neocloud/v1/produtos

Retorna todos os produtos cadastrados no sistema (itens do cardápio, bebidas, etc.).

Respostas

200 Lista de produtos retornada
401 Token inválido
Requisição
curl -X GET \
  http://neocloud.neomais.com.br/api/neocloud/v1/produtos \
  -H "ApplicationToken: seu-app-token" \
  -H "CompanyToken: seu-company-token"
RESPOSTA 200
[
  {
    "IdProduto": 101,
    "DsProduto": "Picanha Completa 400g",
    "DsProdutoResumido": "Picanha 400g",
    "VlVenda": 59.90,
    "IdCategoria": 20,
    "BnAtivo": true,
    "DsGtin": "7891234567890"
  },
  {
    "IdProduto": 205,
    "DsProduto": "Coca-Cola 600ml",
    "DsProdutoResumido": "Coca 600ml",
    "VlVenda": 10.00,
    "IdCategoria": 30,
    "BnAtivo": true,
    "DsGtin": "7891234567891"
  }
]

Buscar Preço GET

GET/api/neocloud/v1/produtopreco

Retorna o preço atualizado de um produto, considerando a tabela de preço ativa (ex: Happy Hour, Delivery).

Query Parameters

ParâmetroTipoObrigatórioDescrição
idintegerSimID do produto
Requisição
curl -X GET \
  "http://neocloud.neomais.com.br/api/neocloud/v1/produtopreco?id=101" \
  -H "ApplicationToken: seu-app-token" \
  -H "CompanyToken: seu-company-token"
RESPOSTA 200
{
  "IdProduto": 101,
  "VlVenda": 59.90,
  "VlPromocional": null,
  "BnPromocaoAtiva": false
}

Abrir Comanda POST

POST/api/neocloud/v1/comanda/abrir

Cria uma nova comanda individual para uma pessoa em uma mesa. Cada pessoa na mesa recebe sua própria comanda, vinculadas pelo id_mesa_agrupamento.

Request Body

CampoTipoObrigatórioDescrição
id_mesa_agrupamentointegerSimNúmero da mesa física do restaurante
ds_nome_pessoastringSimNome da pessoa dona da comanda
vl_telefone_pessoastringNãoTelefone para fidelização
ds_observacaostringNãoObservações (ex: alergias)

Respostas

200 Comanda criada com sucesso
401 Token inválido
406 Campos obrigatórios ausentes
Requisição
curl -X POST \
  http://neocloud.neomais.com.br/api/neocloud/v1/comanda/abrir \
  -H "ApplicationToken: seu-app-token" \
  -H "CompanyToken: seu-company-token" \
  -H "Content-Type: application/json" \
  -d '{
    "id_mesa_agrupamento": 5,
    "ds_nome_pessoa": "João Silva",
    "vl_telefone_pessoa": "11999887766",
    "ds_observacao": "Alergia a camarão"
  }'
RESPOSTA
200 406
{
  "status": 200,
  "mensagem": "Comanda aberta com sucesso.",
  "objeto": {
    "id_organizacao": 1,
    "id_empresa": 1,
    "id_movimentacao": 12345,
    "id_mesa_agrupamento": 5,
    "ds_nome_pessoa": "João Silva",
    "vl_telefone_pessoa": "11999887766",
    "tp_status": 0,
    "vl_total": 0,
    "dt_abertura": "2026-04-16T18:30:00",
    "itens": []
  }
}

Comandas da Mesa GET

GET/api/neocloud/v1/comanda/mesa/{idMesa}

Retorna todas as comandas (pessoas) de uma mesa específica, com seus respectivos totais e status.

Path Parameters

ParâmetroTipoObrigatórioDescrição
idMesaintegerSimNúmero da mesa física
Requisição
curl -X GET \
  http://neocloud.neomais.com.br/api/neocloud/v1/comanda/mesa/5 \
  -H "ApplicationToken: seu-app-token" \
  -H "CompanyToken: seu-company-token"
RESPOSTA 200
{
  "status": 200,
  "mensagem": "Comandas da mesa 5 listadas.",
  "id_mesa_agrupamento": 5,
  "total_pessoas": 3,
  "comandas": [
    {
      "id_movimentacao": 12345,
      "ds_nome_pessoa": "João Silva",
      "tp_status": 0,
      "vl_total": 89.90,
      "dt_abertura": "2026-04-16T18:30:00"
    },
    {
      "id_movimentacao": 12346,
      "ds_nome_pessoa": "Maria Oliveira",
      "tp_status": 0,
      "vl_total": 42.50,
      "dt_abertura": "2026-04-16T18:31:00"
    }
  ]
}

Ver Conta GET

GET/api/neocloud/v1/comanda/{idMovimentacao}/conta

Retorna o resumo detalhado de uma comanda individual, incluindo todos os itens consumidos, quantidades e valores.

Path Parameters

ParâmetroTipoObrigatórioDescrição
idMovimentacaointegerSimID da comanda/movimentação

Status da Comanda

CódigoStatusDescrição
0AbertaComanda ativa, aceitando pedidos
2Aguardando PgtoFechamento solicitado, aguardando caixa
3FechadaPagamento concluído
Requisição
curl -X GET \
  http://neocloud.neomais.com.br/api/neocloud/v1/comanda/12345/conta \
  -H "ApplicationToken: seu-app-token" \
  -H "CompanyToken: seu-company-token"
RESPOSTA 200
{
  "status": 200,
  "mensagem": "Conta retornada com sucesso.",
  "objeto": {
    "id_movimentacao": 12345,
    "id_mesa_agrupamento": 5,
    "ds_nome_pessoa": "João Silva",
    "tp_status": 0,
    "vl_total": 89.90,
    "dt_abertura": "2026-04-16T18:30:00",
    "itens": [
      {
        "id_item": 1,
        "id_produto": 101,
        "ds_produto": "Picanha Completa",
        "vl_unitario": 59.90,
        "vl_quantidade": 1,
        "vl_total": 59.90,
        "ds_observacoes": "Ao ponto"
      },
      {
        "id_item": 2,
        "id_produto": 205,
        "ds_produto": "Coca-Cola 600ml",
        "vl_unitario": 10.00,
        "vl_quantidade": 3,
        "vl_total": 30.00,
        "ds_observacoes": null
      }
    ]
  }
}

Fechar Comanda POST

POST/api/neocloud/v1/comanda/{idMovimentacao}/fechar

Solicita o fechamento de uma comanda, alterando seu status para "Aguardando Pagamento" (status 2). O caixa do NeoCash será notificado automaticamente.

Path Parameters

ParâmetroTipoObrigatórioDescrição
idMovimentacaointegerSimID da comanda/movimentação

Respostas

200 Comanda enviada para fechamento
401 Token inválido
406 Comanda não está aberta (status ≠ 0)

ℹ️ Fluxo de Pagamento

O pagamento é processado no caixa do NeoCash. Esta API apenas solicita o fechamento — o caixa recebe a notificação e processa o pagamento presencialmente.

Requisição
curl -X POST \
  http://neocloud.neomais.com.br/api/neocloud/v1/comanda/12345/fechar \
  -H "ApplicationToken: seu-app-token" \
  -H "CompanyToken: seu-company-token"
RESPOSTA
200 406
{
  "status": 200,
  "mensagem": "Comanda 12345 enviada para fechamento (aguardando pagamento no caixa)."
}

Meios de Pagamento GET

GET/api/neocloud/v1/meiodepagamento

Retorna todos os meios de pagamento aceitos pelo estabelecimento (Dinheiro, Pix, Cartão Crédito, Cartão Débito, etc.).

Respostas

200 Lista de meios retornada
401 Token inválido
Requisição
curl -X GET \
  http://neocloud.neomais.com.br/api/neocloud/v1/meiodepagamento \
  -H "ApplicationToken: seu-app-token" \
  -H "CompanyToken: seu-company-token"
RESPOSTA 200
[
  {
    "IdMeioDePagamento": 1,
    "DsMeioDePagamento": "Dinheiro",
    "BnAtivo": true
  },
  {
    "IdMeioDePagamento": 4,
    "DsMeioDePagamento": "Pix",
    "BnAtivo": true
  },
  {
    "IdMeioDePagamento": 2,
    "DsMeioDePagamento": "Cartão de Crédito",
    "BnAtivo": true
  },
  {
    "IdMeioDePagamento": 3,
    "DsMeioDePagamento": "Cartão de Débito",
    "BnAtivo": true
  }
]