Skip to main content
The WooCommerce guide is one concrete example of a general pattern that works for any platform — a custom storefront, a Shopify app, a membership site, or a no-code tool. This page distills that pattern with language-agnostic examples.

The two calls you need

1

Create a checkout session, then redirect

Server-side, call POST /checkout/sessions and send the buyer to the url in the response. Put your own order/cart id in metadata.
2

Confirm via the order.completed webhook

When the webhook fires, verify the signature and read your id back out of metadata to settle the matching order.

1. Create a checkout session

The response is { "id": "cs_…", "url": "https://yourstore.pocketsflow.com/checkout?…" }.

2. Verify and handle the webhook

Every webhook is an HTTP POST signed with HMAC-SHA256 over the raw body, keyed with your endpoint’s signing secret. Verify it before trusting the payload.

Best practices

  • Verify against the raw body. Don’t re-serialize the JSON before hashing.
  • Be idempotent. A webhook may be re-sent; processing the same event twice must be safe (check whether the order is already paid first).
  • Acknowledge fast. Return 2xx quickly and do heavy work asynchronously.
  • Reconcile. Treat the webhook as the source of truth; if one is missed, use GET /orders and match on your metadata id.
  • Keep secrets server-side. API keys and signing secrets must never reach the browser.

A note on Shopify and marketplace apps

The same redirect + webhook pattern works for a custom Shopify integration today. A deeper, no-code “native app” experience (one-click connect, automatic product sync) for WooCommerce, Shopify, and others is planned — see the integrations overview for what’s available now.