Help Center GMS API 호환성

GMS API 호환성

SMSBAT는 GMS API와의 호환성 레이어를 지원합니다. 이를 통해 메시지 라우팅 스키마, 페이로드 구조 또는 콜백 수신기를 수정하지 않고도 GMS용으로 설계된 기존 통합을 SMSBAT로 직접 마이그레이션할 수 있습니다.


연결 설정

SMSBAT를 통해 요청을 라우팅하려면 통합에서 기본 URL과 인증 자격 증명을 업데이트하세요.

  • 기본 URL: https://restapi.smsbat.com
  • 엔드포인트: POST /api/GMSMessage/send_message
  • 요청 형식: application/json
  • 인증: HTTP 기본 인증(SMSBAT API 자격 증명 사용)

요청 매개변수

GMS 호환성 API는 다음과 같은 최상위 매개변수가 포함된 JSON 객체를 허용합니다.

매개변수유형필수설명
전화_번호문자열국제 형식의 수신자 전화번호입니다(예: ‘380501234567’).
태그문자열등록된 발신자 이름/알파 이름.
‘채널’배열시도할 채널 목록(우선순위순) 지원되는 값: viber, sms, push. 예: ["viber", "sms"].
채널_옵션개체각 활성 채널에 대한 옵션이 포함된 지도입니다(아래 참조).
extra_id문자열아니요내부 고객 측 메시지 ID입니다.
콜백_URL문자열아니요배달 상태 콜백을 수신하기 위한 시스템의 엔드포인트 URL입니다.
분할_코드문자열아니요선택적 분할 코드 식별자(기본값은 ‘main’)입니다.

채널 옵션 설정

channel_options 개체에는 채널별 구성이 포함되어 있습니다.

viberchannels 배열에 나열될 때 사용됩니다.

매개변수유형필수설명
텍스트문자열메시지 본문 텍스트.
ttl정수TTL(Time-To-Live)은 초 단위입니다.
img문자열아니요표시할 이미지의 공개 HTTPS URL입니다.
‘캡션’문자열아니요버튼 텍스트 라벨.
‘액션’문자열아니요버튼 클릭 시 도착 URL입니다.
설문조사_옵션배열아니요설문조사 옵션으로 표시할 문자열 배열(2~5개 항목)
carousel_items배열아니요Viber 캐러셀로 표시할 슬라이드 개체 배열(탭의 구조 참조)

Viber 요청 예:

{
  "phone_number": "380501234567",
  "tag": "MySender",
  "channels": ["viber"],
  "channel_options": {
    "viber": {
      "text": "Hello from SMSBAT!",
      "ttl": 60,
      "img": "https://www.example.com/image.png",
      "caption": "Open",
      "action": "https://www.example.com"
    }
  }
}

응답 형식

엔드포인트는 ‘HTTP 200 OK’ 상태 코드와 함께 JSON 형식으로 응답을 반환합니다.

성공적인 응답

{
  "MessageId": "6f0d5e28-7f3a-4df3-91a2-3d58d9e09b9a",
  "ErrorCode": null,
  "ErrorText": null
}

오류 응답

유효성 검사 또는 처리가 실패하면 null이 아닌 ‘ErrorCode’ 및 자세한 ‘ErrorText’가 포함된 오류 응답이 반환됩니다.

{
  "MessageId": "00000000-0000-0000-0000-000000000000",
  "ErrorCode": 10221,
  "ErrorText": "This type of Message is not supported by the system"
}

콜백 전달 형식

요청에 ‘callback_url’이 지정된 경우 SMSBAT는 전송 상태 업데이트를 JSON POST 페이로드로 엔드포인트에 보냅니다.

콜백 요청 예시

POST /your-callback-endpoint HTTP/1.1
Host: yoursystem.com
Content-Type: application/json

{
  "number": "380501234567",
  "time": 1719237600000,
  "status": 2,
  "substatus": 23,
  "hyber_status": 23033,
  "message_id": "6f0d5e28-7f3a-4df3-91a2-3d58d9e09b9a",
  "extra_id": "ORDER-12345",
  "sent_via": "viber",
  "matching_template_id": 0
}

