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

# Quickstart

> Create your first wallet pass in minutes

## Prerequisites

* A Passform account - [sign up at app.passform.io](https://app.passform.io)
* An API key from your account dashboard

## Step 1: Get your API key

Log in to [app.passform.io](https://app.passform.io), navigate to **Settings → API Keys**, and create a new key. You'll use this as a Bearer token on every request.

## Step 2: Create a template

A template defines the appearance of your pass. Create one by uploading images and setting colors via the dashboard or API.

```bash theme={null}
curl -X POST https://api.passform.io/v1/templates/my-first-template \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "title": "My First Pass",
    "issuerName": "Acme Co",
    "type": "offer",
    "foregroundColor": "#FFFFFF",
    "backgroundColor": "#1a1a2e",
    "icon": "https://example.com/icon.png",
    "logo": "https://example.com/logo.png",
    "banner": "https://example.com/banner.png",
    "fields": [
      { "key": "discount", "label": "Discount", "value": "20% off" }
    ]
  }'
```

## Step 3: Issue a pass

With a template in place, create a pass instance:

```bash theme={null}
curl -X POST https://api.passform.io/v1/pass/my-first-template \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "expiry": "2026-12-31T23:59:59Z",
    "validFrom": null,
    "voided": false
  }'
```

The response includes distribution URLs for each delivery format:

* `appleUrl` - direct Apple Wallet download for iPhone users
* `googleUrl` - Google Wallet save URL for Android users
* `webUrl` - a browser-friendly pass viewer for users on desktop or devices without a wallet app installed

Use the right URL for the user's device, or present all three options in your own UI.

## Step 4: Update a pass or template

Once a pass has been issued, you can either update the individual pass data or update the template to change shared design and content across every pass issued from it.

See the [Updating passes](/guides/updating-passes) guide for pass-level and template-level update examples.

## Next steps

<CardGroup cols={2}>
  <Card title="API reference" icon="terminal" href="/api-reference/introduction">
    All endpoints for passes, templates, and accounts.
  </Card>

  <Card title="Support" icon="envelope" href="mailto:support@passform.io">
    Questions? Email us.
  </Card>
</CardGroup>
