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

# Lifecycle and Events

> The four pass statuses, the card operations that move them and the webhook events that announce every change

A pass holds one of four statuses and stays valid for 365 days from issuance. Card operations move those statuses automatically. Webhook events report each purchase decision and each new pass, so nothing in the flow needs polling.

## The four statuses

| Status   | Meaning                                                                           |
| -------- | --------------------------------------------------------------------------------- |
| Active   | Ready for lounge entry, with the visit still available                            |
| Redeemed | The visit is used and the pass is complete                                        |
| Disabled | Suspended while the card is blocked or frozen, and restored when the card returns |
| Expired  | Past the validity window or retired with a deleted or replaced card. Final        |

```mermaid theme={null}
stateDiagram-v2
    [*] --> Active : Creation completes
    Active --> Redeemed : The visit is used
    Active --> Disabled : Card blocked or frozen
    Disabled --> Active : Card unblocked or unfrozen
    Active --> Expired : 365 days elapse, card deleted or replaced
    Disabled --> Expired : 365 days elapse, card deleted or replaced
    Expired --> [*]
```

Expiry runs automatically each night. It needs no call from you and applies to any pass past its expiry date regardless of its current status.

## Card events that update passes

| Card operation      | Effect on the passes on that card |
| ------------------- | --------------------------------- |
| Delete or replace   | Passes become expired             |
| Block or freeze     | Passes become disabled            |
| Unblock or unfreeze | Passes return to active           |

Only the passes on the target card are affected, and no pass changes if the card operation itself fails, so pass status can never drift from card status.

<Warning>
  Delete and replace retire the passes on the card permanently, and an expired pass cannot be reactivated. Check for unused passes before replacing a card.
</Warning>

## Webhook events

Register one endpoint and handle the three events below. Delivery and [signature verification](/webhooks/signature-verification) work the same as every other [Reap event](/webhooks/overview).

| Event                       | Fires when                                              | What to do                                                 |
| --------------------------- | ------------------------------------------------------- | ---------------------------------------------------------- |
| `PURCHASE_REQUEST_APPROVED` | A purchase is approved and the passes land in your pool | Refresh inventory and begin issuing passes                 |
| `PURCHASE_REQUEST_REJECTED` | A purchase is rejected with a reason                    | Surface the reason and raise a corrected request if needed |
| `PASS_CREATION_COMPLETED`   | Creation finishes and the pass becomes active           | Fetch the pass and present it to the cardholder            |

<Note>
  Lounge visits do not raise an event today. Reap updates every pass from the lounge network report once a day, and a webhook that reports each visit as it happens is coming soon.
</Note>

## Next steps

<CardGroup cols={2}>
  <Card title="Working with passes" href="/airport-lounge-access/working-with-passes">
    Purchase inventory, issue passes and track lounge visits
  </Card>

  <Card title="Airport lounge access FAQ" href="/airport-lounge-access/faq">
    Coverage, the plan, spending control and the questions prospects raise
  </Card>
</CardGroup>
