개발자

POST/v3/order/{prefix_id}

프리픽스로 전화번호 주문하기

현재 프리픽스 재고에서 원하는 수량을 구매하고, 주문 참조값을 보관하며, 가격과 부분 할당 및 활성화 상태를 대조하여 확인합니다.

이 페이지의 내용
  1. 프리픽스로 주문하기
  2. 구매 요청 제출하기
  3. 전달 및 갱신 설정
  4. 전체 결과 확인하기
  5. 부분 구매 및 불확실한 결과
  6. 등록 및 활성화
  7. 주문 콜백
  8. 처리해야 할 실패 상황

프리픽스로 주문하기

프리픽스 카탈로그에서 사용 가능한 번호를 개별적으로 선택하는 대신 프리픽스에서 수량을 지정해 주문하도록 안내하는 경우 이 작업을 사용합니다. 먼저 국가, 지역 또는 주, 그리고 프리픽스부터 확인하세요. 동일한 최신 조회 결과의 프리픽스 식별자와 요금제를 함께 보관하세요. 사용 가능한 번호 목록에서 선택한 특정 번호를 구매하려면 다음 안내를 사용하세요: 선택한 전화번호 구매하기.

이 요청으로 번호가 구매되고 요금이 발생할 수 있습니다. 가격 견적, 예약 또는 모의 실행이 아닙니다. 제출하기 전에 개통비와 월 요금, 수신 통화의 분당 요금, 기본 제공 통화 시간, 채널, 등록 요건 및 계정의 구매 한도를 검토하세요. 카탈로그 조회 결과는 재고를 예약하거나 가격을 고정하지 않습니다. 주문 이행 전에 계정 자금 충전 관련 확인이 이루어질 수 있으며, 오류가 발생했다는 사실만으로 구매나 계정 자금 충전이 이루어지지 않았다고 단정할 수는 없습니다.

구매 요청 제출하기

허용된 출발지 IP 주소에서 HTTPS를 통해 활성화된 API 계정을 사용하세요. 현재 카탈로그에서 선택한 항목과 승인된 전달 설정을 바탕으로 변수를 설정하세요. 다음 명령은 번호 하나를 구매합니다.

curl --silent --show-error --user "$API_USER:$API_PASSWORD" \
  --data-urlencode 'quantity=1' \
  --data-urlencode "price_id=$PRICE_ID" \
  --data-urlencode "channels=$CHANNELS" \
  --data-urlencode "reference=$ORDER_REFERENCE" \
  --data-urlencode "uri=$VOICE_URI" \
  "https://api.multitel.net/v3/order/$PREFIX_ID"

위 예시는 폼 POST 방식입니다. 조정 처리기는 Content-Type이 application/json인 경우 JSON 객체도 읽습니다. JSON 필드는 일치하는 폼/요청 필드보다 우선합니다. 하나의 인코딩 방식을 일관되게 사용하고, 쿼리와 본문에 서로 충돌하는 값을 보내지 마세요.

