Public beta

Payments

Zippex supports two payment modes depending on how you want to handle checkout. Choose the one that fits your integration.

Overview

Delivery only

You handle checkout on your side. Zippex just delivers the order. You pay the delivery fee via your API key.

Collect & remit

Zippex collects the full amount (items + delivery) from your customer and remits your items subtotal to your Stripe account.

Enabling payment collection

To use the collect & remit mode, connect your Stripe account:

  1. Go to Dashboard → Payouts → Connect Stripe.
  2. Complete the Stripe Express onboarding flow.
  3. Enable Payment Collection in your payout settings.

Once connected, you can create checkouts that collect payment from your customers.

Creating a checkout

POST/v1/platforms/{platform}/checkout

Create a checkout session that collects payment for items and delivery.

Parameters

quote_idstringrequired

A valid quote ID from the quotes endpoint.

items_subtotalintegerrequired

Total items price in cents (e.g. 4500 = $45.00).

customer_emailstringoptional

Customer email for the payment receipt.

customer_namestringoptional

Customer name for the payment receipt.

curl -X POST https:"color:#6a9955">//api.zippex.com/v1/platforms/woocommerce/checkout \
  -H "Authorization: Bearer zxp_wc_yourtoken" \
  -H "Content-Type: application/json" \
  -d '{
    "quote_id": "qt_r4s5t6u7",
    "items_subtotal": 4500,
    "customer_email": "customer@example.com"
  }'
200 OK
{
  "checkout_id": "chk_wc_abc123def456",
  "checkout_url": "https://developers.zippex.com/checkout/chk_wc_abc123def456",
  "client_secret": "pi_xxx_secret_yyy",
  "total_amount": 5749,
  "delivery_fee": 1249,
  "items_subtotal": 4500,
  "currency": "cad",
  "expires_at": "2026-03-10T14:30:00Z"
}

Collecting payment

Once you have a checkout, there are two ways to collect payment from your customer:

Option 1: Hosted checkout (recommended)

Redirect your customer to the checkout_url returned in the response. Zippex displays a branded payment page, handles card input, and redirects the customer back to your site on completion.

Option 2: Custom UI

Use the client_secret with Stripe.js to render a PaymentElement on your own frontend:

const stripe = Stripe('pk_test_...');
const elements = stripe.elements({
  clientSecret: 'pi_xxx_secret_yyy',
});

const paymentElement = elements.create('payment');
paymentElement.mount('#payment-element');

"color:#6a9955">// On form submit
const { error } = await stripe.confirmPayment({
  elements,
  confirmParams: {
    return_url: 'https://yourstore.com/order-confirmed',
  },
});

After payment

Once the customer pays, the following happens:

  1. Zippex marks the checkout as paid via webhook.
  2. You create a delivery using the paid checkout's quote_id.
  3. On delivery completion, Zippex transfers your items_subtotal to your Stripe account.
  4. Zippex keeps the delivery fee.

Important

You must create the delivery after payment. A paid checkout without a delivery will be refunded after 24 hours.

Payouts

Payouts are sent to your connected Stripe Express account on a daily automatic schedule.

  • View payout history in Dashboard → Payouts.
  • Open your Stripe Dashboard from the Payouts page for detailed transaction reports.
  • Payout timing depends on your Stripe account settings (typically 2 business days).