3. Technical Integration Issues
Rate limiting, request signatures, error handling, testing environments, and support channels.
How do I handle a 429 Too Many Requests error?
You've exceeded the rate limit. In the short term, wait until the time in the X-RATELIMIT-RESET header, then retry. Longer term: reduce your call frequency, cache data that doesn't change often, and use WebSocket instead of polling for real-time data.
How is the request signature calculated for trading APIs?
Mutating commands (place/amend/cancel orders) require an X-Signature header — an RSA+SHA256 signature computed over the request body using the API Key's SecretKey, per UBCKNN's regulation on trading data integrity. See the Authentication documentation for the exact parameters and a signing example.
What does an error response look like, and how should I handle it consistently?
REST error responses look like { "code": ..., "msg": ... }; WebSocket API error responses look like { "id", "status", "error": { "code", "message" } }. We recommend standardizing how your application maps code to a concrete action — see the full error table in the Error Code Reference appendix.
How can I test my integration without affecting real accounts or data?
Use the UAT environment — connection details are provided after registering on the Developer Portal, with an API Key set that's completely separate from Production.
I have an issue I can't resolve myself — who do I contact?
- Email: [email protected]
- Hotline: 1900 54 54 71
When reporting an issue, please include: the endpoint/method called, the request body (with sensitive data redacted), the response body (including code/msg), the time it occurred, and a brief description of the problem — this helps our support team resolve it faster.