API
Authentication
Server calls use a secret API key. The browser checkout SDK uses a separate publishable key.
Payment Engine (server)
X-API-KEY: <your-secret-or-legacy-key>
Use a secret key (sk_test_… / sk_live_…) or an existing legacy (unprefixed) key for the target profile. These keys authenticate initiate, status, refunds, subscriptions, and POST /v1/sdk/checkout.
Never put a secret or legacy key in a browser, mobile app, or public repo.
If authentication fails, confirm you are using:
- The Payment Engine host that matches the profile (Sandbox vs Live)
- A key created for that profile
- A key that is still active (not rotated or revoked)
Publishable key (browser)
The JavaScript checkout SDK is activated with a publishable key (pk_test_… / pk_live_…). That key only identifies your merchant. It cannot charge, set an amount, or refund.
Amount still comes from a session your server creates with X-API-KEY. See JavaScript checkout SDK.
Dashboard
Merchant users sign in to the VenPays dashboard with their account credentials. Dashboard session APIs are for the product UI — they do not replace Payment Engine integration with X-API-KEY.
Native Apple Pay
After native initiation, your mobile app receives a short-lived session token for Apple Pay authorization. The app must never hold the merchant X-API-KEY.