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

# Create Trip Event

> Records an event.



## OpenAPI

````yaml /api-reference/ops/openapi.json post /api/v1/ops/trips/{tripId}/events
openapi: 3.0.0
info:
  title: DEVMOB OPS API
  description: DEVMOB API
  version: '1.0'
  contact: {}
servers: []
security: []
tags:
  - name: Auth
    description: Authentication and token lifecycle
  - name: Bank Account
    description: Bank accounts
  - name: Benefit
    description: Benefit categories and usage history
  - name: Benefit Program
    description: Fare benefit programs
  - name: Benefit Request
    description: Fare benefit requests and documents
  - name: Credit Grant
    description: Company granted credits
  - name: Driver
    description: Company drivers
  - name: Employee
    description: Company employees
  - name: Employee Session
    description: Employee sessions
  - name: Export
    description: Export resources
  - name: Export Job
    description: Immediate export jobs
  - name: Export Schedule
    description: Scheduled exports
  - name: Invite
    description: Member invitations
  - name: Notification
    description: OPS inbox notifications
  - name: Offering
    description: Trip offerings and seat maps
  - name: Order
    description: Orders
  - name: Organization
    description: Organization profile
  - name: Organization Address
    description: Organization address
  - name: OTP
    description: One-time password flows
  - name: Payment
    description: Payments
  - name: Permission
    description: Permissions
  - name: Point
    description: Point lookup
  - name: Profile
    description: Authenticated OPS profile
  - name: Promotion
    description: Promotions
  - name: Promotion Rule
    description: Promotion rules
  - name: Receivable
    description: Receivables
  - name: Report
    description: Operational reports
  - name: Role
    description: Roles
  - name: Route
    description: Routes
  - name: Route Approval
    description: Route approvals
  - name: Routing
    description: Routing helpers
  - name: Storage
    description: Storage uploads
  - name: Support
    description: Support cases
  - name: Transfer
    description: Transfers
  - name: Trip
    description: Trips
  - name: Trip Event
    description: Trip operational events
  - name: Trip Schedule
    description: Recurring trip schedules
  - name: Trip Tracking
    description: Trip GPS tracking
  - name: Vehicle
    description: Vehicles and seats
paths:
  /api/v1/ops/trips/{tripId}/events:
    post:
      tags:
        - Trip Event
      summary: Create Trip Event
      description: Records an event.
      operationId: createTripEvent
      parameters:
        - name: tripId
          required: true
          in: path
          schema:
            type: string
            format: uuid
            description: Trip identifier
            example: 0195e7a1-8b5c-7d3e-9f4a-2c6b8d0e1f3a
        - name: fields
          required: false
          in: query
          description: >-
            Comma-separated list of fields to include in the response. Supports
            dot notation for nested projection (e.g.
            `id,name,user.email,trips.route.id`). Unknown fields are silently
            dropped.
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateTripEventRequest'
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TripEvent'
          description: Created
        '400':
          content:
            application/json:
              example:
                errors:
                  - message: required
                    path: name
                message: Bad Request Error
                statusCode: 400
              schema:
                properties:
                  message:
                    type: string
                  statusCode:
                    enum:
                      - 400
                    type: number
                  errors:
                    items:
                      properties:
                        message:
                          type: string
                        path:
                          type: string
                      required:
                        - message
                        - path
                      type: object
                    type: array
                required:
                  - message
                  - statusCode
                type: object
          description: Bad Request Error
        '401':
          content:
            application/json:
              example:
                message: Missing or invalid access token
                statusCode: 401
              schema:
                properties:
                  message:
                    type: string
                  statusCode:
                    enum:
                      - 401
                    type: number
                required:
                  - message
                  - statusCode
                type: object
          description: Unauthorized
        '403':
          content:
            application/json:
              example:
                message: Insufficient permissions
                statusCode: 403
              schema:
                properties:
                  message:
                    type: string
                  statusCode:
                    enum:
                      - 403
                    type: number
                required:
                  - message
                  - statusCode
                type: object
          description: Forbidden
        '500':
          content:
            application/json:
              example:
                message: Internal Server Error
                statusCode: 500
              schema:
                properties:
                  message:
                    type: string
                  statusCode:
                    enum:
                      - 500
                    type: number
                required:
                  - message
                  - statusCode
                type: object
          description: Internal Server Error
      security:
        - bearer: []
        - bearer: []
