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:
- Go to Dashboard → Payouts → Connect Stripe.
- Complete the Stripe Express onboarding flow.
- Enable Payment Collection in your payout settings.
Once connected, you can create checkouts that collect payment from your customers.
Creating a checkout
/v1/platforms/{platform}/checkoutCreate a checkout session that collects payment for items and delivery.
Parameters
quote_idstringrequiredA valid quote ID from the quotes endpoint.
items_subtotalintegerrequiredTotal items price in cents (e.g. 4500 = $45.00).
customer_emailstringoptionalCustomer email for the payment receipt.
customer_namestringoptionalCustomer 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"
}'{
"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:
- Zippex marks the checkout as
paidvia webhook. - You create a delivery using the paid checkout's
quote_id. - On delivery completion, Zippex transfers your
items_subtotalto your Stripe account. - Zippex keeps the delivery fee.
Important
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).