Lokki Rental Place Cart API

The Rental Place Cart API from Lokki — 5 operation(s) for rental place cart.

Operations 10

GET /v2/rental-place-cart Get Global Cart #
POST /v2/rental-place-cart Create Global Cart #
PATCH /v2/rental-place-cart Update Global Cart #
DELETE /v2/rental-place-cart Delete Global Cart #
POST /v2/rental-place-cart/assign Assign Global Cart to User #
GET /v2/rental-place-cart/cart/{id} Get Cart by ID #
PATCH /v2/rental-place-cart/cart/{id} Update Cart #
DELETE /v2/rental-place-cart/cart/{id} Delete Cart #
POST /v2/rental-place-cart/cart Create or Update Cart #
POST /v2/rental-place-cart/cart/{id}/validate Cart validation #

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/lokki-rental-place-cart-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

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

lokki-rental-place-cart-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Lokki Rental Place Cart API
  description: The main API powering the Lokki Dashboard and Online Store
  version: '2.0'
  contact: {}
servers: []
security:
- x-access-token: []
tags:
- name: Rental Place Cart
paths:
  /v2/rental-place-cart:
    get:
      operationId: getGlobalCart
      summary: Get Global Cart
      description: Retrieves the global cart for the current user/session
      parameters:
      - name: x-session-id
        in: header
        description: Session ID for guest users
        required: false
        schema:
          type: string
      - name: context
        required: false
        in: query
        description: Context of the store
        schema:
          default: RENTAL_PLACE
          enum:
          - RENTAL_PLACE
          - ONLINE_STORE
          type: string
      - name: platform
        required: false
        in: query
        description: Client platform (device / app) captured for order attribution
        schema:
          enum:
          - DESKTOP_BROWSER
          - MOBILE_BROWSER
          - MOBILE_APP
          type: string
      responses:
        '200':
          description: Global cart retrieved successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GlobalCartDto'
      security:
      - bearer: []
      tags:
      - Rental Place Cart
    post:
      operationId: createRentalPlaceGlobalCart
      summary: Create Global Cart
      description: Creates a new global cart if none exists
      parameters:
      - name: x-session-id
        in: header
        description: Session ID for guest users
        required: false
        schema:
          type: string
      - name: context
        required: false
        in: query
        description: Context of the store
        schema:
          default: RENTAL_PLACE
          enum:
          - RENTAL_PLACE
          - ONLINE_STORE
          type: string
      - name: platform
        required: false
        in: query
        description: Client platform (device / app) captured for order attribution
        schema:
          enum:
          - DESKTOP_BROWSER
          - MOBILE_BROWSER
          - MOBILE_APP
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateGlobalCartDto'
      responses:
        '201':
          description: Global cart created successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GlobalCartDto'
      security:
      - bearer: []
      tags:
      - Rental Place Cart
    patch:
      operationId: updateRentalPlaceGlobalCart
      summary: Update Global Cart
      description: Updates the global cart with new information
      parameters:
      - name: x-session-id
        in: header
        description: Session ID for guest users
        required: false
        schema:
          type: string
      - name: context
        required: false
        in: query
        description: Context of the store
        schema:
          default: RENTAL_PLACE
          enum:
          - RENTAL_PLACE
          - ONLINE_STORE
          type: string
      - name: platform
        required: false
        in: query
        description: Client platform (device / app) captured for order attribution
        schema:
          enum:
          - DESKTOP_BROWSER
          - MOBILE_BROWSER
          - MOBILE_APP
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateGlobalCartDto'
      responses:
        '200':
          description: Global cart updated successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GlobalCartDto'
        '404':
          description: Global cart not found
      security:
      - bearer: []
      tags:
      - Rental Place Cart
    delete:
      operationId: deleteRentalPlaceGlobalCart
      summary: Delete Global Cart
      description: Deletes the entire global cart
      parameters:
      - name: x-session-id
        in: header
        description: Session ID for guest users
        required: false
        schema:
          type: string
      responses:
        '200':
          description: Global cart deleted successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeleteResponseDto'
        '404':
          description: Global cart not found
      security:
      - bearer: []
      tags:
      - Rental Place Cart
  /v2/rental-place-cart/assign:
    post:
      operationId: assignRentalPlaceGlobalCartToUser
      summary: Assign Global Cart to User
      description: Assigns the global cart to the user
      parameters:
      - name: x-session-id
        in: header
        description: Session ID for guest users
        required: false
        schema:
          type: string
      - name: context
        required: false
        in: query
        description: Context of the store
        schema:
          default: RENTAL_PLACE
          enum:
          - RENTAL_PLACE
          - ONLINE_STORE
          type: string
      - name: platform
        required: false
        in: query
        description: Client platform (device / app) captured for order attribution
        schema:
          enum:
          - DESKTOP_BROWSER
          - MOBILE_BROWSER
          - MOBILE_APP
          type: string
      responses:
        '200':
          description: Global cart assigned successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeleteResponseDto'
        '201':
          description: ''
      security:
      - bearer: []
      tags:
      - Rental Place Cart
  /v2/rental-place-cart/cart/{id}:
    get:
      operationId: getRentalPlaceCart
      summary: Get Cart by ID
      description: Retrieves a specific cart by its ID
      parameters:
      - name: x-session-id
        in: header
        description: Session ID for guest users
        required: false
        schema:
          type: string
      - name: id
        required: true
        in: path
        description: Cart ID
        schema:
          type: string
      - name: context
        required: false
        in: query
        description: Context of the store
        schema:
          default: RENTAL_PLACE
          enum:
          - RENTAL_PLACE
          - ONLINE_STORE
          type: string
      - name: platform
        required: false
        in: query
        description: Client platform (device / app) captured for order attribution
        schema:
          enum:
          - DESKTOP_BROWSER
          - MOBILE_BROWSER
          - MOBILE_APP
          type: string
      responses:
        '200':
          description: Cart retrieved successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Cart'
        '404':
          description: Cart not found
      security:
      - bearer: []
      tags:
      - Rental Place Cart
    patch:
      operationId: updateRentalPlaceCart
      summary: Update Cart
      description: Updates a specific cart with new information
      parameters:
      - name: x-session-id
        in: header
        description: Session ID for guest users
        required: false
        schema:
          type: string
      - name: id
        required: true
        in: path
        description: Cart ID
        schema:
          type: string
      - name: context
        required: false
        in: query
        description: Context of the store
        schema:
          default: RENTAL_PLACE
          enum:
          - RENTAL_PLACE
          - ONLINE_STORE
          type: string
      - name: platform
        required: false
        in: query
        description: Client platform (device / app) captured for order attribution
        schema:
          enum:
          - DESKTOP_BROWSER
          - MOBILE_BROWSER
          - MOBILE_APP
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateCartDto'
      responses:
        '200':
          description: Cart updated successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Cart'
        '404':
          description: Cart or global cart not found
      security:
      - bearer: []
      tags:
      - Rental Place Cart
    delete:
      operationId: deleteRentalPlaceCart
      summary: Delete Cart
      description: Deletes a specific cart from the global cart
      parameters:
      - name: x-session-id
        in: header
        description: Session ID for guest users
        required: false
        schema:
          type: string
      - name: id
        required: true
        in: path
        description: Cart ID
        schema:
          type: string
      responses:
        '200':
          description: Cart deleted successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeleteResponseDto'
        '404':
          description: Cart or global cart not found
      security:
      - bearer: []
      tags:
      - Rental Place Cart
  /v2/rental-place-cart/cart:
    post:
      operationId: createRentalPlaceCart
      summary: Create or Update Cart
      description: Creates a new cart or updates existing one with the given ID
      parameters:
      - name: x-session-id
        in: header
        description: Session ID for guest users
        required: false
        schema:
          type: string
      - name: context
        required: false
        in: query
        description: Context of the store
        schema:
          default: RENTAL_PLACE
          enum:
          - RENTAL_PLACE
          - ONLINE_STORE
          type: string
      - name: platform
        required: false
        in: query
        description: Client platform (device / app) captured for order attribution
        schema:
          enum:
          - DESKTOP_BROWSER
          - MOBILE_BROWSER
          - MOBILE_APP
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateCartDto'
      responses:
        '201':
          description: Cart created successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Cart'
      security:
      - bearer: []
      tags:
      - Rental Place Cart
  /v2/rental-place-cart/cart/{id}/validate:
    post:
      operationId: validateRentalPlaceCart
      summary: Cart validation
      description: Check if all the cart information are correct
      parameters:
      - name: x-session-id
        in: header
        description: Session ID for guest users
        required: false
        schema:
          type: string
      - name: id
        required: true
        in: path
        description: Cart ID
        schema:
          type: string
      - name: context
        required: false
        in: query
        description: Context of the store
        schema:
          default: RENTAL_PLACE
          enum:
          - RENTAL_PLACE
          - ONLINE_STORE
          type: string
      - name: platform
        required: false
        in: query
        description: Client platform (device / app) captured for order attribution
        schema:
          enum:
          - DESKTOP_BROWSER
          - MOBILE_BROWSER
          - MOBILE_APP
          type: string
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidateCartResponseDto'
      security:
      - bearer: []
      tags:
      - Rental Place Cart
