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

# Cards

Cards represent Whop-issued payment cards that spend from an account balance. A card can be virtual or physical, assigned to a user, and configured with spending limits.

Use the Cards API to create cards, list cards on an account, and retrieve card details for account spending workflows.

## Endpoints

| Endpoint                                                 | Request                                                             |
| -------------------------------------------------------- | ------------------------------------------------------------------- |
| [List Cards](/api-reference/beta/cards/list-cards)       | <Badge color="blue" size="sm" stroke>GET</Badge> `/cards`           |
| [Create Card](/api-reference/beta/cards/create-card)     | <Badge color="green" size="sm" stroke>POST</Badge> `/cards`         |
| [Retrieve Card](/api-reference/beta/cards/retrieve-card) | <Badge color="blue" size="sm" stroke>GET</Badge> `/cards/{card_id}` |

## Attributes

<Columns cols={2}>
  <Column>
    <ResponseField name="billing" type="object | null" required>
      The billing address.

      <Accordion title="Properties" defaultOpen={true}>
        <ResponseField name="city" type="string | null" required>
          Billing city.
        </ResponseField>

        <ResponseField name="country_code" type="string | null" required>
          Billing country code.
        </ResponseField>

        <ResponseField name="line1" type="string | null" required>
          Street address line 1.
        </ResponseField>

        <ResponseField name="line2" type="string | null" required>
          Street address line 2.
        </ResponseField>

        <ResponseField name="postal_code" type="string | null" required>
          Billing postal code.
        </ResponseField>

        <ResponseField name="region" type="string | null" required>
          Billing region or state.
        </ResponseField>
      </Accordion>
    </ResponseField>

    <ResponseField name="canceled_at" type="string | null" required>
      When the card was canceled.
    </ResponseField>

    <ResponseField name="created_at" type="string | null" required>
      When the card was created.
    </ResponseField>

    <ResponseField name="expiration_month" type="string | null" required>
      Card expiration month.
    </ResponseField>

    <ResponseField name="expiration_year" type="string | null" required>
      Card expiration year.
    </ResponseField>

    <ResponseField name="id" type="string" required>
      The icrd\_ identifier of the card.
    </ResponseField>

    <ResponseField name="last4" type="string | null" required>
      Last four digits of the card number. `null` for pending invitation cards.
    </ResponseField>

    <ResponseField name="limit" type="object | null" required>
      The spending limit configuration.

      <Accordion title="Properties" defaultOpen={true}>
        <ResponseField name="amount" type="number" required>
          The limit amount in dollars.
        </ResponseField>

        <ResponseField name="frequency" type="string" required>
          Limit window, for example `per24HourPeriod` or `perAuthorization`.
        </ResponseField>
      </Accordion>
    </ResponseField>

    <ResponseField name="name" type="string | null" required>
      Card display name.
    </ResponseField>

    <ResponseField name="object" type="string" required />

    <ResponseField name="secrets" type="object | null">
      The card's sensitive details. Only present on GET /cards/:card\_id (retrieve); null for cards that are not active or whose details could not be retrieved.

      <Accordion title="Properties" defaultOpen={true}>
        <ResponseField name="card_number" type="string" required>
          The full card number.
        </ResponseField>

        <ResponseField name="cvc" type="string" required>
          The card verification code.
        </ResponseField>

        <ResponseField name="name_on_card" type="string | null" required>
          The cardholder name printed on the card.
        </ResponseField>
      </Accordion>
    </ResponseField>

    <ResponseField name="spent_last_month" type="integer | null" required>
      Total spend in the last 30 days, in cents.
    </ResponseField>

    <ResponseField name="status" type="string,null | null" required>
      The card status.

      Available options: `active`, `frozen`, `canceled`, `invited`
    </ResponseField>

    <ResponseField name="type" type="string,null | null" required>
      The card type.

      Available options: `virtual`, `physical`
    </ResponseField>

    <ResponseField name="user_id" type="string | null" required>
      The user\_ identifier of the cardholder, when assigned.
    </ResponseField>
  </Column>

  <Column>
    <div className="api-resource-sticky-example">
      ```json Card theme={null}
      {
      	"billing": {
      		"city": "New York",
      		"country_code": "US",
      		"line1": "123 Spring Street",
      		"line2": "Suite 4",
      		"postal_code": "10012",
      		"region": "NY"
      	},
      	"canceled_at": null,
      	"created_at": "2026-06-01T12:00:00Z",
      	"expiration_month": "12",
      	"expiration_year": "2029",
      	"id": "icrd_xxxxxxxxxxxxx",
      	"last4": "4242",
      	"limit": {
      		"amount": 500,
      		"frequency": "per24HourPeriod"
      	},
      	"name": "Operations Card",
      	"object": "card",
      	"secrets": {
      		"card_number": "4242424242424242",
      		"cvc": "123",
      		"name_on_card": "Pickaxe Operations"
      	},
      	"spent_last_month": 12500,
      	"status": "active",
      	"type": "virtual",
      	"user_id": "user_xxxxxxxxxxxxx"
      }
      ```
    </div>
  </Column>
</Columns>
