Booqable Order Fulfillment API

Booking, starting, stopping, and transitioning orders and their lines.

OpenAPI Specification

booqable-order-fulfillment-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Booqable API (v4 "Boomerang") Availability Order Fulfillment API
  description: The Booqable API is a RESTful, JSON:API-compliant interface for managing an equipment and inventory rental business - orders, products, product groups, customers, stock items, availability and plannings, documents and invoices, payments, bundles, collections, and webhooks. Requests are directed to a company-specific host in the form https://{company}.booqable.com/api/4 and authenticated with an access token (Bearer) or a signed single-use request. The default response media type is JSON:API (application/vnd.api+json); a nested JSON representation is available by appending .json to a path. The API is documented as still in Beta and may introduce non-backwards-compatible changes. A legacy v1 API also remains documented. This description was authored by API Evangelist from the public Booqable developer documentation; request and response schemas are modeled and simplified.
  version: '4'
  contact:
    name: Booqable
    url: https://developers.booqable.com/
  license:
    name: Proprietary
    url: https://booqable.com/terms/
servers:
- url: https://{company}.booqable.com/api/4
  description: Company-specific Booqable API v4 host
  variables:
    company:
      default: your-company
      description: Your Booqable company slug (subdomain).
security:
- bearerAuth: []
tags:
- name: Order Fulfillment
  description: Booking, starting, stopping, and transitioning orders and their lines.
paths:
  /order_fulfillments/book:
    post:
      operationId: bookOrderFulfillment
      tags:
      - Order Fulfillment
      summary: Book order lines
      description: Books products and quantities onto an order, reserving inventory for the rental period.
      requestBody:
        $ref: '#/components/requestBodies/ResourceBody'
      responses:
        '200':
          description: The updated order after booking.
          content:
            application/vnd.api+json:
              schema:
                $ref: '#/components/schemas/ResourceDocument'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
  /order_fulfillments/specify:
    post:
      operationId: specifyOrderFulfillment
      tags:
      - Order Fulfillment
      summary: Specify stock items
      description: Assigns specific stock items to trackable lines on an order.
      requestBody:
        $ref: '#/components/requestBodies/ResourceBody'
      responses:
        '200':
          description: The updated order after specifying.
          content:
            application/vnd.api+json:
              schema:
                $ref: '#/components/schemas/ResourceDocument'
  /order_fulfillments/start:
    post:
      operationId: startOrderFulfillment
      tags:
      - Order Fulfillment
      summary: Start fulfillment
      description: Starts (picks up / checks out) the assigned stock items on an order.
      requestBody:
        $ref: '#/components/requestBodies/ResourceBody'
      responses:
        '200':
          description: The updated order after starting.
          content:
            application/vnd.api+json:
              schema:
                $ref: '#/components/schemas/ResourceDocument'
  /order_fulfillments/stop:
    post:
      operationId: stopOrderFulfillment
      tags:
      - Order Fulfillment
      summary: Stop fulfillment
      description: Stops (returns / checks in) the started stock items on an order.
      requestBody:
        $ref: '#/components/requestBodies/ResourceBody'
      responses:
        '200':
          description: The updated order after stopping.
          content:
            application/vnd.api+json:
              schema:
                $ref: '#/components/schemas/ResourceDocument'
  /order_status_transitions/transition:
    post:
      operationId: transitionOrderStatus
      tags:
      - Order Fulfillment
      summary: Transition order status
      description: Moves an order to a new status (for example new, concept, reserved, started, stopped, archived).
      requestBody:
        $ref: '#/components/requestBodies/ResourceBody'
      responses:
        '200':
          description: The order after the status transition.
          content:
            application/vnd.api+json:
              schema:
                $ref: '#/components/schemas/ResourceDocument'
  /lines:
    get:
      operationId: listLines
      tags:
      - Order Fulfillment
      summary: List lines
      description: Lists the line items across orders.
      parameters:
      - $ref: '#/components/parameters/PageNumber'
      - $ref: '#/components/parameters/PageSize'
      responses:
        '200':
          description: A page of lines.
          content:
            application/vnd.api+json:
              schema:
                $ref: '#/components/schemas/ResourceCollection'
    post:
      operationId: createLine
      tags:
      - Order Fulfillment
      summary: Create a line
      description: Adds a line item to an order.
      requestBody:
        $ref: '#/components/requestBodies/ResourceBody'
      responses:
        '201':
          description: The created line.
          content:
            application/vnd.api+json:
              schema:
                $ref: '#/components/schemas/ResourceDocument'
  /lines/{id}:
    parameters:
    - $ref: '#/components/parameters/Id'
    get:
      operationId: getLine
      tags:
      - Order Fulfillment
      summary: Fetch a line
      description: Retrieves a single line by ID.
      responses:
        '200':
          description: The requested line.
          content:
            application/vnd.api+json:
              schema:
                $ref: '#/components/schemas/ResourceDocument'
    patch:
      operationId: updateLine
      tags:
      - Order Fulfillment
      summary: Update a line
      description: Updates an existing line.
      requestBody:
        $ref: '#/components/requestBodies/ResourceBody'
      responses:
        '200':
          description: The updated line.
          content:
            application/vnd.api+json:
              schema:
                $ref: '#/components/schemas/ResourceDocument'