components:
  schemas:
    ItemInfos:
      type: object
      properties:
        name:
          type: string
          description: Name of the item
          example: Mountain Bike X2000
        localizedName:
          description: Item name resolved per supported locale
          allOf:
          - $ref: '#/components/schemas/LocalizedContent'
        description:
          type: string
          description: Detailed localized description of the item
          example: A high-performance mountain bike suitable for all terrains.
      required:
      - name
      - description
    ItemPricingTableEntryDurationSpecific:
      type: object
      properties:
        type:
          type: string
          enum:
          - specific
        minutes:
          type: number
          description: Duration in minutes
          example: 1440
      required:
      - type
      - minutes
    StoreDeliveryFreeSettings:
      type: object
      properties:
        activated:
          type: boolean
          description: Indicates if free delivery is activated
          example: true
        type:
          enum:
          - MINUTES
          - SUBTOTAL
          type: string
          description: Type of condition for free delivery (either minimum minutes or subtotal amount)
          example: MINUTES
        value:
          type: number
          description: Value corresponding to the type (minutes or subtotal amount)
          example: 60
      required:
      - activated
      - type
      - value
    ItemPriceRule:
      type: object
      properties:
        id:
          type: string
        companyId:
          type: string
        title:
          type: string
        rules:
          type: array
          items:
            $ref: '#/components/schemas/PriceRule'
      required:
      - id
      - companyId
      - title
      - rules
    CartCustomerField:
      type: object
      properties:
        id:
          type: string
        label:
          $ref: '#/components/schemas/LocalizedContent'
        value:
          type: string
      required:
      - id
      - label
      - value
    StoreInsuranceTulipDetails:
      type: object
      properties:
        provider:
          type: string
          enum:
          - TULIP
        status:
          enum:
          - 'off'
          - on_inclusion_hidden
          - on_inclusion
          - on_option
          - with_assurance
          type: string
          description: Tulip insurance status for the store
          example: on_inclusion
      required:
      - provider
      - status
    ItemStock:
      type: object
      properties:
        availableQuantity:
          type: number
          description: Available quantity of the item
          example: 10
        totalQuantity:
          type: number
          description: Total quantity of the item
          example: 10
        isAvailable:
          type: boolean
          description: 'Whether the item can be booked for the requested range. Quantities overload 0 as both ''none'' and ''unlimited'' (services, service-backed pack lines), so this is the only unambiguous availability signal. Products: at least one sub-product available. Services: always true. Packs: every line has at least one available option.'
          example: true
      required:
      - availableQuantity
      - totalQuantity
      - isAvailable
    ItemMediaDocuments:
      type: object
      properties:
        url:
          type: string
          description: document URLs associated with the item
          example:
          - https://example.com/documents/item1.pdf
          - https://example.com/documents/item2.pdf
        name:
          type: string
          description: Name of the document
          example: Item Manual
      required:
      - url
      - name
    CartPriceDetails:
      type: object
      properties:
        total:
          type: number
        baseTotal:
          type: number
        totalBeforePromoCode:
          type: number
        totalBeforeCheckout:
          type: number
        baseTotalBeforeCheckout:
          type: number
    CartCompanyReviews:
      type: object
      properties:
        google:
          $ref: '#/components/schemas/CartCompanyGoogleReviews'
      required:
      - google
    ItemPricingDiscount:
      type: object
      properties:
        appliedDiscounts:
          type: array
          description: List of discounts applied to the item
          items:
            oneOf:
            - $ref: '#/components/schemas/ItemDiscountPeriodic'
            - $ref: '#/components/schemas/ItemDiscountWeekly'
        availableDiscounts:
          type: array
          description: List of available discounts for the item
          items:
            oneOf:
            - $ref: '#/components/schemas/ItemDiscountQuantity'
      required:
      - appliedDiscounts
      - availableDiscounts
    ItemVerticale:
      type: object
      properties:
        id:
          enum:
          - BIKE
          - ELECTRIC_BIKE
          - MOPED
          - MOTORCYCLE
          - CAR
          - SCOOTER
          - SKI
          - CLIMBING
          - SNOWSHOES
          - SURF
          - PADDLE
          - CANOE_KAYAK
          - BOAT
          - EVENT
          - MOTOCULTURE
          - TOOLING
          type: string
          description: Identifier of the verticale
          example: BIKE
        name:
          type: string
          description: Localized name of the verticale
          example: Bike
      required:
      - id
      - name
    ItemMediaVideos:
      type: object
      properties:
        youtubeUrls:
          description: Array of YouTube video URLs associated with the item
          example:
          - https://www.youtube.com/watch?v=dQw4w9WgXcQ
          - https://www.youtube.com/watch?v=sNPnbI1arSE
          type:
          - array
          - 'null'
          items:
            type: string
      required:
      - youtubeUrls
    CartCompanyLocationPoint:
      type: object
      properties:
        lat:
          type: number
        lng:
          type: number
      required:
      - lat
      - lng
    RPCartItemPackCategory:
      type: object
      properties:
        id:
          type: string
        value:
          type: string
      required:
      - id
      - value
    ItemInsuranceTulipDetails:
      type: object
      properties:
        provider:
          type: string
          enum:
          - TULIP
        status:
          enum:
          - 'off'
          - on_inclusion_hidden
          - on_inclusion
          - on_option
          - with_assurance
          type: string
          description: Tulip insurance status for the item
          example: on_inclusion_hidden
      required:
      - provider
      - status
    CartPayment:
      type: object
      properties:
        id:
          type: string
        status:
          type: string
          enum:
          - PENDING
          - SUCCEEDED
          - FAILED
          - CANCELED
        provider:
          type: string
          enum:
          - STRIPE
          - ADYEN
          - ANCV
        method:
          type: string
          enum:
          - CARD
          - SEPA
        amount:
          type: number
        amountCaptured:
          type: number
          description: Actual amount captured — may differ from amount for providers like ANCV where the payer's balance determines the contribution
        date:
          format: date-time
          type: string
        externalReference:
          type: string
        metadata:
          type: object
      required:
      - id
      - status
      - provider
      - amount
    CartCompanyInfo:
      type: object
      properties:
        id:
          type: string
        slug:
          type: string
        profile:
          $ref: '#/components/schemas/CartCompanyProfile'
        branding:
          $ref: '#/components/schemas/CartCompanyBranding'
        location:
          $ref: '#/components/schemas/CartCompanyLocation'
        reviews:
          $ref: '#/components/schemas/CartCompanyReviews'
        temporal:
          $ref: '#/components/schemas/CartCompanyTemporal'
        pricing:
          $ref: '#/components/schemas/CartCompanyPricing'
        modules:
          $ref: '#/components/schemas/CartCompanyModules'
      required:
      - id
      - slug
      - profile
      - branding
      - location
      - reviews
      - temporal
      - pricing
      - modules
    CreateCartDto:
      type: object
      properties:
        companyId:
          type: string
        type:
          enum:
          - LLD
          - LCD
          - EVENT
          type: string
        rentalPeriod:
          $ref: '#/components/schemas/CartRentalPeriod'
        items:
          type: array
          items:
            oneOf:
            - $ref: '#/components/schemas/RPCartItemProductDB'
            - $ref: '#/components/schemas/RPCartItemServiceDB'
            - $ref: '#/components/schemas/RPCartItemPackDB'
        payments:
          type: array
          items:
            $ref: '#/components/schemas/CartPayment'
        delivery:
          $ref: '#/components/schemas/CartDelivery'
        marketing:
          $ref: '#/components/schemas/CartMarketing'
        legal:
          $ref: '#/components/schemas/CartLegal'
        metadata:
          $ref: '#/components/schemas/CartMetadata'
      required:
      - companyId
      - type
      - rentalPeriod
    CartDelivery:
      type: object
      properties:
        departureTrip:
          $ref: '#/components/schemas/CartDeliveryTrip'
        returnTrip:
          $ref: '#/components/schemas/CartDeliveryTrip'
    CartAttribution:
      type: object
      properties:
        isFromQuickCart:
          type: boolean
          description: True when the cart originates from the Quick Cart (panier magique) flow
        quickCartQuoteRequestId:
          type: string
          description: Id of the agency QuoteRequest created alongside this Quick Cart. Carried so the quote can be cancelled when the user converts on their own (self-checkout). Distinct from the order's top-level quoteRequestId, which marks an agency-driven conversion.
    ItemSettings:
      type: object
      properties:
        visibility:
          enum:
          - PUBLIC
          - RESTRICTED
          type: string
          description: Visibility status of the item
          example: PUBLIC
      required:
      - visibility
    StoreMultipleLocations:
      type: object
      properties:
        enabled:
          type: boolean
          description: Indicates if multiple locations are enabled for this store
          example: true
        dropoffRule:
          enum:
          - SAME
          - DIFFERENT
          type: string
          description: Controls whether the user can drop-off the products in a different rental point
          example: DIFFERENT
      required:
      - enabled
      - dropoffRule
    CartDB:
      type: object
      properties:
        id:
          type: string
        companyId:
          type: string
        context:
          type: string
          enum:
          - RENTAL_PLACE
          - ONLINE_STORE
          description: 'Storefront the cart belongs to. A cart is scoped to a (companyId, context) pair: the same loueur has an independent cart on the open marketplace (RENTAL_PLACE) and on its white-label BEL 2.0 store (ONLINE_STORE). Absent on legacy carts — readers treat that as RENTAL_PLACE.'
        rentalPeriod:
          $ref: '#/components/schemas/CartRentalPeriod'
        type:
          type: string
          enum:
          - LLD
          - LCD
          - EVENT
        payments:
          type: array
          items:
            $ref: '#/components/schemas/CartPayment'
        delivery:
          $ref: '#/components/schemas/CartDelivery'
        marketing:
          $ref: '#/components/schemas/CartMarketing'
        legal:
          $ref: '#/components/schemas/CartLegal'
        metadata:
          $ref: '#/components/schemas/CartMetadata'
        createdAt:
          format: date-time
          type: string
        updatedAt:
          format: date-time
          type: string
        items:
          type: array
          items:
            oneOf:
            - $ref: '#/components/schemas/RPCartItemProductDB'
            - $ref: '#/components/schemas/RPCartItemServiceDB'
            - $ref: '#/components/schemas/RPCartItemPackDB'
        checkout:
          $ref: '#/components/schemas/CartCheckout'
      required:
      - id
      - companyId
      - rentalPeriod
      - type
      - createdAt
      - updatedAt
      - items
    StoreCurrency:
      type: object
      properties:
        isoCode:
          type: string
          description: Currency code in ISO 4217 format
          example: EUR
        symbol:
          type: string
          description: Currency symbol
          example: €
      required:
      - isoCode
      - symbol
    CartItemInsurancePricing:
      type: object
      properties:
        amount:
          type: number
          description: Insurance price for the rental period (base price + margin * days)
        deposit:
          type: number
          description: Deposit amount when insurance is active
        basePerDay:
          type: number
          description: Base price per day from insurance (excluding margin)
        marginPerDay:
          type: number
          description: Margin per day charged by the store
      required:
      - amount
      - deposit
      - basePerDay
      - marginPerDay
    RPCartItemPackDB:
      type: object
      properties:
        id:
          type: string
        quantity:
          type: number
        type:
          type: string
          enum:
          - PACK
        options:
          type: array
          items:
            $ref: '#/components/schemas/RPCartItemPackOption'
        packType:
          type: string
          enum:
          - PRODUCT
          - CATEGORY
        categories:
          type: array
          items:
            $ref: '#/components/schemas/RPCartItemPackCategory'
      required:
      - id
      - quantity
      - type
      - options
      - packType
      - categories
    CartCompanyBranding:
      type: object
      properties:
        logoUrl:
          type: string
    CartCompanyPricing:
      type: object
      properties:
        currency:
          $ref: '#/components/schemas/StoreCurrency'
        tax:
          $ref: '#/components/schemas/StoreTax'
      required:
      - currency
      - tax
    CartContextInfo:
      type: object
      properties:
        type:
          type: string
          enum:
          - ONLINE_STORE
          - RENTAL_PLACE_B2B
          - RENTAL_PLACE_LOKKI
          - BORNE
        browserTimezone:
          type: string
        language:
          type: string
        tracking:
          $ref: '#/components/schemas/CartTracking'
        platform:
          type: string
          enum:
          - DESKTOP_BROWSER
          - MOBILE_BROWSER
          - MOBILE_APP
      required:
      - type
      - browserTimezone
      - language
    RPCartItemPackCategoryWithStock:
      type: object
      properties:
        id:
          type: string
        value:
          type: string
        stock:
          $ref: '#/components/schemas/ItemStock'
      required:
      - id
      - value
    CartCompanyModules:
      type: object
      properties:
        delivery:
          description: Delivery module settings
          allOf:
          - $ref: '#/components/schemas/StoreDelivery'
        multipleLocations:
          description: Multiple locations module settings
          allOf:
          - $ref: '#/components/schemas/StoreMultipleLocations'
        rentalPlaceNetwork:
          description: Lokki.Rent network participation settings
          allOf:
          - $ref: '#/components/schemas/CartCompanyRentalPlaceNetwork'
        stockVisibility:
          description: Stock visibility module settings
          allOf:
          - $ref: '#/components/schemas/CartCompanyStockVisibility'
        insurance:
          description: Insurance module settings
          allOf:
          - $ref: '#/components/schemas/StoreInsurance'
      required:
      - delivery
      - multipleLocations
      - rentalPlaceNetwork
      - stockVisibility
      - insurance
    CartContract:
      type: object
      properties:
        isAccepted:
          type: boolean
        acceptedAt:
          format: date-time
          type: string
      required:
      - isAccepted
    ItemPricingTableEntry:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier of the price model row
          example: 61e7b8f9e4b0c8a1d4f3c2b1
        label:
          type: string
          description: Localized duration label (e.g. '1 jour', '1 semaine')
          example: 1 jour
        price:
          type: number
          description: Price for this duration
          example: 50
        duration:
          description: Raw duration data for client-side formatting
          oneOf:
          - $ref: '#/components/schemas/ItemPricingTableEntryDurationRange'
          - $ref: '#/components/schemas/ItemPricingTableEntryDurationSpecific'
          - $ref: '#/components/schemas/ItemPricingTableEntryDurationLld'
          discriminator:
            propertyName: type
            mapping:
              range: '#/components/schemas/ItemPricingTableEntryDurationRange'
              specific: '#/components/schemas/ItemPricingTableEntryDurationSpecific'
              LLD: '#/components/schemas/ItemPricingTableEntryDurationLld'
      required:
      - id
      - label
      - price
      - duration
    ItemPricingTable:
      type: object
      properties:
        highSeason:
          description: High-season pricing rows, ordered by duration
          type: array
          items:
            $ref: '#/components/schemas/ItemPricingTableEntry'
        lowSeason:
          description: Low-season pricing rows, ordered by duration. Null when the store has no low-season pricing configured.
          type:
          - array
          - 'null'
          items:
            $ref: '#/components/schemas/ItemPricingTableEntry'
      required:
      - highSeason
      - lowSeason
    UpdateCartDto:
      type: object
      properties:
        companyId:
          type: string
        type:
          enum:
          - LLD
          - LCD
          - EVENT
          type: string
        rentalPeriod:
          $ref: '#/components/schemas/CartRentalPeriod'
        items:
          type: array
          items:
            oneOf:
            - $ref: '#/components/schemas/RPCartItemProductDB'
            - $ref: '#/components/schemas/RPCartItemServiceDB'
            - $ref: '#/components/schemas/RPCartItemPackDB'
        payments:
          type: array
          items:
            $ref: '#/components/schemas/CartPayment'
        delivery:
          $ref: '#/components/schemas/CartDelivery'
        marketing:
          $ref: '#/components/schemas/CartMarketing'
        legal:
          $ref: '#/components/schemas/CartLegal'
        metadata:
          $ref: '#/components/schemas/CartMetadata'
    DeleteResponseDto:
      type: object
      properties:
        success:
          type: boolean
        message:
          type: string
      required:
      - success
      - message
    CartAcquisition:
      type: object
      properties:
        campaignid:
          type: string
        adgroupid:
          type: string
        keyword:
          type: string
        device:
          type: string
        gclid:
          type: string
        utm_source:
          type: string
        utm_medium:
          type: string
        utm_term:
          type: string
        utm_content:
          type: string
        utm_campaign:
          type: string
        referrer:
          type: string
        ae:
          type: string
        aesubid0:
          type: string
        aesubid1:
          type: string
        visitor_id:
          type: string
        session_id:
          type: string
        fbclid:
          type: string
        msclkid:
          type: string
    CartCompanyGoogleReviews:
      type: object
      properties:
        rating:
          type: number
        reviewCount:
          type: number
      required:
      - rating
      - reviewCount
    CartCompanyLocati

# --- truncated at 32 KB (61 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/lokki/refs/heads/main/openapi/lokki-rental-place-cart-api-openapi.yml