API reference
Get started
Download the whole reference as Markdown
Base URL: https://t3rnel-wavepay-production.t3ratech.workers.dev. JSON in, JSON out. Everything under /v2/internal/ takes your key in the x-wavepay-service-key header; checkout pages and the price list are public.
1. Register
One call creates your merchant and returns a live key and a test key. Both are shown once and only their hashes are stored.
curl -sX POST https://t3rnel-wavepay-production.t3ratech.workers.dev/v2/register \
-H 'content-type: application/json' \
-d '{"name":"My product","ownerEmail":"you@example.com"}'
2. Test with fake money
The mk_test_… key uses the same routes and settles through a simulator. It never reaches a provider and never counts against your plan.
3. Take a payment
curl -sX POST https://t3rnel-wavepay-production.t3ratech.workers.dev/v2/checkouts \
-H 'content-type: application/json' -H 'Idempotency-Key: order-1001' \
-d '{"productId":"my-product","planId":"growth","provider":"paynow","email":"buyer@example.com"}'
Send the buyer to checkoutUrl, then read GET /v2/checkouts/<reference>/status or receive the signed webhook. Providers: paynow, paynow-mobile, paypal, crypto (set method to a rail id) and twocheckout where enabled.
Conventions
- Money is in minor units (cents). Idempotency: send an
Idempotency-Keyon every checkout; a repeat returns the same checkout. - Errors are
{"error":{"code":"…"}}with a meaningful HTTP status; see Errors. - One page for models: wavepay-docs.md is this whole reference as a single Markdown file, and llms.txt indexes the site.
- Security: Secrets are shown once and stored only as hashes (merchant keys) or sealed with AES-GCM (provider credentials, buyer addresses); they are never logged or returned. How we protect your keys and data.