components:
  requestBodies:
    ResourceBody:
      required: true
      description: A JSON:API document wrapping the resource under a "data" member.
      content:
        application/vnd.api+json:
          schema:
            $ref: '#/components/schemas/ResourceDocument'
  parameters:
    PageNumber:
      name: page[number]
      in: query
      required: false
      description: The page number to return (JSON:API pagination).
      schema:
        type: integer
        minimum: 1
        default: 1
    PageSize:
      name: page[size]
      in: query
      required: false
      description: Number of records per page. Defaults to 25.
      schema:
        type: integer
        minimum: 1
        default: 25
    Id:
      name: id
      in: path
      required: true
      description: The UUID of the resource.
      schema:
        type: string
  schemas:
    ResourceDocument:
      type: object
      description: A JSON:API document containing a single primary resource.
      properties:
        data:
          $ref: '#/components/schemas/Resource'
        included:
          type: array
          items:
            $ref: '#/components/schemas/Resource'
        meta:
          type: object
          additionalProperties: true
    ErrorDocument:
      type: object
      description: A JSON:API error document.
      properties:
        errors:
          type: array
          items:
            type: object
            properties:
              status:
                type: string
              code:
                type: string
              title:
                type: string
              detail:
                type: string
    Resource:
      type: object
      description: A JSON:API resource object.
      properties:
        type:
          type: string
        id:
          type: string
        attributes:
          type: object
          additionalProperties: true
        relationships:
          type: object
          additionalProperties: true
    ResourceCollection:
      type: object
      description: A JSON:API document containing a collection of resources.
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/Resource'
        included:
          type: array
          items:
            $ref: '#/components/schemas/Resource'
        meta:
          type: object
          description: Metadata such as total_count and pagination stats.
          additionalProperties: true
        links:
          type: object
          additionalProperties: true
  responses:
    UnprocessableEntity:
      description: The request was well-formed but failed validation.
      content:
        application/vnd.api+json:
          schema:
            $ref: '#/components/schemas/ErrorDocument'
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: 'An access token created in Booqable account settings, sent as "Authorization: Bearer <token>". Booqable also supports request signing (single-use signed tokens using ES256, RS256, or HS256) and, on the legacy v1 API, an api_key query parameter.'
Where this information came from

This is an independent, third-party profile of Booqable Order Fulfillment API, published by API Evangelist. We do not operate, host, resell, or support these APIs, and we are not affiliated with or endorsed by the company unless stated above. Everything here is built from publicly available information — the company's own site, developer portal, documentation, public repositories, and the specifications it publishes for public use. Nothing is obtained by breaching a system, defeating an access control, or using credentials.

The Kin Score and Agent Readiness rating are independently calculated assessments of a company's public API artifacts, scored against a published rubric. They are not certifications, endorsements, security assessments, or audits.

Corrections, re-scores, and removal are free — no partnership or purchase required, and you do not need to justify the request. A removed company is recorded as unrated, never scored zero for having asked. Acknowledgement within one business day; removal within two.

info@apievangelist.com · Read the full data-sourcing policy →
On a security or compliance team? Put security in the subject line and you will get a person, not a form — we will tell you exactly which public URLs this profile was built from.