Entur Booking API

The Booking API from Entur — 8 operation(s) for booking.

Business capability
Ground Transport AE-210.30

Operations 8

PUT /bookings/{bookingId}/retry-failed-payment/{recurringPaymentId} Retry failed payment #
POST /bookings/{transportOperatorBookingId}/notification Send notification #
POST /bookings/{bookingId}/one-stop/event One stop event #
POST /bookings/one-stop Create one stop booking #
POST /bookings/leg/{transportOperatorLegId}/event Update booking with legs id events post #
GET /bookings Get bookings #
GET /bookings/{customerNumber}/active Get active bookings #
GET /bookings/{bookingId} Get booking #

Specifications

Schemas & Data

📊
JSONSchema
https://artifacts.apis.io/entur/json-schema/entur-partner-dataset-rpt-schema.json
📊
JSONSchema
https://artifacts.apis.io/entur/json-schema/entur-partner-dataset-download-job-dto-schema.json
📊
JSONSchema
https://artifacts.apis.io/entur/json-schema/entur-partner-settlement-import-dto-schema.json
📊
JSONSchema
https://artifacts.apis.io/entur/json-schema/entur-partner-settlement-import-response-dto-schema.json
📊
JSONSchema
https://artifacts.apis.io/entur/json-schema/entur-given-consent-response-schema.json
📊
JSONSchema
https://artifacts.apis.io/entur/json-schema/entur-consent-crm-response-schema.json
📊
JSONSchema
https://artifacts.apis.io/entur/json-schema/entur-consent-base-response-schema.json
📊
JSONSchema
https://artifacts.apis.io/entur/json-schema/entur-given-consent-bulk-update-request-schema.json
📊
JSONSchema
https://artifacts.apis.io/entur/json-schema/entur-given-consent-request-schema.json
📊
JSONSchema
https://artifacts.apis.io/entur/json-schema/entur-consent-base-request-schema.json
📊
JSONSchema
https://artifacts.apis.io/entur/json-schema/entur-customer-response-schema.json
📊
JSONSchema
https://artifacts.apis.io/entur/json-schema/entur-temporary-customer-response-schema.json
📊
JSONSchema
https://artifacts.apis.io/entur/json-schema/entur-customer-post-request-schema.json
📊
JSONSchema
https://artifacts.apis.io/entur/json-schema/entur-customer-put-request-schema.json
📊
JSONSchema
https://artifacts.apis.io/entur/json-schema/entur-ecard-ownership-response-schema.json
📊
JSONSchema
https://artifacts.apis.io/entur/json-schema/entur-temporary-customer-post-request-schema.json
📊
JSONSchema
https://artifacts.apis.io/entur/json-schema/entur-result-schema.json
📊
JSONSchema
https://artifacts.apis.io/entur/json-schema/entur-quota-request-v1-schema.json
📊
JSONSchema
https://artifacts.apis.io/entur/json-schema/entur-quota-configuration-response-v1-schema.json
📊
JSONSchema
https://artifacts.apis.io/entur/json-schema/entur-quota-response-v1-schema.json
📊
JSONSchema
https://artifacts.apis.io/entur/json-schema/entur-reservation-response-v1-schema.json
📊
JSONSchema
https://artifacts.apis.io/entur/json-schema/entur-quota-configuration-schema.json
📊
JSONSchema
https://artifacts.apis.io/entur/json-schema/entur-multi-stock-response-schema.json
📊
JSONSchema
https://artifacts.apis.io/entur/json-schema/entur-search-geo-location-request-schema.json
📊
JSONSchema
https://artifacts.apis.io/entur/json-schema/entur-search-authority-request-schema.json
📊
JSONSchema
https://artifacts.apis.io/entur/json-schema/entur-search-response-schema.json
📊
JSONSchema
https://artifacts.apis.io/entur/json-schema/entur-search-trip-pattern-request-schema.json
📊
JSONSchema
https://artifacts.apis.io/entur/json-schema/entur-collection-info-schema.json
📊
JSONSchema
https://artifacts.apis.io/entur/json-schema/entur-customer-input-schema.json
📊
JSONSchema
https://artifacts.apis.io/entur/json-schema/entur-search-offer-input-schema.json
📊
JSONSchema
https://artifacts.apis.io/entur/json-schema/entur-subscriber-schema.json
📊
JSONSchema
https://artifacts.apis.io/entur/json-schema/entur-extend-expiry-time-input-schema.json
📊
JSONSchema
https://artifacts.apis.io/entur/json-schema/entur-update-traveller-input-schema.json
📊
JSONSchema
https://artifacts.apis.io/entur/json-schema/entur-order-note-response-schema.json
📊
JSONSchema
https://artifacts.apis.io/entur/json-schema/entur-order-note-request-schema.json
📊
JSONSchema
https://artifacts.apis.io/entur/json-schema/entur-page-of-order-note-response-schema.json
📊
JSONSchema
https://artifacts.apis.io/entur/json-schema/entur-order-line-request-schema.json
📊
JSONSchema
https://artifacts.apis.io/entur/json-schema/entur-order-schema.json
📊
JSONSchema
https://artifacts.apis.io/entur/json-schema/entur-fee-request-schema.json
📊
JSONSchema
https://artifacts.apis.io/entur/json-schema/entur-order-create-request-schema.json
📊
JSONSchema
https://artifacts.apis.io/entur/json-schema/entur-order-line-schema.json
📊
JSONSchema
https://artifacts.apis.io/entur/json-schema/entur-order-request-schema.json
📊
JSONSchema
https://artifacts.apis.io/entur/json-schema/entur-payment-response-schema.json
📊
JSONSchema
https://artifacts.apis.io/entur/json-schema/entur-transaction-response-schema.json
📊
JSONSchema
https://artifacts.apis.io/entur/json-schema/entur-credit-response-schema.json
📊
JSONSchema
https://artifacts.apis.io/entur/json-schema/entur-transaction-import-request-schema.json
📊
JSONSchema
https://artifacts.apis.io/entur/json-schema/entur-transaction-request-schema.json
📊
JSONSchema
https://artifacts.apis.io/entur/json-schema/entur-terminal-request-schema.json
📊
JSONSchema
https://artifacts.apis.io/entur/json-schema/entur-program-schema.json
📊
JSONSchema
https://artifacts.apis.io/entur/json-schema/entur-transaction-by-order-schema.json
📊
JSONSchema
https://artifacts.apis.io/entur/json-schema/entur-current-level-summary-schema.json
📊
JSONSchema
https://artifacts.apis.io/entur/json-schema/entur-current-level-summary-query-schema.json
📊
JSONSchema
https://artifacts.apis.io/entur/json-schema/entur-point-period-schema.json
📊
JSONSchema
https://artifacts.apis.io/entur/json-schema/entur-customer-membership-schema.json
📊
JSONSchema
https://artifacts.apis.io/entur/json-schema/entur-employee-response-schema.json
📊
JSONSchema
https://artifacts.apis.io/entur/json-schema/entur-imported-employee-request-schema.json
📊
JSONSchema
https://artifacts.apis.io/entur/json-schema/entur-imported-employee-response-schema.json
📊
JSONSchema
https://artifacts.apis.io/entur/json-schema/entur-contract-response-schema.json
📊
JSONSchema
https://artifacts.apis.io/entur/json-schema/entur-imported-employee-merge-patch-request-schema.json
📊
JSONSchema
https://artifacts.apis.io/entur/json-schema/entur-entitlement-response-schema.json
📊
JSONSchema
https://artifacts.apis.io/entur/json-schema/entur-zonal-stop-place-distance-request-schema.json
📊
JSONSchema
https://artifacts.apis.io/entur/json-schema/entur-fare-zone-distance-response-schema.json
📊
JSONSchema
https://artifacts.apis.io/entur/json-schema/entur-fare-zone-distance-request-schema.json
📊
JSONSchema
https://artifacts.apis.io/entur/json-schema/entur-coordinate-distance-response-schema.json
📊
JSONSchema
https://artifacts.apis.io/entur/json-schema/entur-distance-calculation-response-schema.json
📊
JSONSchema
https://artifacts.apis.io/entur/json-schema/entur-fare-table-response-schema.json
📊
JSONSchema
https://artifacts.apis.io/entur/json-schema/entur-fare-table-request-schema.json
📊
JSONSchema
https://artifacts.apis.io/entur/json-schema/entur-version-response-schema.json
📊
JSONSchema
https://artifacts.apis.io/entur/json-schema/entur-version-request-schema.json
📊
JSONSchema
https://artifacts.apis.io/entur/json-schema/entur-purchase-window-request-schema.json
📊
JSONSchema
https://artifacts.apis.io/entur/json-schema/entur-purchase-window-response-schema.json
📊
JSONSchema
https://artifacts.apis.io/entur/json-schema/entur-purchase-window-list-response-schema.json
📊
JSONSchema
https://artifacts.apis.io/entur/json-schema/entur-supplement-product-response-schema.json
📊
JSONSchema
https://artifacts.apis.io/entur/json-schema/entur-supplement-product-request-schema.json
📊
JSONSchema
https://artifacts.apis.io/entur/json-schema/entur-sales-offer-package-response-schema.json
📊
JSONSchema
https://artifacts.apis.io/entur/json-schema/entur-sales-offer-package-publication-response-schema.json
📊
JSONSchema
https://artifacts.apis.io/entur/json-schema/entur-sales-offer-package-assignment-request-schema.json
📊
JSONSchema
https://artifacts.apis.io/entur/json-schema/entur-supplement-product-schema.json
📊
JSONSchema
https://artifacts.apis.io/entur/json-schema/entur-generic-parameter-assignment-schema.json
📊
JSONSchema
https://artifacts.apis.io/entur/json-schema/entur-exchanging-schema.json
📊
JSONSchema
https://artifacts.apis.io/entur/json-schema/entur-amount-of-price-unit-product-schema.json
📊
JSONSchema
https://artifacts.apis.io/entur/json-schema/entur-capped-discount-right-schema.json
📊
JSONSchema
https://artifacts.apis.io/entur/json-schema/entur-sale-discount-right-schema.json
📊
JSONSchema
https://artifacts.apis.io/entur/json-schema/entur-netex-import-schema.json
📊
JSONSchema
https://artifacts.apis.io/entur/json-schema/entur-send-receipt-request-schema.json
📊
JSONSchema
https://artifacts.apis.io/entur/json-schema/entur-user-receipt-response-schema.json
📊
JSONSchema
https://artifacts.apis.io/entur/json-schema/entur-receipt-type-response-schema.json
📊
JSONSchema
https://artifacts.apis.io/entur/json-schema/entur-refund-response-schema.json
📊
JSONSchema
https://artifacts.apis.io/entur/json-schema/entur-refund-option-response-schema.json
📊
JSONSchema
https://artifacts.apis.io/entur/json-schema/entur-dry-run-refund-response-schema.json
📊
JSONSchema
https://artifacts.apis.io/entur/json-schema/entur-compensation-operation-request-schema.json
📊
JSONSchema
https://artifacts.apis.io/entur/json-schema/entur-refund-request-schema.json
📊
JSONSchema
https://artifacts.apis.io/entur/json-schema/entur-compensation-request-schema.json
📊
JSONSchema
https://artifacts.apis.io/entur/json-schema/entur-change-order-lines-request-schema.json
📊
JSONSchema
https://artifacts.apis.io/entur/json-schema/entur-order-line-ids-and-reservation-ids-schema.json
📊
JSONSchema
https://artifacts.apis.io/entur/json-schema/entur-reserve-offers-request-schema.json
📊
JSONSchema
https://artifacts.apis.io/entur/json-schema/entur-add-supplement-products-request-schema.json
📊
JSONSchema
https://artifacts.apis.io/entur/json-schema/entur-reserve-third-party-products-request-schema.json
📊
JSONSchema
https://artifacts.apis.io/entur/json-schema/entur-reserve-third-party-products-response-schema.json
📊
JSONSchema
https://artifacts.apis.io/entur/json-schema/entur-seating-offer-debug-response-schema.json
📊
JSONSchema
https://artifacts.apis.io/entur/json-schema/entur-rebooked-reservation-response-v1-schema.json
📊
JSONSchema
https://artifacts.apis.io/entur/json-schema/entur-rebooked-reservation-response-schema.json
📊
JSONSchema
https://artifacts.apis.io/entur/json-schema/entur-reservation-response-schema.json
📊
JSONSchema
https://artifacts.apis.io/entur/json-schema/entur-seating-offer-response-schema.json
📊
JSONSchema
https://artifacts.apis.io/entur/json-schema/entur-reservation-line-response-schema.json
📊
JSONSchema
https://artifacts.apis.io/entur/json-schema/entur-reserve-specific-seats-request-schema.json
📊
JSONSchema
https://artifacts.apis.io/entur/json-schema/entur-map-string-string-schema.json
📊
JSONSchema
https://artifacts.apis.io/entur/json-schema/entur-seq-cancel-seat-request-schema.json
📊
JSONSchema
https://artifacts.apis.io/entur/json-schema/entur-seq-companion-for-seat-response-schema.json
📊
JSONSchema
https://artifacts.apis.io/entur/json-schema/entur-seq-journey-query-schema.json
📊
JSONSchema
https://artifacts.apis.io/entur/json-schema/entur-seq-product-attribute-request-schema.json
📊
JSONSchema
https://artifacts.apis.io/entur/json-schema/entur-asset-schema.json
📊
JSONSchema
https://artifacts.apis.io/entur/json-schema/entur-booking-response-schema.json
📊
JSONSchema
https://artifacts.apis.io/entur/json-schema/entur-support-request-schema.json
📊
JSONSchema
https://artifacts.apis.io/entur/json-schema/entur-one-stop-booking-schema.json
📊
JSONSchema
https://artifacts.apis.io/entur/json-schema/entur-one-stop-booking-event-schema.json
📊
JSONSchema
https://artifacts.apis.io/entur/json-schema/entur-notification-schema.json
📊
JSONSchema
https://artifacts.apis.io/entur/json-schema/entur-post-skoleskyss-request-schema.json
📊
JSONSchema
https://artifacts.apis.io/entur/json-schema/entur-post-skoleskyss-response-schema.json
📊
JSONSchema
https://artifacts.apis.io/entur/json-schema/entur-delete-skoleskyss-response-schema.json

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/entur:entur-booking-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

