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

# Wait for checkout approval

> Read a preparation until the user is ready for a fresh card request.

Poll the preparation after delivering its approval link. Start the merchant's Pay action only after `status` becomes `ready` and before `ready_expires_at`. The user must keep the approval page open.

<ParamField path="id" type="string" required>The preparation identifier returned by the create request.</ParamField>

<RequestExample>
  ```bash theme={null}
  curl https://api.agentcard.sh/api/v2/checkout/preparations/cprep_2e357e4b01c88063fd805764 \
    -H "Authorization: Bearer $ORG_TOKEN"
  ```
</RequestExample>

The response below comes from the same local API test as [Create a checkout preparation](/api-reference/vault/preparations-create). The sample approval has not sent a processor request.

<ResponseExample>
  ```json theme={null}
  {
    "id": "cprep_2e357e4b01c88063fd805764",
    "object": "checkout_preparation",
    "status": "ready",
    "user": "cmturxope0000cbpss123jxee",
    "merchant": "Merchant example",
    "merchant_origin": "https://merchant.example",
    "amount": "$1.00",
    "amount_cents": 100,
    "currency": "usd",
    "amount_authority": "display_only",
    "psp": "worldpay",
    "mode": "token",
    "environment": "sandbox",
    "sandbox": true,
    "testMode": true,
    "vaultOrigin": "https://vault.agentcard.sh",
    "url": "https://try.access.worldpay.com/sessions/card",
    "card_id": "cmturxopj0004cbpswhqdeyju",
    "cardId": "cmturxopj0004cbpswhqdeyju",
    "checkout_key": "ed8f8370-2e7a-4255-b1eb-116f1220d687",
    "binding_hash": "239d8ce07b3c4a23a60f9bffe718aea63a3940dd62f2454041440d35401ce3e2",
    "expiresAt": "2026-09-10T00:28:24.470Z",
    "ready_expires_at": "2026-09-10T00:13:54.494Z",
    "createdAt": "2026-09-10T00:13:24.471Z",
    "authorization_id": null,
    "payment_status": "not_started",
    "approvalUrl": "https://vault.agentcard.sh/authorize?id=cprep_2e357e4b01c88063fd805764"
  }
  ```
</ResponseExample>

After `status` becomes `bound`, read the linked authorization with [Get a checkout authorization](/api-reference/vault/authorizations-get). The preparation then reports `payment_status: "authorization_pending"`; the merchant's receipt or payment record determines whether the purchase completed.
