# Simulate capture

**POST** `/simulate/issuing/card-transactions/{card_transaction_id}/capture`

Simulate a capture that converts an authorization hold into a settled transaction. The original transaction must have
started as an authorization and have an active hold.

Set `is_partial_capture` to `true` to keep the remaining hold active for future captures, as with split shipments; the
amount must not exceed the remaining authorized amount. Otherwise the capture is final and releases the remaining hold,
and the amount may exceed the authorized amount, as with tips or hotel incidentals.

### Path Parameters

- `card_transaction_id` `string` _(required)_ — Unique identifier for the card transaction.

### Body Parameters

- `cardholder_amount` `number` _(required)_ — Amount to capture, expressed in the smallest currency unit (e.g., cents for `USD`).
  For partial captures (`is_partial_capture: true`), must be less than or equal to the
  remaining authorized amount. For full/final captures, over-capture is permitted
  (e.g., for tips, hotel incidentals, or fuel charges).
  Must not exceed 999999999999.
- `is_partial_capture` `boolean` — If `true`, keeps the remaining authorization hold active for future captures
  (partial capture / split shipment). If `false` or not provided (default),
  releases the entire remaining authorization hold (final capture).

**Request**

```shell
curl 'https://api.column.com/simulate/issuing/card-transactions/<card_transaction_id>/capture' \
  -XPOST \
  -u :<YOUR API KEY> \
  -H 'Content-Type: application/json' \
  -d '{
  "cardholder_amount": 1000,
  "is_partial_capture": true
}'
```

**Response 200**

```json
{
  "card_account_id": "cacc_2x8gszy5folpA9s0TOCseE9ABDM",
  "card_id": "card_2x8gszy5folpA9s0TOCseE9ABDM",
  "card_program_id": "cpgm_2x8gszy5folpA9s0TOCseE9ABDM",
  "created_at": "2024-01-15T09:30:00Z",
  "id": "ctxn_2x8gszy5folpA9s0TOCseE9ABDM"
}
```
