Skip to main content

Create Extra

Add an extra to the supplier's catalog.

Endpointโ€‹

POST /v1/extras

Authenticationโ€‹

Requires an API key with the products:write scope.

Request Bodyโ€‹

FieldTypeRequiredDescription
namestringYesExtra name, e.g. "Helmet"
pricenumberFor fixed charge extrasCharge price in the supplier's currency. Rental and store extras use the linked item.
price_set_when_bookedbooleanNotrue when the price changes per booking (a pickup priced by area, a venue fee). Staff enter it on each booking and no catalog price is needed. Plain charge extras only. See Extras priced when booked.
descriptionstringNoShort customer-facing description
fulfillment_typestringNocharge (default), rental (borrow and return), or sale (keep a store item)
linked_product_idintegerFor rental extrasExisting rental item in this supplier's fleet
linked_store_product_idintegerFor sale extrasExisting store item in this supplier's catalog
rental_pricenumber or nullNoRental extras only. Price per borrowed item for the parent booking window. Zero is free; null uses the linked rental rate. Stock always comes from the linked rental.
addon_onlybooleanNoHide the linked rental or store item from standalone sales. Defaults to false.
charge_perstringNoonce (default, added to a line once), per_item (price times how many the customer picks), per_rental_item (required for each rented item), per_person, or per_time
time_unitstringWhen charge_per = per_timehour, day, or week โ€” the billing period (e.g. day for $2/day)
rental_applies_tostringNonone, all (default), categories, products
experience_applies_tostringNonone (default), all, experiences
product_idsinteger[]NoProduct ids when rental_applies_to = products
category_idsinteger[]NoCategory ids when rental_applies_to = categories
experience_idsinteger[]NoExperience ids when experience_applies_to = experiences
stock_quantityintegerNoHow many exist; omit for unlimited
activebooleanNoDefaults to true

An extra must be available somewhere โ€” requests with both rental_applies_to and experience_applies_to set to none return 422. Targeted ids belonging to another supplier are ignored.

Responseโ€‹

Success (201 Created)โ€‹

Returns the created Extra object.

Exampleโ€‹

curl -X POST "https://app.equipdash.com/api/v1/extras" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "E-Bike Insurance",
"description": "No extra costs if the bike gets damaged (frame not included).",
"price": 18,
"charge_per": "once",
"rental_applies_to": "categories",
"category_ids": [4]
}'