---
title: "Order a payment card (x402)"
method: POST
path: "/v1/agents/{agent_id}/cards/order"
tags: ["Payment Cards"]
---

# Order a payment card (x402)

`POST /v1/agents/{agent_id}/cards/order`

## Request

- Base URL: `https://api.1claw.co`
- URL: `https://api.1claw.co/v1/agents/{agent_id}/cards/order`
- Auth: HTTP bearer

Order a prepaid or gift card for an agent. Drives the x402 payment flow server-side using the agent's Ethereum signing key (funded with USDC on Base). Requires `cards_enabled` on the agent and a Pro or higher plan. An `Idempotency-Key` header is required. When `card_require_approval` is true (default), the order is held in `awaiting_approval` until a human approves via the dashboard, mobile app, or email one-click link; payment runs only after approval.

## Path parameters

- `agent_id` string, uuid, required

## Headers

- `Idempotency-Key` string, required

## Request body

- OrderCardRequest
  - `kind` 'prepaid' | 'gift_card', required
  - `amount_usd` string, required: USD amount to load onto the card.
  - `laso_server_id` string: Optional Laso gift-card server/brand id (gift cards only).
  - `country` string: Optional country (prepaid cards; defaults to US).

## Response `200`

Idempotent replay of a prior order

- CardResponse: Masked card view — never contains PAN/CVV.
  - `id` string, uuid, required
  - `agent_id` string, uuid, nullable
  - `issuer` 'laso' | 'manual', required
  - `kind` 'prepaid' | 'gift_card', required
  - `brand` string
  - `last4` string
  - `exp_month` integer
  - `exp_year` integer
  - `currency` string, required
  - `order_amount_usd` string
  - `balance` string
  - `status` 'ordering' | 'pending' | 'ready' | 'depleted' | 'expired' | 'voided' | 'orphaned_payment' | 'awaiting_approval' | 'rejected', required
  - `storage_mode` 'reference' | 'full', required
  - `reveal_policy` object, required
  - `approval_id` string, uuid: Linked approval when status is awaiting_approval
  - `void_after` string, date-time
  - `created_at` string, date-time, required
  - `updated_at` string, date-time, required

## Other responses

- `201`: Card order accepted and payment submitted (status pending)
- `202`: Card order queued for human approval (status awaiting_approval)
- `400`: Invalid request
- `403`: Insufficient permissions
- `409`: Resource already exists or conflict

---

[API](https://skmtc.dev/1claw/apis/1claw-api.md) · [All operations](https://skmtc.dev/1claw/apis/1claw-api/llms.txt) · [OpenAPI document](https://skmtc.dev/1claw/apis/1claw-api/revisions/5fa0918f3b41?raw)
