ZenBid Docs

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

RoutePurpose
GET /api/v1/paymentsList payments visible to the active organization
GET /api/v1/payments/:idRead one payment
POST /api/v1/payments/create-intentCreate or reuse checkout for an order
POST /api/v1/payments/:id/refundRequest a refund from the seller side
GET /api/v1/payoutsList seller payouts
POST /api/v1/payouts/:id/releaseRelease 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:

  • payment
  • checkoutUrl when 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:

  • pending
  • requires_action
  • succeeded
  • failed
  • refunded
  • partially_refunded

Payouts:

  • pending
  • review
  • ready
  • released
  • failed

During private beta, payout release is intentionally manual even after payment has settled and the seller has fulfilled the order.