Error Handling โ
Use this page to understand:
- How API errors are structured
- How to use
code,message, anddoc_url
Error Response Body โ
| Field | Type | Description |
|---|---|---|
errors | array | List of one or more error objects. |
errors[].code | string | Stable machine-readable code for client handling. |
errors[].message | string | Human-readable detail of what failed. |
errors[].doc_url | string | Absolute URL to the matching error-code page (domain depends on deployed docs environment). |
Recommendation
Use code TODO ...
Error Code Directory โ
| Error code | HTTP status | Description |
|---|---|---|
parameter_invalid | 400 | One or more request parameters do not satisfy the expected schema. |
duplicate_fund_in_target_allocation | 400 | The same ISIN appears more than once in a target allocation. |
duplicate_fund_in_switch | 400 | The same ISIN appears more than once in a switch. |
invalid_target_allocation | 400 | One target-allocation percentage fails validation. |
percentage_buy_legs_sum_is_not_10000_basis_points | 400 | The buy legs do not sum to 10000 basis points. |
percentage_target_allocation_is_not_10000_basis_points | 400 | The target allocation does not sum to 10000 basis points. |
self_investment_switch_compartment_is_not_self_invested | 400 | The compartment is not self-invested. |
self_investment_switch_position_is_unknown | 400 | A sell leg references an unknown current position. |
self_investment_switch_share_valuation_is_unknown | 400 | A switch leg references a fund without a known share valuation. |
attempt_to_sell_full_position_in_amount | 400 | A full-position sell leg was expressed as an amount. |
attempt_to_buy_in_amount_when_selling_full_position | 400 | A buy leg was expressed as an amount while selling a full position. |
legs_are_not_balanced | 400 | The sell and buy legs do not balance. |
insufficient_funds_in_percentage | 400 | The percentage sell exceeds the available position. |
unauthorized | 401 | Authentication is missing, invalid, or rejected. |
forbidden | 403 | The authenticated caller lacks permission for the operation. |
resource_not_found | 404 | The requested resource does not exist. |
compartment_not_found | 404 | The requested compartment does not exist. |
discretionary_manager_not_found | 404 | The requested discretionary manager does not exist. |
fund_not_found | 404 | The requested fund or ISIN does not exist. |
mandate_not_found | 404 | The requested mandate does not exist. |
conflict | 409 | The request could not be completed because of a state conflict. |
discretionary_manager_already_exists | 409 | A discretionary manager with the same ID already exists. |
mandate_already_exists | 409 | A mandate with the same ID already exists. |
self_investment_target_allocation_compartment_is_not_self_invested | 409 | The compartment is not self-invested. |
delegate_compartment_to_mandate_compartment_is_not_self_invested | 409 | The compartment is not self-invested. |
switch_already_exists | 409 | A switch with the same ID already exists. |
target_allocation_already_exists | 409 | A target allocation with the same ID already exists. |
remaining_position_might_be_lower_than_1_share_value | 422 | The remaining position would fall below the minimum share value. |
position_after_buying_would_be_lower_than_1_share_value | 422 | The resulting position would fall below the minimum share value. |
insufficient_funds | 422 | The sell amount is larger than the current position. |
position_might_be_insufficient_due_to_market_drop_down | 422 | The switch sells too much of the position to stay safe against market movement. |
delegate_compartment_to_mandate_mandate_has_no_target_allocation | 422 | The mandate has no target allocation yet. |
database_query_timeout | 500 | A database query timed out while handling the request. |
internal_server_error | 500 | An unexpected server-side error occurred. |
unexpected_error | 500 | An unexpected server-side error occurred. |
HTTP Status Code Reference โ
| HTTP status | Meaning in current API behavior |
|---|---|
200 OK | Successful cancellation response |
201 Created | Resource created successfully |
400 Bad Request | Request validation or client input error |
401 Unauthorized | Missing or invalid authentication |
403 Forbidden | Authenticated caller lacks required permission or claim |
404 Not Found | Referenced entity or request does not exist |
409 Conflict | Operation rejected due to state conflict |
422 Unprocessable Content | Request is valid JSON but violates business rules |
500 Internal Server Error | Unexpected server error |