How It Works
Because the retailer’s final total isn’t known until checkout, Stripe Connect places a hold when the order goes in, then charges the final amount once the order is fulfilled and releases the remainder.Connect your Stripe account
In your settings, authorize Zinc against your existing Stripe account. You keep your keys, dashboard, and payouts. Set a statement descriptor your end-customers will recognize before enabling charges, so they aren’t surprised by an unfamiliar line item.
Place the order with a payment object
Add a
payment object to your standard create-order call, with mode: "connect". Zinc authorizes a hold on your end-customer’s card; if it’s declined, no order is created.| Component | Amount |
|---|---|
| Order cost (goods) | $50.00 |
| Your margin | $2.50 |
| Zinc fee | $1.00 |
| Stripe fee (2.9% + $0.30) | $1.91 |
| End-customer is charged | $55.41 |
| → You receive (margin) | $2.50 |
| → Zinc keeps (cost + fee) | $51.00 |
Connect orders are funded by the end-customer’s charge, so they never touch your Zinc wallet and don’t appear in your wallet balance or transaction history.
Placing a Connect Order
Add apayment object to your standard create-order call with mode: "connect". Omit it (or send mode: "wallet") for unchanged prepaid-wallet billing.
max_price is the most the goods can cost, the same ceiling used for any order; it does not include your margin or fees. Zinc holds that ceiling plus your margin, our $1 fee, and Stripe’s fee, then charges your customer only the actual total once the order is placed.
The payment object
| Field | Required | Description |
|---|---|---|
mode | "wallet" (default) or "connect". | |
payment_method | ✓ | Your end-customer’s saved Stripe payment-method id (pm_…) on your connected account. |
customer | ✓ | Your end-customer’s Stripe Customer id (cus_…) on your connected account. The card is charged off-session, so Stripe requires the Customer it’s saved on. |
margin | ✓ | Your markup: { "type": "flat", "value": <cents> } or { "type": "percent", "value": <percent> } (e.g. 15 = 15%). |
Order Lifecycle & Refunds
- Order fails before fulfillment: the hold is voided and your end-customer’s funds are released; nothing is captured.
- Cancelled by the retailer after capture: Zinc refunds your end-customer in full on your connected account, including the platform fee (Zinc keeps nothing on a cancelled order).
- Successful order: the actual total is captured; your margin settles to your account.
Refunds are issued server-side against the original charge on your connected account and follow Stripe’s standard settlement timelines.
Next Steps
Create an Order
See the full create-order API spec, including the
payment object.Connect your account
Link your Stripe account in dashboard settings.

