Base URLs
Quidkey provides separate environments for development and production:| Environment | Base URL | Purpose |
|---|---|---|
| Development | https://core-dev.quidkey.com | Testing and integration development |
| Production | https://core.quidkey.com | Live payments |
Authentication
All API endpoints require authentication using OAuth 2.0 Client Credentials flow.1
Obtain credentials
Sign up at merchants.quidkey.com to get your
client_id and client_secret2
Exchange for access token
Call
POST /api/v1/oauth2/token with your credentials to receive an access_token3
Use in requests
Include the token in all API requests:
Authorization: Bearer <access_token>- Validity: 15 minutes (900 seconds)
- Refresh: Use
POST /api/v1/oauth2/refreshwith yourrefresh_token - Best practice: Cache tokens and refresh before expiry
Try Authentication
Test the authentication flow in the interactive playground
API Endpoints
The Quidkey API is organized into logical groups:Authentication
Obtain and refresh access tokens
Embedded Payment Flow
Create, update, and initiate payments
Webhooks
Configure webhook endpoints and secrets
Common Response Format
All Quidkey API responses follow a consistent structure:Success Response
Error Response
HTTP Status Codes
| Status Code | Description | Common Scenarios |
|---|---|---|
200 | Success | Request processed successfully |
201 | Created | Resource created successfully |
400 | Bad Request | Validation error or malformed request |
401 | Unauthorized | Missing or invalid authentication |
403 | Forbidden | Valid auth but insufficient permissions |
404 | Not Found | Resource doesn’t exist |
500 | Internal Server Error | Server-side issue (rare) |
Error Codes
Common error codes you may encounter:| Code | Description | Resolution |
|---|---|---|
INVALID_INPUT | Request validation failed | Check the errors array for field-specific issues |
UNAUTHORIZED | Invalid or expired token | Refresh your access token |
MERCHANT_NOT_FOUND | Invalid merchant ID | Verify your credentials |
PAYMENT_REQUEST_NOT_FOUND | Invalid payment token | Check token hasn’t expired (15 min TTL) |
PAYMENT_ALREADY_INITIATED | Payment already in progress | Cannot update amount after customer selects bank |
Rate Limits
Quidkey currently does not enforce strict rate limits. However, we recommend implementing exponential backoff for retry logic and avoiding unnecessary API calls.
API Versioning
The current API version is v1, indicated in all endpoint paths:/api/v1/...
- Breaking changes: Will be released as new versions (v2, v3, etc.)
- Non-breaking changes: Added to existing version without path changes
- Deprecation: Minimum 6 months notice before removing endpoints
Getting Started
Quickstart Guide
Get your first payment working in 10 minutes
Integration Guide
Complete production-ready integration
Need Help?
Contact Support
Email [email protected] - we typically respond within one business day