ARNPROXY

Submit replacement for admin review

POST/account/api/v1/replacements/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 permissionreplacements
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–100 unique owned active proxy IDs.
reason_code
bodyRequired
stringnot_working, blocked, incorrect_country, different_subnet, low_speed or other.
description
bodyRequired
string3–1000 UTF-8 characters after trimming; no control characters, < or >.
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. Zero is accepted; maximum 99999999999.
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"
    ],
    "reason_code": "other",
    "description": "Describe the issue",
    "currency": "FROM_QUOTE",
    "expected_total_minor": "FROM_QUOTE_TOTAL_MINOR",
    "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/replacements/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": "accepted",
        "review_state_at_acceptance": "pending",
        "currency": "TRY",
        "total": "0.00",
        "total_minor": 0,
        "requests": [
            {
                "id": 50001,
                "proxy_id": 12345,
                "fee": "0.00"
            }
        ],
        "requested_at": "2030-01-01 15:00:00",
        "timezone": "Europe/Istanbul",
        "immediate_replacement": false,
        "source": "arnproxy_replacement_requests",
        "receipt_notification_sent": false,
        "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.review_state_at_acceptancestringOperation-specific review state at acceptance value; preserve its demonstrated type and consult the behavior notes.
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.requestsarrayOperation-specific requests value; preserve its demonstrated type and consult the behavior notes.
data.requests[]objectOperation-specific requests value; preserve its demonstrated type and consult the behavior notes.
data.requests[].idintegerRelevant ARNPROXY record ID; use it instead of the upstream internal ID.
data.requests[].proxy_idintegerRelevant ARNPROXY record ID; use it instead of the upstream internal ID.
data.requests[].feestringMoney amount; preserve the returned string/integer representation for precision.
data.requested_atstringOperation-specific requested at value; preserve its demonstrated type and consult the behavior notes.
data.timezonestringTimezone for related date fields; null means no verified timezone.
data.immediate_replacementbooleanOperation-specific immediate replacement value; preserve its demonstrated type and consult the behavior notes.
data.sourcestringData source; local records and a live provider lookup are different evidence.
data.receipt_notification_sentbooleanOperation-specific receipt notification sent value; preserve its demonstrated type and consult the behavior notes.
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

  • This submits a request for administrator review, not a guaranteed immediate upstream IP swap. Check replacement_quote for any request fee.
  • 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.
Follow the same operationSaved replacement submission →

Search the current language. Close with Esc