Overview
Otonum uses standard HTTP status codes and a consistent error response body. Always check the status code and parse the error payload to handle failures correctly.
Error Response Format
{
"error" : "ERROR_CODE" ,
"errorMessage" : {
"fr" : "French description." ,
"en" : "English description."
}
}
HTTP Status Codes
Status Meaning When it occurs Action 200OK Request succeeded Process the response 400Bad Request Malformed JSON or missing required field Fix the request payload 401Unauthorized Missing or invalid API key Verify x-api-secret header 403Forbidden Key is valid but has insufficient permissions or sandbox limits Verify environment and operation 404Not Found Member, voucher, or resource was not found Verify identifier 409Conflict Duplicate reference Do not resubmit. Activity is already registered 422Unprocessable Entity Semantic validation failed for request body Read error details for the specific field 429Too Many Requests Rate limit exceeded (10 req/s per API key) Retry with exponential backoff 500Internal Server Error Unexpected server error Retry once; contact support if persistent
Error Codes
Authentication
Code Description UNAUTHORIZEDMissing or invalid API key FORBIDDENAPI key does not have access to this resource
Member
Code Description CUSTOMER_NOT_FOUNDNo member found with provided personal code or email CUSTOMER_ALREADY_EXISTSA member with this email or phone is already enrolled CONSENT_REQUIREDEnrollment request is missing consent information INVALID_POLICY_VERSIONProvided consent policy version does not match the current required version
Transactions and Activities
Code Description DUPLICATE_REFERENCEAn activity with this reference already exists VOUCHER_NOT_FOUNDredemptionCode does not match an active voucherVOUCHER_ALREADY_CONSUMEDReferenced voucher was already used VOUCHER_EXPIREDReferenced voucher has expired VOUCHER_NOT_RESERVEDAttempt to redeem voucher without prior reservation
Vouchers
Code Description INSUFFICIENT_BALANCEMember balance is below minimum redemption threshold VOUCHER_CREATION_DISABLEDVoucher creation is not available in this environment (sandbox)
Rate Limiting
Code Description RATE_LIMIT_EXCEEDEDLimit of 10 requests/second per API key is reached
Key Points
A 409 Conflict on purchase does not mean purchase failed. It means purchase was already processed successfully. Do not resubmit.
In sandbox environment, voucher operations can return 403 by design. See Authentication for sandbox details.
See Also
Last modified on July 3, 2026