API قنوات الشحن

يسرد GET /v1/fulfillment/shipping/channels قنوات الشحن الدولية النشطة والمُكوَّنة أسعارها المتاحة عبر المستودع المرتبط بتطبيقك.

استخدم نقطة النهاية هذه لبناء منتقي قنوات أو لفحص القدرات. لمعرفة التوفر والمبالغ حسب الوجهة، استدعِ عروض أسعار الشحن. بطاقات الأسعار هنا تشرح نموذج التسعير فقط — وهي لا تقفل سعراً أبداً.

GEThttps://open.hiobuy.com/v1/fulfillment/shipping/channels

يتطلب fulfillment المستودع. تطبيق sandbox بمفتاح hio_test_* يتلقى بيانات mock حتمية.

عروض الأسعار ميزانيات وليست أسعاراً مقفلة. وزن المستودع وقياس الحجم وإعادة التغليف ومراجعة الخدمات قد تغيّر المبلغ النهائي.

المال والوحدات {#units}

  • كل قيم المال amount أعداد صحيحة بوحدة fen لـ CNY (الوحدات الصغرى). 1000 تعني ¥10.00.
  • monetary_unit في المستوى الأعلى دائماً CNY_minor.
  • كائنات المال تستخدم:
{
  "amount": 1000,
  "currency": "CNY"
}
  • KG = كيلوغرام، CM = سنتيمتر، M3 = متر مكعب، KG_PER_M3 = كيلوغرام لكل متر مكعب.
  • عرّف القنوات والمناطق والخدمات بـ code المستقر، وليس name.
  • لا تكشف Public API معرفات قاعدة بيانات المستودع، ولا أكواد المطور، ولا عناوين URL للموردين.

الطلب {#request}

GET /v1/fulfillment/shipping/channels?country_code=US&include=regions,services,rate_cards&page=1&page_size=20
Authorization: Bearer hio_live_xxx
Language: en

لغة العرض هي ترويسة Language فقط. القيم المدعومة: en (الافتراضي)، en-US، zh، zh-CN، zh-TW، cn، hk. لا تضع language في سلسلة الاستعلام أو جسم JSON.

معاملات الاستعلام

المعاملمطلوبالافتراضيالوصف
channel_codeلارمز القناة المستقر الدقيق (بحد أقصى 64 حرفاً)
country_codeلابلد الوجهة وفق ISO 3166-1 alpha-2
includeلاتوسيعات مفصولة بفاصلة: regions، services، rate_cards
pageلا1رقم الصفحة، يبدأ من 1
page_sizeلا20عدد العناصر في الصفحة؛ الحد الأقصى 50

توسيعات include

احذف include للحصول على ملخص قنوات خفيف.

قيمة includeحقل الاستجابةاستخدم عندما
regionsregionsالتغطية ونوع المطابقة وزمن العبور المرجعي
servicesvalue_added_servicesخدمات القيمة المضافة للقناة من أجل عروض الأسعار
rate_cardsrate_cardsصفوف أسعار مرجعية تشرح نموذج الفوترة

يمكنك الجمع بين القيم، مثلاً include=regions,services,rate_cards. القيمة غير المعروفة تعيد 400 VALIDATION_ERROR.

rate_cards هي reference_only. يجب ألا تحل محل POST /v1/fulfillment/shipping/quotes. فقط include=rate_cards يطلب من المستودع صفوف الأسعار.

تُعاد فقط القنوات المفعّلة و ذات تكوين سعر صالح. مصفوفة items الفارغة تعني أنه لا توجد قناة في الكتالوج تطابق عوامل التصفية الحالية.

الاستجابة {#response}

{
  "items": [
    {
      "code": "US-SEA",
      "name": "US Ocean",
      "description": "General cargo line",
      "status": "ACTIVE",
      "tags": [
        "GREAT_VALUE"
      ],
      "warehouse": {
        "code": "SZ",
        "name": "Shenzhen Warehouse"
      },
      "capabilities": {
        "delivery_methods": [
          "DOOR_DELIVERY"
        ],
        "multi_package_supported": true,
        "tracking_supported": true,
        "shipping_label_supported": false
      },
      "requirements": {
        "weight": "REQUIRED",
        "dimensions": "CONDITIONAL",
        "postal_code": "OPTIONAL",
        "declared_value": "OPTIONAL",
        "customs_code": "OPTIONAL",
        "personal_customs_code": "OPTIONAL",
        "recipient_identity": "OPTIONAL"
      },
      "attribute_matching": {
        "mode": "ANY_OF",
        "accepted_attributes": [
          {
            "code": "GENERAL",
            "name": "General cargo"
          }
        ]
      },
      "billing": {
        "basis": "WEIGHT",
        "calculation_model": "FIRST_NEXT_WEIGHT",
        "quantity_unit": "KG",
        "supported_range": {
          "minimum": {
            "value": 0.5,
            "unit": "KG"
          },
          "maximum": {
            "value": 30,
            "unit": "KG"
          },
          "out_of_range_behavior": "UNAVAILABLE"
        },
        "minimum": {
          "value": 0.5,
          "unit": "KG",
          "ceil_to_minimum": true
        },
        "rounding": {
          "single_package_step": {
            "value": 0.5,
            "unit": "KG"
          },
          "multi_package_step": {
            "value": 0.5,
            "unit": "KG"
          },
          "ignore_below": {
            "value": 0.05,
            "unit": "KG"
          }
        },
        "multi_package": {
          "mode": "PER_BOX",
          "calculation_scope": "PER_PACKAGE",
          "aggregation": "SUM_PACKAGE_CHARGES",
          "minimum_per_package": {
            "value": 0.5,
            "unit": "KG"
          },
          "minimum_total": {
            "value": 0,
            "unit": "KG"
          }
        },
        "volumetric_weight": {
          "enabled": true,
          "divisor": 6000,
          "average_with_actual": false,
          "exemption": null
        },
        "overweight_warning": {
          "enabled": false,
          "threshold": {
            "value": 0,
            "unit": "KG"
          },
          "notice": null
        }
      },
      "rule_summary": {
        "fee_aggregation": "SUM_ALL",
        "maximum_charge": {
          "amount": 0,
          "currency": "CNY"
        },
        "has_surcharges": true,
        "has_order_restrictions": false,
        "has_dispatch_restrictions": true,
        "evaluated_by_quote": true
      },
      "regions": [
        {
          "code": "US-WEST",
          "name": "US West",
          "status": "ACTIVE",
          "match_type": "COUNTRY_REGION",
          "countries": [
            "US"
          ],
          "postal_code_required": false,
          "reference_transit_time": {
            "text": "15-18 business days",
            "min_business_days": 15,
            "max_business_days": 18
          },
          "areas": []
        }
      ],
      "value_added_services": [
        {
          "code": "LINE_FUEL",
          "name": "Fuel surcharge",
          "request_mode": "MANDATORY",
          "pricing_type": "CALCULATED",
          "pricing_scope": "REGION",
          "pricing_basis": "BASE_FREIGHT_PERCENT",
          "region_prices": [
            {
              "region_code": "US-WEST",
              "value": 500,
              "value_unit": "BASIS_POINT",
              "fixed_charge": {
                "amount": 200,
                "currency": "CNY"
              }
            }
          ],
          "final_quote_required": true,
          "may_be_adjusted": true
        }
      ],
      "rate_cards": [
        {
          "region_code": "US-WEST",
          "billing_basis": "WEIGHT",
          "calculation_model": "FIRST_NEXT_WEIGHT",
          "quantity_unit": "KG",
          "currency": "CNY",
          "reference_only": true,
          "price_rows": [
            {
              "type": "FIRST_WEIGHT",
              "pricing_basis": "WEIGHT",
              "range": {
                "minimum": 0.5,
                "maximum": 0.5,
                "unit": "KG",
                "minimum_inclusive": true,
                "maximum_inclusive": false
              },
              "first_quantity": {
                "value": 0,
                "unit": "KG"
              },
              "step": {
                "value": 0,
                "unit": "KG"
              },
              "charge": {
                "amount": 8000,
                "currency": "CNY"
              }
            }
          ]
        }
      ],
      "service_policy": {
        "warehouse_may_add_services": true,
        "warehouse_may_remove_services": true,
        "prices_may_change_after_inspection": true
      },
      "final_quote_required": true,
      "config_updated_at": "2026-09-07T08:00:00Z"
    }
  ],
  "pagination": {
    "page": 1,
    "page_size": 20,
    "total": 1,
    "has_more": false
  },
  "monetary_unit": "CNY_minor",
  "generated_at": "2026-09-07T09:00:00Z",
  "request_id": "req_xxx"
}

تظهر regions وvalue_added_services وrate_cards فقط عند إرسال قيمة include المطابقة.

حقول الاستجابة {#fields}

الحقلالوصف
items[]القنوات المطابقة. فارغة عندما لا تطابق أي قناة في الكتالوج عوامل التصفية.
items[].codeرمز القناة المستقر. استخدمه في channel_codes لعروض الأسعار وعند إنشاء الشحنة.
items[].nameاسم العرض المترجم (ترويسة Language).
items[].descriptionالوصف المترجم.
items[].statusحالة الكتالوج. القنوات المُعادة هي ACTIVE.
items[].tagsوسوم مستقرة مثل GREAT_VALUE.
items[].warehouseالمستودع المرتبط { code, name }. ليس معرف قاعدة بيانات.
items[].capabilitiesطرق التسليم والدعم متعدد الطرود والتتبع والملصقات.
items[].requirementsتلميحات اكتمال الإدخال: REQUIRED · OPTIONAL · CONDITIONAL · NOT_SUPPORTED.
items[].attribute_matchingANY_OF أو ALL_REQUIRED مع accepted_attributes[].code.
items[].billingكيف تسعّر القناة الشحنة. انظر أدناه.
items[].rule_summaryوجود رسوم إضافية أو قيود؛ عروض الأسعار تقيّم القواعد.
items[].regionsموجودة مع include=regions.
items[].value_added_servicesموجودة مع include=services.
items[].rate_cardsموجودة مع include=rate_cards. دائماً reference_only.
items[].service_policyيجوز للمستودع إضافة/إزالة الخدمات وتغيير الأسعار بعد الفحص.
items[].final_quote_requiredtrue عندما لا يزال عرض سعر خاص بالشحنة مطلوباً.
items[].config_updated_atوقت مراجعة الكتالوج لهذه القناة.
paginationpage، page_size، total، has_more.
monetary_unitدائماً CNY_minor.
generated_atطابع زمني للاستجابة (ISO 8601).
request_idللربط مع x-request-id.

الفوترة {#billing}

الحقلالمعنى
basisWEIGHT أو VOLUME أو DENSITY
calculation_modelنموذج التسعير المستخدم في صفوف بطاقة الأسعار
quantity_unitKG أو M3 أو KG_PER_M3
supported_rangeالحد الأدنى والأقصى للكمية القابلة للفوترة
supported_range.out_of_range_behaviorUNAVAILABLE — لا يمكن للقناة حمل طرد خارج النطاق. لا تستقرأ.
minimumالحد الأدنى للكمية القابلة للفوترة وما إذا كانت القيم الأصغر تُرفع (ceil_to_minimum)
roundingخطوات التقريب للطرد الواحد والمتعدد
volumetric_weightمقسوم الوزن الحجمي وقاعدة الإعفاء
multi_packageالفوترة لكل طرد مقابل المجمّعة والتجميع
overweight_warningإشعار اختياري بتجاوز الوزن

قد تشمل نماذج الحساب FIRST_NEXT_WEIGHT وTIERED_PRICE وUNIT_PRICE_PLUS_GRADE وMULTI_LEVEL_NEXT_WEIGHT وRANGE_FIRST_NEXT_WEIGHT. لا تعِد تنفيذ محرك تسعير المستودع انطلاقاً من هذه الصفوف.

المناطق {#regions}

الحقلالمعنى
code / nameرمز المنطقة المستقر والاسم المترجم
match_typeCOUNTRY_REGION أو POSTAL_CODE
countriesرموز دول ISO التي تغطيها هذه المنطقة
postal_code_requiredعندما تكون true، أرسل postal_code إلى عروض الأسعار
reference_transit_timeنص العرض مع حد أدنى/أقصى اختياري لأيام العمل
areasقائمة مناطق أدق اختيارية. الكتالوج لا يكشف قاعدة بيانات قواعد الرمز البريدي كاملة.

الخدمات ذات القيمة المضافة {#value-added-services}

استخدم value_added_services[].code في services.channel[] على عروض أسعار الشحن.

الحقلالمعنى
codeرمز الخدمة المستقر
request_modeMANDATORY (يُطبَّق دائماً) أو OPTIONAL (يختاره المطوّر)
pricing_typeسعر ثابت مقابل محسوب (مثلاً CALCULATED)
pricing_scopeأين ينطبق السعر (مثلاً REGION)
pricing_basisكيف تُحسب الرسوم

BASIS_POINT نقطة أساس للنسبة المئوية: 500 تعني 5%. يجوز للمستودع إضافة الخدمات أو إزالتها أو تعديلها أثناء المعالجة — انظر service_policy وmay_be_adjusted.

بطاقات الأسعار {#rate-cards}

الحقلالمعنى
region_codeالمنطقة التي تنتمي إليها البطاقة
billing_basisنفس مفردات billing.basis
calculation_modelنفس مفردات billing.calculation_model
quantity_unitKG أو M3 أو KG_PER_M3
price_rowsنطاقات مرجعية تُستخدم لشرح النموذج
reference_onlyدائماً true — ليست عرض سعر حيّاً

التخزين المؤقت {#caching}

يتغيّر config_updated_at عند تغيّر تفاصيل القناة أو المناطق أو بطاقات الأسعار أو القواعد أو الخدمات. خزّن الكتالوج الخفيف مؤقتاً لفترة وجيزة، وأعد جلب التوسيعات عندما يتغيّر هذا الطابع الزمني، واستدعِ دائماً عروض أسعار الشحن قبل إنشاء شحنة. لا توجد نسخة تسعير مقفلة.

الأخطاء {#errors}

عدم أهلية قناة معيّنة ليس خطأ HTTP. مصفوفة items الفارغة هي إخفاق كتالوج ناجح.

HTTPerror.codeمتى
400VALIDATION_ERRORترقيم صفحات غير صالح، أو صياغة بلد، أو قيمة include
401INVALID_API_KEYرمز Bearer مفقود أو غير صالح
400INVALID_SHIPPING_CHANNELمحجوز لاستدعاءات عروض الأسعار/الشحنات التي تسمّي قناة غير معروفة. هذه القائمة تعيد ببساطة مصفوفة items فارغة.
403FULFILLMENT_MODE_NOT_SUPPORTEDالتطبيق يستخدم self fulfillment
403WAREHOUSE_AUTH_INVALIDتفويض المستودع مفقود أو مرفوض أو منتهٍ
422INVALID_COUNTRY_CODEبلد الوجهة غير صالح أو غير مدعوم
502WAREHOUSE_UPSTREAM_ERRORفشلت خدمة المستودع؛ أعد المحاولة مع backoff

لا يوجد رمز عام مستقل AUTHENTICATION_ERROR أو WAREHOUSE_AUTH_REQUIRED أو WAREHOUSE_SERVICE_UNAVAILABLE. إخفاقات المصادقة تستخدم 401 INVALID_API_KEY؛ وغياب ربط المستودع يستخدم 403 WAREHOUSE_AUTH_INVALID؛ وانقطاع المستودع يستخدم 502 WAREHOUSE_UPSTREAM_ERROR.

راجع الأخطاء والمصادقة.

أمثلة {#examples}

كتالوج خفيف:

curl "https://api.hiobuy.com/v1/fulfillment/shipping/channels?page=1&page_size=20" \
  -H "Authorization: Bearer hio_live_xxx" \
  -H "Language: en"

قنوات يمكنها خدمة الولايات المتحدة، بما في ذلك التسعير المرجعي:

curl "https://api.hiobuy.com/v1/fulfillment/shipping/channels?country_code=US&include=regions,services,rate_cards" \
  -H "Authorization: Bearer hio_live_xxx" \
  -H "Language: zh-CN"

التالي: اطلب عرض سعر شحن حسب الوجهة.

Get Support

Need integration help? Contact Developer Support at support@hiobuy.com · Response within 1–2 business days

Email support