entur-booking-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Entur shared mobility Booking API
  description: This is the API for Entur shared mobility. It is used to communicate with the Entur shared mobility platform. The API is based on the TOMP-API standard and is used to manage bookings, payments, and other operations related to shared mobility. The API is designed to be easy to use and understand, with clear documentation and examples. The API is also designed to be secure, with support for OAuth2 authentication and authorization.
  contact:
    name: Team Delingsmobilitet
  version: 2026.09.2
servers:
- url: https://api.entur.io/shared-mobility/v1
  description: Generated server url
security:
- Authorization: []
tags:
- name: Booking
paths:
  /bookings/{bookingId}/retry-failed-payment/{recurringPaymentId}:
    parameters:
    - $ref: '#/components/parameters/ET-Client-Name'
    - $ref: '#/components/parameters/X-Correlation-Id'
    put:
      tags:
      - Booking
      operationId: retryFailedPayment
      parameters:
      - name: Accept-Language
        in: header
        required: false
        style: simple
        explode: false
        schema:
          type: string
      - name: bookingId
        in: path
        required: true
        style: simple
        explode: false
        schema:
          type: string
          format: uuid
      - name: recurringPaymentId
        in: path
        required: true
        style: simple
        explode: false
        schema:
          type: integer
          format: int64
      responses:
        '400':
          description: Invalid request data
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '402':
          description: Payment Required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '403':
          description: Insufficient permissions
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '409':
          description: Resource conflict
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '500':
          description: Unexpected server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ApiError'
      summary: Retry failed payment
      x-summary-source: derived
  /bookings/{transportOperatorBookingId}/notification:
    parameters:
    - $ref: '#/components/parameters/ET-Client-Name'
    - $ref: '#/components/parameters/X-Correlation-Id'
    post:
      tags:
      - Booking
      description: Send a message to the end user
      operationId: sendNotification
      parameters:
      - name: Accept-Language
        in: header
        required: false
        style: simple
        explode: false
        schema:
          type: string
      - name: transportOperatorBookingId
        in: path
        required: true
        style: simple
        explode: false
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Notification'
        required: true
      responses:
        '400':
          description: Invalid request data
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '403':
          description: Insufficient permissions
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '409':
          description: Resource conflict
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '500':
          description: Unexpected server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ApiError'
      summary: Send notification
      x-summary-source: derived
  /bookings/{bookingId}/one-stop/event:
    parameters:
    - $ref: '#/components/parameters/ET-Client-Name'
    - $ref: '#/components/parameters/X-Correlation-Id'
    post:
      tags:
      - Booking
      description: Change the leg event for a one-stop booking
      operationId: oneStopEvent
      parameters:
      - name: Accept-Language
        in: header
        required: false
        style: simple
        explode: false
        schema:
          type: string
      - name: bookingId
        in: path
        required: true
        style: simple
        explode: false
        schema:
          type: string
          format: uuid
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OneStopBookingEvent'
        required: true
      responses:
        '200':
          description: BookingResponse
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/BookingResponse'
        '400':
          description: Invalid request data
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '402':
          description: Payment Required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '403':
          description: Insufficient permissions
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '409':
          description: Resource conflict
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '500':
          description: Unexpected server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ApiError'
      summary: One stop event
      x-summary-source: derived
  /bookings/one-stop:
    parameters:
    - $ref: '#/components/parameters/ET-Client-Name'
    - $ref: '#/components/parameters/X-Correlation-Id'
    post:
      tags:
      - Booking
      description: Create a one-stop booking
      operationId: createOneStopBooking
      parameters:
      - name: Entur-Distribution-Channel
        in: header
        required: true
        style: simple
        explode: false
        schema:
          type: string
      - name: Accept-Language
        in: header
        required: false
        style: simple
        explode: false
        schema:
          type: string
      - name: Operator-Id
        in: header
        required: true
        style: simple
        explode: false
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OneStopBooking'
        required: true
      responses:
        '200':
          description: BookingResponse
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/BookingResponse'
        '400':
          description: Invalid request data
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '402':
          description: Payment Required
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '403':
          description: Insufficient permissions
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '409':
          description: Resource conflict
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '500':
          description: Unexpected server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ApiError'
      summary: Create one stop booking
      x-summary-source: derived
  /bookings/leg/{transportOperatorLegId}/event:
    parameters:
    - $ref: '#/components/parameters/ET-Client-Name'
    - $ref: '#/components/parameters/X-Correlation-Id'
    post:
      tags:
      - Booking
      description: Change the leg event for a one-stop booking
      operationId: updateBookingWithLegsIdEventsPost
      parameters:
      - name: Operator-Id
        in: header
        required: true
        style: simple
        explode: false
        schema:
          type: string
      - name: Accept-Language
        in: header
        required: false
        style: simple
        explode: false
        schema:
          type: string
      - name: transportOperatorLegId
        in: path
        required: true
        style: simple
        explode: false
        schema:
          type: string
      - name: oneStopState
        in: query
        required: true
        style: form
        explode: true
        schema:
          type: string
          enum:
          - PREPARE
          - START
          - PAUSE
          - RESUME
          - START_FINISHING
          - FINISH
          - CANCEL
      responses:
        '400':
          description: Invalid request data
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '403':
          description: Insufficient permissions
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '409':
          description: Resource conflict
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '500':
          description: Unexpected server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ApiError'
      summary: Update booking with legs id events post
      x-summary-source: derived
  /bookings:
    parameters:
    - $ref: '#/components/parameters/ET-Client-Name'
    - $ref: '#/components/parameters/X-Correlation-Id'
    get:
      tags:
      - Booking
      description: Get a list of all bookings given customer ID
      operationId: getBookings
      parameters:
      - name: Accept-Language
        in: header
        required: false
        style: simple
        explode: false
        schema:
          type: string
      - name: customerId
        in: query
        required: false
        style: form
        explode: true
        schema:
          type: integer
          format: int64
      - name: customerNumber
        in: query
        required: false
        style: form
        explode: true
        schema:
          type: integer
          format: int64
      - name: active
        in: query
        required: false
        style: form
        explode: true
        schema:
          type: boolean
      - name: paymentStatus
        in: query
        required: false
        style: form
        explode: true
        schema:
          type: string
          enum:
          - UNPAID
          - PAID
          - PAYMENT_FAILED
      responses:
        '200':
          description: List<BookingResponse>
          content:
            application/problem+json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/BookingResponse'
        '400':
          description: Invalid request data
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '403':
          description: Insufficient permissions
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '409':
          description: Resource conflict
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '500':
          description: Unexpected server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ApiError'
      deprecated: true
      summary: Get bookings
      x-summary-source: derived
  /bookings/{customerNumber}/active:
    parameters:
    - $ref: '#/components/parameters/ET-Client-Name'
    - $ref: '#/components/parameters/X-Correlation-Id'
    get:
      tags:
      - Booking
      description: Get active bookings for a given customer number
      operationId: getActiveBookings
      parameters:
      - name: Accept-Language
        in: header
        required: false
        style: simple
        explode: false
        schema:
          type: string
      - name: customerNumber
        in: path
        required: true
        style: simple
        explode: false
        schema:
          type: integer
          format: int64
      responses:
        '200':
          description: List<BookingResponse>
          content:
            application/problem+json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/BookingResponse'
        '400':
          description: Invalid request data
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '403':
          description: Insufficient permissions
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '409':
          description: Resource conflict
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '500':
          description: Unexpected server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ApiError'
      summary: Get active bookings
      x-summary-source: derived
  /bookings/{bookingId}:
    parameters:
    - $ref: '#/components/parameters/ET-Client-Name'
    - $ref: '#/components/parameters/X-Correlation-Id'
    get:
      tags:
      - Booking
      description: Get a booking given booking ID
      operationId: getBooking
      parameters:
      - name: Accept-Language
        in: header
        required: false
        style: simple
        explode: false
        schema:
          type: string
      - name: bookingId
        in: path
        required: true
        style: simple
        explode: false
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: BookingResponse
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/BookingResponse'
        '400':
          description: Invalid request data
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '403':
          description: Insufficient permissions
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '409':
          description: Resource conflict
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '500':
          description: Unexpected server error
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ApiError'
      summary: Get booking
      x-summary-source: derived
