> ## 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.

# Charge status

> The status and status_code values on charges, refunds and pre-authorisations, and where each appears.

Every charge, refund and pre-authorisation carries a `status` string and a `status_code`. Use `status_code` for logic; `status` is for display.

| Code | Status | Meaning |
| - | - | - |
| 0 | `Approved` | Successful. |
| 1 | `ApprovedWithErrors` | Successful but an abnormality was encountered; check it manually. |
| 4 | `Blocked` | Not successful. The card has been blocked from transacting via the PayChoice gateway. See `error` / `error_code`. |
| 5 | `Dishonoured` | Not successful. See `error` / `error_code`. |
| 6 | `Errored` | Not successful. See `error` / `error_code`. Also returned for any unrecognised processor status. |
| 9 | `Processing` | Still being processed. You'll regularly see this when charging bank accounts; the final result arrives by [webhook](https://developers.paychoice.com.au/getting-the-result/webhooks.md). |
| 99 | `Voided` | The transaction has been voided. |

## Where each code appears

| Endpoint | `status_code` type | Codes returned |
| - | - | - |
| Create charge, Capture, webhook `charge` | string (`"0"`) | `"0"`, `"4"`, `"5"`, `"6"`, `"9"` |
| Retrieve charge, List charges | integer (`0`) | `0`, `4`, `5`, `6`, `9` |
| Refund, webhook `refund` | integer (`0`) | `0`, `4`, `5`, `6`, `9` |
| Pre-authorisation | string (`"0"`) | `"0"`, `"4"`, `"5"`, `"6"`, `"9"` |

Codes `1` and `99` exist in the status model but aren't returned by the endpoints above today. On Create charge, `status` is the processor's own status string and may include `Pending` (mapped to `"9"`); on Retrieve charge it is one of the names in the table.

> [!TIP]
>
> Because the type varies by endpoint, compare `status_code` loosely (`== 0` after converting to a number) or normalise it on receipt.

## Bank charges

A bank charge is `Processing` (`9`) when created and stays that way until the bank responds, which can take up to three business days. The final `Approved` or `Dishonoured` arrives as a second webhook notification with the same charge `id`. Treat the latest notification as current.


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