Integration guides
Security
How to protect your keys, your customers and your webhook endpoint.
Your credentials
- Keep API keys on your server, in a secret manager or environment variables. Never in browsers, mobile apps, chatbots or source control.
- Give each key only the scopes it needs, and use separate keys per system.
- Set an expiry, rotate regularly using the overlap window, and revoke immediately if a key may have leaked.
- Use a link key for automation tools and AI agents: it can only create and read payment links.
Payments
- Fulfil orders from server-side status (
succeededorpaid), never from a browser redirect, a provider SMS or a202. - Take amounts from your own database, not from the browser.
- TeePay never asks for your customer's PIN, and you should never collect it.
Webhooks
- Verify
X-TeePay-Signatureon the raw body and reject timestamps older than five minutes. - De-duplicate on
X-TeePay-Event-ID. - Return
2xxonly after you have stored the event.
What TeePay enforces
- The account always comes from the credential; no request can act for another business.
- Every request re-checks your account's verification, suspension and permissions.
- Return and webhook URLs are configured only in the dashboard, never per API request.
- Keys in query strings or alternative headers are rejected, so they never land in access logs.