components:
  schemas:
    Operator:
      type: object
      properties:
        id:
          type: string
        name:
          type: string
      required:
      - id
      - name
    PricingPlanDto:
      type: object
      properties:
        currency:
          type: string
        price:
          type: number
          format: double
        perMinPricing:
          type:
          - array
          - 'null'
          items:
            $ref: '#/components/schemas/PricingSegmentDto'
      required:
      - currency
      - price
      title: PricingPlan
    PriceAdjustmentDto:
      type: object
      properties:
        amount:
          type: number
          format: double
        description:
          type: string
      required:
      - amount
      - description
      title: PriceAdjustment
    Asset:
      type: object
      properties:
        operator:
          $ref: '#/components/schemas/Operator'
        id:
          type:
          - string
          - 'null'
        systemId:
          type:
          - string
          - 'null'
        stationId:
          type:
          - string
          - 'null'
        formFactor:
          type:
          - string
          - 'null'
          enum:
          - BICYCLE
          - CARGO_BICYCLE
          - CAR
          - MOPED
          - SCOOTER
          - SCOOTER_STANDING
          - SCOOTER_SEATED
          - OTHER
        licensePlate:
          type:
          - string
          - 'null'
        stateOfCharge:
          type:
          - integer
          - 'null'
          format: int32
        currentRangeKm:
          type:
          - integer
          - 'null'
          format: int32
        vehicleMaxRangeInMeters:
          type:
          - integer
          - 'null'
          format: int32
        vehicleCode:
          type:
          - string
          - 'null'
        vehicleTypeId:
          type:
          - string
          - 'null'
        coordinates:
          oneOf:
          - $ref: '#/components/schemas/Coordinates'
          - type: 'null'
        propulsionType:
          type:
          - string
          - 'null'
          enum:
          - HUMAN
          - ELECTRIC_ASSIST
          - ELECTRIC
          - COMBUSTION
          - COMBUSTION_DIESEL
          - HYBRID
          - PLUG_IN_HYBRID
          - HYDROGEN_FUEL_CELL
        stationSlotName:
          type:
          - string
          - 'null'
      required:
      - operator
    OneStopBookingEvent:
      type: object
      properties:
        event:
          type: string
          enum:
          - PREPARE
          - START
          - PAUSE
          - RESUME
          - START_FINISHING
          - FINISH
          - CANCEL
        fileName:
          type:
          - string
          - 'null'
        fileType:
          type:
          - string
          - 'null'
        fileData:
          type:
          - string
          - 'null'
          format: byte
      required:
      - event
    Notification:
      type: object
      properties:
        originOperator:
          type: string
        message:
          type:
          - string
          - 'null'
      required:
      - originOperator
    OneStopBooking:
      type: object
      properties:
        customerNumber:
          type: integer
          format: int64
        recurringPaymentId:
          type: integer
          format: int64
        coordinates:
          $ref: '#/components/schemas/Coordinates'
        assetId:
          type:
          - string
          - 'null'
        stationId:
          type:
          - string
          - 'null'
        vehicleTypeId:
          type:
          - string
          - 'null'
        autoStart:
          type:
          - boolean
          - 'null'
        priceAdjustments:
          type: array
          items:
            $ref: '#/components/schemas/PriceAdjustmentDto'
        pricingPlan:
          type:
          - string
          - 'null'
      required:
      - coordinates
      - customerNumber
      - priceAdjustments
      - recurringPaymentId
    PricingDto:
      type: object
      properties:
        currentAmount:
          type: number
          format: double
        originalAmount:
          type: number
          format: double
        finalAmount:
          type:
          - number
          - 'null'
          format: double
        priceAdjustments:
          type: array
          items:
            $ref: '#/components/schemas/PriceAdjustmentDto'
        paymentStatus:
          type: string
          enum:
          - UNPAID
          - PAID
          - PAYMENT_FAILED
        surcharge:
          type:
          - string
          - 'null'
      required:
      - currentAmount
      - originalAmount
      - paymentStatus
      - priceAdjustments
      title: Pricing
    ApiError:
      type: object
      properties:
        type:
          type: string
        status:
          type: integer
          format: int32
        title:
          type: string
        detail:
          type: string
        instance:
          type: string
        timestamp:
          type: string
          format: date-time
        exception:
          type: string
        error:
          type: string
        message:
          type: string
        path:
          type: string
      required:
      - detail
      - error
      - exception
      - instance
      - message
      - path
      - status
      - timestamp
      - title
      - type
    Coordinates:
      type: object
      properties:
        longitude:
          type: number
          format: float
        latitude:
          type: number
          format: float
        altitude:
          type:
          - number
          - 'null'
          format: float
      required:
      - latitude
      - longitude
    PricingSegmentDto:
      type: object
      properties:
        start:
          type: integer
          format: int32
        end:
          type:
          - integer
          - 'null'
          format: int32
        interval:
          type: integer
          format: int32
        rate:
          type: number
          format: double
      required:
      - interval
      - rate
      - start
      title: PricingSegment
    BookingResponse:
      type: object
      properties:
        bookingId:
          type: string
          format: uuid
        transportOperatorBookingId:
          type: string
        transportOperatorLegId:
          type: string
        state:
          type: string
          enum:
          - NOT_STARTED
          - IN_USE
          - PAUSED
          - FINISHING
          - FINISHED
          - CANCELLED
          - PREPARING
        orderId:
          type: string
        pricingPlan:
          $ref: '#/components/schemas/PricingPlanDto'
        departureTime:
          type:
          - string
          - 'null'
          format: date-time
        arrivalTime:
          type:
          - string
          - 'null'
          format: date-time
        distanceTravelled:
          type:
          - integer
          - 'null'
          format: int32
        pricing:
          $ref: '#/components/schemas/PricingDto'
        asset:
          $ref: '#/components/schemas/Asset'
        comment:
          type:
          - string
          - 'null'
      required:
      - asset
      - bookingId
      - orderId
      - pricing
      - pricingPlan
      - state
      - transportOperatorBookingId
      - transportOperatorLegId
      title: Booking
  parameters:
    ET-Client-Name:
      name: ET-Client-Name
      in: header
      description: 'Entur Client Header.

        It is required that all consumers identify themselves by using this header.

        Entur will deploy strict rate-limiting policies on API-consumers who do not identify with a header and reserves the right to block unidentified consumers.

        The structure of ET-Client-Name should be: `<company>-<application>`.'
      required: false
      style: simple
      explode: false
      schema:
        type: string
    X-Correlation-Id:
      name: X-Correlation-Id
      in: header
      description: Correlation id
      required: false
      style: simple
      explode: false
      schema:
        type: string
  securitySchemes:
    Authorization:
      type: http
      description: Authorization header
      scheme: bearer
      bearerFormat: Bearer eyJhbGciOiJIUzI1NiIsInR5cCIf36POk6yJV_adQssw5c