Create a charge

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.

📘

Note

The /charges API call to complete the payment authorisation must be made within 15 minutes once a checkout has been approved. Checkouts will expire if not completed within this timeframe.

Useful notes

  • 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 USD CAD

    • id STRING

      Transaction ID

    • product STRING

      Zip product name

    • interest_free_months INTEGER

      Interest free period applied to a transaction in months

    • receipt_number DOUBLE

      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

    • customer.id STRING

      Unique customer identifier

    • customer.first_name STRING

      Customer's first name

    • customer.last_name STRING

      Customer's last name

    • customer.email STRING

      Customer's email address

    • customer_contribution BOOLEAN

      Specifies if the Zip consumer contribution is enabled for a merchant account

      Note: This functionality is only available for US merchants. False value is returned for AU and NZ transactions.


    Body Params
    authority
    object
    required

    Order shipping address object.

    string
    required

    Unique payment reference for this charge.

    string
    required

    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.

    string
    required

    Transaction currency.
    Accepted values are USD CAD AUD

    boolean
    Defaults to true

    Defaults to true. capture=true will immediately transfer funds to merchant account and deduct the funds from customers account. capture=false will authorize only and will ring-fence funds to be transferred on a call to /capture

    shopper
    object

    Shopper information object

    Order
    object

    Order information object

    Responses

    Language
    Credentials
    Header
    LoadingLoading…
    Response
    Click Try It! to start a request and see the response here! Or choose an example:
    application/json