ARNPROXY

Residential mit Guthaben kaufen

POST/account/api/v1/residential/orders/create
Vorgang bewusst bestätigen

Dieser Vorgang kann Datensätze, Guthaben oder Diensteinstellungen ändern. Lesen Sie zuerst Umfang und Hinweise. Bei unklarem Ergebnis denselben Vorgang abfragen statt einen neuen zu starten.

Autorisierung

AuthorizationBearer YOUR_ARNPROXY_API_KEY
Erforderliche Berechtigungpurchases
Acceptapplication/json
Content-Typeapplication/json
Idempotency-Key16–100 Buchstaben, Ziffern, _ oder -. Für denselben Vorgang speichern und wiederverwenden.

Parameter

NameTypBeschreibung
Idempotency-Key
headerErforderlich
string16–100 Buchstaben/Ziffern/_/-. Für Vorgang und Status denselben Wert behalten; nicht mit anderem Inhalt wiederverwenden.
mode
bodyErforderlich
stringnew erstellt ein Paket; topup fügt einem eigenen Paket GB hinzu.
time_id
bodyErforderlich
integerLaufzeit-/GB-Plan-ID aus passendem Katalog/options, keine Tages- oder GB-Anzahl.
location_id
bodyBedingt
integerNur für mode=new erforderlich; bei topup verboten.
package_id
bodyBedingt
integerNur für mode=topup erforderlich; bei new verboten.
promo_code
bodyOptional
stringOptionaler Aktionscode, höchstens 100 Bytes. Zwischen Preisabfrage und Kauf/Verlängerung unverändert lassen.
Standardwert: ""
currency
bodyErforderlich
stringTRY oder USD aus demselben Angebot; muss zur Kontowährung passen.
expected_total_minor
bodyErforderlich
integertotal_minor desselben Angebots als Ganzzahl, kein Dezimalbetrag/Text; mindestens 1.
expected_selection_hash
bodyErforderlich
stringselection_hash desselben Angebots: 64 kleine Hexadezimalzeichen.
terms
bodyErforderlich
booleanZur ausdrücklichen Zustimmung muss der JSON-Wahrheitswert true gesendet werden, nicht die Zeichenfolge "true".

Anfrageinhalt

Ersetzen Sie YOUR_/FROM_ durch Werte aus Katalog, Angebot oder Umfang. Beispiele lassen die Zustimmung auf false; bestätigen Sie echte Vorgänge nur bewusst.

request.json
{
    "mode": "topup",
    "package_id": "YOUR_PACKAGE_ID",
    "time_id": "FROM_RESIDENTIAL_CATALOG",
    "promo_code": "",
    "currency": "FROM_QUOTE",
    "expected_total_minor": "FROM_QUOTE_TOTAL_MINOR",
    "expected_selection_hash": "FROM_QUOTE_SELECTION_HASH",
    "terms": false
}

Weitere Anwendungsbeispiele

IDs und Preise sind beispielhaft; verwenden Sie echte Werte aus dem Katalog und demselben Angebot. JSON-IDs und expected_total_minor müssen Zahlen sein. Beispiele verwenden bewusst terms=false. Senden Sie terms=true nur nach ausdrücklicher Zustimmung zur kostenpflichtigen Aktion.

Residential: neues Paket oder GB-Aufladung · mode=new

Bei Residential-Bestellungen wählen Kunden keinen Verwendungszweck. Für ein neues Paket weist der Server automatisch denselben festen Zweck wie beim Website-Kauf zu; senden Sie weder purpose_id noch subpurpose_id oder other_purpose. Eine Traffic-Aufladung behält den bisherigen Zweck bei.

application/json
{
    "mode": "new",
    "location_id": 20,
    "time_id": 201,
    "promo_code": "",
    "currency": "TRY",
    "expected_total_minor": 1000,
    "expected_selection_hash": "0000000000000000000000000000000000000000000000000000000000000000",
    "terms": false
}

Residential: neues Paket oder GB-Aufladung · mode=topup

Bei Residential-Bestellungen wählen Kunden keinen Verwendungszweck. Für ein neues Paket weist der Server automatisch denselben festen Zweck wie beim Website-Kauf zu; senden Sie weder purpose_id noch subpurpose_id oder other_purpose. Eine Traffic-Aufladung behält den bisherigen Zweck bei.

application/json
{
    "mode": "topup",
    "package_id": 10001,
    "time_id": 201,
    "promo_code": "",
    "currency": "TRY",
    "expected_total_minor": 1000,
    "expected_selection_hash": "0000000000000000000000000000000000000000000000000000000000000000",
    "terms": false
}

Anfragebeispiel

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/residential/orders/create'

Beispiele werden hier nicht ausgeführt. Speichern Sie den API-Schlüssel in einer serverseitigen Umgebungsvariablen, nie in URLs oder Browsercode. Bereiten Sie request.json für POST vor.

Antworten

