> ## Documentation Index
> Fetch the complete documentation index at: https://docs.safest.com.br/llms.txt
> Use this file to discover all available pages before exploring further.

# Obter Token de Acesso

> Obtém um token de acesso usando as credenciais do cliente (OAuth 2.0 Client Credentials).

O access_token expira em 30 minutos. Use o refresh_token para renovar.




## OpenAPI

````yaml /openapi/jackson.yaml post /seguros/auth/token
openapi: 3.0.0
info:
  title: Safest API
  description: >
    API para integração de vendas de seguros.


    ## Como usar esta documentação


    1. **Provisionamento**: um administrador cria ou ativa um `api_client` para
    o canal

    2. **Autenticação**: o canal obtém `access_token` e `refresh_token` com
    `client_id` e `client_secret`

    3. **Venda**: o canal registra a venda pelo endpoint genérico de integração
    ou por um endpoint específico

    4. **Consulta**: quando aplicável, o canal consulta status da venda ou do
    seguro emitido


    ## Quickstart de Integração


    1. Crie o cliente de API no endpoint administrativo

    2. Guarde o `client_secret` retornado, ele não é exibido novamente

    3. Gere um token em `/seguros/auth/token`

    4. Registre vendas em `/private/integration/sale`

    5. Use integrações específicas, como Clubfix, apenas quando o produto exigir
    esse fluxo dedicado


    ## Informações sobre Tokens


    - O **access_token** expira em **30 minutos**

    - Use o **refresh_token** para obter um novo access_token sem precisar das
    credenciais

    - O **refresh_token** expira em **7 dias**
  version: '1.0'
  contact:
    email: suporte@safest.com.br
servers:
  - url: https://beta-jackson.safest.com.br/api
    description: Beta Server
  - url: https://safest.triader.com.br/api
    description: Production Server
security: []
tags:
  - name: Auth
    description: |
      Endpoints para autenticação OAuth 2.0 Client Credentials.

      Use estas rotas para obter e renovar seu token de acesso.
  - name: Administração de Clientes
    description: >
      Endpoints administrativos para provisionar, listar, ativar, desativar e
      revogar credenciais de canais integrados.


      Estes endpoints são usados pelo time interno para onboarding de parceiros
      antes do uso da integração de vendas.
  - name: Integração de Vendas
    description: >
      Endpoint genérico para registrar vendas enviadas pelos canais de venda
      integrados.


      Este fluxo é o modelo principal do novo integrador Jackson:

      - autentica o canal via `client_id` e `client_secret`

      - identifica produto e plano pelo ID interno ou código de integração

      - registra a transação com idempotência por `externalSaleId`

      - calcula comissão do canal e líquido Jackson automaticamente
  - name: Ingresso Protegido
    description: >
      Seguro que protege o valor do ingresso em caso de imprevistos que impeçam
      a presença no evento.


      **Importante:** Este endpoint registra vendas já realizadas. O pagamento é
      feito externamente pelo parceiro.
  - name: Seguro Celular
    description: >
      Seguro com proteção completa para celular contra danos acidentais, roubo,
      furto e outros imprevistos.


      Integração com sistema Clubfix para processamento de pagamentos.
  - name: Artista Protegido
    description: >
      Fluxo de venda do produto Artista Protegido.


      O canal envia apenas os dados da transação e o Jackson orquestra a emissão
      internamente.
  - name: Seguro Lua de Mel
    description: >
      Seguro que protege sua viagem de lua de mel contra imprevistos, garantindo
      tranquilidade e cobertura.
paths:
  /seguros/auth/token:
    post:
      tags:
        - Auth
      summary: Obter Token de Acesso
      description: >
        Obtém um token de acesso usando as credenciais do cliente (OAuth 2.0
        Client Credentials).


        O access_token expira em 30 minutos. Use o refresh_token para renovar.
      operationId: getToken
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - client_id
                - client_secret
              properties:
                client_id:
                  type: string
                  description: Identificador único do cliente fornecido pela Safest
                  example: seu_client_id_aqui
                client_secret:
                  type: string
                  description: Chave secreta do cliente fornecida pela Safest
                  example: seu_client_secret_aqui
      responses:
        '200':
          description: Token gerado com sucesso
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    example: true
                  response:
                    type: object
                    properties:
                      access_token:
                        type: string
                        example: a1b2c3d4e5f6g7h8i9j0.1234567890
                      refresh_token:
                        type: string
                        example: abc123def456ghi789jkl012mno345pqr678stu901vwx234yz
                      token_type:
                        type: string
                        example: Bearer
                      expires_in:
                        type: integer
                        description: Tempo de expiração em segundos (1800 = 30 minutos)
                        example: 1800
                      expires_at:
                        type: string
                        format: date-time
                        example: '2026-02-13T18:30:00+00:00'
        '401':
          description: Credenciais inválidas
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    example: false
                  response:
                    type: string
                    example: Credenciais inválidas.

````