components:
  schemas:
    CreateTripEventRequest:
      allOf:
        - oneOf:
            - type: object
              properties:
                type:
                  type: string
                  enum:
                    - DRIVER_CHANGED
                metadata:
                  type: object
                  properties:
                    previousDriverId:
                      type: string
                      format: uuid
                      description: Previous driver identifier
                    previousDriverName:
                      type: string
                      description: Previous driver name
                      example: Carlos Silva
                    previousDriverLicenseNumber:
                      type: string
                      description: Previous driver license number
                      example: '12345678900'
                    newDriverId:
                      type: string
                      format: uuid
                      description: New driver identifier
                    newDriverName:
                      type: string
                      description: New driver name
                      example: João Santos
                    newDriverLicenseNumber:
                      type: string
                      description: New driver license number
                      example: '09876543211'
                  required:
                    - previousDriverId
                    - previousDriverName
                    - previousDriverLicenseNumber
                    - newDriverId
                    - newDriverName
                    - newDriverLicenseNumber
              required:
                - type
                - metadata
            - type: object
              properties:
                type:
                  type: string
                  enum:
                    - VEHICLE_CHANGED
                metadata:
                  type: object
                  properties:
                    previousVehicleId:
                      type: string
                      format: uuid
                      description: Previous vehicle identifier
                    previousVehicleLicensePlate:
                      type: string
                      description: Previous vehicle license plate
                      example: ABC-1234
                    previousVehicleModel:
                      type: string
                      description: Previous vehicle model
                      example: Paradiso G7 1200
                    newVehicleId:
                      type: string
                      format: uuid
                      description: New vehicle identifier
                    newVehicleLicensePlate:
                      type: string
                      description: New vehicle license plate
                      example: XYZ-5678
                    newVehicleModel:
                      type: string
                      description: New vehicle model
                      example: Paradiso G8 1350
                  required:
                    - previousVehicleId
                    - previousVehicleLicensePlate
                    - previousVehicleModel
                    - newVehicleId
                    - newVehicleLicensePlate
                    - newVehicleModel
              required:
                - type
                - metadata
            - type: object
              properties:
                type:
                  type: string
                  enum:
                    - DEPARTURE_DELAYED
                metadata:
                  type: object
                  properties:
                    delayMinutes:
                      type: integer
                      description: Delay in minutes
                      example: 15
                    newEstimatedTime:
                      type: string
                      description: New estimated time (ISO 8601)
                      example: '2026-04-15T08:15:00.000Z'
                      nullable: true
                    reason:
                      type: string
                      description: Delay reason
                      example: Traffic congestion
                      nullable: true
                  required:
                    - delayMinutes
              required:
                - type
                - metadata
            - type: object
              properties:
                type:
                  type: string
                  enum:
                    - ARRIVAL_DELAYED
                metadata:
                  type: object
                  properties:
                    delayMinutes:
                      type: integer
                      description: Delay in minutes
                      example: 15
                    newEstimatedTime:
                      type: string
                      description: New estimated time (ISO 8601)
                      example: '2026-04-15T08:15:00.000Z'
                      nullable: true
                    reason:
                      type: string
                      description: Delay reason
                      example: Traffic congestion
                      nullable: true
                  required:
                    - delayMinutes
              required:
                - type
                - metadata
            - type: object
              properties:
                type:
                  type: string
                  enum:
                    - BOARDING_STARTED
                metadata:
                  type: object
                  properties:
                    expectedPassengers:
                      type: integer
                      description: Expected number of passengers
                      example: 32
                      nullable: true
                    stopName:
                      type: string
                      description: Stop name where boarding started
                      example: Terminal Rodoviário Tietê
                      nullable: true
                  nullable: true
              required:
                - type
            - type: object
              properties:
                type:
                  type: string
                  enum:
                    - BOARDING_COMPLETED
                metadata:
                  type: object
                  properties:
                    totalPassengers:
                      type: integer
                      description: Total boarded passengers
                      example: 28
                    noShowCount:
                      type: integer
                      description: Passengers that did not board
                      example: 4
                      nullable: true
                    stopName:
                      type: string
                      description: Stop name where boarding completed
                      example: Terminal Rodoviário Tietê
                      nullable: true
                  required:
                    - totalPassengers
              required:
                - type
                - metadata
            - type: object
              properties:
                type:
                  type: string
                  enum:
                    - INCIDENT
                metadata:
                  type: object
                  properties:
                    severity:
                      type: string
                      enum:
                        - LOW
                        - MEDIUM
                        - HIGH
                        - CRITICAL
                      description: Incident severity
                      example: MEDIUM
                    category:
                      type: string
                      enum:
                        - MECHANICAL
                        - ACCIDENT
                        - WEATHER
                        - PASSENGER
                        - ROAD_BLOCK
                        - OTHER
                      description: Incident category
                      example: MECHANICAL
                    affectedPassengers:
                      type: integer
                      description: Number of affected passengers
                      example: 28
                      nullable: true
                    requiresReplacement:
                      type: boolean
                      description: Whether a replacement vehicle is needed
                      example: false
                      nullable: true
                  required:
                    - severity
                    - category
              required:
                - type
                - metadata
          description: Trip event type-metadata union
        - type: object
          properties:
            description:
              type: string
              description: Event description
              example: Departure delayed by 15 minutes due to traffic
              nullable: true
            tripStopId:
              type: string
              format: uuid
              description: Trip stop identifier
              example: 0195e7a1-8b5c-7d3e-9f4a-2c6b8d0e1f3c
              nullable: true
      description: Create trip event payload
    TripEvent:
      type: object
      properties:
        tripEventId:
          type: string
          format: uuid
          description: Identificador único
        tripId:
          type: string
          format: uuid
          description: Referência à viagem
        tripStopId:
          type: string
          format: uuid
          nullable: true
          description: Referência à parada específica relacionada a TripStop, opcional
        type:
          type: string
          enum:
            - DRIVER_CHANGED
            - VEHICLE_CHANGED
            - DEPARTURE_DELAYED
            - ARRIVAL_DELAYED
            - BOARDING_STARTED
            - BOARDING_COMPLETED
            - INCIDENT
          description: Tipo do evento
        description:
          type: string
          nullable: true
          description: Descrição adicional do evento
        metadata:
          type: object
          additionalProperties: true
          nullable: true
          description: Dados adicionais estruturados
        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
      required:
        - tripEventId
        - tripId
        - tripStopId
        - type
        - description
        - metadata
        - createdBy
        - createdAt
        - updatedBy
        - updatedAt
      description: Eventos operacionais registrados durante uma viagem
  securitySchemes:
    bearer:
      scheme: bearer
      bearerFormat: JWT
      type: http

````