Base URL
All partner endpoints are under
/api/v1/partner or /api/v1/user.
Authentication
There are two different credentials in this API, and each endpoint uses exactly one — never both. Before a user logs in — user registration, profile, and KYC — you authenticate with your partner credentials, and passuserId in the request body (POST/PATCH) or as a query parameter (GET):
X-Api-Key is not sent on these calls — the token already identifies both the user and your partner account.
Endpoints
User management — API key only
Login — API key in, access token out
User profile — API key, before login
Once the user has logged in, they can also read and update their own profile with their access token via
GET/POST/PATCH /api/v1/auth/profile — the same underlying data, authenticated with Authorization: Bearer instead of your API key.KYC — API key, before login
POST /api/v1/partner/auth/token was removed — it exchanged a bare userId for a JWT with no proof the request came from the user. Login is now a two-step, email-verified exchange: Send login code and Verify login code. See Exchange token for the full history.Onboarding flow
User status lifecycle
Data isolation
Your API key scopes all queries — you can only see and manage users you created. A404 on any user endpoint means either the user doesn’t exist or belongs to a different partner.
Credential rotation
If yourX-Api-Secret is compromised:
- Go to Qash Dashboard → Settings → API Keys
- Revoke the current key
- Generate a new key pair
- Update your backend with the new credentials