API de Autorizações - Documentação para Parceiros (1.0.0)

Download OpenAPI specification:

Equipe Aplicacoes: aplicacoes@betha.com.br

API de integração para parceiros da Betha Sistemas.

Documentação Completa

Documentação Descrição
Studio Aplicações Credenciais, tokens e configuração de acesso
API de Autorizações Page Mapping, permissões e validação de acesso
Swagger UI Testar endpoints diretamente no navegador

Autenticação

Esta API utiliza OAuth 2.0 para autenticação através do Studio Aplicações. É necessário configurar credenciais no Studio e obter os tokens apropriados.

Tipos de Token

Token Descrição Uso
Access Token Token de acesso à API Endpoints sem validação de usuário
User-Access Token com contexto de usuário/entidade Endpoints com validação de usuário

Importante: Alguns endpoints requerem User-Access (token com contexto de usuário). Estes endpoints estão marcados com o badge "Requer User-Access" na documentação.

Integração de parceiros

Endpoints essenciais para integracao de parceiros.

Para documentacao completa sobre credenciais e tokens, consulte: Studio Aplicações

Endpoints Principais

Endpoint Descricao Token
GET /users/me Obter dados do usuario (nome, email) Access Token
GET /users/me/contexts Listar contextos disponiveis Access Token
GET /access/current Obter acesso atual (inclui flag admin) User-Access
GET /entities/atual Obter entidade do contexto atual User-Access
GET /resources/{url}/methods/{method}/constraints Validar permissao de acesso User-Access

Fluxo de Integracao

  1. Configurar credenciais no Studio Aplicações
  2. Obter Access Token via OAuth 2.0
  3. Chamar /users/me/contexts para listar contextos
  4. Solicitar User-Access para o contexto desejado
  5. Chamar /access/current para verificar permissoes e admin

Page Mapping

Para usar o Gerenciador de Acessos, configure o Page Mapping:

  • PUT /page-mapping - Registrar
  • GET /page-mapping - Consultar
  • PUT /page-mapping/{version} - Registrar versionado
  • GET /page-mapping/{version} - Consultar versionado

Users

Endpoints de usuario

Obter informacoes do usuario atual

Retorna informacoes do usuario autenticado (nome, email).

Parceiros: Use este endpoint para obter dados basicos do usuario logado.

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "name": "string",
  • "email": "string"
}

Listar contextos do usuario atual

Retorna lista de contextos de licenca disponiveis para o usuario.

Parceiros: Use este endpoint para obter a lista de contextos (entidades/databases) que o usuario tem acesso. Cada contexto retornado pode ser usado para obter um user-access token especifico.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Access

Endpoints de acesso

Obter acesso atual

Retorna o acesso do usuario no contexto atual.

Requer User-Access: Este endpoint requer um token User-Access com contexto de usuario.

Parceiros: Use este endpoint para obter informacoes do acesso atual, incluindo:

  • admin: Se o usuario e administrador no contexto
  • context: Hash do contexto atual
  • values: Valores do contexto (entity, database, etc)
  • technical: Se e um acesso tecnico

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "licenseId": "string",
  • "admin": true,
  • "technical": true,
  • "user": "string",
  • "username": "string",
  • "context": "string",
  • "values": {
    },
  • "properties": {
    },
  • "system": 0,
  • "totalGroups": 0,
  • "totalRestrictions": 0,
  • "expiresIn": "2019-08-24",
  • "createAt": "2019-08-24T14:15:22Z",
  • "createBy": "string",
  • "accepted": true,
  • "acceptedIn": "2019-08-24T14:15:22Z",
  • "connected": true,
  • "blockedByAdmin": true,
  • "finalBlockedDate": "2019-08-24"
}

Entities

Endpoints de entidade

Obter entidade atual

Retorna a entidade do contexto atual.

Requer User-Access: Este endpoint requer um token User-Access com contexto de usuario.

Parceiros: Use este endpoint para obter dados da entidade/organizacao do contexto atual (nome, CNPJ, etc).

Responses

Response samples

Content type
application/json
{
  • "id": 0,
  • "name": "string"
}

Page Mapping

Endpoints de page mapping

Criar/atualizar page mapping

Cria ou atualiza o mapeamento de paginas para a aplicacao atual.

Parceiros: Use este endpoint para registrar o Page Mapping do seu sistema. O Page Mapping define quais permissoes existem e quais URLs cada permissao protege. Isso permite que os administradores configurem acessos no Gerenciador de Acessos.

Request Body schema: application/json
required
Array
object
constraints
Array of objects
resources
Array of objects

Responses

Request samples

Content type
application/json
[
  • {
    }
]

Obter page mapping atual

Retorna o mapeamento de paginas da aplicacao atual.

Parceiros: Use este endpoint para consultar o Page Mapping registrado.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Criar/atualizar page mapping versionado

Cria ou atualiza o mapeamento de paginas com versao especifica.

Parceiros: Use este endpoint para registrar o Page Mapping com controle de versao.

path Parameters
version
required
string

Versao do arquivo de page mapping

Request Body schema: application/json
required
Array
object
constraints
Array of objects
resources
Array of objects

Responses

Request samples

Content type
application/json
[
  • {
    }
]

Obter page mapping versionado

Retorna o mapeamento de paginas de uma versao especifica.

Parceiros: Use este endpoint para consultar o Page Mapping de uma versao especifica.

path Parameters
version
required
string

Versao do arquivo de page mapping

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Permissions

Endpoints de validacao de permissoes

Validar permissao de acesso a recurso

Consulta se o usuario tem permissao para acessar um recurso especifico.

Requer User-Access: Este endpoint requer um token User-Access com contexto de usuario.

Parceiros: Use este endpoint para verificar se o usuario autenticado tem permissao para acessar uma URL/metodo especifico do seu sistema.

Exemplo de uso

curl --location 'https://autorizacoes.suite.betha.cloud/dados/v1/resources/%2Fapi%2Fpessoas%2F123/methods/GET/constraints' \
  --header 'Authorization: Bearer {TOKEN}' \
  --header 'User-Access: {USER_ACCESS}'

Nota: A URL do recurso deve ser URL-encoded (ex: /api/pessoas/123 vira %2Fapi%2Fpessoas%2F123).

Codigos de Erro

Codigo Descricao
INVALID_ACCESS Usuario nao possui acesso para o contexto informado
READ_ACCESS Licenca vencida, habilitado acesso apenas de leitura
INVALID_LICENSE A licenca do produto nao e valida
INVALID_PAGE_MAPPING Nao existe page mapping registrado para a aplicacao
INVALID_PAGE_MAPPING_ACTION Contexto selecionado para o page mapping e invalido
path Parameters
url
required
string
Example: %2Fapi%2Fpessoas%2F123

URL do recurso a ser validado (URL-encoded)

method
required
string
Enum: "GET" "POST" "PUT" "DELETE" "PATCH"
Example: GET

Metodo HTTP do recurso

header Parameters
Page-Mapping-Version
string

Versao do arquivo de page mapping (opcional)

Responses

Response samples

Content type
application/json
{
  • "message": "string",
  • "code": "string"
}