Read https://docs.waffo.ai/llms-full.txt, load the official Waffo Pancake skill from https://docs.waffo.ai/integrate/skill, and integrate Waffo Pancake payments into the current project.
That’s it. Use this page as the AI integration entry point, then open the official skill file below when you need the exact SKILL.md.
Read https://docs.waffo.ai/llms-full.txt, load the official Waffo Pancake skill from https://docs.waffo.ai/integrate/skill, and use Waffo Pancake SDK tointegrate Waffo Pancake payments into the current project and run throughthe full checkout flow:1. Get Merchant ID from Dashboard → Merchant → Integration (use this as `WAFFO_MERCHANT_ID`, not `storeId`)2. Create an API Key from Dashboard → Merchant → Integration → API Keys3. Use only `WAFFO_MERCHANT_ID` and `WAFFO_PRIVATE_KEY` as required env vars for the first working integration4. Install @waffo/pancake-ts SDK5. Create checkout and webhook endpoints6. Test with card 45767500000001107. Verify webhook receives order.completed eventUse test environment.
Official Waffo Pancake Skill
Open the official skill file from the AI Integration page to view, copy, or download the exact SKILL.md used by the team.
The @waffo/pancake-ts SDK is the official server-side TypeScript client for the Waffo Pancake API. It handles request signing, checkout session creation, webhook verification, and GraphQL queries.
AI coding agents are most useful when you already understand the business model but want help turning it into a clean Waffo catalog and implementation plan.Typical tasks:
Convert a pricing page into Waffo products and product groups
Decide which offers should be subscription products vs one-time charges
Design dynamic pricing flows with priceSnapshot
Batch-generate product definitions, metadata, and rollout checklists
Review an existing catalog for naming, plan structure, and production readiness
Read https://docs.waffo.ai/llms-full.txt.I need you to turn this pricing model into a Waffo Pancake catalog:- Starter: $19/month- Pro: $59/month- Scale: custom annual contract- Overage: $0.20 per extra credit- Optional onboarding fee: $499 one timePlease output:1. Which items should be subscription products2. Which items should be one-time products3. Which subscription products should be grouped together4. Which flows require dynamic pricing via priceSnapshot5. Recommended product names, tax categories, and environment rollout order
Read https://docs.waffo.ai/llms-full.txt.I already have a subscription business in Waffo Pancake. I need to add dynamic pricing for overage billing.Please design:1. The base one-time product I should create2. When to use priceSnapshot3. What data should be calculated on my server before checkout4. How to explain this clearly to my team so they do not confuse it with subscription billing
Read https://docs.waffo.ai/llms-full.txt.Review this Waffo product catalog and tell me:1. Which names are unclear2. Which subscription products should be grouped3. Where dynamic pricing should replace fixed pricing4. Which products should stay one-time even though the business is subscription-led5. What should be published to production first
It is normal for a subscription-led business to create both subscription products and one-time charges. The charging model should match the business event, not the company label.
WAFFO_MERCHANT_ID means your Merchant ID, not storeId and not a store identifier from a URL. storeId is still part of the current API model for store, product, and checkout management flows, so do not confuse the two.For the first working integration, only these two env vars need to exist: WAFFO_MERCHANT_ID and WAFFO_PRIVATE_KEY. Store IDs and Product IDs are runtime values you can keep in code, app config, or your own database.
Store IDs and Product IDs are follow-up values. Save them wherever your app keeps runtime configuration; they do not need to be env vars unless you want that convention.
If products already exist in the Dashboard, copy the Product ID and go straight to checkout. In this flow, you still only need the same two env vars above:
Parameters passed to createSession can override product-level settings. Understanding the priority hierarchy is essential for AI integrations:
Parameter
Purpose
Priority
priceSnapshot
Override product price (dynamic pricing)
Highest — ignores the product’s set price
currency
Specify checkout currency
Required — selects the matching currency from product prices
buyerEmail
Pre-fill consumer email
Optional — skips the email input step on the checkout page
billingDetail
Pre-fill billing info (country, tax ID, etc.)
Optional — skips the address input on the checkout page
successUrl
Redirect URL after successful payment
Overrides product-level successUrl
metadata
Custom key-value pairs (internal order ID, etc.)
Passed through to webhook event.data
withTrial
Enable trial period
Overrides product-level trial settings
expiresInSeconds
Session expiration time
Default 45 minutes, max 7 days
darkMode
Checkout page dark mode
true=dark / false=light / omit=store default
priceSnapshot is the key parameter for dynamic pricing. When priceSnapshot is provided, the price set on the product is completely ignored. Use cases include: usage-based tiered pricing, dynamic coupon discounts, A/B testing different price points, and more.
Idempotency is automatic — the SDK generates deterministic keys from merchantId + path + body. Retries are safe.
Test → Prod workflow — products default to test. Use .publish() to promote. Webhook events include mode: "test" | "prod" so your handler can distinguish.