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

# Pre-authorisations

> Hold an amount on a card, then capture or release it.

A pre-authorisation holds an amount on a customer's card without taking the money. You then either **capture** it (taking some or all of the amount) or **reverse** it (releasing the hold). Typical uses: bookings with a cancellation window, deposits, and checking a card is good before provisioning.

**1. Pre-authorise**

`POST /preauth` with the same card fields as a charge (or a `card_token`), plus `currency`, `amount` and `reference`.

```bash theme={null}
curl https://api-sandbox.paychoice.com.au/api/v5/preauth \
  -u "$PAYCHOICE_USERNAME:$PAYCHOICE_PASSWORD" \
  -H "Content-Type: application/json" \
  -d '{
    "currency": "AUD",
    "amount": "50.00",
    "reference": "BOOKING-7781",
    "card_token": "c629ac3b-682b-41e4-9a81-9445960843cf"
  }'
```

```json theme={null}
{
  "pre_auth": {
    "id": "6b1e2c3d-4f5a-4b6c-8d7e-9f0a1b2c3d4e",
    "pre_authid": "24007-P-14CULT45",
    "reference": "BOOKING-7781",
    "amount": 50.0,
    "currency": "AUD",
    "status": "Approved",
    "status_code": "0",
    "error": "Transaction Approved",
    "error_code": "00",
    "created": "2026-11-04T03:10:44.207Z",
    "merchant_guid": "315564b9-b863-4016-8c53-02c9d8cc80b7"
  },
  "object_type": "pre_auth",
  "from_item": 0,
  "to_item": 0,
  "total_count": 0
}
```

Keep `pre_authid` — it's the handle for the next step. This response has no `link` field.

**2. Capture**

`POST /charge` with `pre_authid`, `amount`, `currency` and a `reference`. The amount can be less than the hold.

```bash theme={null}
curl https://api-sandbox.paychoice.com.au/api/v5/charge \
  -u "$PAYCHOICE_USERNAME:$PAYCHOICE_PASSWORD" \
  -H "Content-Type: application/json" \
  -d '{
    "pre_authid": "24007-P-14CULT45",
    "currency": "AUD",
    "amount": "45.00",
    "reference": "BOOKING-7781-CAPTURE"
  }'
```

The response is a normal `charge` object, exactly as for [Charging via the API](https://developers.paychoice.com.au/taking-payments/charging-via-the-api.md), and a webhook follows.

**3. Or reverse**

`POST /reverse` with the pre-authorisation's `reference` releases the hold.

```bash theme={null}
curl https://api-sandbox.paychoice.com.au/api/v5/reverse \
  -u "$PAYCHOICE_USERNAME:$PAYCHOICE_PASSWORD" \
  -H "Content-Type: application/json" \
  -d '{ "reference": "BOOKING-7781" }'
```

```json theme={null}
{
  "is_successful": true,
  "reference": "BOOKING-7781",
  "object_type": "reversal_response",
  "from_item": 0,
  "to_item": 0,
  "total_count": 0
}
```

Reverse returns a flat object rather than an envelope.

> [!NOTE]
>
> Pre-authorisation is card-only. Holds are released by the card issuer after a period if neither captured nor reversed; the exact window depends on the issuer, so reverse explicitly when you know you won't capture.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.