The Vendaze API was designed with security in mind. This guide describes the recommended practices for integrators who want to maintain a secure and reliable integration.Documentation Index
Fetch the complete documentation index at: https://developers.vendaze.com/llms.txt
Use this file to discover all available pages before exploring further.
Protect the client_secret
Theclient_secret is sent by email once at the time of app registration. Treat it like a password:
- Store it in a secrets manager (AWS Secrets Manager, HashiCorp Vault, Cloudflare Secrets). Never store it in environment variables exposed in logs.
- Never include it in code repositories, even private ones
- Never expose it in a frontend, mobile app, or any client running on the user’s device
- Rotate it immediately if you suspect it has been compromised. Contact support.
Store tokens securely
Access tokens and refresh tokens grant access to your user’s workspace data:- Store refresh tokens encrypted in a database, never in cookies or localStorage
- Use
httpOnlyandSecureflags for session cookies that reference tokens - Implement refresh token expiration and rotation. The Vendaze API invalidates the previous refresh token on each renewal.
- Revoke tokens immediately when the user disconnects the integration via
POST /oauth/revoke
Use HTTPS on all redirects
Theredirect_uri registered for your app must always use https://. The only exception is localhost during development. In production, any redirect without HTTPS is rejected with an invalid_redirect_uri error.
Validate the state parameter
Thestate parameter in the OAuth flow protects against CSRF attacks. Correct usage:
PKCE is required
The Vendaze API requires PKCE withcode_challenge_method=S256 on all authorization flows. PKCE protects against authorization code interception. Plain PKCE (code_challenge_method=plain) is not accepted.
Request only the scopes you need
Register and request only the scopes your integration actually needs. Unnecessary scopes expand the attack surface and reduce user trust when authorizing.| If you need to… | Request… |
|---|---|
| Read contacts only | people:read |
| Create and update deals | deals:write |
| Full CRM sync | people:read people:write companies:read companies:write deals:read deals:write |
Rotate the client_secret regularly
Contact support to requestclient_secret rotation. After rotation:
- The new
client_secretis sent by email - Existing tokens remain valid until they expire naturally
- New code exchanges and refresh token renewals require the new
client_secret
Monitor API usage
Use theX-RateLimit-Remaining and X-Request-ID headers to monitor usage patterns. Unexpected spikes may indicate that tokens have been compromised. In that case, revoke all tokens via POST /oauth/revoke and notify your users.
Incident response
If you suspect yourclient_secret or tokens have been compromised:
- Revoke all active tokens via
POST /oauth/revoke - Contact support at
security@vendaze.com - Notify affected users
- Generate a new
client_secret - Request new authorization from users