The input objects, object types and enums the Rentals & Bookings GraphQL operations take and return. A ! after a type means it is required (in an input) or never null (in an answer); [Type!]! is a list. The GraphQL explorer (Settings › API › Open the GraphQL explorer) shows the same in its Docs pane.
Input types #
What you pass to the operations, area by area. Fields you leave out take the default shown after =.
Products, availability and prices #
RentalAvailabilityInput – An availability question. Give variantId, or productId when the product has one rent variant.
| Field | Type | Notes |
|---|---|---|
productId | ID | |
variantId | ID | |
startDate | String! | Start: 2026-12-01, 2026-12-01 09:00 or 2026-12-01T09:00. |
endDate | String! | End. A date-only rental from the 1st to the 3rd runs to midnight on the 3rd; start = end is one day. |
quantity | Int = 1 | |
excludeBookingId | ID | Leave this booking’s own units out (an edit screen asking whether a booking can move). |
excludeOrderId | ID | Leave every booking of this order out. |
applyTurnover | Boolean = true | Add the product’s turnaround time around the range (as the calendar blocks it). Default true. |
locationId | ID | Units at this location only (gid://shopify/Location/… or the number). |
RentalCalendarInput – A window to describe for a date picker. Give variantId, or productId (its first rent variant for the storefront).
| Field | Type | Notes |
|---|---|---|
productId | ID | |
variantId | ID | |
startDate | String | First day, Y-m-d. With it, the calendar payload covers startDate to endDate (default 90 days, at most 400); without it, everything from two days ago on. |
endDate | String | Last day, Y-m-d. |
slim | Boolean | A lighter calendar payload (no day prices). |
display | String | global: the calendar as the store-wide calendar shows it. |
locationId | ID | The pick-up location: the calendar is for that location’s stock and bookings. |
method | RentalHandoverMethod | The calendar for this method (its transit and hand-over days; the payload’s handover). |
returnMethod | RentalReturnMethod |
RentalPriceInput – What to price. Give variantId, or productId when the product has one rent variant.
| Field | Type | Notes |
|---|---|---|
productId | ID | |
variantId | ID | |
quantity | Int = 1 | |
startDate | String! | Start date (Y-m-d), or date and time (2026-10-01T09:00). |
endDate | String | End date; default the start date (one day). |
startTime | String | Start time (HH:mm) when startDate has none. |
endTime | String | End time (HH:mm) when endDate has none. |
guests | RentalPartyInput | The party, for a product that counts guests. |
locale | String | The storefront language for texts such as the Rental dates attribute, e.g. fr. |
locationId | ID | The pick-up location (prices don’t depend on it yet). |
method | RentalHandoverMethod | The method (prices don’t depend on it yet). |
returnMethod | RentalReturnMethod |
RentalPartyInput – A party of guests, for products that count guests. Leave it out for products that don’t.
| Field | Type | Notes |
|---|---|---|
guests | Int | Total guests, when the product doesn’t split them. |
adults | Int | |
children | Int | |
infants | Int | |
pets | Int |
RentalDayPricesInput
| Field | Type | Notes |
|---|---|---|
productId | ID | |
variantId | ID | |
startDate | String | First day, Y-m-d; default today. |
endDate | String | Last day, Y-m-d; default 30 days after the start. At most 366 days. |
RentalSearchSelectionInput – A date search (the search block’s selection; the theme’s sr_* URL parameters).
| Field | Type | Notes |
|---|---|---|
from | String | First day, Y-m-d. |
to | String | Last day, Y-m-d (default from). |
fromTime | String | HH:mm |
toTime | String | HH:mm |
quantity | Int | |
length | String | A length code instead of to: 4h, 3d, 2w, 1m, 1y. |
guests | Int | |
adults | Int | |
children | Int | |
infants | Int | |
pets | Int | |
where | String | A place as typed (≤ 100 characters): the shop’s own places first, then the geocoder. |
radiusKm | Int | Kilometres around where, 1–500 (default 25). |
locationId | ID | A pick-up location (the theme’s sr_loc): available THERE; without it, available at some location. |
| Enum | Values |
|---|---|
RentalHandoverMethod | PICKUP – The customer picks it up.DELIVERY – The store delivers it.SHIPPED – It is posted (shipped). |
RentalReturnMethod | IN_STORE – The customer brings it back to the store.COLLECT – The store collects it.POST – The customer posts it back. |
Bookings #
RentalBookingFilterInput – Booking filters; they combine with AND.
| Field | Type | Notes |
|---|---|---|
productId | ID | |
variantId | ID | |
orderId | ID | |
state | RentalBookingState | |
statuses | [RentalBookingStatus!] | |
sources | [RentalBookingSource!] | |
endsAfter | String | Only bookings ending (turnaround included) after this moment. |
startsBefore | String | Only bookings starting (turnaround included) before this moment; a bare date means that day at 23:59. |
search | String | Order name / number, booking number, customer, product / variant title, SKU or notes. |
isBooked | Boolean | true: still hold stock; false: cancelled. |
locationId | ID | Picked up at this location (bookings without one belong to the default location). |
method | RentalHandoverMethod | |
outOn | String | Goes out on this day (Y-m-d). |
backOn | String | Comes back on this day (Y-m-d). |
RentalBookingCreateInput
| Field | Type | Notes |
|---|---|---|
productId | ID | |
variantId | ID | |
startDate | String! | Start: 2026-12-01, 2026-12-01 09:00 or 2026-12-01T09:00. |
endDate | String! | End. A date-only rental from the 1st to the 3rd runs to midnight on the 3rd; start = end is one day. |
quantity | Int = 1 | |
customerId | ID | The customer the draft order is for. |
email | String | The customer’s email, when there is no customer yet. |
notes | String | |
block | Boolean = false | Blocked dates (maintenance, private use): no order. |
force | Boolean = false | Let blocked dates overlap other bookings. |
guests | RentalPartyInput | The party, for a product that counts guests: person mode books the party’s seats, unit mode at least the units the party needs. |
locationId | ID | The pick-up location (the hold and the draft order are for its stock). |
method | RentalHandoverMethod | |
returnMethod | RentalReturnMethod | |
window | String | |
backWindow | String |
RentalBookingUpdateInput
| Field | Type | Notes |
|---|---|---|
startDate | String | New start (one date alone keeps the other). |
endDate | String | New end. |
notes | String | Replaces the booking’s notes. |
reason | String | Why the dates changed (kept on the booking’s history). |
force | Boolean = false | Skip the stock check. |
| Enum | Values |
|---|---|
RentalBookingState | UPCOMINGOUTOVERDUERETURNED |
RentalBookingStatus | RESERVED – Holds stock; nothing out yet.OUT – Units are with the customer.RETURNED – Everything is back.CANCELLED – Cancelled; the stock is free.CONFLICT – The order came in when the stock was gone: needs attention. |
RentalBookingSource | ONLINE – The Online Store or a headless storefront (checkout).POS – Shopify POS.ADMIN – Made by staff in the app (a draft order).API – Made through this API with a secret key.ICAL – An imported outside calendar (iCal).BLOCK – Blocked dates (maintenance, private use).IMPORT – Imported from another system (a data import). |
RentalBookingSortKey | IDSTART_DATEEND_DATE |
Orders #
RentalOrderFilterInput
| Field | Type | Notes |
|---|---|---|
startDate | String | The window’s start: default today 00:00. |
endDate | String | The window’s end: default the end of the start day. |
productId | ID | |
variantId | ID | |
state | RentalBookingState | |
statuses | [RentalBookingStatus!] | Booking statuses. |
search | String | Order name / number, booking number, customer, product / variant title, SKU. |
isBooked | Boolean = true | Only rentals that still hold stock (default); false also lists orders whose rentals were cancelled. |
Send & Return #
RentalMoveQueueFilterInput
| Field | Type | Notes |
|---|---|---|
productId | ID | |
variantId | ID | |
orderId | ID | |
search | String | Order name / number, booking number, customer, product / variant title, SKU. |
locationId | ID | Picked up at this location (bookings without one belong to the default location). |
RentalMovementFilterInput
| Field | Type | Notes |
|---|---|---|
bookingId | ID | |
variantId | ID | |
productId | ID | |
dateFrom | String | First day, Y-m-d (store time). |
dateTo | String | Last day, Y-m-d. |
search | String | Product, order, customer, SKU — or a serial the movement moved. |
RentalMovesInput
| Field | Type | Notes |
|---|---|---|
items | [RentalMoveItemInput!]! | |
atomic | Boolean = true | One bad item refuses the whole batch (nothing recorded). Default true. |
notify | Boolean = false | Ask the notification rules to tell the customer (the store’s rules decide). |
locationId | ID | Where the check-out or check-in happened. |
RentalMoveItemInput
| Field | Type | Notes |
|---|---|---|
bookingId | ID! | |
quantity | Int | Units to move: default the number of serials, else 1. |
serials | [String!] | Serial numbers moved (one per unit for a product that tracks serials). |
notes | String |
RentalScanInput
| Field | Type | Notes |
|---|---|---|
code | String! | A serial number, an order name (#1042 / 1042), a booking number or a SKU. |
bookingId | ID | |
orderId | ID | |
variantId | ID | |
productId | ID | |
notes | String | |
notify | Boolean = false | |
locationId | ID | Where the check-out or check-in happened. |
| Enum | Values |
|---|---|
RentalMoveDirection | SENDRETURN |
RentalMovementSortKey | DATETIMEIDBOOKING_IDQUANTITY |
Serial numbers #
RentalSerialNumberFilterInput
| Field | Type | Notes |
|---|---|---|
productId | ID | |
variantId | ID | |
status | RentalSerialStatus | |
search | String | Part of the code. |
RentalSerialUsageInput
| Field | Type | Notes |
|---|---|---|
startDate | String | First day, Y-m-d. With it, days days from there; without it, the last days days (30, 90 or 365) ending today. |
days | Int | |
productId | ID | |
sort | String | code, product, days_out, days_idle, utilisation, hires, revenue, revenue_per_day, … |
direction | String | asc or desc |
RentalSerialNumberCreateInput
| Field | Type | Notes |
|---|---|---|
productId | ID | Give variantId, or productId when the product has one rent variant. |
variantId | ID | |
serialNumber | String! | |
status | RentalSerialStatus | AVAILABLE (default), MAINTENANCE or RETIRED. |
cost | String | A decimal string. |
dateAcquired | String | Y-m-d; default today. |
notes | String |
RentalSerialNumberRangeInput
| Field | Type | Notes |
|---|---|---|
productId | ID | |
variantId | ID | |
from | String | The first code, e.g. TENT-001. |
to | String | The last code, e.g. TENT-020. |
range | String | Or both at once: TENT-001…TENT-020 (also .. or -). |
status | RentalSerialStatus | |
cost | String | |
dateAcquired | String | |
notes | String |
RentalSerialNumberUpdateInput
| Field | Type | Notes |
|---|---|---|
serialNumber | String | |
status | RentalSerialStatus | |
cost | String | |
dateAcquired | String | |
notes | String | |
variantId | ID | Move it to another rent variant (not while it is out). |
| Enum | Values |
|---|---|
RentalSerialStatus | AVAILABLE – On the shelf; the only status a unit can go out in.OUT – With a customer (set by a check-out, cleared by a check-in; never by hand).MAINTENANCE – Being repaired or checked; can’t go out.RETIRED – No longer owned; kept for its history. |
Locations and stock #
RentalProductStockInput
| Field | Type | Notes |
|---|---|---|
productId | ID! | |
mode | RentalStockMode! | |
variants | [RentalVariantStockInput!] | BY_LOCATION: units per location per variant. SHARED: optional units per variant (default: keep the total). |
force | Boolean = false | Save even when future bookings would no longer fit. |
RentalVariantStockInput
| Field | Type | Notes |
|---|---|---|
variantId | ID! | |
units | Int | SHARED: the variant’s units. |
locations | [RentalLocationStockInput!] |
RentalLocationStockInput
| Field | Type | Notes |
|---|---|---|
locationId | ID! | |
units | Int! |
| Enum | Values |
|---|---|
RentalStockMode | SHARED – One stock, picked up at the default location.BY_LOCATION – Units at each location. |
Rental kits #
RentalKitCreateInput
| Field | Type | Notes |
|---|---|---|
title | String! | |
items | [RentalKitItemInput!]! | 1 to 30 items. |
pricing | RentalKitPricing = OWN | |
itemsDiscountPercent | String | |
useItemRules | Boolean = true | |
rentalType | String | date | datetime | datefixed | datetimefixed (default: the first item’s). |
RentalKitItemInput
| Field | Type | Notes |
|---|---|---|
variantId | ID! | The item’s rent variant (gid or numeric id). |
quantity | Int! | 1 to 2000. |
RentalKitUpdateInput
| Field | Type | Notes |
|---|---|---|
title | String | |
items | [RentalKitItemInput!] | |
pricing | RentalKitPricing | |
itemsDiscountPercent | String | |
useItemRules | Boolean |
| Enum | Values |
|---|---|
RentalKitPricing | OWN – The kit’s own rental rates.ITEMS_SUM – The sum of the items’ rental prices for the dates, minus itemsDiscountPercent. |
Delivery & pickup #
RentalHandoverWindowsInput
| Field | Type | Notes |
|---|---|---|
productId | ID | |
variantId | ID | |
method | RentalHandoverMethod | |
returnMethod | RentalReturnMethod | |
date | String! | The day (Y-m-d). |
locationId | ID | |
back | Boolean | The return day’s slots instead of the out day’s. |
RentalHandoverChangeInput
| Field | Type | Notes |
|---|---|---|
bookingId | ID! | gid://sirentals/Booking/… or the number. |
method | RentalHandoverMethod | |
returnMethod | RentalReturnMethod | |
window | String | |
backWindow | String | |
returnTracking | String | |
force | Boolean | Keep it even when the new transit days are booked. |
Balances #
RentalBalanceInvoiceInput
| Field | Type | Notes |
|---|---|---|
balanceId | ID! | |
to | String | Send to this address instead of the customer’s. |
message | String | A message in the email. |
| Enum | Values |
|---|---|
RentalBalanceStatus | ADDING – Being added to the order.DUEOVERDUEPAIDWAIVEDCANCELLED – The order was cancelled.FAILED – Shopify refused the order edit and the invoice: see the Balances page. |
Calendar sync #
RentalCalendarImportInput
| Field | Type | Notes |
|---|---|---|
url | String! | The calendar’s address (https://…ics). |
name | String | |
variantId | ID | The rent variant it blocks (required when the product has several). |
blockQuantity | Int | Units each event blocks (default: every unit). |
intervalMinutes | Int | Minutes between reads (at least 5, default 30). |
syncNow | Boolean = true |
RentalCalendarImportUpdateInput
| Field | Type | Notes |
|---|---|---|
url | String | |
name | String | |
enabled | Boolean | |
blockQuantity | Int | |
blockAllUnits | Boolean | Block every unit again. |
intervalMinutes | Int |
| Enum | Values |
|---|---|
RentalCalendarFeedFlavour | AVAILABILITY – Busy / free per day, no customer data: for booking channels.OPERATIONAL – Every booking with its customer: for the team’s own calendar. |
API keys #
RentalApiKeyInput
| Field | Type | Notes |
|---|---|---|
name | String! | Who or what will use it. |
scopes | [String!] | [“read”] (default) or [“read”, “write”]. |
Object types #
What the operations answer. Connection types (…Connection, …Edge) follow the usual pattern: nodes, edges { cursor node }, pageInfo and totalCount. userErrors on every mutation payload is a list of RentalUserError { field message code data httpStatus }.
Store and caller #
| Type | Fields |
|---|---|
RentalShopThe store the credential belongs to. | domain: String!, name: String, currency: String!, timezone: String!, today: String!, primaryLocale: String, checkoutReady: Boolean! |
RentalApiCallerWho is calling. | context: RentalApiContext!, app: String!, scopes: [String!]!, keyPrefix: String, installedApps: [String!]!, customerId: ID |
| Enum | Values |
|---|---|
RentalApiContext | INTEGRATION – A secret API key (sirb_…).STOREFRONT – A publishable key (sirpk_…), or the online store’s own rental calendar.ADMIN – The app’s own admin screens.CUSTOMER – The app’s own customer account screens. |
Products, availability and prices #
| Type | Fields |
|---|---|
RentalProductA rent variant: a product variant this store rents out. | productId: ID!, variantId: ID!, title: String, variantTitle: String, sku: String, rentalType: String, hasTime: Boolean!, mode: String!, units: Int, enabled: Boolean! |
RentalAvailabilityWhether a quantity can be rented over a date range. | productId: ID!, variantId: ID!, startDate: String!, endDate: String!, totalQuantity: Int!, bookedQuantity: Int!, availableQuantity: Int!, requestedQuantity: Int!, isAvailable: Boolean! |
RentalCalendarAvailability for one product over a window. | productId: ID!, variantId: ID!, totalQuantity: Int!, window: RentalDateWindow, today: String!, currency: String!, fullyBookedDays: [RentalBookedDay!]!, inventory: [RentalInventoryInterval!]!, widgetConfig: JSON!, product: RentalProduct! |
RentalDateWindowA range of days, Y-m-d. | from: String!, to: String! |
RentalBookedDayA day with every unit taken. | date: String!, quantity: Int! |
RentalInventoryIntervalUnits taken over an interval, turnaround included. | quantity: Int!, start: String!, end: String! |
RentalPriceListThe product’s rate card. | productId: ID!, variantId: ID!, name: String, variantTitle: String, rentalType: String, priceType: String, from: RentalPriceFrom!, headline: RentalPriceHeadline!, rates: [RentalRate!]!, minLength: JSON, maxLength: JSON, currency: String!, currencySymbol: String |
RentalPriceFrom | amount: Float!, unit: String |
RentalPriceHeadline | amount: Float!, period: String |
RentalRateOne period of the rate card. | label: String!, period: String!, quantity: Int!, unit: String!, days: Float!, price: Float!, perDay: Float, addOn: RentalRateAddOn |
RentalRateAddOn | label: String!, period: String!, price: Float! |
RentalQuoteWhat a rental costs: the storefront’s quote, what the cart line will charge. | productId: ID!, variantId: ID!, startDate: String!, endDate: String!, quantity: Int!, days: Int!, hours: Float!, unitPrice: Float!, total: Float!, lines: [RentalQuoteLine!]!, extraLines: [RentalQuoteLine!]!, guests: JSON, lengthUnit: String, currency: String!, currencySymbol: String, chargedTotal: Float!, tokenUnitPrice: String!, payment: RentalPaymentOptions |
RentalQuoteLineOne line of a price breakdown. | label: String!, kind: String!, amount: Float! |
RentalPaymentOptionsHow a rental can be paid (the store’s Settings › Payments). Present when part payment can apply to the product. | options: [RentalPaymentChoice!]!, default: RentalPaymentChoice!, part: RentalPaymentSplit, reason: String, message: String |
RentalPaymentSplitPart now, the balance later: decimal strings in the store currency. | payNow: String!, balance: String!, dueDate: String!, dueAt: String, dueLabel: String, percent: Float, text: String |
RentalDayPricesA one-day hire’s price starting on each day. | productId: ID!, variantId: ID!, startDate: String!, endDate: String!, note: String!, days: [RentalDayPrice!]!, currency: String!, currencySymbol: String |
RentalDayPrice | date: String!, amount: Float! |
RentalCatalogAvailability | items: [RentalCatalogEntry!]!, where: RentalWhere |
RentalCatalogEntry | key: String!, productId: ID, handle: String, rental: Boolean!, available: Boolean, units: Int, distanceKm: Float, near: Boolean |
RentalWhereA place a Where search resolved to. | resolved: Boolean!, label: String, lat: Float, lng: Float, radiusKm: Int |
RentalMap | markers: [RentalMapMarker!]!, where: RentalWhere |
RentalMapMarker | productId: ID!, handle: String!, title: String!, url: String!, image: String, lat: Float!, lng: Float!, radius: Float, approximate: Boolean!, area: String, from: String, available: Boolean, near: Boolean, distanceKm: Float |
| Enum | Values |
|---|---|
RentalPaymentChoice | FULLPART |
Bookings #
| Type | Fields |
|---|---|
RentalBookingA booking: units of a rent variant held for a date range. | id: ID!, legacyResourceId: Int!, productId: ID, variantId: ID!, productName: String, variantTitle: String, sku: String, orderId: ID, orderName: String, lineItemId: ID, draftOrderId: ID, quantity: Int!, startDate: String!, endDate: String!, startDateWithTurnover: String, endDateWithTurnover: String, customerStart: String, customerEnd: String, startLabel: String, endLabel: String, quantitySent: Int!, quantityReturned: Int!, quantityToSend: Int!, quantityToReturn: Int!, canSend: Boolean!, canReturn: Boolean!, isBooked: Boolean!, status: RentalBookingStatus!, state: RentalBookingState!, overdue: Boolean!, conflictReason: String, source: RentalBookingSource, customer: RentalBookingCustomer, notes: String, guests: JSON, unitPrice: Float, currency: String, createdAt: String, serialsTracked: Boolean!, serials: [RentalBookingSerial!]!, serialsAvailable: [String!]!, movements: [RentalMovement!]!, dateChangeCalendar: RentalDateChangeCalendar, location: RentalLocation, payment: RentalBookingPayment, handover: RentalHandover, kind: RentalBookingKind!, kitBooking: RentalBooking, items: [RentalBooking!]! |
RentalBookingCustomerThe customer of a booking. | id: ID, name: String, email: String |
RentalBookingSerial | code: String!, out: Boolean! |
RentalMovementA check-out or a check-in. | id: ID!, legacyResourceId: Int!, direction: RentalMoveDirection!, datetime: String, quantity: Int!, serials: [String!]!, staffUserId: ID, notes: String!, booking: RentalBooking |
RentalDateChangeCalendar | disallowed: [String!]!, closedDays: [String!]!, min: String!, max: String! |
RentalLocationA Shopify location of the store, as a place to pick up rentals. | id: ID!, legacyResourceId: Int!, name: String!, shopifyName: String, publicName: String, address: RentalLocationAddress, area: String, active: Boolean!, rentalsEnabled: Boolean!, isDefault: Boolean!, acceptsReturns: Boolean!, pickupEnabled: Boolean!, instructions: String |
RentalLocationAddress | address1: String, address2: String, city: String, province: String, zip: String, country: String, countryCode: String, phone: String |
RentalBookingPaymentA part-paid rental line: what was paid at checkout and what is owed. | choice: RentalPaymentChoice!, full: String, paidNow: String, balance: String, dueDate: String, status: RentalBalanceStatus |
RentalHandoverA booking’s hand-over: the out moment (pick-up, delivery or dispatch day) and the back moment (return, collection or the day the parcel is due back). | method: RentalHandoverMethod!, returnMethod: RentalReturnMethod!, label: String, returnLabel: String, outAt: String, outWindow: String, backAt: String, backWindow: String, outLabel: String, backLabel: String, text: String, transitOutMinutes: Int!, transitBackMinutes: Int!, mismatch: JSON, returnTracking: String, deliveryAddress: JSON |
RentalBookingDatesCheck | ok: Boolean!, errors: [RentalRuleError!]!, priceDifference: Float |
RentalRuleErrorA rule of the store a request breaks. | code: String!, message: String!, field: String |
RentalCustomerBookings | current: [RentalBooking!]!, upcoming: [RentalBooking!]!, past: [RentalBooking!]! |
RentalCustomer | customerId: ID!, name: String, email: String, current: Int!, upcoming: Int! |
RentalBookingCreatePayload | booking: RentalBooking, draftOrder: RentalDraftOrder, userErrors: [RentalUserError!]! |
RentalDraftOrder | id: ID, name: String, invoiceUrl: String |
RentalBookingPayload | booking: RentalBooking, userErrors: [RentalUserError!]! |
RentalBookingDeletePayload | deletedBookingId: ID, cancelled: Boolean, previous: RentalBooking, userErrors: [RentalUserError!]! |
| Enum | Values |
|---|---|
RentalBookingKind | ITEM – One rental item (it holds stock).KIT – A rental kit: its items are item bookings (see items). |
Orders #
| Type | Fields |
|---|---|
RentalOrderAn order, reduced to its rentals. | id: ID!, legacyResourceId: String!, name: String, status: RentalBookingStatus, customer: RentalBookingCustomer, earliestStart: String, latestEnd: String, bookings: [RentalBooking!]!, conflictCount: Int! |
Send & Return #
| Type | Fields |
|---|---|
RentalMoveQueueEdgeA booking in a work queue, with what the queue says about it. | cursor: String!, node: RentalBooking!, due: String, overdue: Boolean!, quantity: Int!, tracksSerials: Boolean!, serials: [String!]! |
RentalMoveQueueCounts | today: Int!, overdue: Int!, week: Int!, all: Int! |
RentalMovesPayload | processed: Int, items: [RentalMoveResult!], failures: [RentalMoveFailure!], userErrors: [RentalUserError!]! |
RentalMoveResult | booking: RentalBooking!, quantity: Int!, serials: [String!]!, outstanding: Int! |
RentalMoveFailure | index: Int!, bookingId: ID, code: String!, message: String!, httpStatus: Int |
RentalScanPayload | action: String, code: String, serials: [String!], booking: RentalBooking, outstanding: Int, userErrors: [RentalUserError!]! |
Serial numbers #
| Type | Fields |
|---|---|
RentalSerialNumberOne physical unit of a serial-tracked rent variant. | id: ID!, legacyResourceId: Int!, serialNumber: String!, productId: ID, variantId: ID!, status: RentalSerialStatus!, cost: String, dateAcquired: String, dateRetired: String, notes: String!, currentBookingId: ID, currentOrderId: ID, lastMovement: RentalSerialLastMovement, history: [RentalSerialMovement!]! |
RentalSerialLastMovement | direction: RentalMoveDirection!, datetime: String, staffUserId: ID, bookingId: ID |
RentalSerialMovement | id: ID!, direction: RentalMoveDirection!, datetime: String, staffUserId: ID, bookingId: ID, orderId: ID, orderName: String, quantity: Int!, notes: String! |
RentalSerialUsage | window: RentalDateWindow!, rows: [RentalSerialUsageRow!]!, totals: RentalSerialUsageTotals! |
RentalSerialUsageRow | serialId: ID, variantId: ID, productId: ID, serialNumber: String, product: String, status: String, dateAcquired: String, daysOwned: Int, daysOut: Int, daysIdle: Int, utilisation: Int, hires: Int, revenue: Float, revenuePerDay: Float, unassigned: Boolean! |
RentalSerialUsageTotals | daysOut: Int!, daysOwned: Int!, revenue: Float!, serials: Int!, idle: Int!, unassignedRevenue: Float!, unassignedDays: Int!, overDays: Int! |
RentalSerialLabelsA signed, short-lived link to a label sheet. | url: String!, count: Int! |
RentalSerialTracking | productId: ID!, tracking: Boolean!, counts: RentalSerialCounts! |
RentalSerialCounts | available: Int!, out: Int!, maintenance: Int!, retired: Int! |
RentalSerialNumberPayload | serialNumber: RentalSerialNumber, userErrors: [RentalUserError!]! |
RentalSerialNumbersPayload | serialNumbers: [RentalSerialNumber!], createdCount: Int, skipped: [String!], userErrors: [RentalUserError!]! |
RentalSerialNumberDeletePayload | deletedSerialNumberId: ID, previous: RentalSerialNumber, userErrors: [RentalUserError!]! |
Locations and stock #
| Type | Fields |
|---|---|
RentalProductStock | productId: ID!, mode: RentalStockMode!, variants: [RentalVariantStock!]! |
RentalVariantStock | variantId: ID!, title: String, total: Int, locations: [RentalLocationStock!]! |
RentalLocationStock | locationId: ID!, units: Int!, activated: Boolean! |
RentalProductStockPayload | stock: RentalProductStock, conflicts: [RentalStockConflict!], userErrors: [RentalUserError!]! |
RentalStockConflictA booking that needs more units at its location than the new stock has. | bookingId: ID!, orderName: String, start: String, end: String, quantity: Int!, locationId: ID, short: Int! |
Rental kits #
| Type | Fields |
|---|---|
RentalKit | id: ID!, legacyResourceId: Int!, productId: ID!, variantId: ID!, title: String!, source: RentalKitSource!, pricing: RentalKitPricing!, itemsDiscountPercent: String, useItemRules: Boolean!, items: [RentalKitItem!]! |
RentalKitItem | productId: ID!, variantId: ID!, title: String!, variantTitle: String, quantity: Int! |
RentalKitPayload | kit: RentalKit, userErrors: [RentalUserError!]! |
RentalKitDeletePayload | deletedKitId: ID, userErrors: [RentalUserError!]! |
| Enum | Values |
|---|---|
RentalKitSource | APP – Made in the app or through this API.SHOPIFY_BUNDLES – A Shopify Bundles product run as a fixed-price kit. |
Delivery & pickup #
| Type | Fields |
|---|---|
RentalHandoverWindowA time slot of a hand-over day. | id: String!, from: String!, to: String!, label: String, capacity: Int, left: Int, full: Boolean! |
RentalDeliverySettingsPayload | settings: JSON, userErrors: [RentalUserError!]! |
Balances #
| Type | Fields |
|---|---|
RentalBalanceThe balance of an order with part-paid rentals: one per order, one payment link. | id: ID!, legacyResourceId: Int!, orderId: ID!, orderName: String, amount: String!, currency: String!, amountShop: String!, shopCurrency: String!, dueDate: String!, status: RentalBalanceStatus!, method: RentalBalanceMethod!, remindersSent: Int!, paidAt: String, paymentUrl: String, bookings: [RentalBooking!]! |
RentalBalancePayload | balance: RentalBalance, userErrors: [RentalUserError!]! |
| Enum | Values |
|---|---|
RentalBalanceMethod | ORDER_EDIT – On the same order (an order edit): the order’s own payment page.INVOICE – A separate invoice (a draft order), when the order couldn’t be edited.POS – A split payment at the counter. |
Calendar sync #
| Type | Fields |
|---|---|
RentalCalendarSync | productId: ID!, rentalType: String, feeds: RentalCalendarFeeds!, variants: [RentalCalendarVariant!]!, imports: [RentalCalendarImport!]! |
RentalCalendarFeeds | availability: RentalCalendarFeed!, operational: RentalCalendarFeed, variants: [RentalCalendarVariantFeeds!]! |
RentalCalendarFeed | flavour: RentalCalendarFeedFlavour!, url: String!, rotatedAt: String, lastAccessAt: String |
RentalCalendarVariantFeeds | variantId: ID!, title: String, availability: RentalCalendarFeed!, operational: RentalCalendarFeed |
RentalCalendarVariant | id: ID!, title: String, units: Int! |
RentalCalendarImportA calendar the store imports. | id: ID!, legacyResourceId: Int!, productId: ID!, variantId: ID!, name: String, host: String!, enabled: Boolean!, blockQuantity: Int, intervalMinutes: Int!, lastSyncAt: String, nextSyncAt: String, lastStatus: String, lastError: String, lastEventCount: Int, failures: Int!, blocks: Int! |
RentalCalendarSyncPayload | calendarSync: RentalCalendarSync, userErrors: [RentalUserError!]! |
RentalCalendarImportPayload | calendarImport: RentalCalendarImport, result: RentalCalendarSyncResult, userErrors: [RentalUserError!]! |
RentalCalendarSyncResultWhat a read of an imported calendar did. | status: String!, message: String, added: Int, updated: Int, removed: Int, events: Int |
RentalCalendarImportDeletePayload | deletedCalendarImportId: ID, userErrors: [RentalUserError!]! |
Rental settings and API keys #
| Type | Fields |
|---|---|
RentalSettingsImportPayload | report: RentalSettingsImportReport, userErrors: [RentalUserError!]! |
RentalSettingsImportReport | dryRun: Boolean!, summary: JSON!, products: [RentalSettingsImportProduct!]!, errors: JSON!, unknownColumns: [String!]! |
RentalSettingsImportProduct | productId: ID!, title: String, lines: [Int!]!, action: String, changes: JSON, errors: JSON, warnings: JSON, result: JSON |
RentalApiKey | id: ID!, legacyResourceId: Int!, name: String!, prefix: String!, lastFour: String, scopes: [String!]!, createdAt: String, lastUsedAt: String, revokedAt: String |
RentalApiKeyCreatePayload | apiKey: RentalApiKey, secret: String, userErrors: [RentalUserError!]! |
RentalApiKeyPayload | apiKey: RentalApiKey, userErrors: [RentalUserError!]! |
