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

# Issuing passes

> Create passes one at a time, in bulk from CSV, or via the API — and understand pass statuses.

A **pass** is an individual wallet credential issued from a published template version. This guide covers issuing from the admin console; for automation see the [Create a pass](/api-reference/overview) API.

## Issue from the console

Go to **Passes → Issue passes** (or click **Issue Pass** in the template editor).

<Steps>
  <Step title="Pick a template">
    Only templates with a **published version** are issuable. The pass will be pinned to the
    latest published version at issue time.
  </Step>

  <Step title="Fill in the rows">
    The issue screen is a spreadsheet-style grid — one row per pass:

    * **External Pass ID** — your system's reference for this pass. Toggle
      **Auto-generate External Pass IDs** if you don't have one. External IDs are unique per
      workspace and make issuance idempotent.
    * **Label** — the holder's display name.
    * One column per **template variable**.

    Add rows with **Add pass**, or bulk-load them with **Import from CSV** (append to or
    replace the grid). A live preview shows the pass as you type.
  </Step>

  <Step title="Issue">
    Click **Issue pass** (or **Issue N passes**). Issuance runs asynchronously — large batches
    are queued and processed in the background.
  </Step>
</Steps>

<Note>
  Passes inherit their **project** from the template — shown read-only on the issue screen.
  Organize with [projects](/guides/projects) before issuing if you need separation.
</Note>

## Pass statuses

| Status    | Console label | Meaning                                        |
| --------- | ------------- | ---------------------------------------------- |
| `QUEUED`  | Queued        | Accepted and waiting for the issuing pipeline. |
| `ISSUING` | Pending       | Wallet artifacts are being generated.          |
| `ISSUED`  | Issued        | Live — add-to-wallet links are active.         |
| `VOID`    | Voided        | Permanently voided; links revoked.             |
| `FAILED`  | Failed        | Issuance failed — open the pass for details.   |
| `EXPIRED` | Expired       | Past its template expiration.                  |

Filter the **Passes** list by these statuses with the chips at the top (All / Issued / Pending / Voided / Failed), search by label or external ID, and scope by project or template.

## The pass detail page

Open any pass to see:

* **Status and template version** — with an upgrade prompt when a newer published version
  exists.
* **Add-to-wallet links** for each wallet.
* **Scan history** and an **activity timeline**.
* A **live preview** with a **revision timeline** — every data update or version upgrade is a
  snapshot you can scrub through.

Row and bulk actions on the list cover the common lifecycle operations: **Copy wallet link**, **Update data**, **Upgrade to vN**, and **Void**.

## Voiding passes

**Void pass** permanently voids a credential: its links are revoked and the pass is flagged for removal from wallets (removal can take up to 24 hours to propagate). Voiding is available on issued passes, individually or in bulk, and cannot be undone.