201Erfolgsantwort
application/json
{
    "ok": true,
    "data": {
        "state": "accepted",
        "mode": "topup",
        "delivery_state_at_acceptance": "queued",
        "currency": "TRY",
        "total": "15.00",
        "total_minor": 1500,
        "gb": 1,
        "days": 30,
        "target_package_id": 20001,
        "order": {
            "id": 20002,
            "number": "1000020002",
            "location_id": 20,
            "time_id": 201,
            "last_service_date": "2030-02-01"
        },
        "accepted_at": "2030-01-01T12:00:00+00:00",
        "automatic_renewal": false,
        "source": "existing_website_residential_delivery",
        "replayed": false
    },
    "meta": {
        "request_id": "000000000000000000000001",
        "phase": "public_v1",
        "source": "arnproxy_records"
    }
}
Antwortfelder und Typen
NameTypBeschreibung
okbooleanErfolgskennzeichen; bei false error.code prüfen.
dataobjectVorgangsspezifisches Ergebnis; Beispiele sind synthetisch und dienen der Veranschaulichung.
data.statestringDatensatz-/Vorgangsstatus. accepted bedeutet nicht geliefert, completed keinen Verbindungstest.
data.modestringVorgangsspezifischer Wert für mode. Rückgabetyp beibehalten und Verhaltenshinweise beachten.
data.delivery_state_at_acceptancestringVorgangsspezifischer Wert für delivery state at acceptance. Rückgabetyp beibehalten und Verhaltenshinweise beachten.
data.currencystringKontowährung der Transaktion: TRY oder USD.
data.totalstringGeldbetrag; Text-/Ganzzahldarstellung für Genauigkeit beibehalten.
data.total_minorintegerGanzzahl in kleinster Währungseinheit: 1000 bedeutet 10.00 TRY/USD.
data.gbintegerTrafficmenge; Listen-/Einstellungsvorgänge kaufen keinen Traffic.
data.daysintegerLaufzeit in Tagen, getrennt vom Trafficvolumen des GB-Plans.
data.target_package_idintegerVorgangsspezifischer Wert für target package id. Rückgabetyp beibehalten und Verhaltenshinweise beachten.
data.orderobjectVorgangsspezifischer Wert für order. Rückgabetyp beibehalten und Verhaltenshinweise beachten.
data.order.idintegerZugehörige ARNPROXY-Datensatz-ID statt interner Anbieter-ID verwenden.
data.order.numberstringAngezeigte Bestellnummer, nicht mit Feldern für id austauschbar.
data.order.location_idintegerLokale Katalog-ID für Standort oder Produkttyp.
data.order.time_idintegerLokale Laufzeit-/GB-Plan-ID, keine Anzahl von Tagen oder GB.
data.order.last_service_datestringLetzter Diensttag: aktuell, vorherig oder prognostiziert. Eine Prognose führt keine Verlängerung aus.
data.accepted_atstringZeitstempel im vom API gelieferten Format; Beispieldaten sind synthetisch.
data.automatic_renewalbooleanVorgangsspezifischer Wert für automatic renewal. Rückgabetyp beibehalten und Verhaltenshinweise beachten.
data.sourcestringDatenquelle; lokale Datensätze und Live-Anbieterabfragen sind unterschiedliche Nachweise.
data.replayedbooleanGespeichertes Ergebnis desselben Vorgangs, kein Beweis für neue Abbuchung/Aktion.
metaobjectMetadaten zu Anfragezuordnung und Datenquelle.
meta.request_idstringKennung dieser HTTP-Anfrage, kein Vorgangsschlüssel oder Bestell-ID.
meta.phasestringVorgangsspezifischer Wert für phase. Rückgabetyp beibehalten und Verhaltenshinweise beachten.
meta.sourcestringDatenquelle; lokale Datensätze und Live-Anbieterabfragen sind unterschiedliche Nachweise.

Fehlerantwort

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

Authentifizierung und Validierung können eine Anfrage vor der Ausführung ablehnen. Beachten Sie die Fehlerreferenz und bewahren Sie request_id für den Support auf. Senden Sie niemals Schlüssel oder Passwörter. Fehler & Limits →

Verhalten & wichtige Hinweise

  • Paket-/Listen-IDs sind ARNPROXY-Datensatz-IDs, keine Anbieterkennungen. Veralteter Snapshot gewährt keinen Zugriff; gegebenenfalls residential_package_refresh nutzen.
  • mode=new erstellt ein Paket, mode=topup fügt GB hinzu. Zuerst residential_catalog/quote abfragen. Guthabenannahme und Hintergrundlieferung sind getrennt; denselben Vorgangsschlüssel verfolgen.
  • Timeout/5xx beweist keinen Schreibfehler. Ursprünglichen Idempotency-Key für den Status verwenden. Nicht mit neuem Schlüssel wiederholen; GET sendet die Änderung nicht erneut.
  • Bei Residential-Bestellungen wählen Kunden keinen Verwendungszweck. Für ein neues Paket weist der Server automatisch denselben festen Zweck wie beim Website-Kauf zu; senden Sie weder purpose_id noch subpurpose_id oder other_purpose. Eine Traffic-Aufladung behält den bisherigen Zweck bei.
  • Für die Kompatibilität können gültige ältere Felder subpurpose_id/other_purpose bei mode=new akzeptiert werden, ändern aber nicht den automatisch zugewiesenen Zweck neuer Bestellungen. Neue Integrationen lassen sie weg. Bei mode=topup sind sie nicht unterstützt. Bereits angenommene Anfragen mit gleichem Idempotency-Key und gleicher Anfrage verfolgen; nicht mit neuem Schlüssel erneut kaufen.
  • Ist die automatische Zweckkonfiguration nicht verfügbar, erscheint RESIDENTIAL_DEFAULT_PURPOSE_UNAVAILABLE (HTTP 503), ohne Bestellung oder Guthabenabbuchung. Ein Administrator muss die Konfiguration prüfen.
Denselben Vorgang verfolgenResidential-Lieferstatus →

Suche in der aktuellen Sprache. Schließen mit Esc