주문 선택 및 알림 매개변수
매개변수의미
경로의 프리픽스 식별자카탈로그에서 반환한 프리픽스 UUID입니다. 국가, 지역, 가격 또는 개별 번호 식별자로 대체할 수 없습니다.
quantity1부터 100까지의 정수를 보내세요. 기본값은 1입니다. 1보다 작은 값은 1로 강제 변환됩니다. 이 요청은 유효성 검사만 수행하는 요청이 아닙니다. 100을 초과하는 값은 이 조정 처리기의 정상적인 응답 처리 전에 예외를 발생시키므로, 이러한 잘못된 입력에 대해 평소와 같은 JSON 구조가 반환될 것이라고 가정하지 마세요.
price_id선택한 요금제의 공개 가격 식별자입니다. priceid는 이전 버전의 별칭입니다. 식별자가 일치하지 않으면 별도 알림 없이 다른 요금제가 대체 선택될 수 있습니다. 이 필드는 가격을 엄격하게 고정하지 않습니다. 구매 전에 계정의 가격 상한을 확인하고, 구매 후 반환된 가격을 확인하세요.
channels선택한 요금제의 채널 수입니다. 정확히 일치하는 가격이 사용되지 않을 경우, 일치하는 채널 수가 대체 요금제 선택에 영향을 줄 수 있습니다. 이 값만으로 특정 요금제의 구매가 보장되지는 않습니다.
reference구매 또는 일괄 구매에 붙이는 사용자 지정 이름입니다. 최대 255바이트의 짧은 ASCII 값을 사용하세요. 더 긴 값은 잘립니다. 이 값을 제공하면 성공한 구매와 함께 보관되며 콜백에도 포함됩니다. 서로 다른 주문이 같은 참조값을 사용할 수 있습니다. 이 값은 멱등성 키가 아닙니다. 참조값과 모든 필드가 같더라도 이 작업을 다시 제출하면 추가 번호가 구매되고 요금이 청구될 수 있습니다.
webhook_url선택 사항인 콜백 URL입니다. 직접 관리하는 HTTPS 엔드포인트를 사용하세요. 현재의 기본 유효성 검사에서는 HTTP와 HTTPS URL 모두 허용됩니다. 유효하지 않은 URL은 구매 거부 사유가 되지 않고 무시됩니다. 콜백은 추가 알림이며, 요청을 안전하게 반복할 수 있다는 증거가 아닙니다.

전달 및 갱신 설정

포털에서 해당 번호에 사용할 것과 동일한 전달 설정을 선택하세요. 이는 고급 설정값이며, 호스팅 PBX나 오리지네이션 트렁크를 생성하라는 지침이 아닙니다. 정상 작동이 확인된 계정 설정을 재사용하고 구매 후 저장된 번호를 확인하세요. 구매가 수락되었다는 사실만으로 음성 또는 SMS 전달이 작동한다고 확인할 수는 없습니다.

추가 주문 필드
필드용도 및 호환성
uri, uri2, uri3기본 및 추가 음성 수신 대상입니다. 선택한 착신 전환 및 벨 울림 모드에 적합한 대상을 제공하세요.
forward_destination음성 착신 전환 모드입니다. forwarding_destination 및 type은 이전 버전의 별칭입니다. 생략하면 구매 처리 경로의 기본값이 사용됩니다. 빈 필드를 보내는 방식으로 기존 설정이 확실히 해제된다고 볼 수는 없습니다.
ring_type음성 벨 울림 모드이며, ringtype은 별칭입니다. 계정의 번호 설정에서 지원되는 값을 사용하세요.
sms_forward_destination, sms_uriSMS 전달 모드 및 수신 대상입니다. 이전 버전의 별칭은 smsringtype 및 smsuri입니다. 일부 구매 처리 경로에서는 이 값이 비어 있으면 계정의 기본 SMS 수신 대상을 적용합니다. SMS 사용 가능 여부는 선택한 번호와 해당 번호의 활성화/등록 상태에 따라 달라집니다.
overflow요청할 오버플로 설정입니다. 지원 여부는 요금제의 제공 여부와 구매 처리 경로에 따라 달라집니다.
force_codec, force_dtmf요청할 코덱 및 DTMF 설정입니다. 이전 버전의 별칭은 forcecodec 및 forcedtmf입니다. 선택한 재고에 대해 저장된 설정을 확인하세요.
origination_trunk_id해당되는 경우 사용하는 기존 트렁크 설정의 식별자입니다. 트렁크를 생성하지는 않습니다. 생략하면 구매 처리 기본값이 사용됩니다.
autorenew요청할 갱신 설정입니다. 0으로 갱신이 비활성화된다고 가정하지 마세요. 일부 구매 처리 경로에서는 0을 포함하여 빈 값처럼 취급되는 값을 기본값인 활성화 설정으로 처리합니다. 포털에서 구매한 번호의 갱신 설정을 확인하고 필요한 경우 변경하세요.

