Docs
Dashboard
On this page

    Balance

    2 endpoints. 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.

    Available, pending, reserve and payouts

    GET/v1/store/balance

    Or name the store: GET /v1/stores/{storeId}/balance

    balance:readgetBalance

    Response Balance

    • currencyCurrencyCoderequired
    • paymentModelPaymentModelrequired
    • availableMinorMinorUnitsrequired
    • pendingMinorMinorUnitsrequired
    • reserveMinorMinorUnitsrequired
    • nextPayoutobject | nullrequired
    • scheduleobjectrequired
      • payoutSchedule"daily" | "weekly" | "monthly"required
      • payoutWeekdayintegerrequired
      • holdDaysintegerrequired
    • payoutsPayout[]required
    • payoutRunsobject | nullrequired
    • leftoverobject | nullrequired
    3 more fields
    • walletPayoutWallet | nullrequired
    • payoutFeeMinorMinorUnitsrequired
    • payoutMinimumMinorMinorUnitsrequired

    Example

    curl "https://api.shopfa.st/v1/store/balance" \
      -H "Authorization: Bearer $SHOPFAST_API_KEY"
    const res = await fetch('https://api.shopfa.st/v1/store/balance', {
      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/balance",
        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/balance", nil)
    req.Header.Set("Authorization", "Bearer "+os.Getenv("SHOPFAST_API_KEY"))
    res, err := http.DefaultClient.Do(req)
    Try it with your key

    Use a test key on a development store. The key stays in this tab (sessionStorage) and is sent only to the base URL above.

    Your ShopFast Pay balance by category: withdrawable, clearing, high-risk hold, reserve, chargeback holds and payouts on their way

    GET/v1/store/balance/summary

    Or name the store: GET /v1/stores/{storeId}/balance/summary

    balance:readrole: finance:readgetBalanceSummary

    Response BalanceSummary

    • shownbooleanrequired
    • currencyCurrencyCoderequired
    • withdrawableMinorMinorUnitsrequired
    • clearingMinorMinorUnitsrequired
    • highRiskHoldMinorMinorUnitsrequired
    • reserveMinorMinorUnitsrequired
    • disputeHoldMinorMinorUnitsrequired
    • inPayoutMinorMinorUnitsrequired
    • totalMinorMinorUnitsrequired
    • nextReleaseobject | nullrequired
    • holdDaysintegerrequired
    • highRiskHoldDaysintegerrequired

    Example

    curl "https://api.shopfa.st/v1/store/balance/summary" \
      -H "Authorization: Bearer $SHOPFAST_API_KEY"
    const res = await fetch('https://api.shopfa.st/v1/store/balance/summary', {
      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/balance/summary",
        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/balance/summary", nil)
    req.Header.Set("Authorization", "Bearer "+os.Getenv("SHOPFAST_API_KEY"))
    res, err := http.DefaultClient.Do(req)
    Try it with your key

    Use a test key on a development store. The key stays in this tab (sessionStorage) and is sent only to the base URL above.

    Was this page helpful?