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

# Cota planos do PayPerUse

> Para cotar um seguro viagem para dispositivos móveis, se faz necessário enviar os dados compostos no payload a seguir.

| **Campos** | **Tipo** | **Descrição** |
| --- | --- | --- |
| `maxima` | `integer` | Corresponde à importância máxima segurada, correspondente ao dispositivo que está sendo segurado. |
| `starts_at` | `date:Y-m-d` | Corresponde ao início da vigência, marcando assim quando a viagem se iniciará. |
| `ends_at` | `date:Y-m-d` | Corresponde ao fim da vigência, marcando assim quando a viagem terminará. |


<ParamField header="Accept" type="string" initialValue="application/json" required>
  Cabeçalho que indica o tipo de conteúdo aceito na resposta. Deve ser sempre `application/json`.
</ParamField>

<ParamField query="kind" type="string" initialValue="travel">
  Corresponde ao filtro pela natureza do Plano. Use `travel` para seguros viagem.
</ParamField>

<ParamField query="reference" type="string">
  Corresponde à referência criada para o plano que se deseja cotar. Este campo é opcional e serve para identificar o plano na sua base de dados.
</ParamField>

<ParamField query="maxima" type="integer" initialValue="20000">
  Corresponde à importância máxima segurada. Este valor pode ser passado como parâmetro de query ou no corpo da requisição.
</ParamField>


## OpenAPI

````yaml GET /payperuse/quote
openapi: 3.0.3
info:
  title: PayPerUse Unified API
  description: >
    API para contratação e gerenciamento de seguros viagem para dispositivos
    móveis.


    Esta API permite cotar planos, contratar seguros, processar pagamentos e
    gerenciar seguros viagem.


    Observação: Utilize sempre os cabeçalhos `Content-Type` e `Accept` como
    `application/json`
  version: 1.0.0
servers:
  - url: https://homolog.clubfix.com.br/webservice
    description: Ambiente de Homologação
  - url: https://clubfix.com.br/webservice
    description: Ambiente de Produção
security:
  - bearerAuth: []
tags:
  - name: Autenticação
    description: Endpoints para autenticação e obtenção de tokens
  - name: Cotação
    description: Endpoints para cotação de planos de seguro viagem
  - name: Contratação
    description: Endpoints para contratação de seguros viagem
  - name: Pagamento
    description: Endpoints para processamento de pagamentos
  - name: Anexos
    description: Endpoints para anexar documentos
  - name: Seguros
    description: Endpoints para consulta e gerenciamento de seguros
paths:
  /payperuse/quote:
    get:
      tags:
        - Cotação
      summary: Cota planos de seguro viagem
      description: >
        Para cotar um seguro viagem para dispositivos móveis, se faz necessário
        enviar os dados compostos no payload a seguir.


        | **Campos** | **Tipo** | **Descrição** |

        | --- | --- | --- |

        | `maxima` | `integer` | Corresponde à importância máxima segurada,
        correspondente ao dispositivo que está sendo segurado. |

        | `starts_at` | `date:Y-m-d` | Corresponde ao início da vigência,
        marcando assim quando a viagem se iniciará. |

        | `ends_at` | `date:Y-m-d` | Corresponde ao fim da vigência, marcando
        assim quando a viagem terminará. |
      operationId: quotePlans
      parameters:
        - name: Accept
          in: header
          required: true
          schema:
            type: string
            default: application/json
        - name: kind
          in: query
          description: Corresponde ao filtro pela natureza do Plano
          schema:
            type: string
            example: travel
        - name: reference
          in: query
          description: Corresponde à referência criada para o plano que se deseja cotar.
          schema:
            type: string
            example: MINHA_REF_PLANO_CLUBFIX
        - name: maxima
          in: query
          description: Corresponde à importância máxima segurada
          schema:
            type: integer
            example: 20000
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - maxima
                - starts_at
                - ends_at
              properties:
                maxima:
                  type: integer
                  description: >-
                    Corresponde à importância máxima segurada, correspondente ao
                    dispositivo que está sendo segurado.
                  example: 20000
                starts_at:
                  type: string
                  format: date
                  description: >-
                    Corresponde ao início da vigência, marcando assim quando a
                    viagem se iniciará.
                  example: '2025-12-17'
                ends_at:
                  type: string
                  format: date
                  description: >-
                    Corresponde ao fim da vigência, marcando assim quando a
                    viagem terminará.
                  example: '2025-12-30'
                model_id:
                  type: integer
                  description: ID do modelo do dispositivo (opcional)
                  example: 1
            example:
              maxima: 20000
              starts_at: '2025-12-17'
              ends_at: '2025-12-30'
      responses:
        '200':
          description: Cotação de Planos realizada com sucesso
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Plan'
              example:
                - id: 1
                  name: Lua de Mel iCasei
                  premium: 90
                  kind: travel
                  maximum_term: 15
                  franchise_percent: 12
                  lmi: 10000
                  reference: ICASEI_LUA_DE_MEL
        '401':
          $ref: '#/components/responses/Unauthorized'
        '422':
          $ref: '#/components/responses/ValidationError'
        '500':
          $ref: '#/components/responses/ServerError'
components:
  schemas:
    Plan:
      type: object
      properties:
        id:
          type: integer
          example: 1
        name:
          type: string
          example: Lua de Mel iCasei
        premium:
          type: number
          format: float
          example: 90
        kind:
          type: string
          example: travel
        maximum_term:
          type: integer
          example: 15
        franchise_percent:
          type: number
          format: float
          example: 12
        lmi:
          type: integer
          example: 10000
        reference:
          type: string
          example: ICASEI_LUA_DE_MEL
    ValidationError:
      type: object
      properties:
        message:
          type: string
          example: The given data was invalid.
        errors:
          type: object
          additionalProperties:
            type: array
            items:
              type: string
          example:
            credit_card:
              - validation.required_if
            credit_card.number:
              - validation.required_if
            credit_card.expirate_at:
              - validation.required_if
            credit_card.cvv:
              - validation.required_if
  responses:
    Unauthorized:
      description: Não autorizado. Token inválido ou ausente.
      content:
        application/json:
          schema:
            type: object
            properties:
              message:
                type: string
                example: Unauthenticated.
    ValidationError:
      description: Erro de validação nos dados fornecidos
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ValidationError'
    ServerError:
      description: Erro interno do servidor
      content:
        application/json:
          schema:
            type: object
            properties:
              message:
                type: string
                example: Internal server error.
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: Token de autenticação obtido através do endpoint de autenticação

````