ARNPROXY

शेष राशि से खरीद

POST/account/api/v1/orders/create
कार्रवाई की स्पष्ट पुष्टि करें

यह कार्रवाई रिकॉर्ड, शेष राशि या सेवा सेटिंग बदल सकती है। पहले दायरा और नोट पढ़ें। परिणाम अनिश्चित हो तो नई कार्रवाई के बजाय उसी की स्थिति पूछें।

प्राधिकरण

AuthorizationBearer YOUR_ARNPROXY_API_KEY
आवश्यक अनुमतिpurchases
Acceptapplication/json
Content-Typeapplication/json
Idempotency-Key16–100 अक्षर, अंक, _ या -। एक ही कार्रवाई के लिए मान सहेजकर दोबारा उपयोग करें।

पैरामीटर

नामप्रकारविवरण
Idempotency-Key
headerआवश्यक
string16–100 अक्षर/अंक/_/-। कार्रवाई और स्थिति में समान मान रखें; अलग बॉडी में पुनः उपयोग न करें।
product_id
bodyआवश्यक
integerproducts से उत्पाद ID; 1–2147483647।
lines
bodyआवश्यक
object[]एक उत्पाद के 1–20 अलग स्थान। location_id दोहराएँ नहीं; कुल अधिकतम 100000 प्रॉक्सी।
lines[].location_id
bodyआवश्यक
integerचुने उत्पाद कैटलॉग की स्थान ID।
lines[].time_id
bodyआवश्यक
integerउस स्थान पर उपलब्ध अवधि ID।
lines[].quantity
bodyआवश्यक
integer1–100000; product.minimum_quantity भी लागू।
lines[].purpose_id
bodyआवश्यक
integerवर्तमान उपयोग-उद्देश्य प्रवाह के लिए 201 भेजें।
lines[].subpurpose_id
bodyआवश्यक
integer201 का सक्रिय उप-उद्देश्य; अन्य के लिए -1।
lines[].other_purpose
bodyसशर्त
stringsubpurpose_id=-1 पर आवश्यक: 1–30 UTF-8 अक्षर; अन्यथा अनदेखा।
currency
bodyआवश्यक
stringउसी कोट का TRY या USD; खाते की मुद्रा से मेल खाना चाहिए।
expected_total_minor
bodyआवश्यक
integerउसी कोट का total_minor पूर्णांक में, दशमलव राशि या पाठ नहीं। 1–999999999999।
terms
bodyआवश्यक
booleanस्पष्ट स्वीकृति के लिए JSON बूलियन true चाहिए, "true" स्ट्रिंग नहीं।
promo_code
bodyवैकल्पिक
stringवैकल्पिक प्रमोशन, अधिकतम 100 बाइट। कोट और खरीद/नवीनीकरण में समान रखें।
डिफ़ॉल्ट: ""
auth
bodyवैकल्पिक
objectडिलीवरी प्रमाणीकरण; डिफ़ॉल्ट {"mode":"username_password"}। मुख्य क्रेडेंशियल प्रबंधन की अनुमति नहीं देता।
auth.mode
bodyसशर्त
stringauth भेजने पर आवश्यक: username_password या ip। यहाँ उपयोगकर्ता/पासवर्ड न दें।
auth.ip
bodyसशर्त
stringIPv4 केवल auth.mode=ip पर आवश्यक; username_password में न दें।

अनुरोध का मुख्य भाग

YOUR_/FROM_ को संबंधित कैटलॉग, कोट या दायरे के मान से बदलें। उदाहरणों में सहमति false है; वास्तविक कार्रवाई केवल जानबूझकर मंज़ूर करें।

request.json
{
    "product_id": "FROM_PRODUCTS",
    "lines": [
        {
            "location_id": "FROM_CATALOG",
            "time_id": "FROM_CATALOG",
            "quantity": 1,
            "purpose_id": 201,
            "subpurpose_id": "FROM_CATALOG_CHILDREN"
        }
    ],
    "currency": "FROM_QUOTE",
    "expected_total_minor": "FROM_QUOTE_TOTAL_MINOR",
    "promo_code": "",
    "terms": false
}

