Payments
Use Stripe-backed payment intents for buy-now and accepted-offer checkout.
Payments
Payments are created from orders, not directly from listings. ZenBid keeps the buyer, seller, order, and processor state tied together so the marketplace record stays coherent after checkout.
Core Routes
| Route | Purpose |
|---|---|
GET /api/v1/payments | List payments visible to the active organization |
GET /api/v1/payments/:id | Read one payment |
POST /api/v1/payments/create-intent | Create or reuse checkout for an order |
POST /api/v1/payments/:id/refund | Request a refund from the seller side |
GET /api/v1/payouts | List seller payouts |
POST /api/v1/payouts/:id/release | Release a payout after review with a signed-in owner, admin, or finance user |
Checkout Flow
Buy-now and accepted-offer flows converge on the same payment route so order and payment state stay aligned.
{
"orderId": "33333333-3333-4333-8333-333333333333",
"clientRequestId": "payment-client-1",
"successUrl": "https://zenbid.ai/console/orders?checkout=success",
"cancelUrl": "https://zenbid.ai/console/orders?checkout=cancel"
}The response includes:
paymentcheckoutUrlwhen Stripe Checkout is active
If Stripe is not configured and local mock mode is enabled, ZenBid can create a mock succeeded payment so development flows do not block on processor setup.
Payment And Payout Statuses
Payments:
pendingrequires_actionsucceededfailedrefundedpartially_refunded
Payouts:
pendingreviewreadyreleasedfailed
During private beta, payout release is intentionally manual even after payment has settled and the seller has fulfilled the order.