Error Reference
API Error Codes
Error codes organized by service — Customer Service, Config Service, CMS, CBS Connector, Auth Service, OTP Manager, and Fee Posting.
Error codes are prefixed or scoped by the originating service. Use the tabs below to find error codes for each service.
| Error Code | Description |
|---|
invalid.input.request | Required field missing or invalid format |
entity.already.exists | Entity ID already registered |
entity.not.found | No customer found for given entity ID |
kit.not.found | Kit number not found in inventory |
invalid.kit.info | Kit expired, already assigned, or invalid |
card.not.found | No card found for given entity/kit |
card.already.active | Card activation attempted on active card |
card.already.blocked | Block attempted on already-blocked card |
card.already.closed | Operation attempted on closed card |
card.status.active | Operation not allowed for current card status |
pin.already.set | PIN already configured for this card |
invalid.pin | PIN validation failed |
pin.locked | PIN locked due to exceeded retry attempts |
invalid.otp | OTP validation failed |
otp.expired | OTP has expired |
invalid.source.account | Account not valid for this customer |
invalid.daily.limit.product | Requested limit exceeds product maximum |
product.level.disable | Feature not enabled at product level |
| Error Code | Description |
|---|
tenant.already.exists | Tenant already registered |
tenant.not.found | Tenant not found |
product.already.exists | Product name already taken for this tenant |
product.not.found | Product not found |
bin.already.exists | BIN range already configured |
bin.not.found | BIN range not found |
tier.already.exists | Tier name already exists |
tier.not.found | Tier not found |
scheme.already.exists | Scheme code already exists |
scheme.not.found | Scheme code not found |
plastic.already.exists | Plastic code already exists |
plastic.not.found | Plastic code not found |
invalid.product.config | Product configuration validation failed |
invalid.bin.range | BIN range overlaps with existing range |
| Error Code | Description |
|---|
cms.customer.not.found | Customer not found in CMS |
cms.card.not.found | Card not found in CMS |
cms.invalid.request | Invalid request to CMS |
cms.processing.error | CMS processing failure |
cms.timeout | CMS response timeout |
cms.embossing.error | Card embossing failure |
cms.inventory.exhausted | No available kits in inventory |
| Error Code | Description |
|---|
cbs.connection.failed | Unable to connect to CBS |
cbs.timeout | CBS response timeout |
cbs.invalid.account | Account not found in CBS |
cbs.insufficient.balance | Insufficient account balance |
cbs.account.frozen | Account is frozen in CBS |
cbs.debit.failed | Debit posting failed |
cbs.credit.failed | Credit posting failed |
cbs.invalid.response | Unexpected response from CBS |
| Error Code | Description |
|---|
auth.invalid.credentials | Invalid username or password |
auth.token.expired | JWT token has expired |
auth.token.invalid | JWT token is malformed or tampered |
auth.insufficient.permissions | User lacks required permission |
auth.tenant.mismatch | Tenant header does not match token tenant |
auth.rate.limit.exceeded | Too many authentication attempts |
auth.account.locked | User account locked due to failed attempts |
| Error Code | Description |
|---|
otp.generation.failed | OTP generation failure |
otp.expired | OTP has expired |
otp.invalid | OTP does not match |
otp.max.retries | Maximum validation attempts exceeded |
otp.cooldown | Too many requests — wait before retrying |
otp.delivery.failed | OTP delivery via SMS/email failed |
| Error Code | Description |
|---|
fee.posting.failed | Fee posting to CBS failed |
fee.already.posted | Fee already posted (duplicate) |
fee.config.not.found | Fee configuration missing for this product |
fee.invalid.amount | Fee amount validation failed |
fee.gst.calculation.error | GST calculation error |
fee.reversal.failed | Fee reversal failed |
fee.account.not.found | Fee GL account not configured |