Fees
1 endpoint. Each needs an API key or OAuth token with the scope shown; the key already names its store, so paths start at /v1/store. Generated from the live contract; also in openapi.json.
The store's plan, effective fees after any override, settlement rules and processor estimate (set by ShopFast)
GET
/v1/store/feesOr name the store: GET /v1/stores/{storeId}/fees
Response StoreFees
planobjectrequiredidPlanIdrequirednamestringrequiredmonthlyPriceMinorMinorUnitsrequiredcurrencyCurrencyCoderequired
feesFeeSchedulerequiredhasOverridebooleanrequiredallowedModelsPaymentModel[]requiredpaymentModelPaymentModelrequiredsettlementobjectrequiredholdDaysintegerrequiredpayoutSchedule"daily" | "weekly" | "monthly"requiredpayoutWeekdayintegerrequiredpayoutMinimumMinorMinorUnitsrequiredreserveBpsBpsrequired
processorEstimateProcessorEstimate | nullrequiredcanTakePaymentsbooleanpricesIncludeTaxbooleantaxRatesTaxRate[]countryCountryCode
Example
curl "https://api.shopfa.st/v1/store/fees" \
-H "Authorization: Bearer $SHOPFAST_API_KEY"const res = await fetch('https://api.shopfa.st/v1/store/fees', {
method: 'GET',
headers: {
Authorization: `Bearer ${process.env.SHOPFAST_API_KEY}`,
},
});
if (!res.ok) throw new Error((await res.json()).detail);
const data = await res.json();import os, requests
res = requests.request(
"GET",
"https://api.shopfa.st/v1/store/fees",
headers={"Authorization": f"Bearer {os.environ['SHOPFAST_API_KEY']}"},
)
res.raise_for_status()
data = res.json()req, _ := http.NewRequest("GET", "https://api.shopfa.st/v1/store/fees", nil)
req.Header.Set("Authorization", "Bearer "+os.Getenv("SHOPFAST_API_KEY"))
res, err := http.DefaultClient.Do(req)