이 필드들은 정규화되어 구매 처리에 전달되지만, 저장 여부와 방식은 재고 처리 경로에 따라 다릅니다. 현재 주문 경로는 선택한 번호 구매 안내의 엄격한 견적 상한 필드를 동등한 보호 장치로 제공하지 않습니다. 계정의 구매 권한과 가격 한도를 사용하고, 최종적으로 저장된 번호 설정을 확인하세요.

전체 결과 확인하기

HTTP 요청이 성공하더라도 JSON 본문을 파싱하고 status.code 및 status.msg를 확인하세요. 이 경로는 자체 JSON 응답을 작성하며, 공통 응답 도우미 역시 애플리케이션 코드를 HTTP 상태에 반드시 대응시키지는 않습니다. 애플리케이션 코드는 JSON 숫자 또는 숫자로 된 문자열일 수 있습니다. status.results를 필수 항목으로 간주하지 마세요. 일반적인 주문 결과에는 이 항목이 없습니다.

{
  "status": {"code": "200", "msg": ""},
  "response": {
    "id": "o_fictional_example",
    "numbers": ["12025550123"],
    "price": {
      "per_minute": "0.01",
      "free_minutes": 0,
      "setup_price": "1.25",
      "monthly_price": "2.50",
      "channels": 2
    },
    "features": ["voice"],
    "needs_registration": 0,
    "restrictions": "",
    "registration_requirements": null
  }
}

위의 식별자, 번호 및 가격은 가상의 예시입니다. 주문 ID는 내부 구조나 의미를 해석하지 않는 불투명한 값으로 취급하세요. numbers에는 이 응답에서 구매되었다고 보고하는 번호가 나열됩니다. 목록의 길이를 요청한 수량과 비교하세요. 가격 금액은 문자열이며, 이 응답은 per_minute를 포함한 금전적 요율을 소수점 둘째 자리로 반올림합니다. 원래 요율의 정밀도를 확인하려면 최신 카탈로그를 사용하세요. 기본 제공 통화 시간과 채널 수는 숫자 값 또는 숫자로 된 문자열로 반환될 수 있습니다.

가격 블록은 응답을 구성하는 데 사용된 선택 요금제를 설명하며, 각 번호의 상세 청구서나 주문 총액을 나타내는 것이 아닙니다. 여러 재고 후보의 요금제는 서로 다를 수 있습니다. 이 블록의 금액을 곱한 결과가 최종 총액을 입증한다고 가정하지 말고, 구매한 개별 번호와 계정 거래 내역을 대조하여 확인하세요.

부분 구매 및 불확실한 결과

애플리케이션 코드 200과 함께 경고가 표시되고 요청한 수량보다 적은 번호가 반환될 수 있습니다. 이후에 실패가 발생하더라도 이미 구매한 번호가 취소되지는 않습니다. 반환된 주문 ID, 번호 및 메시지를 보관하세요. 남은 수량을 주문할지 결정하기 전에 해당 번호를 보유 번호 목록 및 계정 거래 내역과 대조하여 확인하세요.

제출 후 발생한 시간 초과, 요청 연결 끊김, 잘못된 형식의 응답 또는 오류는 아무 일도 일어나지 않았다는 증거가 아닙니다. 동일한 참조값을 사용하더라도 다른 구매 요청을 자동으로 제출하지 마세요. 원래 요청과 참조값, 반환된 주문 ID가 있다면 그 ID를 보관하고, 보유 번호 목록과 계정 거래 내역을 확인하세요. 결과가 여전히 불확실하면 지원팀에 문의하세요.

