API Map — EngiCheck licenseGateway

https://api.base44.app/api/apps/68120a83c0d84e8b4d62c82b/functions/licenseGateway

Docs completas
BASE URLhttps://api.base44.app/api/apps/68120a83c0d84e8b4d62c82b/functions/licenseGatewayHeader: x-api-key

Fluxo Principal do App

5 endpoints

Execute nessa ordem para autenticar e manter a sessão do usuário.

1
Validar Acessoaction: "validate"

Ao abrir o app

POST

Body (JSON)

action"validate"obrig.
emailstringobrig.
tenant_emailstringobrig.
appstringopc.

Body exemplo

{
  "action": "validate",
  "email": "<email>",
  "tenant_email": "<tenant_email>",
  "app": "<app>"
}

Retorna

valid: true/false + dados da licença

Possíveis erros

access_not_approvedcompany_no_licenselicense_expired
2
Solicitar Acessoaction: "request_access"

Quando validate retorna access_not_approved

POST

Body (JSON)

action"request_access"obrig.
emailstringobrig.
tenant_emailstringobrig.
user_namestringopc.
company_namestringopc.
appstringopc.

Body exemplo

{
  "action": "request_access",
  "email": "<email>",
  "tenant_email": "<tenant_email>",
  "user_name": "<user_name>",
  "company_name": "<company_name>",
  "app": "<app>"
}

Retorna

success: true + status: pending

Possíveis erros

company_no_licenselicense_expiredrequest_pendingalready_approved
3
Login (criar sessão)action: "login"

Após validate retornar valid: true

POST

Body (JSON)

action"login"obrig.
emailstringobrig.
tenant_emailstringobrig.
device_infostringopc.
ip_addressstringopc.
appstringopc.

Body exemplo

{
  "action": "login",
  "email": "<email>",
  "tenant_email": "<tenant_email>",
  "device_info": "<device_info>",
  "ip_address": "<ip_address>",
  "app": "<app>"
}

Retorna

session_token + dados do plano

Possíveis erros

access_not_approvedcompany_no_licenselicense_expiredseat_limit_reached
4
Heartbeataction: "ping"

A cada 15 minutos (background)

POST

Body (JSON)

action"ping"obrig.
session_tokenstringobrig.

Body exemplo

{
  "action": "ping",
  "session_token": "<session_token>"
}

Retorna

valid: true

Possíveis erros

session_expired
5
Logoutaction: "logout"

Ao fechar o app ou deslogar

POST

Body (JSON)

action"logout"obrig.
session_tokenstringobrig.

Body exemplo

{
  "action": "logout",
  "session_token": "<session_token>"
}

Retorna

success: true

Endpoints Administrativos

3 endpoints

Use para verificar capacidade e monitorar sessões. Não expor ao usuário final.

Checar Usuáriosaction: "check_seats"

Painel admin / verificação de capacidade

POST

Body (JSON)

action"check_seats"obrig.
tenant_emailstringobrig.

Body exemplo

{
  "action": "check_seats",
  "tenant_email": "<tenant_email>"
}

Retorna

seat_limit, active_seats, available_seats

Possíveis erros

company_no_license
Checar Obrasaction: "check_obras"

Antes de criar nova obra

POST

Body (JSON)

action"check_obras"obrig.
tenant_emailstringobrig.

Body exemplo

{
  "action": "check_obras",
  "tenant_email": "<tenant_email>"
}

Retorna

obras_limit, plan, expiry_date

Possíveis erros

company_no_license
Sessões Ativasaction: "sessions"

Painel admin

POST

Body (JSON)

action"sessions"obrig.
tenant_emailstringobrig.

Body exemplo

{
  "action": "sessions",
  "tenant_email": "<tenant_email>"
}

Retorna

lista de sessões + count + seat_limit

Todos os Códigos de Erro

reasonDescrição
access_not_approvedAdmin não aprovou
company_no_licenseEmpresa sem licença
license_expiredLicença vencida
seat_limit_reachedTodos os seats em uso
request_pendingSolicitação já enviada
already_approvedAcesso já aprovado
session_expiredSessão expirou (2h sem ping)

Limites por Plano

Start

2

usuários simultâneos

1

obras ativas

Essencial

5

usuários simultâneos

3

obras ativas

Profissional

15

usuários simultâneos

5

obras ativas

Consultor

usuários simultâneos

obras ativas

EngiCheck licenseGateway · API Map · v1.0