अतिरिक्त उपयोग उदाहरण

ID और कीमतें उदाहरण मात्र हैं; कैटलॉग और उसी कोट के वास्तविक मान उपयोग करें। JSON ID और expected_total_minor संख्याएँ हों। सुरक्षा के लिए उदाहरणों में terms=false है; वास्तविक भुगतान वाले कार्य के लिए ग्राहक की स्पष्ट सहमति के बाद ही terms=true भेजें।

एक उत्पाद प्रकार, दो देश

एक product_id में अधिकतम 20 अलग location_id हो सकते हैं। हर देश की अलग ऑर्डर प्रविष्टि बनती है; जुड़ा हुआ चेकआउट एक इनवॉइस में संसाधित होता है। मात्रा छूट हर देश की अपनी मात्रा पर लगती है।

application/json
{
    "product_id": 5,
    "lines": [
        {
            "location_id": 10,
            "time_id": 101,
            "quantity": 1,
            "purpose_id": 201,
            "subpurpose_id": 202
        },
        {
            "location_id": 11,
            "time_id": 102,
            "quantity": 1,
            "purpose_id": 201,
            "subpurpose_id": 202
        }
    ],
    "currency": "TRY",
    "expected_total_minor": 2000,
    "promo_code": "",
    "terms": false
}

“अन्य” उपयोग उद्देश्य

अन्य चुनने पर subpurpose_id=-1 और 1–30 अक्षरों का other_purpose भेजें। दूसरे विकल्पों में other_purpose आवश्यक नहीं है। purpose_id फिर भी 201 रहता है।

application/json
{
    "product_id": 5,
    "lines": [
        {
            "location_id": 10,
            "time_id": 101,
            "quantity": 1,
            "purpose_id": 201,
            "subpurpose_id": -1,
            "other_purpose": "Custom purpose"
        }
    ],
    "currency": "TRY",
    "expected_total_minor": 1000,
    "promo_code": "",
    "terms": false
}

अनुरोध उदाहरण

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

इस पेज पर उदाहरण नहीं चलते। API कुंजी सर्वर की पर्यावरण चर में रखें, URL या ब्राउज़र कोड में नहीं। POST के लिए request.json तैयार करें।

उत्तर

