PRODUCT_OOS)| HTTP status | Business error code | Description |
|---|---|---|
| 400 | PRODUCT_OOS | Insufficient inventory. The renewal cannot be completed. Retry later. |
code for PRODUCT_OOS. The PRODUCT_OOS response example is illustrative; the msg text may vary. This error response is separate from data.success in a successful HTTP response.data.success (boolean), not a numeric data.status.data.success = true: at least one renewal item succeeded; this includes partial renewal success.data.success = false: none of the attempted renewal items succeeded. Check data.msg and the failure details. Validation and authorization failures can instead return an error response.data.successList: successfully renewed items and their updated expiration times.data.errorList: failed sub-order IDs, when available.data.errProxies: failed proxy details, when available. Some failures have no proxy payload, so an empty errProxies array alone does not prove complete renewal success.data.success, data.msg, data.successList, and data.errorList together. A successful HTTP response or top-level err = false does not by itself mean that renewal succeeded.0 = Idle (not activated), 1 = Activated, 2 = Expired, 3 = Deleted (soft-deleted). Orders in status 2 or 3 cannot be renewed and must be repurchased. Query the order after renewal to retrieve its current status and expiration details.curl --location --request POST '/api/v1/service/purchase/ip//renew' \
--header 'Authorization: Bearer <token>'{
"data": {
"success": true,
"msg": "ISP order renewal completed.",
"errProxies": [],
"successList": [
{
"orderId": "11111111-1111-4111-8111-111111111111",
"subOrderId": "11111111-1111-4111-8111-111111111111",
"expiry": "2026-11-14T02:00:00.000Z",
"expireAt": "2026-11-14T02:00:00.000Z",
"proxies": [
{
"subOrderId": "11111111-1111-4111-8111-111111111111",
"productId": "product_example_us_001",
"proxy": "192.0.2.10:8000:exampleuser:ExamplePass001",
"expireAt": "2026-11-14T02:00:00.000Z"
},
{
"subOrderId": "11111111-1111-4111-8111-111111111111",
"productId": "product_example_us_001",
"proxy": "192.0.2.11:8000:exampleuser:ExamplePass001",
"expireAt": "2026-11-14T02:00:00.000Z"
}
]
}
],
"errorList": [],
"paymentDetails": {
"totalPrice": 6,
"discount": 1
}
},
"err": false,
"msg": "SUCCESS",
"code": 200
}