ARNPROXY

Balance renewal; real debit

POST/account/api/v1/renewals/create
Confirm the operation deliberately

This operation may change a record, balance or service configuration. Read its scope and notes first. After an uncertain result, query the same operation rather than starting another.

Authorization

AuthorizationBearer YOUR_ARNPROXY_API_KEY
Required permissionrenewals
Acceptapplication/json
Content-Typeapplication/json
Idempotency-Key16–100 letters, digits, _ or -. Persist and reuse the same value for the same operation.

Parameters

NameTypeDescription
Idempotency-Key
headerRequired
string16–100 letters/digits/_/-. Keep the same value for the operation/status; do not reuse with a different body.
proxy_ids
bodyRequired
integer[]1–1000 unique owned proxy IDs; do not mix product types where a common scope/price is required. Some operations have tighter bounds.
time_id
bodyRequired
integerPeriod/GB-plan ID from the matching catalog/options, not a day/GB count.
promo_code
bodyOptional
stringOptional promo, up to 100 bytes. Keep it identical between quote and purchase/renewal.
Default: ""
currency
bodyRequired
stringTRY or USD from the same quote; must match the account currency.
expected_total_minor
bodyRequired
integertotal_minor from the same quote, as an integer; never decimal money or a string. 1–999999999999.
expected_days
bodyRequired
integerdays from the same price quote. 1–36500.
expected_selection_hash
bodyRequired
stringselection_hash from the same quote: 64 lowercase hexadecimal characters.
terms
bodyRequired
booleanMust be the JSON boolean true for explicit approval, not the string "true".

Request body

Replace YOUR_/FROM_ placeholders with values from the relevant catalog, quote or scope. Examples leave consent false; only approve a real operation intentionally.

request.json
{
    "proxy_ids": [
        "YOUR_PROXY_ID"
    ],
    "time_id": "FROM_RENEWAL_OPTIONS",
    "promo_code": "",
    "currency": "FROM_QUOTE",
    "expected_total_minor": "FROM_QUOTE_TOTAL_MINOR",
    "expected_days": "FROM_QUOTE_DAYS",
    "expected_selection_hash": "FROM_QUOTE_SELECTION_HASH",
    "terms": false
}

Request example

cURL
printf 'Authorization: Bearer %s\n' "$ARNPROXY_API_KEY" |
  curl --silent --show-error --header @- \
    --header 'Accept: application/json' \
    --connect-timeout 10 --max-time 30 \
    --header 'Idempotency-Key: YOUR_SAVED_OPERATION_KEY' \
    --request POST --header 'Content-Type: application/json' \
    --data-binary @request.json \
    'https://www.arnproxy.com/account/api/v1/renewals/create'

Examples are not executed on this page. Keep the API key in a server-side environment variable; do not put real keys in URLs or browser code. Prepare request.json for POST examples.

Responses

201Success response
application/json
{
    "ok": true,
    "data": {
        "state": "completed",
        "currency": "TRY",
        "total": "10.00",
        "total_minor": 1000,
        "renewal_batch_id": 100,
        "renewal_request_ids": [
            101
        ],
        "days": 7,
        "proxies": [
            {
                "id": 12345,
                "previous_last_service_date": "2030-02-01",
                "last_service_date": "2030-02-08",
                "total": "10.00"
            }
        ],
        "completed_at": "2030-01-01T12:00:00+00:00",
        "automatic_renewal": false,
        "source": "existing_website_renewal",
        "replayed": false
    },
    "meta": {
        "request_id": "000000000000000000000001",
        "phase": "public_v1",
        "source": "arnproxy_records"
    }
}
Response fields and types
NameTypeDescription
okbooleanSuccess envelope flag; on false inspect error.code.
dataobjectOperation-specific result; examples are illustrative and synthetic.
data.statestringRecord/operation state. accepted is not delivery; completed is not a connection test.
data.currencystringAccount transaction currency: TRY or USD.
data.totalstringMoney amount; preserve the returned string/integer representation for precision.
data.total_minorintegerInteger minor units: 1000 means 10.00 TRY/USD.
data.renewal_batch_idintegerOperation-specific renewal batch id value; preserve its demonstrated type and consult the behavior notes.
data.renewal_request_idsarrayOperation-specific renewal request ids value; preserve its demonstrated type and consult the behavior notes.
data.renewal_request_ids[]integerOperation-specific renewal request ids value; preserve its demonstrated type and consult the behavior notes.
data.daysintegerPlan duration in days, separate from a GB plan’s traffic amount.
data.proxiesarrayOperation-specific proxies value; preserve its demonstrated type and consult the behavior notes.
data.proxies[]objectOperation-specific proxies value; preserve its demonstrated type and consult the behavior notes.
data.proxies[].idintegerRelevant ARNPROXY record ID; use it instead of the upstream internal ID.
data.proxies[].previous_last_service_datestringLast service day: current, previous or projected by the quote. A projection does not renew.
data.proxies[].last_service_datestringLast service day: current, previous or projected by the quote. A projection does not renew.
data.proxies[].totalstringMoney amount; preserve the returned string/integer representation for precision.
data.completed_atstringTimestamp in the API’s returned representation; example dates are synthetic.
data.automatic_renewalbooleanOperation-specific automatic renewal value; preserve its demonstrated type and consult the behavior notes.
data.sourcestringData source; local records and a live provider lookup are different evidence.
data.replayedbooleanSaved result for the same operation was returned, not proof of a new debit/action.
metaobjectRequest correlation and data-source metadata.
meta.request_idstringThis HTTP request’s correlation ID, not an operation key or order ID.
meta.phasestringOperation-specific phase value; preserve its demonstrated type and consult the behavior notes.
meta.sourcestringData source; local records and a live provider lookup are different evidence.

Error response

HTTP 401 · INVALID_API_KEY
{
  "ok": false,
  "error": { "code": "INVALID_API_KEY" },
  "meta": { "request_id": "000000000000000000000001" }
}

Authentication and validation may reject a request before execution. Consult the error reference and retain request_id when contacting support. Never send keys or passwords. Errors & limits →

Behavior & important notes

  • Renewal uses existing website pricing and balance processing. Copy amount, days and selection hash from the same renewal_quote. It does not enable automatic renewal.
  • A timeout/5xx is not proof that a write failed. Use the original Idempotency-Key with its status resource. Do not retry under a new key; GET does not resend the change.
  • Proxies in one renewal request must share the same product type. Quantity discounts are calculated separately using each country’s selected quantity, not the combined country total.
Follow the same operationSaved renewal result →

Search the current language. Close with Esc