Start

Zippy Pay overview

Integrate checkout with payment sessions, the Checkout SDK, and signed webhooks.

Zippy Pay lets merchants accept payments through amount-locked checkout sessions, an embeddable Checkout SDK, and signed webhooks. Your backend creates sessions with an API key; customers pay in the browser or Zippy mobile app; you confirm outcomes asynchronously.

Start building

Models

Integration models

Server-side session + Checkout SDK

Your backend creates a payment session with X-Api-Key, stores the returned sessionId and clientToken, and passes both to @zippypay/checkout in the browser.

Webhook-first confirmation

Treat payment_session.completed and related events as the source of truth for fulfillment. Poll merchant GET endpoints from your backend as a reconciliation fallback. Use redirect URLs for customer UX, not as your only reconciliation path.

Architecture

How Zippy Pay works

Merchant checkout flow

Merchant backend

Creates payment session

X-Api-Key

Zippy API

Returns sessionId + clientToken

zps_…

Checkout SDK

Customer pays in browser

Zippy mobile app

Customer confirms payment

Async confirmation

Completed

payment_session.completed

Expired

payment_session.expired

Declined

payment_session.declined

Your HTTPS webhook

Sessions move through statuses such as Created, Awaiting Payment, and Completed. Terminal outcomes include Expired, Cancelled, and Failed.

Quickstart

10-minute integration path

  1. Complete KYB, confirm business status is ACTIVE, and create your receive payment ID.
  2. Register allowed browser origins for every production checkout domain.
  3. Create an API key (zp_live_..., shown once).
  4. Register an HTTPS webhook endpoint and store whsec_....
  5. Create a payment session with POST /api/v1/payment-sessions.
  6. Embed @zippypay/checkout with the returned sessionId and clientToken.
  7. Verify webhook signatures and fulfill on payment_session.completed, or poll GET /payment-sessions from your backend as a fallback.