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

# List Benefit Programs

> Lists benefit programs available for customer requests.



## OpenAPI

````yaml /api-reference/customer/openapi.json get /api/v1/customer/benefits/programs
openapi: 3.0.0
info:
  title: DEVMOB Customer API
  description: DEVMOB API
  version: '1.0'
  contact: {}
servers: []
security: []
tags:
  - name: Address
    description: Customer addresses
  - name: Auth
    description: Authentication and token lifecycle
  - name: Benefit Program
    description: Fare benefit programs
  - name: Benefit Request
    description: Fare benefit requests and documents
  - name: Checkout
    description: Checkout creation and retrieval
  - name: Credit Grant
    description: Customer credits
  - name: Invite
    description: Invitation preview and acceptance
  - name: Notification
    description: Customer inbox notifications
  - name: Offering
    description: Trip offerings and seat maps
  - name: Order
    description: Customer orders
  - name: OTP
    description: One-time password flows
  - name: Payment
    description: Payments
  - name: Payment Method
    description: Saved payment methods
  - name: Point
    description: Point lookup
  - name: Profile
    description: Authenticated customer profile
  - name: Promotion
    description: Promotions
  - name: Routing
    description: Routing helpers
  - name: Session
    description: Authenticated sessions
  - name: Storage
    description: Storage uploads
  - name: Support
    description: Support cases
  - name: Ticket
    description: Customer tickets
  - name: Trip
    description: Customer trip access
  - name: Trip Review
    description: Trip reviews
paths:
  /api/v1/customer/benefits/programs:
    get:
      tags:
        - Benefit Program
      summary: List Benefit Programs
      description: Lists benefit programs available for customer requests.
      operationId: listCustomerBenefitPrograms
      parameters:
        - name: limit
          in: query
          required: false
          schema:
            type: number
            default: 10
            minimum: 1
            maximum: 100
          description: Items per page.
        - name: page
          in: query
          required: false
          schema:
            type: number
            default: 1
            minimum: 1
          description: Page number.
        - name: filter
          in: query
          required: false
          schema:
            type: string
          description: Text search filter.
        - name: companyId
          in: query
          required: false
          schema:
            type: string
            format: uuid
          description: Company identifier.
        - name: routeId
          in: query
          required: false
          schema:
            type: string
            format: uuid
          description: Route identifier.
        - name: status
          in: query
          required: false
          schema:
            type: string
            enum:
              - ACTIVE
              - INACTIVE
          description: Program status.
        - name: sortBy
          in: query
          required: false
          schema:
            type: string
            enum:
              - priority
              - name
              - createdAt
            default: priority
          description: Field to sort by.
        - name: sortOrder
          in: query
          required: false
          schema:
            type: string
            enum:
              - asc
              - desc
            default: asc
          description: Sort direction.
        - name: fields
          in: query
          required: false
          description: >-
            Comma-separated list of fields to include in the response. Supports
            dot notation.
          schema:
            type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/FareBenefitProgram'
                  meta:
                    $ref: '#/components/schemas/PageMeta'
                required:
                  - data
                  - meta
        '400':
          $ref: '#/components/responses/BadRequestError'
        '401':
          $ref: '#/components/responses/UnauthorizedError'
        '500':
          $ref: '#/components/responses/InternalServerError'
components:
  schemas:
    FareBenefitProgram:
      type: object
      properties:
        fareBenefitProgramId:
          type: string
          format: uuid
          description: Identificador único
        fareBenefitCategoryId:
          type: string
          format: uuid
          description: Categoria genérica do benefício
        companyId:
          type: string
          format: uuid
          nullable: true
          description: Empresa dona do programa, quando for benefício comercial da empresa
        routeId:
          type: string
          format: uuid
          nullable: true
          description: Rota em que o programa se aplica, quando houver restrição por rota
        code:
          type: string
          description: Código estável do programa
        name:
          type: string
          description: Nome exibido do programa
        description:
          type: string
          nullable: true
          description: Descrição operacional do programa
        ownerType:
          type: string
          enum:
            - PLATFORM
            - COMPANY
          description: Dono da regra de aplicação
        reviewOwnerType:
          type: string
          enum:
            - PLATFORM
            - COMPANY
          description: Responsável por validar documentos e aprovar solicitações
        discountType:
          type: string
          enum:
            - PERCENTAGE
            - FIXED_AMOUNT
          description: Forma de cálculo do benefício
        discountValue:
          type: integer
          description: Valor do desconto em basis points ou centavos, conforme discountType
        maxDiscountAmount:
          type: integer
          nullable: true
          description: Valor máximo de desconto em centavos
        priority:
          type: integer
          description: Prioridade de aplicação quando mais de um programa é elegível
        cumulative:
          type: boolean
          description: Indica se pode acumular com outro benefício
        startsAt:
          type: string
          format: date-time
          nullable: true
          description: Início da vigência
        endsAt:
          type: string
          format: date-time
          nullable: true
          description: Fim da vigência
        status:
          type: string
          enum:
            - ACTIVE
            - INACTIVE
          description: Status do programa
        createdBy:
          type: string
          format: uuid
          nullable: true
          description: Usuário que criou o registro, quando aplicável
        createdAt:
          type: string
          format: date-time
          description: Data de criação
        updatedBy:
          type: string
          format: uuid
          nullable: true
          description: Usuário que fez a última atualização, quando aplicável
        updatedAt:
          type: string
          format: date-time
          description: Data da última atualização
        deletedBy:
          type: string
          format: uuid
          nullable: true
          description: Usuário que removeu o registro, quando aplicável
        deletedAt:
          type: string
          format: date-time
          nullable: true
          description: Data de remoção lógica
      required:
        - fareBenefitProgramId
        - fareBenefitCategoryId
        - companyId
        - routeId
        - code
        - name
        - description
        - ownerType
        - reviewOwnerType
        - discountType
        - discountValue
        - maxDiscountAmount
        - priority
        - cumulative
        - startsAt
        - endsAt
        - status
        - createdBy
        - createdAt
        - updatedBy
        - updatedAt
        - deletedBy
        - deletedAt
      description: Programa que define como uma categoria de benefício tarifário é aplicada
    PageMeta:
      type: object
      properties:
        limit:
          type: integer
          description: Items per page.
          example: 10
        page:
          type: integer
          description: Current page.
          example: 1
        totalItems:
          type: integer
          description: Total items.
          example: 142
        totalPages:
          type: integer
          description: Total pages.
          example: 15
      required:
        - limit
        - page
        - totalItems
        - totalPages
      description: Page-based pagination metadata.
    ValidationError:
      type: object
      properties:
        statusCode:
          type: integer
          description: HTTP status code.
          example: 400
        message:
          type: string
          description: Error message.
          example: Bad Request Error
        errors:
          type: array
          items:
            type: object
            properties:
              code:
                type: string
                description: Validation code.
                example: invalid_type
              message:
                type: string
                description: Validation message.
                example: Required
              path:
                type: string
                description: Invalid field path.
                example: name
            required:
              - code
              - message
              - path
      required:
        - statusCode
        - message
        - errors
      description: Validation error response.
    ApiError:
      type: object
      properties:
        statusCode:
          type: integer
          description: HTTP status code.
          example: 404
        error:
          type: string
          description: HTTP error name.
          example: Not Found
        message:
          type: string
          description: Machine-readable error code.
          example: resource.not_found
      required:
        - statusCode
        - error
        - message
      description: Domain error response.
  responses:
    BadRequestError:
      description: Validation failed.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ValidationError'
    UnauthorizedError:
      description: Authentication required.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ApiError'
    InternalServerError:
      description: Internal server error.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ApiError'

````