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

# Join links

> Mint reusable, co-branded signup links that onboard advertisers directly into your storefront as scoped buyers

A **join link** is a reusable, per-storefront signup URL you hand to an advertiser. An advertiser who signs up through it is provisioned as a **sponsored buyer** — a buyer account scoped to your storefront alone, sponsored by your organization. The buyer discovers and transacts only against your inventory; they never see the wider marketplace.

Each link carries an **approval policy** that decides what happens the moment a buyer signs up: admit them immediately, hold them for your review, or refuse new signups. Once a buyer joins, you manage them through [Sponsored buyers](/v2/storefront/sponsored-buyers/overview).

All authenticated examples use the storefront base URL:

```
https://api.interchange.io/api/v2/storefront
```

Authenticate every request with `Authorization: Bearer $SCOPE3_API_KEY`. The storefront is resolved from your API key's seller account context — there is no `customerId` path parameter. The one exception is [Get join context](/v2/storefront/join-links/tasks/get-join-context), which is public and unauthenticated so the signup page can theme itself before the buyer has an account.

## Key concepts

* **Slug.** Every link has a URL-safe `slug` (lowercase letters, numbers, hyphens). Omit it on creation and it is derived from the storefront name. The buyer visits `joinPath` (`/join/{slug}`); your UI or agent prepends its own origin.
* **Approval policy.** Set at mint time and fixed for the life of the link:
  * `auto_approve` — signups become `active` sponsored buyers immediately.
  * `manual_approve` (default) — signups land `pending` until you [approve](/v2/storefront/sponsored-buyers/tasks/approve-sponsored-buyer) them.
  * `invite_only` — admits signups the same way as `manual_approve` (they land `pending`); reserved for future invite-gated entry.
  * `closed` — refuses new signups; `get-join-context` reports a closed link as invalid.
* **Caps and expiry.** `maxUses` caps total successful signups (omit for unlimited); `expiresAt` is an ISO-8601 expiry (omit for a link that never expires). `uses` counts successful signups so far.
* **Posture.** Sponsored buyers are `prepay` day-one; the `posture` field future-proofs for credit terms.
* **Disable, don't delete.** [Disabling](/v2/storefront/join-links/tasks/disable-join-link) a link soft-revokes it (`active: false`, `revokedAt` set). Buyers who already joined keep their accounts — disabling only stops new signups.

<Note>
  A join link only controls **entry**. After a buyer joins, their ability to transact is governed by their sponsored-buyer `status`, which you control independently. See [Sponsored buyers](/v2/storefront/sponsored-buyers/overview).
</Note>

## Task reference

<CardGroup cols={2}>
  <Card title="Create join link" href="/v2/storefront/join-links/tasks/create-join-link" icon="plus">
    Mint a link for one of your storefronts
  </Card>

  <Card title="List join links" href="/v2/storefront/join-links/tasks/list-join-links" icon="list">
    Every active link your organization owns
  </Card>

  <Card title="Disable join link" href="/v2/storefront/join-links/tasks/disable-join-link" icon="ban">
    Soft-revoke a link to stop new signups
  </Card>

  <Card title="Get join context" href="/v2/storefront/join-links/tasks/get-join-context" icon="palette">
    Public brand-safe lookup for the signup page
  </Card>
</CardGroup>

## Related

<CardGroup cols={2}>
  <Card title="Sponsored buyers" href="/v2/storefront/sponsored-buyers/overview" icon="handshake">
    Manage the buyers who joined
  </Card>

  <Card title="All join-link tasks" href="/v2/storefront/join-links/tasks" icon="list-check">
    Every operation in one place
  </Card>

  <Card title="Storefront onboarding" href="/v2/setup/storefront-onboarding" icon="store">
    End-to-end seller setup
  </Card>

  <Card title="Errors" href="/v2/reference/errors" icon="triangle-exclamation">
    Shared error contract
  </Card>
</CardGroup>
