Once the zip checkout flow has redirected the customer to your previously defined "redirect_uri", that page should consume the the state of the checkout to determine if it has been approved, referred or declined. If the checkout has been approved, this page should then proceed to charge the customer.
Metadata set at the checkout will be returned in the response of this call.
If you don’t have server-side sessions you can use GET /checkouts/{checkoutId} to get the amount and currency to capture. The checkoutId should be in the query string.
You cannot charge more than the amount that was originally agreed upon within the checkout flow by the customer.
Remember that if you want to immediately transfer the funds from the customer to the merchant account, to set capture=true. If you want only to authorise the transaction (and ring-fence the funds in the customer account so that they cannot be used for other transactions) then set capture=false. If you set capture=false you will need to make a later call to /charges/{id}/capture or /charges/{id}/cancel to either capture (and transfer) the funds or to cancel the auth (This functionality is available for AU transactions only at present)
Regardless of whether you passed order.id in to checkout you can ensure the merchant order id is updated to the correct/latest order id by passing it in to this call. It will overwrite anything passed in to /checkouts
The "redirect_uri" must have been followed and the checkout approved before a charge can be authorised using a particular "checkout_id".
The reference number for each charge must be unique, be sure to modify the below example request with your merchant reference number in the request JSON under order.reference.
A successful charge request will return state="Approved", or state="Captured" or state="Authorised". This indicates that the payment has been completed.
The Charges Response
-
amount
DOUBLE
Amount of this charge. This is the amount that will be transferred (if capture=true) from customer to merchant account or ring-fenced if capture=false.
-
captured_amount
DOUBLE
Total amount captured for this charge.
-
created_date
STRING
The date on which the charge was created
-
currency
STRING
Transaction currency. Accepted values are AUD
NZD
GBP
USD
CAD
ZAR
MXN
AED
SAR
-
id
STRING
-
product
STRING
-
receipt_number
STRING
Transactoin receipt number
-
refunded_amount
DOUBLE
Total amount refunded for this charge
-
state
STRING
A successful state of the charge is approved
captured
or authorised
(For deferred payments)
Ensure your system accepts approved
captured
or authorised
as valid responses