확정되지 않은 주문은 아직 확인 중이라는 문구와 함께 애플리케이션 코드 400을 반환할 수 있습니다. 반환된 주문 ID를 보관하고 해당 구매 내역을 대조하여 확인하세요. 이는 요청을 다시 제출하라는 지시가 아닙니다. 기록된 주문의 복구 처리는 내부적으로 원래 주문을 추적합니다. 이 작업에 대한 새 요청은 참조값을 바탕으로 주문을 재개하는 것이 아니라 별도의 구매 시도를 생성하므로, 추가 번호가 구매되고 요금이 청구될 수 있습니다. 상태 확인이나 재고 검색을 위해 구매 요청을 반복하지 마세요.

등록 및 활성화

구매되거나 할당된 번호도 등록 또는 활성화가 추가로 필요할 수 있습니다. needs_registration이 1이면 restrictions 및 registration_requirements를 확인하세요. 후자는 다음 항목을 지정할 수 있습니다: v3/get_requirements 및 해당 country, number_type 값. 수신 통화나 메시징을 사용하기 전에 해당 신원/주소 확인 절차를 완료하고 번호의 상태를 확인하세요.

features는 제공된다고 안내된 기능을 설명합니다. 실제 라우팅, 캠페인 승인, SMS 전달 또는 팩스 수신을 검증하지는 않습니다. 저장된 전달 설정을 확인하고 번호가 활성화되면 해당 서비스에 적합한 테스트를 수행하세요.

주문 콜백

콜백은 주문 상태와 응답을 포함하는 JSON을 POST 방식으로 전송하며, 참조값이 제공된 경우 이를 추가합니다. 부분 결과를 포함하여 구매되었다고 보고된 건에 대해 전송됩니다. 콜백 실패로 구매가 롤백되지는 않습니다. 전달이 재시도될 수 있으므로, 다른 구매 요청을 보내는 대신 주문 ID를 기준으로 중복을 처리하고 번호를 대조하여 확인하세요.

이 경로는 콜백에 암호학적 서명을 추가하지 않습니다. 콜백은 인증을 거쳐 조회한 보유 번호 목록과 대조하여 확인하기 위한 알림으로 취급하고, 요금 청구, 서비스 개통 또는 접근 권한 부여를 독립적으로 승인하는 근거로 삼지 마세요. 콜백 URL에 API 인증 정보를 넣지 마세요. 다른 콜백 URL로 구매 요청을 다시 제출해도 원래 주문이 갱신되지 않으며, 별도의 구매 시도가 생성됩니다. 지원팀에 콜백 조사를 요청할 때는 원래 주문 ID를 보관하여 사용하세요.

처리해야 할 실패 상황

애플리케이션 처리 결과
결과조치 방법
400 및 유효하지 않은 프리픽스라는 문구프리픽스 카탈로그를 다시 조회하고 현재 식별자를 사용하세요. 원래 주문이 아직 확인 중이라는 문구와 구분하세요.
403 또는 계정 정책/잔액 관련 실패구매 권한, 계정의 가격 상한, 수량 한도 및 자금 충전 상태를 검토하세요. 이러한 확인 과정에서 다른 애플리케이션 코드가 전달될 수 있으므로 실제 메시지를 보관하세요.
404 또는 사용 가능한 재고 없음가용 재고를 다시 조회하세요. 재고가 소진된 프리픽스에 대해 구매를 반복하지 마세요.
409 및 구매 확인, 공급자 거부 또는 주문 취소에 관한 문구반환된 주문 ID와 실제 메시지를 보관하세요. 다른 구매 요청을 제출하기 전에 보유 번호 목록, 계정 거래 내역 및 지원팀을 통해 요청 결과를 대조하여 확인하세요. 같은 참조값을 재사용해도 다른 요청의 안전성이 보장되지는 않습니다.
200과 함께 경고가 있거나 번호 수가 부족함일부 번호가 구매되었습니다. 추가로 주문하기 전에 반환된 할당 내역과 거래 내역을 대조하여 확인하세요.
서버/전송 실패 또는 읽을 수 없는 응답보유 번호 목록과 거래 내역을 통해 실제 발생한 일이 확인될 때까지 결과가 불확실할 수 있다고 간주하세요.