> ## 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.

# Criar Transação de Seguro Celular

> Cria uma transação de Seguro Celular com integração ao sistema Clubfix para processamento de pagamentos.




## OpenAPI

````yaml /openapi/jackson.yaml post /seguros/seguro-celular/create
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/seguro-celular/create:
    post:
      tags:
        - Seguro Celular
      summary: Criar Transação de Seguro Celular
      description: >
        Cria uma transação de Seguro Celular com integração ao sistema Clubfix
        para processamento de pagamentos.
      operationId: createSeguroCelular
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - productId
                - channelLink
                - nameOrRazao
                - cpfOrCnpj
                - artisticName
                - email
                - phone
                - musicalGenre
              properties:
                productId:
                  type: integer
                  description: ID do produto na tabela product
                  example: 12
                channelLink:
                  type: string
                  description: Identificador do canal de venda
                  example: partner-link-abc123
                plan:
                  type: object
                  description: Plano selecionado (opcional)
                  properties:
                    id:
                      type: integer
                      example: 1
                nameOrRazao:
                  type: string
                  description: Nome completo ou Razão Social do segurado
                  example: João da Silva
                cpfOrCnpj:
                  type: string
                  description: CPF ou CNPJ do segurado (apenas números)
                  example: '12345678900'
                artisticName:
                  type: string
                  description: Nome artístico ou apelido
                  example: João
                email:
                  type: string
                  format: email
                  description: Email do segurado
                  example: joao@email.com
                phone:
                  type: string
                  description: Telefone do segurado
                  example: +55 11 99999-9999
                musicalGenre:
                  type: string
                  description: Categoria ou gênero
                  example: Categoria
                nomeSocial:
                  type: string
                  description: Nome social do segurado (opcional)
                insurance:
                  type: array
                  description: Lista de seguros adicionais (opcional)
                  items:
                    type: object
                    properties:
                      id:
                        type: integer
                        example: 2
                additionalInsured:
                  type: array
                  description: Lista de pessoas adicionais a serem incluídas no seguro
                  items:
                    type: object
                    required:
                      - name
                      - cpfOrCnpj
                      - birthDate
                    properties:
                      name:
                        type: string
                        description: Nome completo
                        example: Maria Silva
                      cpfOrCnpj:
                        type: string
                        description: CPF ou CNPJ
                        example: '98765432100'
                      birthDate:
                        type: string
                        format: date
                        description: Data de nascimento (YYYY-MM-DD)
                        example: '1990-05-20'
                      email:
                        type: string
                        format: email
                        description: Email (opcional)
                        example: maria@email.com
                      phone:
                        type: string
                        description: Telefone (opcional)
                        example: +55 11 98888-8888
                clubfixData:
                  type: object
                  description: Dados específicos para integração com Clubfix
                  properties:
                    startsAt:
                      type: string
                      format: date-time
                      description: Data/hora de início da cobertura
                      example: '2026-03-01T10:00:00'
                    endsAt:
                      type: string
                      format: date-time
                      description: Data/hora de fim da cobertura
                      example: '2026-03-15T18:00:00'
                    origin:
                      type: string
                      description: Local de origem
                      example: São Paulo
                    destination:
                      type: string
                      description: Local de destino
                      example: Rio de Janeiro
                    paymentMethod:
                      type: string
                      description: Método de pagamento no Clubfix
                      example: credit_card
                payment:
                  type: object
                  description: >-
                    Dados do cartão para pagamento (opcional - se não informado,
                    gera link de pagamento)
                  properties:
                    method_id:
                      type: integer
                      description: ID do método de pagamento
                      example: 1
                    cardNumber:
                      type: string
                      description: Número do cartão
                      example: '4111111111111111'
                    cardExpiry:
                      type: string
                      description: Data de validade (MM/YY)
                      example: 12/28
                    cardCVC:
                      type: string
                      description: Código de segurança
                      example: '123'
                saleDate:
                  type: string
                  format: date
                  description: >-
                    Data da venda. Se não informado, usa a data atual. Não pode
                    ser futura.
                  example: '2026-02-25'
      responses:
        '200':
          description: Transação criada com sucesso
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    example: Transaction created successfully
                  link:
                    type: string
                    description: Link de pagamento (quando não informado payment)
                    example: https://api.safest.com/fast-pay/abc123
        '400':
          description: Erro de validação
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Sale date cannot be in the future.
        '401':
          description: Não autorizado
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedError'
      security:
        - bearerAuth: []
components:
  schemas:
    UnauthorizedError:
      type: object
      properties:
        success:
          type: boolean
          example: false
        response:
          type: string
          example: Token not found.
        status_code:
          type: string
          example: '401'
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: |
        Token JWT obtido através do endpoint /seguros/auth/token.

        Exemplo: Authorization: Bearer {seu_token}

````