Test Outpay Payment Integrations and Webhooks
Test Outpay API requests, webhook verification, expiry handling, and provider flows without exposing credentials or trusting redirects.
Local application setup
The application's own README documents Bun, PostgreSQL, Redis, provider configuration, and a local app origin on port 3001.
bun install
cp .env.example .env
bun run db:migrate
bun run devUse the disposable-database workflow documented in the application repository for integration tests. Never point a local test run at a Railway or production database.
Test your server adapter
Mock the Outpay HTTP response and confirm your server:
- Uses a server-only API key.
- Sends a stable idempotency key.
- Redirects to the exact
paymentUrlreturned by Outpay. - Never fulfils an order from the browser redirect alone.
- Accepts a duplicate
checkout.paiddelivery without a second fulfilment. - Rejects an invalid signature before treating a webhook payload as trusted data.
Provider webhooks
The application has an internal Alchemy webhook route, but the repository does not document a turnkey public-tunnel workflow for exercising it locally. Treat provider-webhook replay as an operator/integration-test concern, and record the raw-body and signature fixtures you use.
No test network exists
Do not document a testnet or a fake USDC token as if it were supported. The verified catalog is Base mainnet plus the native USDC contract — see supported networks.
Related documentation
- Test an integration locally — a fuller test-layer checklist.
- Production checklist — what to confirm before going live.
- Idempotency — safe-retry behaviour to include in your test suite.
Outpay Checkout Integration Examples: cURL, Node.js, Next.js
Copy direct HTTP examples for creating Outpay USDC checkouts with cURL, JavaScript, Node.js, Next.js, React, and server-side fetch.
Outpay Developer Security: API Keys, Wallets, and Webhooks
Protect Outpay API keys, payout wallets, webhook endpoints, and order state when integrating crypto payments on Base.