콜백 필드 설명

필드유형설명
’숫자’문자열수신자 전화번호.
‘시간’번호Unix 밀리초 단위의 이벤트 타임스탬프입니다.
상태번호단순화된 상태 식별자(상태 코드 표 참조)
하위 상태번호자세한 상태 식별자(하위 상태 코드 표 참조)
hyber_status번호자세한 SMSBAT 내부 상태 코드(Hyber 상태 표 참조)
메시지_ID문자열전송 시 생성되는 SMSBAT 메시지 ID(GUID)입니다.
extra_id문자열원래 요청에 제공된 고객측 ID입니다.
sent_via문자열메시지를 처리한 채널: viber, sms 또는 rcs.
‘일치하는_템플릿_ID’번호Viber 템플릿 일치 상태(해당되는 경우)

상태 매핑

1. 단순화된 상태(status)

코드의미
’1’메시지가 수락되었거나 전달 중입니다.
2메시지가 전달되었습니다.
3처리 또는 배송 오류입니다.

2. 세부 상태(하위 상태)

코드의미
’12’처리가 승인되었습니다.
23배달되었습니다.
24보거나 읽었습니다.
35TTL(만료됨) 내에 배송되지 않습니다.
36배송 오류.

3. 채널 유형(sent_via)

채널설명
’바이버’Viber 채널에서 생성된 상태입니다.
SMSSMS 채널에서 생성된 상태입니다.
rcsRCS 채널에서 생성된 상태입니다.

4. 자세한 SMSBAT 상태(hyber_status)

코드채널상태하위 상태의미
23033’바이버’223Viber 메시지가 전달되었습니다.
24013’바이버’224수신자가 Viber 메시지를 읽었습니다.
36013’바이버’336Viber 내부 오류입니다.
36023’바이버’336Viber 서비스 ID가 잘못되었거나 사용할 수 없습니다.
36033’바이버’336Viber 페이로드 데이터가 잘못되었습니다.
36037’바이버’336Viber 이미지 URL이 너무 깁니다.
36038’바이버’336Viber 이미지 URL이 잘못되었습니다.
36039’바이버’336Viber 텍스트가 너무 깁니다.
36044’바이버’336Viber 텍스트가 비어 있습니다.
36053’바이버’336지원되지 않는 Viber 메시지 유형입니다.
36063’바이버’336Viber 매개변수가 잘못되었습니다.
36073’바이버’336Viber 공급자 시간이 초과되었습니다.
36083’바이버’336수신자가 Viber 발신자를 차단했습니다.
36093’바이버’336수신자는 Viber 사용자로 등록되어 있지 않습니다.
36103’바이버’336Viber를 지원하는 Android/iOS 기기를 찾을 수 없습니다.
36113’바이버’336Viber 전송을 위한 승인되지 않은 IP 주소입니다.
36123’바이버’336중복된 Viber 메시지가 감지되었습니다.
36143’바이버’336Viber 결제 오류입니다.
36153’바이버’336플랫폼 블랙리스트에 의해 메시지가 차단되었습니다.
36163’바이버’336Viber 플랫폼 내부 처리 오류입니다.
36173’바이버’336Viber 라벨이 잘못되었거나 누락되었습니다.
36183’바이버’336Viber TTL 값이 잘못되었습니다.
12011sms / rcs’1''12’SMS/RCS가 허용됩니다.
36011sms / rcs’1''12’SMS/RCS가 이동 중입니다.
23011sms / rcs223SMS/RCS가 전달되었습니다.
35015sms / rcs335SMS/RCS가 만료되었습니다(TTL 내에 전달되지 않음).
36021sms / rcs336SMS/RCS 메시지가 삭제되었습니다.
36031sms / rcs336SMS/RCS를 전송할 수 없습니다.
36041sms / rcs336SMS/RCS 전송 상태를 알 수 없습니다.
36051sms / rcs336SMS/RCS 메시지가 거부되었습니다.