# Simulate reversal

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

Simulate an acquirer reversing the message that opened a card transaction, as with a voided sale or a
terminal that never got its authorization response. The transaction must have started as an authorization
or a full financial transaction.

Omit `cardholder_amount` to reverse in full: an authorization releases whatever hold the series still
carries, including incremental authorizations, and a full financial transaction reverses its settled
amount. Set `cardholder_amount` to release part of an authorization hold and leave the rest active, as
with a partially filled order; partial reversals don't apply to full financial transactions.

Reversals act on the outstanding authorization hold, so a transaction that has already been captured has
nothing left to reverse — refund it instead.

### Path Parameters

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

### Body Parameters

- `cardholder_amount` `number` — Amount to reverse, expressed in the smallest unit of the merchant's currency
  (e.g., cents for `USD`). Must be greater than 0 and less than the outstanding
  authorized amount. Omit to reverse the transaction in full.
  Must not exceed 999999999999.

**Request**

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

**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",
  "type": "purchase"
}
```
