Skip to main content

Main non-admin routes

  • GET /api/products
  • POST /api/checkout/crypto
  • POST /api/checkout/crypto/verify
  • POST /api/checkout/dsports-cash
  • GET /api/dsports-cash
  • GET /api/dsports-cash/ledger
  • GET /api/commerce
  • GET /api/v1/exchange-rate (authenticated; 401 without a session)
  • POST /api/webhooks/revenuecat
  • GET /api/v1/product_entitlement_mapping
  • POST /api/v1/user/set-pin
  • POST /api/v1/user/verify-pin
  • GET /api/v1/cards/{id}/provenance
  • /api/v1/marketplace/* (published in OpenAPI)
  • POST /api/v1/kyc/link-token, POST /api/v1/kyc/session/complete, GET /api/v1/user/kyc-status

Runtime behavior highlights

  • Product endpoints return active catalog entities suitable for client storefront rendering. Retired Frontline Pack / Frontline Pass products stay hidden even if a row is reactivated.
  • Checkout endpoints initialize and verify purchase attempts before final persistence. Pack purchase confirmation is POST /api/checkout/crypto/verify. PUT /api/packs/{id}/purchase always returns 410 GONE.
  • Webhook path reconciles provider-side purchase state into app-side records.
  • dsports-cash endpoints expose tier/balance and purchase lifecycle behavior.
  • Marketplace listings/mine aliases me/listings. POST /listings requires x-listing-pin-token.
  • List and detail marketplace GETs declare optional bearer auth. featured and price-suggestion stay anonymous.
  • Listing a pack still in processing returns 409 PACK_NOT_LISTABLE. An opened pack returns 409 PACK_ALREADY_OPENED.
  • Auction reservePrice is optional and auction-only. Missed reserve ends as ended-reserve-not-met.
  • Card provenance is public and assembled from existing ownership, sale, and mint rows.

Side effects and dependencies

  • Successful purchases update purchase models and can affect wallet/inventory-visible state.
  • Entitlement mapping endpoints provide external integration interoperability.

Known caveats

  • External provider latency can produce temporary states between initiation and final verification.
  • Reconciliation scripts may be used for historical purchase correction.

Exclusions

  • Admin stock override and privileged catalog mutation paths are excluded.