> ## Documentation Index
> Fetch the complete documentation index at: https://firespark.cloud/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Introduction

> Build custom sales channels — app, web, and kiosk — on top of Fire spark's Storefront API.

## Owned sales channels

The Storefront API is how you build **your own sales channels** on Fire spark. Use it to power a mobile app, an ordering website, a kiosk, or any customer-facing experience you control — while Fire spark handles menus, stores, orders, and fulfillment behind a single omnichannel layer.

Aggregators like Uber Eats or Rappi are channels Fire spark connects for you through the [Integrations API](/docs/integrations-api/introduction). The Storefront API is for **owned channels**: the surfaces you design, brand, and ship yourself.

<Card title="New to Fire spark?" icon="lightbulb" href="/docs/guides/connecting-a-merchant">
  Connect a merchant in the dashboard before building your first channel.
</Card>

## What you can build

| Channel        | Typical use                                             |
| -------------- | ------------------------------------------------------- |
| Mobile app     | Loyalty, reorder, push notifications, saved preferences |
| Web            | Branded ordering site, delivery and pickup flows        |
| Kiosk          | In-store self-service ordering                          |
| Call center    | Ordering through a call center                          |
| Embedded flows | Order widgets inside an existing product                |

Every owned channel loads menus through Fire spark — full catalog or a composed variant per surface. Operational updates from your POS still flow through one sync; you control whether app, web, and kiosk show the same assortment or tailored menus for each context.

## How a custom channel works

<Steps>
  <Step title="Customer signs in with your identity provider">
    Your channel authenticates customers with an OIDC provider you already use
    (Auth0, Clerk, Supabase, Firebase, Cognito, and others). Fire spark does not
    replace your login — it trusts the ID token your client obtains after
    sign-in.
  </Step>

  <Step title="Exchange the ID token for a Fire spark access token">
    Your app calls `POST /oauth/exchange` with the customer's ID token. Fire
    spark validates it, resolves the merchant from the token issuer, and returns
    a short-lived access token bound to that customer.
  </Step>

  <Step title="Browse menus and stores">
    Fetch stores near the customer, load menus with categories and products, and
    read fulfillment options (pickup, delivery, dine-in) for the selected
    location.
  </Step>

  <Step title="Place and manage orders">
    Create orders on behalf of the authenticated customer. Track status, update
    details, or cancel while the order is still open.
  </Step>

  <Step title="Fire spark routes the order to operations">
    The order enters the same pipeline as aggregator channels. Fire spark
    injects it into the merchant's POS or RMS through the Integrations API
    layer.
  </Step>
</Steps>

## API areas

The Storefront API exposes the resources your channel needs to run a complete ordering experience.

### Authentication

Customers authenticate through your OIDC provider. Your client exchanges the ID token for a Fire spark access token — no `client_secret` required on the device.

<Card title="Exchange token" icon="key" href="/docs/storefront-api/oauth/exchange/post">
  Exchange an OIDC ID token for a Fire spark access token.
</Card>

### Customers

Register and manage customer profiles, consent preferences, devices, and anonymous-to-identified transitions.

<Card title="Register customers" icon="user-plus" href="/docs/storefront-api/guides/register-customers">
  Create and update customer records from your channel.
</Card>

### Stores

List merchant locations and read store details so customers can pick where they order from.

### Menus

Load menus, browse categories, and fetch product details with pricing and availability for the selected store.

<Card title="Displaying menus" icon="utensils" href="/docs/storefront-api/guides/displaying-menus">
  Render menus in your app, web, or kiosk.
</Card>

### Orders

Create orders, retrieve order history, update open orders, and cancel when allowed.

<Card title="Placing orders" icon="shopping-cart" href="/docs/storefront-api/guides/placing-orders">
  Build the checkout and order submission flow.
</Card>

### Fulfillment

Read delivery, pickup, and other fulfillment options available per store so your channel can offer the right checkout choices.

## Storefront API vs Integrations API

|               | Storefront API                         | Integrations API                                  |
| ------------- | -------------------------------------- | ------------------------------------------------- |
| Who builds it | You — app, web, kiosk teams            | POS/RMS partners, system integrators              |
| Who signs in  | End customers (via your OIDC provider) | Your server (client credentials)                  |
| Primary goal  | Customer-facing ordering experience    | Menu sync and order injection into POS/RMS        |
| Channels      | Owned: app, web, kiosk                 | Operational + aggregators: Uber Eats, Rappi, etc. |

Most merchants use both: the Storefront API powers channels customers interact with directly, while the Integrations API keeps those channels connected to the kitchen.

## Base URL

```
https://firespark.cloud/api/storefront/v1
```

<Card title="Postman collection" icon="download" href="/docs/assets/fire-spark-storefront-api-2026-07-26.postman_collection.json">
  Download all Storefront API endpoints. Exchange an OIDC ID token first, then set `bearerToken` for authenticated requests.
</Card>

## Next steps

<CardGroup cols={2}>
  <Card title="Exchange token" icon="key" href="/docs/storefront-api/oauth/exchange/post">
    Authenticate customers with OIDC
  </Card>

  <Card title="OIDC authentication" icon="shield" href="/docs/storefront-api/guides/oidc-authentication">
    Set up your identity provider
  </Card>

  <Card title="Displaying menus" icon="utensils" href="/docs/storefront-api/guides/displaying-menus">
    Load menus in your channel
  </Card>

  <Card title="Placing orders" icon="shopping-cart" href="/docs/storefront-api/guides/placing-orders">
    Submit orders from your channel
  </Card>
</CardGroup>