201सफल उत्तर
application/json
{
    "ok": true,
    "data": {
        "state": "accepted",
        "delivery_state_at_acceptance": "queued",
        "currency": "TRY",
        "total": "10.00",
        "total_minor": 1000,
        "checkout_group_id": null,
        "orders": [
            {
                "id": 10001,
                "number": "1000010001",
                "location_id": 10,
                "time_id": 101,
                "quantity": 1,
                "total": "10.00"
            }
        ],
        "accepted_at": "2030-01-01T12:00:00+00:00",
        "automatic_renewal": false,
        "replayed": false
    },
    "meta": {
        "request_id": "000000000000000000000001",
        "phase": "public_v1",
        "source": "arnproxy_records"
    }
}
उत्तर के फ़ील्ड और प्रकार
नामप्रकारविवरण
okbooleanसफलता संकेत; false पर error.code देखें।
dataobjectकार्रवाई-विशिष्ट परिणाम; उदाहरण कृत्रिम और समझाने के लिए हैं।
data.statestringरिकॉर्ड/कार्रवाई स्थिति। accepted डिलीवरी नहीं; completed कनेक्शन परीक्षण नहीं।
data.delivery_state_at_acceptancestringdelivery state at acceptance का कार्रवाई-विशिष्ट मान। लौटाया प्रकार बनाए रखें और व्यवहार नोट देखें।
data.currencystringखाते की लेनदेन मुद्रा: TRY या USD।
data.totalstringधनराशि; शुद्धता के लिए लौटाया पाठ/पूर्णांक प्रारूप बनाए रखें।
data.total_minorintegerलघुतम मुद्रा इकाई में पूर्णांक: 1000 = 10.00 TRY/USD।
data.checkout_group_idinteger|nullcheckout group id का कार्रवाई-विशिष्ट मान। लौटाया प्रकार बनाए रखें और व्यवहार नोट देखें।
data.ordersarrayorders का कार्रवाई-विशिष्ट मान। लौटाया प्रकार बनाए रखें और व्यवहार नोट देखें।
data.orders[]objectorders का कार्रवाई-विशिष्ट मान। लौटाया प्रकार बनाए रखें और व्यवहार नोट देखें।
data.orders[].idintegerसंबंधित ARNPROXY रिकॉर्ड ID; आंतरिक प्रदाता ID के बदले इसे लें।
data.orders[].numberstringदिखने वाला ऑर्डर नंबर; id माँगने वाले फ़ील्ड में नहीं।
data.orders[].location_idintegerस्थानीय कैटलॉग स्थान या उत्पाद प्रकार ID।
data.orders[].time_idintegerस्थानीय अवधि/GB प्लान ID, दिनों या GB की गिनती नहीं।
data.orders[].quantityintegerचुने या ऑर्डर किए प्रॉक्सी की संख्या।
data.orders[].totalstringधनराशि; शुद्धता के लिए लौटाया पाठ/पूर्णांक प्रारूप बनाए रखें।
data.accepted_atstringAPI के लौटाए प्रारूप में समय; उदाहरण की तारीखें कृत्रिम हैं।
data.automatic_renewalbooleanautomatic renewal का कार्रवाई-विशिष्ट मान। लौटाया प्रकार बनाए रखें और व्यवहार नोट देखें।
data.replayedbooleanउसी कार्रवाई का सहेजा परिणाम लौटा, नए शुल्क/कार्रवाई का प्रमाण नहीं।
metaobjectअनुरोध संबद्धता और डेटा-स्रोत मेटाडेटा।
meta.request_idstringइस HTTP अनुरोध की पहचान; कार्रवाई कुंजी या ऑर्डर ID नहीं।
meta.phasestringphase का कार्रवाई-विशिष्ट मान। लौटाया प्रकार बनाए रखें और व्यवहार नोट देखें।
meta.sourcestringडेटा स्रोत; स्थानीय रिकॉर्ड और लाइव प्रदाता क्वेरी अलग प्रमाण हैं।

त्रुटि उत्तर

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

प्रमाणीकरण और जाँच निष्पादन से पहले अनुरोध रोक सकते हैं। त्रुटि संदर्भ देखें और सहायता के लिए request_id रखें। कुंजी या पासवर्ड न भेजें। त्रुटियाँ और सीमाएँ →

व्यवहार और महत्वपूर्ण नोट

  • ID products/catalog से लें। quote पंक्ति में केवल location_id, time_id, quantity। purchase में purpose_id=201 और चुना subpurpose_id भी आवश्यक।
  • कई देश अलग ऑर्डर और एक बहु-पंक्ति बिल बनाते हैं। छूट देशवार है। accepted डिलीवरी नहीं; order_delivery और order_proxies देखें।
  • टाइमआउट/5xx लिखने की विफलता का प्रमाण नहीं। मूल Idempotency-Key से स्थिति पूछें। नई कुंजी से न दोहराएँ; GET बदलाव फिर नहीं भेजता।
  • सामान्य ऑर्डर में ग्राहक से दो विकल्प न चुनवाएँ। catalog.purposes में id=201 खोजें और केवल उसके children दिखाएँ। purchase में purpose_id निश्चित पूर्णांक 201 है और subpurpose_id चुने गए उप-विकल्प की ID है। पुराने एकीकरणों के साथ संगतता के लिए कैटलॉग का पदानुक्रम बना हुआ है।
  • अन्य चुनने पर subpurpose_id=-1 और 1–30 अक्षरों का other_purpose भेजें। दूसरे विकल्पों में other_purpose आवश्यक नहीं है। purpose_id फिर भी 201 रहता है।
  • एक product_id में अधिकतम 20 अलग location_id हो सकते हैं। हर देश की अलग ऑर्डर प्रविष्टि बनती है; जुड़ा हुआ चेकआउट एक इनवॉइस में संसाधित होता है। मात्रा छूट हर देश की अपनी मात्रा पर लगती है।
उसी कार्रवाई को ट्रैक करेंखरीद स्थिति जाँचें →

वर्तमान भाषा में खोजें। बंद करें: Esc