배송 채널 API

GET /v1/fulfillment/shipping/channels는 앱에 연결된 창고를 통해 이용할 수 있는 활성·요금 설정 완료 국제 배송 채널을 목록으로 반환합니다.

채널 선택기를 만들거나 지원 기능을 확인할 때 사용합니다. 목적지별 가능 여부와 금액은 운임 견적을 호출하세요. 여기의 요율표는 과금 모델을 설명할 뿐이며 가격을 확정하지 않습니다.

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

창고 풀필먼트가 필요합니다. hio_test_* 키의 샌드박스 앱은 결정적 모의 데이터를 받습니다.

견적은 예산이지 확정 가격이 아닙니다. 창고 계량, 부피 측정, 재포장, 서비스 검토에 따라 최종 금액이 바뀔 수 있습니다.

금액과 단위 {#units}

  • 금액 amount 값은 모두 정수 CNY fen(보조 단위)입니다. 1000은 ¥10.00을 의미합니다.
  • 최상위 monetary_unit은 항상 CNY_minor입니다.
  • 금액 객체 형식:
{
  "amount": 1000,
  "currency": "CNY"
}
  • KG = 킬로그램, CM = 센티미터, M3 = 세제곱미터, KG_PER_M3 = 세제곱미터당 킬로그램.
  • 채널, 권역, 서비스는 name이 아니라 안정적인 code로 식별하세요.
  • Public API는 창고 데이터베이스 ID, 개발자 코드, 공급업체 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. 쿼리 문자열이나 JSON 본문에 language넣지 마세요.

쿼리 파라미터

파라미터필수기본값설명
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_cardsreference_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[].tagsGREAT_VALUE 같은 안정 태그.
items[].warehouse연결된 창고 { code, name }. 데이터베이스 ID가 아닙니다.
items[].capabilities배송 방식, 복수 포장, 추적, 라벨 지원.
items[].requirements입력 완비 힌트: REQUIRED · OPTIONAL · CONDITIONAL · NOT_SUPPORTED.
items[].attribute_matchingANY_OF 또는 ALL_REQUIREDaccepted_attributes[].code.
items[].billing채널이 화물을 과금하는 방식. 아래를 참고하세요.
items[].rule_summary추가요금이나 제한 존재 여부. 규칙은 견적에서 평가됩니다.
items[].regionsinclude=regions일 때 존재합니다.
items[].value_added_servicesinclude=services일 때 존재합니다.
items[].rate_cardsinclude=rate_cards일 때 존재합니다. 항상 reference_only입니다.
items[].service_policy창고가 검수 후 서비스를 추가·제거하고 가격을 변경할 수 있습니다.
items[].final_quote_required출고별 견적이 아직 필요하면 true.
items[].config_updated_at이 채널의 카탈로그 개정 시각.
paginationpage, page_size, total, has_more.
monetary_unit항상 CNY_minor.
generated_at응답 시각(ISO 8601).
request_idx-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포장 단위 과금 vs 합산 과금 및 집계
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_requiredtrue이면 견적postal_code를 보내세요
reference_transit_time표시 텍스트와 선택적 최소·최대 영업일
areas선택적 세부 지역 목록. 카탈로그는 전체 우편 규칙 데이터베이스를 노출하지 않습니다.

부가 서비스 {#value-added-services}

운임 견적services.channel[]에는 value_added_services[].code를 사용합니다.

필드의미
code안정적인 서비스 코드
request_modeMANDATORY(항상 적용) 또는 OPTIONAL(개발자 선택)
pricing_type정액 vs 산출(예: CALCULATED)
pricing_scope가격 적용 범위(예: REGION)
pricing_basis요금 계산 방식

BASIS_POINT는 퍼센트 베이시스 포인트입니다. 500은 5%를 의미합니다. 처리 중 창고가 서비스를 추가·제거·조정할 수 있습니다 — service_policymay_be_adjusted를 참고하세요.

요율표 {#rate-cards}

필드의미
region_code이 요율표가 속한 권역
billing_basisbilling.basis와 같은 어휘
calculation_modelbilling.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_KEYBearer 토큰이 없거나 유효하지 않음
400INVALID_SHIPPING_CHANNEL알 수 없는 채널을 지정하는 견적/출고 호출용으로 예약됨. 이 목록은 빈 items 배열만 반환합니다.
403FULFILLMENT_MODE_NOT_SUPPORTED앱이 자체 풀필먼트
403WAREHOUSE_AUTH_INVALID창고 인가가 없거나 거부되었거나 만료됨
422INVALID_COUNTRY_CODE목적지 국가가 유효하지 않거나 미지원
502WAREHOUSE_UPSTREAM_ERROR창고 서비스 실패. 백오프로 재시도

공개용 독립 코드 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