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

# Payment Method Object

> A shopper's card stored for charges you start later

# Payment Method Object

A payment method is a card a shopper stored during a checkout created with `setup_future_usage: "off_session"`. You charge it later with [Charge a Payment Method](https://docs.withgale.com/api-reference/endpoint/charge-payment-method.md). Gale never returns the card number.

## The Payment Method Object

```json theme={null}
{
  "id": "pm_fc61f9c445dd477287c47052087dc91c",
  "type": "card",
  "brand": "visa",
  "last4": "1111",
  "exp_month": "03",
  "exp_year": "2030",
  "usage": "off_session",
  "status": "active",
  "checkout_id": "cs_abc123",
  "customer_email": "jane@example.com",
  "last_used_at": null,
  "created_at": "2026-11-10T21:04:11Z"
}
```

## Attributes

| Attribute | Type | Description |
| :- | :- | :- |
| `id` | string | Payment method identifier (`pm_...`). Use it in the charge, read and remove calls |
| `type` | string | Always `card` |
| `brand` | string | Card brand, for example `visa` or `mc` |
| `last4` | string | Last four digits of the card |
| `exp_month` | string | Expiry month, two digits |
| `exp_year` | string | Expiry year, four digits |
| `usage` | enum | `off_session` when the shopper agreed to charges you start later |
| `status` | enum | `active` or `disabled`. A disabled payment method cannot be charged |
| `checkout_id` | string | The checkout session that stored the card |
| `customer_email` | string | Email of the customer on that checkout |
| `last_used_at` | timestamp | Time of the last successful charge, or `null` |
| `created_at` | timestamp | When the card was stored |

## Where it appears

* `GET /api/v2/checkout/{checkout_id}` for a checkout that asked for storage
* The `payment_method.saved` webhook
* The `order.completed` webhook for the order that stored the card, and for every order charged to it
* Every response from the payment method endpoints

## Test and live

A payment method stored with a `glm_test_` key exists only in test mode, and one stored with a `glm_live_` key exists only in live mode. A key from the other mode gets `404`.

## Related

* [Saved Payment Methods guide](https://docs.withgale.com/integration/saved-payment-methods.md)
* [Charge a Payment Method](https://docs.withgale.com/api-reference/endpoint/charge-payment-method.md)
* [List Payment Methods](https://docs.withgale.com/api-reference/endpoint/list-payment-methods.md)
* [Webhooks](https://docs.withgale.com/developer-manual/webhooks.md)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.