Booqable Documents & Invoices API
Manage the financial documents attached to orders - invoices, quotes, contracts, and packing slips - via the documents resource, and read the payments and payment methods recorded against them.
Manage the financial documents attached to orders - invoices, quotes, contracts, and packing slips - via the documents resource, and read the payments and payment methods recorded against them.
openapi: 3.0.3
info:
title: Booqable API (v4 "Boomerang")
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: Orders
description: Rental orders and their lifecycle.
- name: Order Fulfillment
description: Booking, starting, stopping, and transitioning orders and their lines.
- name: Products
description: Rentable and sellable catalog products.
- name: Product Groups
description: Parent records grouping product variations.
- name: Customers
description: People and companies that place orders.
- name: Stock Items
description: Individually identifiable units of trackable products.
- name: Availability
description: Inventory availability, levels, and plannings.
- name: Documents
description: Invoices, quotes, contracts, and payments.
- name: Bundles & Collections
description: Merchandising groups and store collections.
- name: Webhooks
description: Event subscriptions delivering HTTPS callbacks.
- name: Settings
description: Locations, tax rates, coupons, employees, and notes.
paths:
/orders:
get:
operationId: listOrders
tags: [Orders]
summary: List orders
description: Lists and searches rental orders, with JSON:API filtering, sorting, includes, and pagination.
parameters:
- $ref: '#/components/parameters/PageNumber'
- $ref: '#/components/parameters/PageSize'
- $ref: '#/components/parameters/Include'
responses:
'200':
description: A page of orders.
content:
application/vnd.api+json:
schema: { $ref: '#/components/schemas/ResourceCollection' }
'401': { $ref: '#/components/responses/Unauthorized' }
'429': { $ref: '#/components/responses/TooManyRequests' }
post:
operationId: createOrder
tags: [Orders]
summary: Create an order
description: Creates a new rental order.
requestBody: { $ref: '#/components/requestBodies/ResourceBody' }
responses:
'201':
description: The created order.
content:
application/vnd.api+json:
schema: { $ref: '#/components/schemas/ResourceDocument' }
'401': { $ref: '#/components/responses/Unauthorized' }
'422': { $ref: '#/components/responses/UnprocessableEntity' }
/orders/new:
get:
operationId: newOrder
tags: [Orders]
summary: New order template
description: Returns a blank order resource pre-populated with defaults, used to start a new order.
responses:
'200':
description: A new order template.
content:
application/vnd.api+json:
schema: { $ref: '#/components/schemas/ResourceDocument' }
'401': { $ref: '#/components/responses/Unauthorized' }
/orders/{id}:
parameters:
- $ref: '#/components/parameters/Id'
get:
operationId: getOrder
tags: [Orders]
summary: Fetch an order
description: Retrieves a single order by ID, optionally including related resources.
parameters:
- $ref: '#/components/parameters/Include'
responses:
'200':
description: The requested order.
content:
application/vnd.api+json:
schema: { $ref: '#/components/schemas/ResourceDocument' }
'404': { $ref: '#/components/responses/NotFound' }
patch:
operationId: updateOrder
tags: [Orders]
summary: Update an order
description: Updates an existing order.
requestBody: { $ref: '#/components/requestBodies/ResourceBody' }
responses:
'200':
description: The updated order.
content:
application/vnd.api+json:
schema: { $ref: '#/components/schemas/ResourceDocument' }
'422': { $ref: '#/components/responses/UnprocessableEntity' }
/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' }
/products:
get:
operationId: listProducts
tags: [Products]
summary: List products
description: Lists and searches products in the catalog.
parameters:
- $ref: '#/components/parameters/PageNumber'
- $ref: '#/components/parameters/PageSize'
- $ref: '#/components/parameters/Include'
responses:
'200':
description: A page of products.
content:
application/vnd.api+json:
schema: { $ref: '#/components/schemas/ResourceCollection' }
post:
operationId: createProduct
tags: [Products]
summary: Create a product
description: Creates a new product.
requestBody: { $ref: '#/components/requestBodies/ResourceBody' }
responses:
'201':
description: The created product.
content:
application/vnd.api+json:
schema: { $ref: '#/components/schemas/ResourceDocument' }
/products/{id}:
parameters:
- $ref: '#/components/parameters/Id'
get:
operationId: getProduct
tags: [Products]
summary: Fetch a product
description: Retrieves a single product by ID.
responses:
'200':
description: The requested product.
content:
application/vnd.api+json:
schema: { $ref: '#/components/schemas/ResourceDocument' }
patch:
operationId: updateProduct
tags: [Products]
summary: Update a product
description: Updates an existing product. Set archived to archive it.
requestBody: { $ref: '#/components/requestBodies/ResourceBody' }
responses:
'200':
description: The updated product.
content:
application/vnd.api+json:
schema: { $ref: '#/components/schemas/ResourceDocument' }
/product_groups:
get:
operationId: listProductGroups
tags: [Product Groups]
summary: List product groups
description: Lists and searches product groups.
parameters:
- $ref: '#/components/parameters/PageNumber'
- $ref: '#/components/parameters/PageSize'
- $ref: '#/components/parameters/Include'
responses:
'200':
description: A page of product groups.
content:
application/vnd.api+json:
schema: { $ref: '#/components/schemas/ResourceCollection' }
post:
operationId: createProductGroup
tags: [Product Groups]
summary: Create a product group
description: Creates a new product group.
requestBody: { $ref: '#/components/requestBodies/ResourceBody' }
responses:
'201':
description: The created product group.
content:
application/vnd.api+json:
schema: { $ref: '#/components/schemas/ResourceDocument' }
/product_groups/{id}:
parameters:
- $ref: '#/components/parameters/Id'
get:
operationId: getProductGroup
tags: [Product Groups]
summary: Fetch a product group
description: Retrieves a single product group by ID.
responses:
'200':
description: The requested product group.
content:
application/vnd.api+json:
schema: { $ref: '#/components/schemas/ResourceDocument' }
patch:
operationId: updateProductGroup
tags: [Product Groups]
summary: Update a product group
description: Updates an existing product group.
requestBody: { $ref: '#/components/requestBodies/ResourceBody' }
responses:
'200':
description: The updated product group.
content:
application/vnd.api+json:
schema: { $ref: '#/components/schemas/ResourceDocument' }
/customers:
get:
operationId: listCustomers
tags: [Customers]
summary: List customers
description: Lists and searches customers.
parameters:
- $ref: '#/components/parameters/PageNumber'
- $ref: '#/components/parameters/PageSize'
responses:
'200':
description: A page of customers.
content:
application/vnd.api+json:
schema: { $ref: '#/components/schemas/ResourceCollection' }
post:
operationId: createCustomer
tags: [Customers]
summary: Create a customer
description: Creates a new customer.
requestBody: { $ref: '#/components/requestBodies/ResourceBody' }
responses:
'201':
description: The created customer.
content:
application/vnd.api+json:
schema: { $ref: '#/components/schemas/ResourceDocument' }
/customers/{id}:
parameters:
- $ref: '#/components/parameters/Id'
get:
operationId: getCustomer
tags: [Customers]
summary: Fetch a customer
description: Retrieves a single customer by ID.
responses:
'200':
description: The requested customer.
content:
application/vnd.api+json:
schema: { $ref: '#/components/schemas/ResourceDocument' }
patch:
operationId: updateCustomer
tags: [Customers]
summary: Update a customer
description: Updates an existing customer. Set archived to archive it.
requestBody: { $ref: '#/components/requestBodies/ResourceBody' }
responses:
'200':
description: The updated customer.
content:
application/vnd.api+json:
schema: { $ref: '#/components/schemas/ResourceDocument' }
/stock_items:
get:
operationId: listStockItems
tags: [Stock Items]
summary: List stock items
description: Lists the individually identifiable units of trackable products.
parameters:
- $ref: '#/components/parameters/PageNumber'
- $ref: '#/components/parameters/PageSize'
responses:
'200':
description: A page of stock items.
content:
application/vnd.api+json:
schema: { $ref: '#/components/schemas/ResourceCollection' }
post:
operationId: createStockItem
tags: [Stock Items]
summary: Create a stock item
description: Creates a new stock item for a trackable product.
requestBody: { $ref: '#/components/requestBodies/ResourceBody' }
responses:
'201':
description: The created stock item.
content:
application/vnd.api+json:
schema: { $ref: '#/components/schemas/ResourceDocument' }
/stock_items/{id}:
parameters:
- $ref: '#/components/parameters/Id'
get:
operationId: getStockItem
tags: [Stock Items]
summary: Fetch a stock item
description: Retrieves a single stock item by ID.
responses:
'200':
description: The requested stock item.
content:
application/vnd.api+json:
schema: { $ref: '#/components/schemas/ResourceDocument' }
patch:
operationId: updateStockItem
tags: [Stock Items]
summary: Update a stock item
description: Updates an existing stock item (for example its identifier or status).
requestBody: { $ref: '#/components/requestBodies/ResourceBody' }
responses:
'200':
description: The updated stock item.
content:
application/vnd.api+json:
schema: { $ref: '#/components/schemas/ResourceDocument' }
/stock_item_plannings:
get:
operationId: listStockItemPlannings
tags: [Stock Items]
summary: List stock item plannings
description: Lists the plannings that reserve specific stock items against orders.
parameters:
- $ref: '#/components/parameters/PageNumber'
- $ref: '#/components/parameters/PageSize'
responses:
'200':
description: A page of stock item plannings.
content:
application/vnd.api+json:
schema: { $ref: '#/components/schemas/ResourceCollection' }
/barcodes:
get:
operationId: listBarcodes
tags: [Stock Items]
summary: List barcodes
description: Lists barcodes attached to stock items and other resources.
responses:
'200':
description: A page of barcodes.
content:
application/vnd.api+json:
schema: { $ref: '#/components/schemas/ResourceCollection' }
post:
operationId: createBarcode
tags: [Stock Items]
summary: Create a barcode
description: Creates a barcode for a resource.
requestBody: { $ref: '#/components/requestBodies/ResourceBody' }
responses:
'201':
description: The created barcode.
content:
application/vnd.api+json:
schema: { $ref: '#/components/schemas/ResourceDocument' }
/availabilities:
get:
operationId: getAvailabilities
tags: [Availability]
summary: Get availabilities
description: Returns availability information for orders, products, and downtimes over a period.
responses:
'200':
description: Availability data.
content:
application/vnd.api+json:
schema: { $ref: '#/components/schemas/ResourceCollection' }
/inventory_availabilities:
get:
operationId: getInventoryAvailabilities
tags: [Availability]
summary: Get inventory availabilities
description: Returns the available quantity for products and bundles over a requested period.
responses:
'200':
description: Inventory availability data.
content:
application/vnd.api+json:
schema: { $ref: '#/components/schemas/ResourceCollection' }
/inventory_levels:
get:
operationId: getInventoryLevels
tags: [Availability]
summary: Get inventory levels
description: Returns stock counts for products, optionally broken down by location.
responses:
'200':
description: Inventory level data.
content:
application/vnd.api+json:
schema: { $ref: '#/components/schemas/ResourceCollection' }
/plannings:
get:
operationId: listPlannings
tags: [Availability]
summary: List plannings
description: Lists and searches plannings - the records that reserve inventory against orders for a period.
parameters:
- $ref: '#/components/parameters/PageNumber'
- $ref: '#/components/parameters/PageSize'
responses:
'200':
description: A page of plannings.
content:
application/vnd.api+json:
schema: { $ref: '#/components/schemas/ResourceCollection' }
/plannings/{id}:
parameters:
- $ref: '#/components/parameters/Id'
get:
operationId: getPlanning
tags: [Availability]
summary: Fetch a planning
description: Retrieves a single planning by ID.
responses:
'200':
description: The requested planning.
content:
application/vnd.api+json:
schema: { $ref: '#/components/schemas/ResourceDocument' }
/documents:
get:
operationId: listDocuments
tags: [Documents]
summary: List documents
description: Lists and searches documents - invoices, quotes, contracts, and packing slips.
parameters:
- $ref: '#/components/parameters/PageNumber'
- $ref: '#/components/parameters/PageSize'
responses:
'200':
description: A page of documents.
content:
application/vnd.api+json:
schema: { $ref: '#/components/schemas/ResourceCollection' }
post:
operationId: createDocument
tags: [Documents]
summary: Create a document
description: Creates a new document, such as an invoice for an order.
requestBody: { $ref: '#/components/requestBodies/ResourceBody' }
responses:
'201':
description: The created document.
content:
application/vnd.api+json:
schema: { $ref: '#/components/schemas/ResourceDocument' }
/documents/{id}:
parameters:
- $ref: '#/components/parameters/Id'
get:
operationId: getDocument
tags: [Documents]
summary: Fetch a document
description: Retrieves a single document by ID.
responses:
'200':
description: The requested document.
content:
application/vnd.api+json:
schema: { $ref: '#/components/schemas/ResourceDocument' }
patch:
operationId: updateDocument
tags: [Documents]
summary: Update a document
description: Updates an existing document.
requestBody: { $ref: '#/components/requestBodies/ResourceBody' }
responses:
'200':
description: The updated document.
content:
application/vnd.api+json:
schema: { $ref: '#/components/schemas/ResourceDocument' }
/payments:
get:
operationId: listPayments
tags: [Documents]
summary: List payments
description: Lists payments recorded against documents and orders.
responses:
'200':
description: A page of payments.
content:
application/vnd.api+json:
schema: { $ref: '#/components/schemas/ResourceCollection' }
/payments/{id}:
parameters:
- $ref: '#/components/parameters/Id'
get:
operationId: getPayment
tags: [Documents]
summary: Fetch a payment
description: Retrieves a single payment by ID.
responses:
'200':
description: The requested payment.
content:
application/vnd.api+json:
schema: { $ref: '#/components/schemas/ResourceDocument' }
/bundles:
get:
operationId: listBundles
tags: [Bundles & Collections]
summary: List bundles
description: Lists and searches bundles - packaged groups of products rented together.
responses:
'200':
description: A page of bundles.
content:
application/vnd.api+json:
schema: { $ref: '#/components/schemas/ResourceCollection' }
post:
operationId: createBundle
tags: [Bundles & Collections]
summary: Create a bundle
description: Creates a new bundle.
requestBody: { $ref: '#/components/requestBodies/ResourceBody' }
responses:
'201':
description: The created bundle.
content:
application/vnd.api+json:
schema: { $ref: '#/components/schemas/ResourceDocument' }
/bundles/{id}:
parameters:
- $ref: '#/components/parameters/Id'
get:
operationId: getBundle
tags: [Bundles & Collections]
summary: Fetch a bundle
description: Retrieves a single bundle by ID.
responses:
'200':
description: The requested bundle.
content:
application/vnd.api+json:
schema: { $ref: '#/components/schemas/ResourceDocument' }
patch:
operationId: updateBundle
tags: [Bundles & Collections]
summary: Update a bundle
description: Updates an existing bundle.
requestBody: { $ref: '#/components/requestBodies/ResourceBody' }
responses:
'200':
description: The updated bundle.
content:
application/vnd.api+json:
schema: { $ref: '#/components/schemas/ResourceDocument' }
/collections:
get:
operationId: listCollections
tags: [Bundles & Collections]
summary: List collections
description: Lists the store collections that organize catalog items.
responses:
'200':
description: A page of collections.
content:
application/vnd.api+json:
schema: { $ref: '#/components/schemas/ResourceCollection' }
post:
operationId: createCollection
tags: [Bundles & Collections]
summary: Create a collection
description: Creates a new collection.
requestBody: { $ref: '#/components/requestBodies/ResourceBody' }
responses:
'201':
description: The created collection.
content:
application/vnd.api+json:
schema: { $ref: '#/components/schemas/ResourceDocument' }
/webhooks:
post:
operationId: createWebhook
tags: [Webhooks]
summary: Create a webhook
description: Creates a webhook subscription that POSTs event payloads to a target URL over HTTPS.
requestBody: { $ref: '#/components/requestBodies/ResourceBody' }
responses:
'201':
description: The created webhook.
content:
application/vnd.api+json:
schema: { $ref: '#/components/schemas/ResourceDocument' }
/webhooks/{id}:
parameters:
- $ref: '#/components/parameters/Id'
get:
operationId: getWebhook
tags: [Webhooks]
summary: Fetch a webhook
description: Retrieves a single webhook subscription by ID.
responses:
'200':
description: The requested webhook.
content:
application/vnd.api+json:
schema: { $ref: '#/components/schemas/ResourceDocument' }
/locations:
get:
operationId: listLocations
tags: [Settings]
summary: List locations
description: Lists the physical locations that hold inventory and fulfill orders.
responses:
'200':
description: A page of locations.
content:
application/vnd.api+json:
schema: { $ref: '#/components/schemas/ResourceCollection' }
post:
operationId: createLocation
tags: [Settings]
summary: Create a location
description: Creates a new location.
requestBody: { $ref: '#/components/requestBodies/ResourceBody' }
responses:
'201':
description: The created location.
content:
application/vnd.api+json:
schema: { $ref: '#/components/schemas/ResourceDocument' }
/tax_rates:
get:
operationId: listTaxRates
tags: [Settings]
summary: List tax rates
description: Lists the tax rates applied to orders and documents.
responses:
'200':
description: A page of tax rates.
content:
application/vnd.api+json:
schema: { $ref: '#/components/schemas/ResourceCollection' }
post:
operationId: createTaxRate
tags: [Settings]
summary: Create a tax rate
description: Creates a new tax rate.
requestBody: { $ref: '#/components/requestBodies/ResourceBody' }
responses:
'201':
description: The created tax rate.
content:
application/vnd.api+json:
schema: { $ref: '#/components/schemas/ResourceDocument' }
/coupons:
get:
operationId: listCoupons
tags: [Settings]
summary: List coupons
description: Lists discount coupons.
responses:
'200':
description: A page of coupons.
content:
application/vnd.api+json:
schema: { $ref: '#/components/schemas/ResourceCollection' }
post:
operationId: createCoupon
tags: [Settings]
summary: Create a coupon
description: Creates a new coupon.
requestBody: { $ref: '#/components/requestBodies/ResourceBody' }
responses:
'201':
description: The created coupon.
content:
application/vnd.api+json:
schema: { $ref: '#/components/schemas/ResourceDocument' }
/notes:
get:
operationId: listNotes
tags: [Settings]
summary: List notes
description: Lists free-form notes attached to orders, customers, and other resources.
responses:
'200':
description: A page of notes.
content:
application/vnd.api+json:
schema: { $ref: '#/components/schemas/ResourceCollection' }
post:
operationId: createNote
tags: [Settings]
summary: Create a note
description: Creates a note on a resource.
requestBody: { $ref: '#/components/requestBodies/ResourceBody' }
responses:
'201':
description: The created note.
content:
application/vnd.api+json:
schema: { $ref: '#/components/schemas/ResourceDocument' }
components:
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.
parameters:
Id:
name: id
in: path
required: true
description: The UUID of the resource.
schema: { type: string }
Include:
name: include
in: query
required: false
description: Comma-separated list of related resources to sideload (JSON:API include).
schema: { type: string }
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 }
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' }
responses:
Unauthorized:
description: Authentication is missing or invalid.
content:
application/vnd.api+json:
schema: { $ref: '#/components/schemas/ErrorDocument' }
NotFound:
description: The requested resource does not exist.
content:
application/vnd.api+json:
schema: { $ref: '#/components/schemas/ErrorDocument' }
UnprocessableEntity:
description: The request was well-formed but failed validation.
content:
application/vnd.api+json:
schema: { $ref: '#/components/schemas/ErrorDocument' }
TooManyRequests:
description: Rate limit exceeded. "You're doing too many requests! Slow down!"
content:
application/vnd.api+json:
schema: { $ref: '#/components/schemas/ErrorDocument' }
schemas:
ResourceIdentifier:
type: object
properties:
type: { type: string, description: The JSON:API resource type (for example "orders"). }
id: { type: string, description: The resource UUID. }
Resource:
type: object
description: A JSON:API res
# --- truncated at 32 KB (33 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/booqable/refs/heads/main/openapi/booqable-openapi.yml