# `PaperTiger.Resources.Token`
[🔗](https://github.com/EnaiaInc/paper_tiger/blob/v1.2.2/lib/paper_tiger/resources/token.ex#L1)

Handles Token resource endpoints.

## Endpoints

- POST   /v1/tokens      - Create token
- GET    /v1/tokens/:id  - Retrieve token

Note: Tokens are immutable and single-use. No update, delete, or list operations.

## Token Object

    %{
      id: "tok_...",
      object: "token",
      created: 1234567890,
      type: "card" | "bank_account",
      used: false,
      card: %{
        id: "card_...",
        brand: "Visa",
        last4: "4242",
        exp_month: 12,
        exp_year: 2025
      },
      bank_account: %{
        id: "ba_...",
        account_holder_name: "John Doe",
        account_holder_type: "individual",
        last4: "6789",
        routing_number: "110000000"
      }
    }

# `create`

```elixir
@spec create(Plug.Conn.t()) :: Plug.Conn.t()
```

Creates a new token.

## Required Parameters

One of:
- card - Card object with: number, exp_month, exp_year, cvc
- bank_account - Bank account object with: account_number, routing_number, account_holder_name

## Optional Parameters

- metadata - Key-value metadata

# `retrieve`

```elixir
@spec retrieve(Plug.Conn.t(), String.t()) :: Plug.Conn.t()
```

Retrieves a token by ID.

---

*Consult [api-reference.md](api-reference.md) for complete listing*
