Storefront API reference
39 operations under https://api.shopfa.st/v1/shops/{shop}, where {shop} is the store's handle or st_ id. Send a storefront key in ShopFast-Storefront-Key, and a signed-in buyer's token in ShopFast-Customer-Token. Read the guide for keys, CORS, caching and errors. Generated from the live contract.
The shop
The store: name, currency, status, branding, SEO and links
GET
/v1/shops/{shop}Response
idstringrequiredhandlestringrequirednamestringrequiredtaglinestringrequiredurlstringrequireddomainstringrequiredcurrency"USD" | "EUR" | "GBP" | "CAD" | "AUD" | "INR" | "NPR" | "JPY"requiredcountrystringrequiredsupportEmailstringrequiredstatus"open" | "closed" | "maintenance"required
8 more fields
statusMessagestringrequiredbrandColorstringrequiredlogoUrlstringrequiredfaviconUrlstringrequiredseoobjectrequiredtitlestringrequireddescriptionstringrequiredsocialImageUrlstringrequiredallowIndexingbooleanrequired
statsobjectrequiredproductsCountintegerrequiredunitsSold30dintegerrequiredratingnumberrequiredreviewCountintegerrequiredratingDistributioninteger[]required
testModebooleanrequiredlinksobjectrequiredcheckoutstringrequiredaccountstringrequiredsitemapstringrequiredllmsTxtstringrequiredmcpstringrequired
Refund policy, terms of service and privacy policy (those the seller wrote)
GET
/v1/shops/{shop}/policiesResponse
itemsobject[]requiredhandlestringrequiredtitlestringrequiredbodyHtmlstringrequiredseoTitlestringrequiredseoDescriptionstringrequiredupdatedAtstringrequiredurlstringrequired
Published pages, policies included
GET
/v1/shops/{shop}/pagesResponse
itemsobject[]requiredhandlestringrequiredtitlestringrequiredbodyHtmlstringrequiredseoTitlestringrequiredseoDescriptionstringrequiredupdatedAtstringrequiredurlstringrequired
One page
GET
/v1/shops/{shop}/pages/{handle}Parameters
handlestringrequired
Response
handlestringrequiredtitlestringrequiredbodyHtmlstringrequiredseoTitlestringrequiredseoDescriptionstringrequiredupdatedAtstringrequiredurlstringrequired
Published reviews across the store, newest first, with the rating summary
GET
/v1/shops/{shop}/reviewsParameters
pageinteger | stringperPageinteger | string
Response
summaryobjectrequiredaveragenumberrequiredcountintegerrequireddistributioninteger[]required
reviewsobject[]requiredidrev_… | srv_…requiredratingintegerrequiredtitlestringrequiredbodystringrequiredauthorstringrequiredverifiedbooleanrequiredcreatedAtstringrequiredreplystringrequiredrepliedAtstring | nullrequiredproductobject | nullrequiredsourcestring | nullrequiredsourceLabelstring | nullrequiredimageUrlstring | nullrequiredpinnedbooleanrequired
pageintegerrequiredperPageintegerrequiredpageCountintegerrequired
A product's rating and newest reviews
GET
/v1/shops/{shop}/products/{handle}/reviewsParameters
handlestringrequired
Response
ratingobject | nullrequireddistributioninteger[] | nullrequireditemsobject[]requiredidrev_…requiredratingintegerrequiredtitlestringrequiredbodystringrequiredauthorstringrequiredverifiedbooleanrequiredcreatedAtstringrequiredreplystringrequiredrepliedAtstring | nullrequiredsourcestring | nullrequiredsourceLabelstring | nullrequiredimageUrlstring | nullrequired
Catalog
Products, a page at a time: all of them, a collection or a category (subcategories included)
GET
/v1/shops/{shop}/productsParameters
sort"featured" | "best-selling" | "newest" | "price-ascending" | "price-descending" | "title-ascending"limitinteger | stringafterstring | nullcollectionstring | nullcategorystring | null
Response
itemsobject[]requiredidprd_…requiredhandlestringrequiredtitlestringrequiredtype"file" | "license_key" | "serial" | "subscription" | "discord_role" | "service" | "bundle"requiredshortDescriptionstringrequiredurlstringrequiredimageobject | nullrequiredcoverUrlstringrequiredpriceMinorintegerrequiredcompareAtMinorinteger | nullrequiredcurrency"USD" | "EUR" | "GBP" | "CAD" | "AUD" | "INR" | "NPR" | "JPY"requiredpricingMode"fixed" | "pay_what_you_want" | "free"requiredratingobject | nullrequiredtagsstring[]requiredfeaturedbooleanrequiredcollectionHandlesstring[]requiredcategoryHandlesstring[]requiredvariantsobject[]requiredidvar_…requiredtitlestringrequireddescriptionstringrequiredpriceMinorintegerrequiredcompareAtMinorinteger | nullrequiredavailablebooleanrequiredstockinteger | nullrequiredlowStockbooleanrequired
statusobjectrequiredavailablebooleanrequiredstockinteger | nullrequiredlowStockbooleanrequiredpreorderbooleanrequiredsalesPausedobject | nullrequiredstatusLabelobject | nullrequired
promotionobject | nullrequiredunitsSold30dintegerrequiredupdatedAtstringrequired
totalintegerrequirednextCursorstringrequired
One product by handle (an old handle redirects to the new one)
GET
/v1/shops/{shop}/products/{handle}Parameters
handlestringrequired
Response
idprd_…requiredhandlestringrequiredtitlestringrequiredtype"file" | "license_key" | "serial" | "subscription" | "discord_role" | "service" | "bundle"requiredshortDescriptionstringrequiredurlstringrequiredimageobject | nullrequiredcoverUrlstringrequiredpriceMinorintegerrequiredcompareAtMinorinteger | nullrequired
33 more fields
currency"USD" | "EUR" | "GBP" | "CAD" | "AUD" | "INR" | "NPR" | "JPY"requiredpricingMode"fixed" | "pay_what_you_want" | "free"requiredratingobject | nullrequiredtagsstring[]requiredfeaturedbooleanrequiredcollectionHandlesstring[]requiredcategoryHandlesstring[]requiredvariantsobject[]requiredidvar_…requiredtitlestringrequireddescriptionstringrequiredpriceMinorintegerrequiredcompareAtMinorinteger | nullrequiredavailablebooleanrequiredstockinteger | nullrequiredlowStockbooleanrequired
statusobjectrequiredavailablebooleanrequiredstockinteger | nullrequiredlowStockbooleanrequiredpreorderbooleanrequiredsalesPausedobject | nullrequiredstatusLabelobject | nullrequired
promotionobject | nullrequiredunitsSold30dintegerrequiredupdatedAtstringrequireddescriptionstringrequireddescriptionHtmlstringrequireddeliversstringrequiredgalleryobject[]requiredurlstringrequiredaltstringrequiredwidthinteger | nullrequiredheightinteger | nullrequired
mediaobject[]requiredurlstringrequiredaltstringrequiredwidthinteger | nullrequiredheightinteger | nullrequiredkind"image" | "video" | "youtube" | "vimeo"requiredposterUrlstringrequiredexternalIdstringrequired
bundleItemsobject[]requiredhandlestringrequiredtitlestringrequired
upsellHandlesstring[]requiredcrossSellHandlesstring[]requiredaddOnsobject[]requiredhandlestringrequiredtitlestringrequiredheadlinestringrequiredbodystringrequiredpriceMinorintegerrequiredregularPriceMinorintegerrequiredvariantIdvar_… | nullrequired
seoobjectrequiredtitlestringrequireddescriptionstringrequiredogImageUrlstringrequired
minPerOrderintegerrequiredmaxPerOrderinteger | nullrequiredcheckoutFieldsobject[]requiredidstringrequiredlabelstringrequiredtype"text" | "textarea" | "email" | "number" | "select" | "checkbox" | "url" | "password" | "hidden" | "discord_id"requiredrequiredbooleanrequiredplaceholderstringrequiredhelpTextstringrequiredoptionsstring[]requireddefaultValuestringrequired
subscriptionobject | nullrequiredquantityTiersobject[]requiredminQuantityintegerrequireddiscountBpsintegerrequired
pwywobject | nullrequiredlicenseobject | nullrequiredattributesobjectrequiredgamestring | nullrequiredplatforms"windows" | "mac" | "linux" | "steam" | "epic" | "battlenet" | "riot" | "ea" | "ubisoft" | "xbox" | "playstation" | "switch" | "android" | "ios" | "web" | "other"[]requiredregionstring | nullrequiredstatus"undetected" | "updated" | "testing" | "updating" | "detected" | "down" | nullrequiredstatusNotestringrequiredstatusUpdatedAtstring | nullrequiredinstantDeliverybooleanrequiredpresetKeystring | nullrequiredfeaturesstring[]requiredfeatureGroupsobject[]requiredtitlestringrequireditemsstring[]required
requirementsstring[]required
ratingDistributioninteger[] | nullrequiredreviewsobject[]requiredidrev_…requiredratingintegerrequiredtitlestringrequiredbodystringrequiredauthorstringrequiredverifiedbooleanrequiredcreatedAtstringrequiredreplystringrequiredrepliedAtstring | nullrequiredsourcestring | nullrequiredsourceLabelstring | nullrequiredimageUrlstring | nullrequired
createdAtstringrequired
Live stock and sales status of a product and its options (never cached)
GET
/v1/shops/{shop}/products/{handle}/availabilityParameters
handlestringrequired
Response
idprd_…requiredhandlestringrequiredstatusobjectrequiredavailablebooleanrequiredstockinteger | nullrequiredlowStockbooleanrequiredpreorderbooleanrequiredsalesPausedobject | nullrequiredstatusLabelobject | nullrequired
variantsobject[]requiredidvar_…requiredavailablebooleanrequiredstockinteger | nullrequiredlowStockbooleanrequired
checkedAtstringrequired
Upgrades, "you may also like" products and add-ons for a product
GET
/v1/shops/{shop}/products/{handle}/recommendationsParameters
handlestringrequired
Response
upsellsobject[]requiredidprd_…requiredhandlestringrequiredtitlestringrequiredtype"file" | "license_key" | "serial" | "subscription" | "discord_role" | "service" | "bundle"requiredshortDescriptionstringrequiredurlstringrequiredimageobject | nullrequiredcoverUrlstringrequiredpriceMinorintegerrequiredcompareAtMinorinteger | nullrequiredcurrency"USD" | "EUR" | "GBP" | "CAD" | "AUD" | "INR" | "NPR" | "JPY"requiredpricingMode"fixed" | "pay_what_you_want" | "free"requiredratingobject | nullrequiredtagsstring[]requiredfeaturedbooleanrequiredcollectionHandlesstring[]requiredcategoryHandlesstring[]requiredvariantsobject[]requiredidvar_…requiredtitlestringrequireddescriptionstringrequiredpriceMinorintegerrequiredcompareAtMinorinteger | nullrequiredavailablebooleanrequiredstockinteger | nullrequiredlowStockbooleanrequired
statusobjectrequiredavailablebooleanrequiredstockinteger | nullrequiredlowStockbooleanrequiredpreorderbooleanrequiredsalesPausedobject | nullrequiredstatusLabelobject | nullrequired
promotionobject | nullrequiredunitsSold30dintegerrequiredupdatedAtstringrequired
crossSellsobject[]requiredidprd_…requiredhandlestringrequiredtitlestringrequiredtype"file" | "license_key" | "serial" | "subscription" | "discord_role" | "service" | "bundle"requiredshortDescriptionstringrequiredurlstringrequiredimageobject | nullrequiredcoverUrlstringrequiredpriceMinorintegerrequiredcompareAtMinorinteger | nullrequiredcurrency"USD" | "EUR" | "GBP" | "CAD" | "AUD" | "INR" | "NPR" | "JPY"requiredpricingMode"fixed" | "pay_what_you_want" | "free"requiredratingobject | nullrequiredtagsstring[]requiredfeaturedbooleanrequiredcollectionHandlesstring[]requiredcategoryHandlesstring[]requiredvariantsobject[]requiredidvar_…requiredtitlestringrequireddescriptionstringrequiredpriceMinorintegerrequiredcompareAtMinorinteger | nullrequiredavailablebooleanrequiredstockinteger | nullrequiredlowStockbooleanrequired
statusobjectrequiredavailablebooleanrequiredstockinteger | nullrequiredlowStockbooleanrequiredpreorderbooleanrequiredsalesPausedobject | nullrequiredstatusLabelobject | nullrequired
promotionobject | nullrequiredunitsSold30dintegerrequiredupdatedAtstringrequired
addOnsobject[]requiredhandlestringrequiredtitlestringrequiredheadlinestringrequiredbodystringrequiredpriceMinorintegerrequiredregularPriceMinorintegerrequiredvariantIdvar_… | nullrequired
Published collections in storefront order ("all" first)
GET
/v1/shops/{shop}/collectionsResponse
itemsobject[]requiredhandlestringrequiredtitlestringrequireddescriptionstringrequiredimageUrlstringrequiredseoTitlestringrequiredseoDescriptionstringrequiredproductsCountintegerrequiredurlstringrequiredupdatedAtstringrequired
A collection and a page of its products
GET
/v1/shops/{shop}/collections/{handle}Parameters
handlestringrequiredsort"featured" | "best-selling" | "newest" | "price-ascending" | "price-descending" | "title-ascending"limitinteger | stringafterstring | null
Response
collectionobjectrequiredhandlestringrequiredtitlestringrequireddescriptionstringrequiredimageUrlstringrequiredseoTitlestringrequiredseoDescriptionstringrequiredproductsCountintegerrequiredurlstringrequiredupdatedAtstringrequired
productsobjectrequireditemsobject[]requiredidprd_…requiredhandlestringrequiredtitlestringrequiredtype"file" | "license_key" | "serial" | "subscription" | "discord_role" | "service" | "bundle"requiredshortDescriptionstringrequiredurlstringrequiredimageobject | nullrequiredcoverUrlstringrequiredpriceMinorintegerrequiredcompareAtMinorinteger | nullrequiredcurrency"USD" | "EUR" | "GBP" | "CAD" | "AUD" | "INR" | "NPR" | "JPY"requiredpricingMode"fixed" | "pay_what_you_want" | "free"requiredratingobject | nullrequiredtagsstring[]requiredfeaturedbooleanrequiredcollectionHandlesstring[]requiredcategoryHandlesstring[]requiredvariantsobject[]requiredstatusobjectrequiredpromotionobject | nullrequiredunitsSold30dintegerrequiredupdatedAtstringrequired
totalintegerrequirednextCursorstringrequired
The published category tree, parents before their children
GET
/v1/shops/{shop}/categoriesResponse
itemsobject[]requiredidpcat_…requiredparentIdpcat_… | nullrequiredhandlestringrequiredtitlestringrequireddescriptionstringrequiredimageUrlstringrequiredpositionintegerrequireddepthintegerrequiredsort"manual" | "best_selling" | "newest" | "price_asc" | "price_desc" | "title"requiredseoTitlestringrequiredseoDescriptionstringrequiredproductsCountintegerrequiredpreviousHandlesstring[]requiredupdatedAtstringrequiredurlstringrequired
A category, its subcategories and a page of its products
GET
/v1/shops/{shop}/categories/{handle}Parameters
handlestringrequiredsort"featured" | "best-selling" | "newest" | "price-ascending" | "price-descending" | "title-ascending"limitinteger | stringafterstring | null
Response
categoryobjectrequiredidpcat_…requiredparentIdpcat_… | nullrequiredhandlestringrequiredtitlestringrequireddescriptionstringrequiredimageUrlstringrequiredpositionintegerrequireddepthintegerrequiredsort"manual" | "best_selling" | "newest" | "price_asc" | "price_desc" | "title"requiredseoTitlestringrequiredseoDescriptionstringrequiredproductsCountintegerrequiredpreviousHandlesstring[]requiredupdatedAtstringrequiredurlstringrequired
childrenobject[]requiredidpcat_…requiredparentIdpcat_… | nullrequiredhandlestringrequiredtitlestringrequireddescriptionstringrequiredimageUrlstringrequiredpositionintegerrequireddepthintegerrequiredsort"manual" | "best_selling" | "newest" | "price_asc" | "price_desc" | "title"requiredseoTitlestringrequiredseoDescriptionstringrequiredproductsCountintegerrequiredpreviousHandlesstring[]requiredupdatedAtstringrequiredurlstringrequired
ancestorsobject[]requiredidpcat_…requiredparentIdpcat_… | nullrequiredhandlestringrequiredtitlestringrequireddescriptionstringrequiredimageUrlstringrequiredpositionintegerrequireddepthintegerrequiredsort"manual" | "best_selling" | "newest" | "price_asc" | "price_desc" | "title"requiredseoTitlestringrequiredseoDescriptionstringrequiredproductsCountintegerrequiredpreviousHandlesstring[]requiredupdatedAtstringrequiredurlstringrequired
productsobjectrequireditemsobject[]requiredidprd_…requiredhandlestringrequiredtitlestringrequiredtype"file" | "license_key" | "serial" | "subscription" | "discord_role" | "service" | "bundle"requiredshortDescriptionstringrequiredurlstringrequiredimageobject | nullrequiredcoverUrlstringrequiredpriceMinorintegerrequiredcompareAtMinorinteger | nullrequiredcurrency"USD" | "EUR" | "GBP" | "CAD" | "AUD" | "INR" | "NPR" | "JPY"requiredpricingMode"fixed" | "pay_what_you_want" | "free"requiredratingobject | nullrequiredtagsstring[]requiredfeaturedbooleanrequiredcollectionHandlesstring[]requiredcategoryHandlesstring[]requiredvariantsobject[]requiredstatusobjectrequiredpromotionobject | nullrequiredunitsSold30dintegerrequiredupdatedAtstringrequired
totalintegerrequirednextCursorstringrequired
Search with filters, facets, sorting and pages (the store's own search: synonyms, typos, pinned results)
GET
/v1/shops/{shop}/searchParameters
qstringsortstringcategorystringgamestringplatformstringtypestringdurationstringstatusstringstockstringratingstringminstringmaxstringpagestringperPageinteger | stringvstring
Response
queryobjectrequiredqstringrequirednormalizedstringrequiredcorrectedobject | nullrequireddidYouMeanstringrequiredrelaxedbooleanrequiredredirectstringrequiredtermsstring[]required
stateobjectrequiredqstringrequiredsort"relevance" | "best_selling" | "price_asc" | "price_desc" | "newest" | "rating" | nullrequiredfiltersobjectrequiredcategorystring[]requiredgamestring[]requiredplatform"windows" | "mac" | "linux" | "steam" | "epic" | "battlenet" | "riot" | "ea" | "ubisoft" | "xbox" | "playstation" | "switch" | "android" | "ios" | "web" | "other"[]requiredtype"file" | "license_key" | "serial" | "subscription" | "discord_role" | "service" | "bundle"[]requiredduration"1d" | "3d" | "7d" | "14d" | "30d" | "90d" | "180d" | "365d" | "lifetime"[]requiredstatus"undetected" | "updated" | "testing" | "updating" | "detected" | "down"[]requiredinStockbooleanrequiredratinginteger | nullrequiredpriceMininteger | nullrequiredpriceMaxinteger | nullrequired
pageintegerrequired
sort"relevance" | "best_selling" | "price_asc" | "price_desc" | "newest" | "rating"requiredtotalintegerrequiredpageintegerrequiredperPageintegerrequiredpageCountintegerrequiredproductsobject[]requiredidstringrequiredhandlestringrequiredtitlestringrequiredhighlightany[][]requiredtype"file" | "license_key" | "serial" | "subscription" | "discord_role" | "service" | "bundle"requiredtypeLabelstringrequiredgamestringrequiredimageUrlstringrequiredpriceMinorintegerrequiredpriceMaxMinorintegerrequiredcompareAtMinorinteger | nullrequiredcurrency"USD" | "EUR" | "GBP" | "CAD" | "AUD" | "INR" | "NPR" | "JPY"requiredhasDurationsbooleanrequiredavailablebooleanrequiredpreorderbooleanrequiredstockinteger | nullrequiredlowStockbooleanrequiredstatus"undetected" | "updated" | "testing" | "updating" | "detected" | "down" | nullrequiredstatusLabelstringrequiredstatusTone"good" | "warn" | "bad" | nullrequiredpausedbooleanrequiredratingnumber | nullrequiredratingCountintegerrequiredscorenumberrequired
facetsobject[]requiredkey"category" | "status" | "game" | "platform" | "duration" | "type" | "price" | "rating" | "stock"requiredlabelstringrequiredkind"list" | "toggle" | "range"requiredvaluesobject[]requiredvaluestringrequiredlabelstringrequiredcountintegerrequiredselectedbooleanrequiredtone"good" | "warn" | "bad" | nullrequireddepthintegerrequiredparentstringrequired
priceRangeobject | nullrequired
5 more fields
collectionsobject[]requiredkind"collection" | "page" | "category"requiredhandlestringrequiredtitlestringrequiredurlstringrequiredhighlightany[][]requiredproductCountinteger | nullrequiredparentsstring[]required
pagesobject[]requiredkind"collection" | "page" | "category"requiredhandlestringrequiredtitlestringrequiredurlstringrequiredhighlightany[][]requiredproductCountinteger | nullrequiredparentsstring[]required
categoriesobject[]requiredkind"collection" | "page" | "category"requiredhandlestringrequiredtitlestringrequiredurlstringrequiredhighlightany[][]requiredproductCountinteger | nullrequiredparentsstring[]required
categoryobject | nullrequiredpopularstring[]required
Instant suggestions while the buyer types: products, categories, collections and pages
GET
/v1/shops/{shop}/search/suggestParameters
qstringlimitinteger | stringcategorystringvstring
Response
queryobjectrequiredqstringrequirednormalizedstringrequiredcorrectedobject | nullrequireddidYouMeanstringrequiredrelaxedbooleanrequiredredirectstringrequiredtermsstring[]required
productsobject[]requiredidstringrequiredhandlestringrequiredtitlestringrequiredhighlightany[][]requiredtype"file" | "license_key" | "serial" | "subscription" | "discord_role" | "service" | "bundle"requiredtypeLabelstringrequiredgamestringrequiredimageUrlstringrequiredpriceMinorintegerrequiredpriceMaxMinorintegerrequiredcompareAtMinorinteger | nullrequiredcurrency"USD" | "EUR" | "GBP" | "CAD" | "AUD" | "INR" | "NPR" | "JPY"requiredhasDurationsbooleanrequiredavailablebooleanrequiredpreorderbooleanrequiredstockinteger | nullrequiredlowStockbooleanrequiredstatus"undetected" | "updated" | "testing" | "updating" | "detected" | "down" | nullrequiredstatusLabelstringrequiredstatusTone"good" | "warn" | "bad" | nullrequiredpausedbooleanrequiredratingnumber | nullrequiredratingCountintegerrequiredscorenumberrequired
collectionsobject[]requiredkind"collection" | "page" | "category"requiredhandlestringrequiredtitlestringrequiredurlstringrequiredhighlightany[][]requiredproductCountinteger | nullrequiredparentsstring[]required
pagesobject[]requiredkind"collection" | "page" | "category"requiredhandlestringrequiredtitlestringrequiredurlstringrequiredhighlightany[][]requiredproductCountinteger | nullrequiredparentsstring[]required
categoriesobject[]requiredkind"collection" | "page" | "category"requiredhandlestringrequiredtitlestringrequiredurlstringrequiredhighlightany[][]requiredproductCountinteger | nullrequiredparentsstring[]required
totalintegerrequiredpopularstring[]required
Cart and checkout
Create a cart, optionally with lines. The cart id is the capability: keep it like a session
POST
/v1/shops/{shop}/cartsBody
linesobject[]productIdprd_…requiredvariantIdvar_… | nullcustomPriceMinorinteger | nulladdOnOfprd_… | nulloptionsobjectquantityintegerrequired
Response
idcrt_…requiredcurrency"USD" | "EUR" | "GBP" | "CAD" | "AUD" | "INR" | "NPR" | "JPY"requiredpaymentModel"merchant_of_record" | "seller_gateway"requiredlinesobject[]requiredidln_…requiredproductIdprd_…requiredvariantIdvar_… | nullrequiredhandlestringrequiredtitlestringrequiredvariantTitlestringrequiredoptionsobjectrequiredtype"file" | "license_key" | "serial" | "subscription" | "discord_role" | "service" | "bundle"requiredimageUrlstringrequiredquantityintegerrequiredminQuantityintegerrequiredmaxQuantityintegerrequiredunitPriceMinorintegerrequiredcompareAtMinorinteger | nullrequiredlineMinorintegerrequireddiscountMinorintegerrequiredgiftbooleanrequiredaddOnOfprd_… | nullrequiredavailablebooleanrequirednoticestringrequireddiscordRolebooleanrequiredtrialDaysintegerrequired
itemCountintegerrequireddiscountsobject[]requireddiscountIddsc_…requiredcodestringrequiredtitlestringrequiredkind"code" | "automatic"requiredamountMinorintegerrequired
discountCodestringrequiredgiftCardobject | nullrequiredtotalsobjectrequiredsubtotalMinorintegerrequireddiscountMinorintegerrequiredgiftCardMinorintegerrequirednetMinorintegerrequiredtaxRateBpsintegerrequiredtaxMinorintegerrequiredtotalMinorintegerrequiredtaxKnownbooleanrequiredtaxIncludedbooleanrequired
notestringrequired
11 more fields
emailstringrequirednamestringrequiredcountrystring | nullrequiredbumpsobject[]requiredofferedByprd_…requiredproductIdprd_…requiredvariantIdvar_… | nullrequiredhandlestringrequiredtitlestringrequiredheadlinestringrequiredbodystringrequiredtype"file" | "license_key" | "serial" | "subscription" | "discord_role" | "service" | "bundle"requiredimageUrlstringrequiredpriceMinorintegerrequiredregularPriceMinorintegerrequiredlineIdln_… | nullrequired
upsellsobject[]requiredproductIdprd_…requiredhandlestringrequiredtitlestringrequiredtype"file" | "license_key" | "serial" | "subscription" | "discord_role" | "service" | "bundle"requiredimageUrlstringrequiredpriceMinorintegerrequiredcompareAtMinorinteger | nullrequiredheadlinestringrequiredofferedByprd_… | nullrequiredvariantIdvar_… | nullrequiredregularPriceMinorinteger | nullrequired
progressobject | nullrequiredmessagesobject[]requiredlevel"info" | "warn" | "error"requiredfield"discount" | "gift_card" | "cart"requiredtextstringrequired
updatedAtstringrequiredpaymentobjectrequireddisabledMethods"card" | "apple_pay" | "google_pay" | "paypal" | "crypto" | "bank_transfer" | "store_credit" | "manual" | "cash_app" | "skins" | "gift_code"[]requiredadjustmentsobject[]requiredmethod"card" | "apple_pay" | "google_pay" | "paypal" | "crypto" | "bank_transfer" | "store_credit" | "manual" | "cash_app" | "skins" | "gift_code"requireddeltaMinorintegerrequired
returnUrlstringrequiredcancelUrlstringrequired
A priced cart (tax once the country is known)
GET
/v1/shops/{shop}/carts/{cartId}Parameters
cartIdstringrequiredcountrystring | null
Response
idcrt_…requiredcurrency"USD" | "EUR" | "GBP" | "CAD" | "AUD" | "INR" | "NPR" | "JPY"requiredpaymentModel"merchant_of_record" | "seller_gateway"requiredlinesobject[]requiredidln_…requiredproductIdprd_…requiredvariantIdvar_… | nullrequiredhandlestringrequiredtitlestringrequiredvariantTitlestringrequiredoptionsobjectrequiredtype"file" | "license_key" | "serial" | "subscription" | "discord_role" | "service" | "bundle"requiredimageUrlstringrequiredquantityintegerrequiredminQuantityintegerrequiredmaxQuantityintegerrequiredunitPriceMinorintegerrequiredcompareAtMinorinteger | nullrequiredlineMinorintegerrequireddiscountMinorintegerrequiredgiftbooleanrequiredaddOnOfprd_… | nullrequiredavailablebooleanrequirednoticestringrequireddiscordRolebooleanrequiredtrialDaysintegerrequired
itemCountintegerrequireddiscountsobject[]requireddiscountIddsc_…requiredcodestringrequiredtitlestringrequiredkind"code" | "automatic"requiredamountMinorintegerrequired
discountCodestringrequiredgiftCardobject | nullrequiredtotalsobjectrequiredsubtotalMinorintegerrequireddiscountMinorintegerrequiredgiftCardMinorintegerrequirednetMinorintegerrequiredtaxRateBpsintegerrequiredtaxMinorintegerrequiredtotalMinorintegerrequiredtaxKnownbooleanrequiredtaxIncludedbooleanrequired
notestringrequired
11 more fields
emailstringrequirednamestringrequiredcountrystring | nullrequiredbumpsobject[]requiredofferedByprd_…requiredproductIdprd_…requiredvariantIdvar_… | nullrequiredhandlestringrequiredtitlestringrequiredheadlinestringrequiredbodystringrequiredtype"file" | "license_key" | "serial" | "subscription" | "discord_role" | "service" | "bundle"requiredimageUrlstringrequiredpriceMinorintegerrequiredregularPriceMinorintegerrequiredlineIdln_… | nullrequired
upsellsobject[]requiredproductIdprd_…requiredhandlestringrequiredtitlestringrequiredtype"file" | "license_key" | "serial" | "subscription" | "discord_role" | "service" | "bundle"requiredimageUrlstringrequiredpriceMinorintegerrequiredcompareAtMinorinteger | nullrequiredheadlinestringrequiredofferedByprd_… | nullrequiredvariantIdvar_… | nullrequiredregularPriceMinorinteger | nullrequired
progressobject | nullrequiredmessagesobject[]requiredlevel"info" | "warn" | "error"requiredfield"discount" | "gift_card" | "cart"requiredtextstringrequired
updatedAtstringrequiredpaymentobjectrequireddisabledMethods"card" | "apple_pay" | "google_pay" | "paypal" | "crypto" | "bank_transfer" | "store_credit" | "manual" | "cash_app" | "skins" | "gift_code"[]requiredadjustmentsobject[]requiredmethod"card" | "apple_pay" | "google_pay" | "paypal" | "crypto" | "bank_transfer" | "store_credit" | "manual" | "cash_app" | "skins" | "gift_code"requireddeltaMinorintegerrequired
returnUrlstringrequiredcancelUrlstringrequired
Add products (the same product and option merge into one line)
POST
/v1/shops/{shop}/carts/{cartId}/linesParameters
cartIdstringrequired
Body
linesobject[]requiredproductIdprd_…requiredvariantIdvar_… | nullcustomPriceMinorinteger | nulladdOnOfprd_… | nulloptionsobjectquantityintegerrequired
Response
idcrt_…requiredcurrency"USD" | "EUR" | "GBP" | "CAD" | "AUD" | "INR" | "NPR" | "JPY"requiredpaymentModel"merchant_of_record" | "seller_gateway"requiredlinesobject[]requiredidln_…requiredproductIdprd_…requiredvariantIdvar_… | nullrequiredhandlestringrequiredtitlestringrequiredvariantTitlestringrequiredoptionsobjectrequiredtype"file" | "license_key" | "serial" | "subscription" | "discord_role" | "service" | "bundle"requiredimageUrlstringrequiredquantityintegerrequiredminQuantityintegerrequiredmaxQuantityintegerrequiredunitPriceMinorintegerrequiredcompareAtMinorinteger | nullrequiredlineMinorintegerrequireddiscountMinorintegerrequiredgiftbooleanrequiredaddOnOfprd_… | nullrequiredavailablebooleanrequirednoticestringrequireddiscordRolebooleanrequiredtrialDaysintegerrequired
itemCountintegerrequireddiscountsobject[]requireddiscountIddsc_…requiredcodestringrequiredtitlestringrequiredkind"code" | "automatic"requiredamountMinorintegerrequired
discountCodestringrequiredgiftCardobject | nullrequiredtotalsobjectrequiredsubtotalMinorintegerrequireddiscountMinorintegerrequiredgiftCardMinorintegerrequirednetMinorintegerrequiredtaxRateBpsintegerrequiredtaxMinorintegerrequiredtotalMinorintegerrequiredtaxKnownbooleanrequiredtaxIncludedbooleanrequired
notestringrequired
11 more fields
emailstringrequirednamestringrequiredcountrystring | nullrequiredbumpsobject[]requiredofferedByprd_…requiredproductIdprd_…requiredvariantIdvar_… | nullrequiredhandlestringrequiredtitlestringrequiredheadlinestringrequiredbodystringrequiredtype"file" | "license_key" | "serial" | "subscription" | "discord_role" | "service" | "bundle"requiredimageUrlstringrequiredpriceMinorintegerrequiredregularPriceMinorintegerrequiredlineIdln_… | nullrequired
upsellsobject[]requiredproductIdprd_…requiredhandlestringrequiredtitlestringrequiredtype"file" | "license_key" | "serial" | "subscription" | "discord_role" | "service" | "bundle"requiredimageUrlstringrequiredpriceMinorintegerrequiredcompareAtMinorinteger | nullrequiredheadlinestringrequiredofferedByprd_… | nullrequiredvariantIdvar_… | nullrequiredregularPriceMinorinteger | nullrequired
progressobject | nullrequiredmessagesobject[]requiredlevel"info" | "warn" | "error"requiredfield"discount" | "gift_card" | "cart"requiredtextstringrequired
updatedAtstringrequiredpaymentobjectrequireddisabledMethods"card" | "apple_pay" | "google_pay" | "paypal" | "crypto" | "bank_transfer" | "store_credit" | "manual" | "cash_app" | "skins" | "gift_code"[]requiredadjustmentsobject[]requiredmethod"card" | "apple_pay" | "google_pay" | "paypal" | "crypto" | "bank_transfer" | "store_credit" | "manual" | "cash_app" | "skins" | "gift_code"requireddeltaMinorintegerrequired
returnUrlstringrequiredcancelUrlstringrequired
Change a line's quantity (0 removes it)
PATCH
/v1/shops/{shop}/carts/{cartId}/lines/{lineId}Parameters
cartIdstringrequiredlineIdstringrequired
Body
quantityintegerrequired
Response
idcrt_…requiredcurrency"USD" | "EUR" | "GBP" | "CAD" | "AUD" | "INR" | "NPR" | "JPY"requiredpaymentModel"merchant_of_record" | "seller_gateway"requiredlinesobject[]requiredidln_…requiredproductIdprd_…requiredvariantIdvar_… | nullrequiredhandlestringrequiredtitlestringrequiredvariantTitlestringrequiredoptionsobjectrequiredtype"file" | "license_key" | "serial" | "subscription" | "discord_role" | "service" | "bundle"requiredimageUrlstringrequiredquantityintegerrequiredminQuantityintegerrequiredmaxQuantityintegerrequiredunitPriceMinorintegerrequiredcompareAtMinorinteger | nullrequiredlineMinorintegerrequireddiscountMinorintegerrequiredgiftbooleanrequiredaddOnOfprd_… | nullrequiredavailablebooleanrequirednoticestringrequireddiscordRolebooleanrequiredtrialDaysintegerrequired
itemCountintegerrequireddiscountsobject[]requireddiscountIddsc_…requiredcodestringrequiredtitlestringrequiredkind"code" | "automatic"requiredamountMinorintegerrequired
discountCodestringrequiredgiftCardobject | nullrequiredtotalsobjectrequiredsubtotalMinorintegerrequireddiscountMinorintegerrequiredgiftCardMinorintegerrequirednetMinorintegerrequiredtaxRateBpsintegerrequiredtaxMinorintegerrequiredtotalMinorintegerrequiredtaxKnownbooleanrequiredtaxIncludedbooleanrequired
notestringrequired
11 more fields
emailstringrequirednamestringrequiredcountrystring | nullrequiredbumpsobject[]requiredofferedByprd_…requiredproductIdprd_…requiredvariantIdvar_… | nullrequiredhandlestringrequiredtitlestringrequiredheadlinestringrequiredbodystringrequiredtype"file" | "license_key" | "serial" | "subscription" | "discord_role" | "service" | "bundle"requiredimageUrlstringrequiredpriceMinorintegerrequiredregularPriceMinorintegerrequiredlineIdln_… | nullrequired
upsellsobject[]requiredproductIdprd_…requiredhandlestringrequiredtitlestringrequiredtype"file" | "license_key" | "serial" | "subscription" | "discord_role" | "service" | "bundle"requiredimageUrlstringrequiredpriceMinorintegerrequiredcompareAtMinorinteger | nullrequiredheadlinestringrequiredofferedByprd_… | nullrequiredvariantIdvar_… | nullrequiredregularPriceMinorinteger | nullrequired
progressobject | nullrequiredmessagesobject[]requiredlevel"info" | "warn" | "error"requiredfield"discount" | "gift_card" | "cart"requiredtextstringrequired
updatedAtstringrequiredpaymentobjectrequireddisabledMethods"card" | "apple_pay" | "google_pay" | "paypal" | "crypto" | "bank_transfer" | "store_credit" | "manual" | "cash_app" | "skins" | "gift_code"[]requiredadjustmentsobject[]requiredmethod"card" | "apple_pay" | "google_pay" | "paypal" | "crypto" | "bank_transfer" | "store_credit" | "manual" | "cash_app" | "skins" | "gift_code"requireddeltaMinorintegerrequired
returnUrlstringrequiredcancelUrlstringrequired
The note, the buyer's email and name, and the country (for tax)
PATCH
/v1/shops/{shop}/carts/{cartId}Parameters
cartIdstringrequired
Body
notestringemailstring | nullnamestring | nullcountrystring | nullreturnUrlstring | nullcancelUrlstring | null
Response
idcrt_…requiredcurrency"USD" | "EUR" | "GBP" | "CAD" | "AUD" | "INR" | "NPR" | "JPY"requiredpaymentModel"merchant_of_record" | "seller_gateway"requiredlinesobject[]requiredidln_…requiredproductIdprd_…requiredvariantIdvar_… | nullrequiredhandlestringrequiredtitlestringrequiredvariantTitlestringrequiredoptionsobjectrequiredtype"file" | "license_key" | "serial" | "subscription" | "discord_role" | "service" | "bundle"requiredimageUrlstringrequiredquantityintegerrequiredminQuantityintegerrequiredmaxQuantityintegerrequiredunitPriceMinorintegerrequiredcompareAtMinorinteger | nullrequiredlineMinorintegerrequireddiscountMinorintegerrequiredgiftbooleanrequiredaddOnOfprd_… | nullrequiredavailablebooleanrequirednoticestringrequireddiscordRolebooleanrequiredtrialDaysintegerrequired
itemCountintegerrequireddiscountsobject[]requireddiscountIddsc_…requiredcodestringrequiredtitlestringrequiredkind"code" | "automatic"requiredamountMinorintegerrequired
discountCodestringrequiredgiftCardobject | nullrequiredtotalsobjectrequiredsubtotalMinorintegerrequireddiscountMinorintegerrequiredgiftCardMinorintegerrequirednetMinorintegerrequiredtaxRateBpsintegerrequiredtaxMinorintegerrequiredtotalMinorintegerrequiredtaxKnownbooleanrequiredtaxIncludedbooleanrequired
notestringrequired
11 more fields
emailstringrequirednamestringrequiredcountrystring | nullrequiredbumpsobject[]requiredofferedByprd_…requiredproductIdprd_…requiredvariantIdvar_… | nullrequiredhandlestringrequiredtitlestringrequiredheadlinestringrequiredbodystringrequiredtype"file" | "license_key" | "serial" | "subscription" | "discord_role" | "service" | "bundle"requiredimageUrlstringrequiredpriceMinorintegerrequiredregularPriceMinorintegerrequiredlineIdln_… | nullrequired
upsellsobject[]requiredproductIdprd_…requiredhandlestringrequiredtitlestringrequiredtype"file" | "license_key" | "serial" | "subscription" | "discord_role" | "service" | "bundle"requiredimageUrlstringrequiredpriceMinorintegerrequiredcompareAtMinorinteger | nullrequiredheadlinestringrequiredofferedByprd_… | nullrequiredvariantIdvar_… | nullrequiredregularPriceMinorinteger | nullrequired
progressobject | nullrequiredmessagesobject[]requiredlevel"info" | "warn" | "error"requiredfield"discount" | "gift_card" | "cart"requiredtextstringrequired
updatedAtstringrequiredpaymentobjectrequireddisabledMethods"card" | "apple_pay" | "google_pay" | "paypal" | "crypto" | "bank_transfer" | "store_credit" | "manual" | "cash_app" | "skins" | "gift_code"[]requiredadjustmentsobject[]requiredmethod"card" | "apple_pay" | "google_pay" | "paypal" | "crypto" | "bank_transfer" | "store_credit" | "manual" | "cash_app" | "skins" | "gift_code"requireddeltaMinorintegerrequired
returnUrlstringrequiredcancelUrlstringrequired
Apply a discount code or a gift card (`kind: auto` tells them apart)
POST
/v1/shops/{shop}/carts/{cartId}/codesParameters
cartIdstringrequired
Body
kind"auto" | "discount" | "gift_card"requiredcodestringrequired
Response
idcrt_…requiredcurrency"USD" | "EUR" | "GBP" | "CAD" | "AUD" | "INR" | "NPR" | "JPY"requiredpaymentModel"merchant_of_record" | "seller_gateway"requiredlinesobject[]requiredidln_…requiredproductIdprd_…requiredvariantIdvar_… | nullrequiredhandlestringrequiredtitlestringrequiredvariantTitlestringrequiredoptionsobjectrequiredtype"file" | "license_key" | "serial" | "subscription" | "discord_role" | "service" | "bundle"requiredimageUrlstringrequiredquantityintegerrequiredminQuantityintegerrequiredmaxQuantityintegerrequiredunitPriceMinorintegerrequiredcompareAtMinorinteger | nullrequiredlineMinorintegerrequireddiscountMinorintegerrequiredgiftbooleanrequiredaddOnOfprd_… | nullrequiredavailablebooleanrequirednoticestringrequireddiscordRolebooleanrequiredtrialDaysintegerrequired
itemCountintegerrequireddiscountsobject[]requireddiscountIddsc_…requiredcodestringrequiredtitlestringrequiredkind"code" | "automatic"requiredamountMinorintegerrequired
discountCodestringrequiredgiftCardobject | nullrequiredtotalsobjectrequiredsubtotalMinorintegerrequireddiscountMinorintegerrequiredgiftCardMinorintegerrequirednetMinorintegerrequiredtaxRateBpsintegerrequiredtaxMinorintegerrequiredtotalMinorintegerrequiredtaxKnownbooleanrequiredtaxIncludedbooleanrequired
notestringrequired
11 more fields
emailstringrequirednamestringrequiredcountrystring | nullrequiredbumpsobject[]requiredofferedByprd_…requiredproductIdprd_…requiredvariantIdvar_… | nullrequiredhandlestringrequiredtitlestringrequiredheadlinestringrequiredbodystringrequiredtype"file" | "license_key" | "serial" | "subscription" | "discord_role" | "service" | "bundle"requiredimageUrlstringrequiredpriceMinorintegerrequiredregularPriceMinorintegerrequiredlineIdln_… | nullrequired
upsellsobject[]requiredproductIdprd_…requiredhandlestringrequiredtitlestringrequiredtype"file" | "license_key" | "serial" | "subscription" | "discord_role" | "service" | "bundle"requiredimageUrlstringrequiredpriceMinorintegerrequiredcompareAtMinorinteger | nullrequiredheadlinestringrequiredofferedByprd_… | nullrequiredvariantIdvar_… | nullrequiredregularPriceMinorinteger | nullrequired
progressobject | nullrequiredmessagesobject[]requiredlevel"info" | "warn" | "error"requiredfield"discount" | "gift_card" | "cart"requiredtextstringrequired
updatedAtstringrequiredpaymentobjectrequireddisabledMethods"card" | "apple_pay" | "google_pay" | "paypal" | "crypto" | "bank_transfer" | "store_credit" | "manual" | "cash_app" | "skins" | "gift_code"[]requiredadjustmentsobject[]requiredmethod"card" | "apple_pay" | "google_pay" | "paypal" | "crypto" | "bank_transfer" | "store_credit" | "manual" | "cash_app" | "skins" | "gift_code"requireddeltaMinorintegerrequired
returnUrlstringrequiredcancelUrlstringrequired
Remove the discount code or the gift card
DELETE
/v1/shops/{shop}/carts/{cartId}/codes/{kind}Parameters
cartIdstringrequiredkind"discount" | "gift_card"required
Response
idcrt_…requiredcurrency"USD" | "EUR" | "GBP" | "CAD" | "AUD" | "INR" | "NPR" | "JPY"requiredpaymentModel"merchant_of_record" | "seller_gateway"requiredlinesobject[]requiredidln_…requiredproductIdprd_…requiredvariantIdvar_… | nullrequiredhandlestringrequiredtitlestringrequiredvariantTitlestringrequiredoptionsobjectrequiredtype"file" | "license_key" | "serial" | "subscription" | "discord_role" | "service" | "bundle"requiredimageUrlstringrequiredquantityintegerrequiredminQuantityintegerrequiredmaxQuantityintegerrequiredunitPriceMinorintegerrequiredcompareAtMinorinteger | nullrequiredlineMinorintegerrequireddiscountMinorintegerrequiredgiftbooleanrequiredaddOnOfprd_… | nullrequiredavailablebooleanrequirednoticestringrequireddiscordRolebooleanrequiredtrialDaysintegerrequired
itemCountintegerrequireddiscountsobject[]requireddiscountIddsc_…requiredcodestringrequiredtitlestringrequiredkind"code" | "automatic"requiredamountMinorintegerrequired
discountCodestringrequiredgiftCardobject | nullrequiredtotalsobjectrequiredsubtotalMinorintegerrequireddiscountMinorintegerrequiredgiftCardMinorintegerrequirednetMinorintegerrequiredtaxRateBpsintegerrequiredtaxMinorintegerrequiredtotalMinorintegerrequiredtaxKnownbooleanrequiredtaxIncludedbooleanrequired
notestringrequired
11 more fields
emailstringrequirednamestringrequiredcountrystring | nullrequiredbumpsobject[]requiredofferedByprd_…requiredproductIdprd_…requiredvariantIdvar_… | nullrequiredhandlestringrequiredtitlestringrequiredheadlinestringrequiredbodystringrequiredtype"file" | "license_key" | "serial" | "subscription" | "discord_role" | "service" | "bundle"requiredimageUrlstringrequiredpriceMinorintegerrequiredregularPriceMinorintegerrequiredlineIdln_… | nullrequired
upsellsobject[]requiredproductIdprd_…requiredhandlestringrequiredtitlestringrequiredtype"file" | "license_key" | "serial" | "subscription" | "discord_role" | "service" | "bundle"requiredimageUrlstringrequiredpriceMinorintegerrequiredcompareAtMinorinteger | nullrequiredheadlinestringrequiredofferedByprd_… | nullrequiredvariantIdvar_… | nullrequiredregularPriceMinorinteger | nullrequired
progressobject | nullrequiredmessagesobject[]requiredlevel"info" | "warn" | "error"requiredfield"discount" | "gift_card" | "cart"requiredtextstringrequired
updatedAtstringrequiredpaymentobjectrequireddisabledMethods"card" | "apple_pay" | "google_pay" | "paypal" | "crypto" | "bank_transfer" | "store_credit" | "manual" | "cash_app" | "skins" | "gift_code"[]requiredadjustmentsobject[]requiredmethod"card" | "apple_pay" | "google_pay" | "paypal" | "crypto" | "bank_transfer" | "store_credit" | "manual" | "cash_app" | "skins" | "gift_code"requireddeltaMinorintegerrequired
returnUrlstringrequiredcancelUrlstringrequired
Hand the buyer to checkout: the hosted checkout URL for this cart, and how to embed it
POST
/v1/shops/{shop}/carts/{cartId}/checkout-linkParameters
cartIdstringrequired
Body
returnUrlstring | nullcancelUrlstring | nullembedOriginstring | null
Response
cartIdstringrequiredcheckoutUrlstringrequiredexpiresAtstringrequiredreturnUrlstringrequiredcancelUrlstringrequiredembedobjectrequiredscriptUrlstringrequiredstorestringrequiredcartstringrequireditemsobject[]requiredproductstringrequiredvariantvar_… | nullrequiredquantityintegerrequired
What a checkout form of your own needs for this cart: ways to pay, fields, questions, terms, tips and totals
GET
/v1/shops/{shop}/carts/{cartId}/checkout-optionsParameters
cartIdstringrequiredcountrystring | null
Response
cartIdstringrequiredcurrency"USD" | "EUR" | "GBP" | "CAD" | "AUD" | "INR" | "NPR" | "JPY"requiredcountrystring | nullrequiredtestModebooleanrequiredtotalsobjectrequiredsubtotalMinorintegerrequireddiscountMinorintegerrequiredgiftCardMinorintegerrequirednetMinorintegerrequiredtaxRateBpsintegerrequiredtaxMinorintegerrequiredtotalMinorintegerrequiredtaxKnownbooleanrequiredtaxIncludedbooleanrequired
freebooleanrequiredmethodsobject[]requiredidstringrequiredprovider"shopfast_pay" | "sandbox" | "stripe" | "paypal" | "btcpay" | "manual" | "plugin" | "crypto_direct" | "stripe_keys" | "paypal_keys" | "square" | "mollie" | "razorpay" | "paystack" | "nowpayments" | "cryptomus" | "paypal_email" | "shopify" | "paddle" | "heleket" | "sumup" | "authorize_net" | "nmi" | "skinloop" | "cashapp" | "paypal_ff" | "gift_codes"requiredmethod"card" | "apple_pay" | "google_pay" | "paypal" | "crypto" | "bank_transfer" | "store_credit" | "manual" | "cash_app" | "skins" | "gift_code"requiredoptionstringrequiredmanualMethodIdstringrequiredlabelstringrequireddescriptionstringrequiredwalletsstring[]requiredadjustmentMinorintegerrequired
unavailablestring[]requiredfieldsobjectrequiredname"required" | "optional" | "hidden"requiredcountry"required" | "optional" | "hidden"requiredphone"required" | "optional" | "hidden"requiredaddress"required" | "optional" | "hidden"required
questionsobject[]requiredidstringrequiredlabelstringrequiredtype"text" | "textarea" | "number" | "email" | "url" | "select" | "checkbox" | "discord" | "discord_id" | "password" | "hidden"requiredrequiredbooleanrequiredplaceholderstringrequiredhelpstringrequiredoptionsstring[]requireddefaultValuestringrequired
7 more fields
consentobjectrequiredrequiredbooleanrequiredtextstringrequiredlinkLabelstringrequiredlinkUrlstringrequired
marketingOptInobjectrequiredofferedbooleanrequiredlabelstringrequired
withdrawalWaiverobjectrequiredrequiredbooleanrequiredtextstringrequired
emailVerification"required" | "possible"requiredcodesobjectrequireddiscountbooleanrequiredgiftCardbooleanrequired
tipsobject | nullrequiredsellerobject | nullrequired
Start a checkout with details from your own form; send the buyer to `payUrl`
POST
/v1/shops/{shop}/carts/{cartId}/checkoutParameters
cartIdstringrequired
Body
emailstringrequirednamestringcountrystring | nullphonestring | nulladdressobject | nullcustomFieldsobjectconsentbooleanmarketingOptInbooleanprovider"shopfast_pay" | "sandbox" | "stripe" | "paypal" | "btcpay" | "manual" | "plugin" | "crypto_direct" | "stripe_keys" | "paypal_keys" | "square" | "mollie" | "razorpay" | "paystack" | "nowpayments" | "cryptomus" | "paypal_email" | "shopify" | "paddle" | "heleket" | "sumup" | "authorize_net" | "nmi" | "skinloop" | "cashapp" | "paypal_ff" | "gift_codes" | nullmethod"card" | "apple_pay" | "google_pay" | "paypal" | "crypto" | "bank_transfer" | "store_credit" | "manual" | "cash_app" | "skins" | "gift_code" | nulloptionstring | nullverificationCodestring | nulluseStoreCreditbooleanmanualMethodIdstring | nulltipMinorintegerautoRenewobject[]productIdprd_…requiredvariantIdvar_… | nullrequiredconsentTextstringrequired
withdrawalWaiverbooleancompanystringtaxIdstringreturnUrlstring | nullcancelUrlstring | null
Response
sessionIdstringrequiredpaidbooleanrequiredtestbooleanrequiredpayUrlstringrequiredorderUrlstringrequiredaccessTokenstringrequired
Orders
An order's status, items and (once paid) keys and downloads, with its access token
GET
/v1/shops/{shop}/orders/{sessionId}Parameters
sessionIdstringrequiredaccessstring | null
Response
sessionIdcs_…requiredstatus"open" | "paid" | "expired"requiredcurrency"USD" | "EUR" | "GBP" | "CAD" | "AUD" | "INR" | "NPR" | "JPY"requireditemsobject[]requiredproductIdprd_…requirednamestringrequiredtype"file" | "license_key" | "serial" | "subscription" | "discord_role" | "service" | "bundle"requiredquantityintegerrequiredunitPriceMinorintegerrequiredvariantNamestringrequiredimageUrlstringrequired
subtotalMinorintegerrequireddiscountMinorintegerrequireddiscountsobject[]requireddiscountIddsc_…requiredcodestringrequiredtitlestringrequiredkind"code" | "automatic"requiredamountMinorintegerrequired
giftCardMinorintegerrequiredtaxRateBpsintegerrequiredtaxMinorintegerrequired
13 more fields
totalMinorintegerrequiredtaxIncludedbooleanrequiredtipMinorintegerrequiredbuyerEmailMaskedstringrequiredpaymentModel"merchant_of_record" | "seller_gateway"requiredorderobject | nullrequireddeliverablesobject | nullrequiredcanCreateAccountbooleanrequiredexpiresAtstring | nullrequiredstoreCreditMinorintegerrequiredmanualobject | nullrequiredpayPagestringrequiredtestboolean
Buyer accounts
Email the buyer a one-time sign-in code
POST
/v1/shops/{shop}/customer/codeBody
emailstringrequired
Response
okbooleanrequired
Trade the code for a session token (creates the account on first sign-in)
POST
/v1/shops/{shop}/customer/sessionBody
emailstringrequiredcodestringrequired
Response
tokenstringrequiredaccountobjectrequiredidbya_…requiredemailstringrequirednamestringrequiredphonestringrequiredcountrystring | nullrequiredhasPasswordbooleanrequiredmarketingOptInbooleanrequiredcreatedAtstringrequiredstoreCreditobject | nullrequired
expiresAtstringrequired
End the session
DELETE
/v1/shops/{shop}/customer/sessionResponse
okbooleanrequired
The signed-in buyer, with their store credit
GET
/v1/shops/{shop}/customerResponse
accountobjectrequiredidbya_…requiredemailstringrequirednamestringrequiredphonestringrequiredcountrystring | nullrequiredhasPasswordbooleanrequiredmarketingOptInbooleanrequiredcreatedAtstringrequiredstoreCreditobject | nullrequired
Every order the buyer placed in this store
GET
/v1/shops/{shop}/customer/ordersResponse
ordersobject[]requiredorderIdord_…requiredsessionIdcs_… | nullrequirednumberstringrequiredstatus"pending" | "paid" | "fulfilled" | "partially_fulfilled" | "refunded" | "disputed" | "failed"requiredcurrency"USD" | "EUR" | "GBP" | "CAD" | "AUD" | "INR" | "NPR" | "JPY"requiredtotalMinorintegerrequireditemsobject[]requirednamestringrequiredtype"file" | "license_key" | "serial" | "subscription" | "discord_role" | "service" | "bundle"requiredquantityintegerrequired
paidAtstring | nullrequiredcreatedAtstringrequired
License keys, downloads (fresh signed links) and subscriptions
GET
/v1/shops/{shop}/customer/libraryResponse
keysobject[]requiredproductIdprd_…requiredproductNamestringrequiredvaluestringrequiredorderNumberstringrequiredorderIdord_…requireddeliveredAtstringrequired
downloadsobject[]requiredproductIdprd_…requirednamestringrequiredurlstringrequiredexpiresAtstringrequiredorderNumberstringrequiredorderIdord_…requiredtimesBoughtintegerrequired
subscriptionsobject[]requiredidsub_…requiredproductIdprd_…requiredproductNamestringrequiredstatus"active" | "cancelled"requiredcurrentPeriodEndstringrequiredcancelAtPeriodEndbooleanrequiredorderNumberstringrequiredcreatedAtstringrequiredpastDuebooleanrequiredrenewUrlstringrequiredendedbooleanrequired
notesobject[]requiredproductIdprd_…requiredproductNamestringrequiredkind"message" | "option" | "keys" | "service" | "dynamic" | "warranty"requiredtitlestringrequiredhtmlstringrequiredtextstringrequiredbookingUrlstringrequiredturnaroundDaysinteger | nullrequiredorderNumberstringrequired
Cancel a subscription at the end of the period
POST
/v1/shops/{shop}/customer/subscriptions/{subscriptionId}/cancelParameters
subscriptionIdstringrequired
Response
idsub_…requiredproductIdprd_…requiredproductNamestringrequiredstatus"active" | "cancelled"requiredcurrentPeriodEndstringrequiredcancelAtPeriodEndbooleanrequiredorderNumberstringrequiredcreatedAtstringrequiredpastDuebooleanrequiredrenewUrlstringrequiredendedbooleanrequired
Store credit, gift cards and coupons
GET
/v1/shops/{shop}/customer/walletResponse
currency"USD" | "EUR" | "GBP" | "CAD" | "AUD" | "INR" | "NPR" | "JPY"requiredstoreCreditMinorintegerrequiredgiftCardsobject[]requiredlast4stringrequiredbalanceMinorintegerrequiredexpiresAtstring | nullrequired
couponsobject[]requiredcodestringrequiredtitlestringrequiredlabelstringrequiredendsAtstring | nullrequired
Support
Open a support ticket (a signed-in buyer, or a guest who gets an access link by email)
POST
/v1/shops/{shop}/support/ticketsBody
namestringrequiredemailstringrequiredsubjectstringrequiredcategorystring | nullmessagestringrequiredchannel"web" | "widget" | "order"orderobject | nullattachmentsobject[]idtatt_…requiredclaimstringrequired
websitestring
Response
ticketIdtkt_…requirednumberintegerrequiredaccessstringrequired
The signed-in buyer's tickets
GET
/v1/shops/{shop}/support/ticketsResponse
itemsobject[]requiredidtkt_…requirednumberintegerrequiredsubjectstringrequiredstatus"open" | "pending" | "on_hold" | "solved" | "closed"requiredcategorystringrequiredorderNumberstringrequiredorderSessionIdcs_… | nullrequiredcreatedAtstringrequiredlastMessageAtstringrequiredawaitingBuyerbooleanrequiredsatisfactioninteger | nullrequiredcanRatebooleanrequired
One ticket with its messages (signed in, or with the access token from the email)
GET
/v1/shops/{shop}/support/tickets/{ticketId}Parameters
ticketIdstringrequiredaccessstring | null
Response
idtkt_…requirednumberintegerrequiredsubjectstringrequiredstatus"open" | "pending" | "on_hold" | "solved" | "closed"requiredcategorystringrequiredorderNumberstringrequiredorderSessionIdcs_… | nullrequiredcreatedAtstringrequiredlastMessageAtstringrequiredawaitingBuyerbooleanrequired
3 more fields
satisfactioninteger | nullrequiredcanRatebooleanrequiredmessagesobject[]requiredidtmsg_…requiredfrom"buyer" | "store"requiredauthorNamestringrequiredbodystringrequiredattachmentsobject[]requiredidtatt_…requiredfilenamestringrequiredcontentTypestringrequiredbytesintegerrequiredurlstringrequiredisImagebooleanrequired
createdAtstringrequired
Reply on a ticket (reopens it)
POST
/v1/shops/{shop}/support/tickets/{ticketId}/messagesParameters
ticketIdstringrequired
Body
accessstring | nullrequiredbodystringrequiredattachmentsobject[]requiredidtatt_…requiredclaimstringrequired
Response
idtkt_…requirednumberintegerrequiredsubjectstringrequiredstatus"open" | "pending" | "on_hold" | "solved" | "closed"requiredcategorystringrequiredorderNumberstringrequiredorderSessionIdcs_… | nullrequiredcreatedAtstringrequiredlastMessageAtstringrequiredawaitingBuyerbooleanrequired
3 more fields
satisfactioninteger | nullrequiredcanRatebooleanrequiredmessagesobject[]requiredidtmsg_…requiredfrom"buyer" | "store"requiredauthorNamestringrequiredbodystringrequiredattachmentsobject[]requiredidtatt_…requiredfilenamestringrequiredcontentTypestringrequiredbytesintegerrequiredurlstringrequiredisImagebooleanrequired
createdAtstringrequired