POST /charge creates a charge. The same endpoint handles three cases, selected by which fields you send:
Every charge needs
currency, amount and a reference. The reference is yours — an invoice or order number — and it comes back on the charge, in every webhook, and as a filter on Listing Charges.
If you’d rather not handle card or account details at all, the Widget and the Create Token page capture them on a PayChoice-hosted form.
Card charge
The v5 JSON body uses the same bracketed key names as v4 form-data (
card[name], bank[bsb]). Send them as literal keys.Response
uuid
The charge ID. Use it to retrieve or refund the charge, and to match webhook notifications.
string
Outcome as returned by the processor:
Approved, Dishonoured, Blocked, Errored or Processing.string
"0" Approved, "4" Blocked, "5" Dishonoured, "6" Errored, "9" Processing. A string on this endpoint; an integer when you retrieve the charge later. See Charge status.string | null
Processor result description.
string
Decimal with two places.
Present only when a surcharge was applied.
orginal_amount is spelt that way in the response.Declines
A declined card charge returns HTTP402 Payment Required with the same charge object; read status, error and error_code for the reason. Don’t treat 402 as a transport error.
Bank account charge
status Processing and status_code "9". The charge is not approved yet. The final outcome arrives through the webhook once the bank responds — typically within three business days. bank[bsb] is not required for New Zealand accounts.
Surcharges
When a surcharge applies to a charge, the response includesfeeapplied, feeamount and orginal_amount so you can show the customer the breakdown. Whether surcharging is enabled, and at what rate, is configured on your merchant account.
Next
- Webhooks — learn the final outcome of every charge.
- Tokens — keep a payment method on file for next time.
- Refunds and pre-authorisations.

