RESTful API - 쉽고 간단한 API 연동으로 소중한 작업시간과 비용을 줄여보세요.

기술정보센터

HTTP API

간결하고 쉬운 HTTPS 방식으로 API 연동하여 문자 메시지를 보내실 수 있습니다.  국내 메시지 전송은 물론 국제 장문 문자, 현지어 전송 등 다양한 메시지 전송이 가능합니다.  API 연동에 대한 자세한 내용은 아래에서 확인하실 수 있으며, 연동 테스트 신청 및 서비스 이용 상담은 아래의 버튼을 눌러주세요.

RESTful API 신청하기

HTTP 응용 프로그래밍 연동 방식

1. Request HTTPS: TCP/IP 통신를 이용하며 Client는 HTTP API 규격에 맞춰서 메시지 전송
2. Response HTTPS: Server는 Client로부터 전달 받은 메시지 전송요청 응답
3. SEND SMS: Server는 통신사에 메시지를 전송
4. Get Reports: 통신사업자로부터 메시지 리포트 수신
5. Get Reports: 통신사업자가 인포뱅크 Server로 전송한 메시지 리포트를 Client로 전달
6. Response Reports: 메시지 리포트 정상 수신 여부에 대한 응답을 Server에 전달

전문 규격

HTTPS METHOD
전송 요청을 위해 HTTPS GET/POST 방식을 제공하며, 전송 응답은 XML 방식을 사용합니다.

ENCODING
UTF-8 인코딩을 기본으로 제공합니다.

TIMEZONE
메시지 기준 시간은 한국 표준 시 KST(UTC+9)를 사용합니다.

Base URL

BASE INFORMATION
HTTPS https://rest.supersms.co/sms/xml

결과 정보 수신

리포트를 수신 하기 위해서는 인포뱅크에서 제공하는 서버 IP에 대한 접근을 허용해야 하며,
리포트를 수신할 고객사측 IP/PORT 에 대한 정보는 bizplus@infobank.net 로 접수 해야 합니다.
- 결과 송신 서버 IP 정보 : 211.233.70.235 / 211.233.70.236

Request format

전세계 언어를 지원하기 위해 UTF-8인코딩을 사용합니다.

* [M] Mandatory:필수 [O] Optional:옵션

Request format
Parameter M/O TYPE Description
from M Char 발신자 전화번호 (최대 16bytes)
ex) 한국 발송 시 01029652189 (국가코드 미포함)
해외 발신 시 821029652189 (국가코드 포함)
to_country M Char 국가코드 (1 ~ 3 bytes)
ex) 한국 발송 시, to_country=82
to M Char 수신자 전화번호 (최대 13bytes)
ex) 한국 발송 시, to=1093446280
title O Char 메시지 제목 (최대 40 byte)
- 메시지 제목은 UTF-8과 URL 인코딩 필요
- 한국 장문 발송 시에만 유효함
message M Char 메시지 내용
- 메시지 내용은 UTF-8과 URL인코딩 필요
report_req M Char 레포트 수신 여부
- ‘1’ : 레포트 수신이며, 필수 셋팅 필요
charset O Char 인코딩 설정 (1:UTF-8, 2:euc-kr)
- 해당 값을 설정하지 않으면 UTF-8로 기본 인코딩 됨.
ex) charset=2 (euc-kr)
ref O Char 여분 필드, 고객이 설정할 수 있는 필드 값
(최대 길이 20 bytes. 영.숫자만 가능 )
ttl O Char 메시지 유효 시간(초단위)
ex) ttl=86400 (24hour = 60 * 60 * 24)
payment_code O Char 정산용 부서코드 (최대 길이 20 byte)
client_sub_id O Char Sender ID, 메시지 서명을 복수로 지정하기 위한 구분자
(최대 길이 20 byte)
origin_cid O Char 최초 발신사업자 식별코드

발신번호는 숫자형식을 지원합니다.
한국으로 90byte를 초과하는 메시지 발송 시 LMS(첨부파일 없는 MMS) 형태로 자동 전환됩니다.
origin_cid 필드는 한국으로 인터넷 문자 전송 시 최초 발신사업자를 특정하기 위해 문자사업자(특수부가사업자)의 식별코드 값입니다. (상세설명은 부록 5.2 최초 발신사업자 식별코드 참조)

Request Example 1 (PHP)

<?php
$url = 'https://rest.supersms.co/sms/xml?' . http_build_query([
    'id' => 'infobank_test',
    'pwd' => 'pwinfobank',
    'from' => '01029652189',
    'to_country' => '82',
    'to' => '1093446280',
    'message' => 'Hello Infobank',
    'report_req' => '1'
]);

$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);

$xml = simplexml_load_string($response);
if ($xml === false) {
    echo "Failed loading XML: ";
} else {
    //print_r($xml);
    //echo($xml->to_country);
    //echo($xml->to);
    echo("response code : " . $xml->messages->message->err_code);
} ?>

Request Example 2 (Shell(BASH))

#!/bin/bash
curl 'https://rest.supersms.co/sms/xml' \
-d id=infobank_test \
-d pwd=pwinfobank \
-d from=01029652189 \
-d to_country=82 \
-d to=1093446280 \
--data-urlencode "message=Hello Infobank" \
-d report_req=1

Request Example 3 (Python)

import urllib

params = {
    'id': 'infobank_test',
    'pwd': 'pwinfobank',
    'from': '01029652189',
    'to_country': '82',
    'to': '1093446280',
    'message': 'Hello Infobank',
    'report_req': '1'
}

url = 'https://rest.supersms.co/sms/xml?' + urllib.urlencode(params)

response = urllib.urlopen(url)
print response.read()

Request Example 4 (Ruby)

require "net/http"
require "uri"

uri = URI.parse("https://rest.supersms.co/sms/xml")
params = {
    "id" => "infobank_test",
    "pwd" => "pwinfobank",
    "from" => "01029652189",
    "to_country" => "82",
    "to" => "1093446280",
    "message" => "Hello Infobank",
    "report_req" => "1"
}

response = Net::HTTP.post_form(uri, params)

puts response.body

Request Example 5 (nodeJS)

var https = require('https');

var options = {
  host: 'rest.supersms.co',
  path: 'sms/xml?id=' + encodeURIComponent('infobank_test') +
    '&pwd=' + encodeURIComponent('pwinfobank') +
    '&from=' + encodeURIComponent('01029652189') +
    '&to_country=' + encodeURIComponent('82') +
    '&to=' + encodeURIComponent('1093446280') +
    '&message=' + encodeURIComponent('Hello Infobank') +
    '&report_req=' + encodeURIComponent(1)
};

var req = https.request(options);
req.end();

var responseData = '';
req.on('response', function(res){
  res.on('data', function(chunk){
    responseData += chunk;   });

  res.on('end', function(){
    console.log(responseData);
  });
});

Request Response format

Request 에 대한 Response 를 통해 전송요청에 대한 성공/실패 여부를 확인 할 수 있으며,
단말기 도착여부는 Report를 통해 확인 할 수 있습니다.
신청한 계정에 한하여 국제메시지는 DLR 정보를 수신 받을 수 있습니다. (rslt_type으로 기존 리포트와 구분)

* [M] Mandatory:필수 [O] Optional:옵션

Response format
Parameter M/O TYPE Description
msgid M Char 발송된 메시지에 부여되는 메시지 아이디
to_country M Char 국가코드 (1-3 byte)
ex) 한국 발송 시, <to_country>82</to_country>
to M Char 수신자 번호
err_code M Char 메시지 전송 결과 코드
messages cnt M Char 메시지 건수
msg_type M Char 메시지 타입 (1. SMS, 2. MMS)
ex) MMS로 메시지 발송된 경우, <msg_type>2</msg_type>
ref O Char 여분 필드, 고객이 설정할 수 있는 필드 값
- Request에서 설정한 ref값 전달

Request Response Example 1 (성공)

<?xml version='1.0' encoding='UTF-8' ?>
<submit_response>
<to_country>82</to_country>
<to>1093446280</to>
<messages cnt=”1”>
<message>
<msgid>00000123</msgid>
<err_code>R000</err_code>
<msg_type>1</msg_type>
</message>
</messages>
<ref>AA123456789</ref>

</submit_response>

Request Response Example 2 (실패)

<?xml version='1.0' encoding='UTF-8' ?>
<submit_response>
<to_country>82</to_country>
<to>1093446280</to>
<messages cnt=”1”>
<message>
<err_code>R007</err_code>
</message>
</messages>
<ref>AA123456789</ref>
</submit_response>

err_code 부분은 ‘4. 응답 및 결과코드’ 참조

Report Format

Report는 GET방식으로 클라이언트가 제공한 접속정보로 결과값을 전달합니다.

* [M] Mandatory:필수 [O] Optional:옵션

Report Format
Parameter M/O TYPE Description
msgid M Char 발송된 메시지에 부여되는 메시지 아이디
to M Char 수신자 번호(국가코드를 제외한 수신번호)
ex) 1093446280
to_country M Char 수신자 국가코드
ex) 82
err_code M Char 리포트 세부 결과 코드
network M Char Mobile network MCCMNC. (MCC:국가코드, MNC:이통사코드)
ex) 45005 (SKT), 45006 (LGU+), 45008 (KT)
rescnt M Char 실제 메시지 과금 건수
*Concatenated Message경우, 실제 메시지 과금 된 건수
sent_date O Char 단말기 도착 시간
- 한국 표준시 기준 : KST(UTC+9), YYYYMMDDHHMMSS
ref O Char 여분 필드, 클라이언트 설정 값
- request에서 설정한 ref값 전달
rslt_type O Char 리포트 종류(0: 최종결과, 3: DLR정보)

REPORT Example 1(성공)

?msgid=00000123&to=1093446280&to_country=82&ref=AA123456789&network=45008
&rescnt=1&err_code=1000&sent_date=20150322140641

REPORT Example 2 (실패)

- 단말기 미 수신시 단말기 도착 시간(sent_date)을 생략한다.

?msgid=00000123&to=1093446280&to_country=82&ref=AA123456789&network=45008&rescnt=0&err_code=3001

자세한 err_code & status는 ‘4.2 Report Return Code’ 참조

Report Response Format

Report를 수신을 설정한 클라이언트는 인포뱅크가 발송한 Report에 대하여 Report Response를 전송하여야 합니다. Report Response가 포맷과 맞지 않거나 연결에 실패할 경우 인포뱅크는 Report 전달을 3회 재시도 합니다.
리포트 관련 IP/PORT 정보는 ‘3.2 결과 정보 수신’ 참조

* [M] Mandatory:필수 [O] Optional:옵션

Report Response Format
Parameter M/O TYPE Description
msgid M Char 발송된 메시지에 부여되는 메시지 아이디
to_country M Char 국가코드 (1-3 byte)
ex. 한국 발송 시, to_country=82
to M Char 수신자 번호

Report Response Example

<?xml version='1.0' encoding='UTF-8' ?>
<report_response>
<msgid>00000123</msgid>
<to_country>82</to_country>
<to>1093446280</to>

</report_response >

결과값 참고사항

Response Return Code

Response Return Code
Status code Description
SUCCESS R000 성공
FAILURE R001 server busy
INVALID R002 인증 실패
INVALID R003 수신자 번호 형식 오류
INVALID R004 발신자 번호 형식 오류
INVALID R005 메시지 형식 오류
INVALID R006 유효하지 않은 TTL
INVALID R007 유효하지 않은 파라미터 오류
INVALID R008 스팸 필터링
INVALID R009 서버 capacity 초과, 재시도 요망
INVALID R010 등록되지 않은 발신번호 사용
INVALID R011 발신번호 변작 방지 기준 위반 발신번호 사용
INVALID R012 해당 서비스유형 전송권한 없음
INVALID R013 발송 가능건수 초과
UNKNOWN R999 알려지지 않은 에러

Report Return Code

Report Return Code
Status code Description
SUCCESS 1000 성공 : 단말기에 메시지 정상 도착
FAILURE 2000 전송 시간 초과
FAILURE 2001 전송 실패 (무선망단)
FAILURE 2002 전송 실패 (무선망 -> 단말기단)
FAILURE 2003 단말기 전원 꺼짐
FAILURE 2004 단말기 메시지 버퍼 풀
FAILURE 2005 음영지역
FAILURE 2006 메시지 삭제됨
FAILURE 2007 일시적인 단말 문제
INVALID 3000 전송할 수 없음
INVALID 3001 가입자 없음
INVALID 3002 성인 인증 실패
INVALID 3003 수신번호 형식 오류
INVALID 3004 단말기 서비스 일시 정지
INVALID 3005 단말기 호 처리 상태
INVALID 3006 착신 거절
INVALID 3008 기타 단말기 문제
INVALID 3009 메시지 형식 오류
INVALID 3010 MMS 미지원 단말
INVALID 3011 서버 오류
INVALID 3012 스팸
INVALID 3013 서비스 거부
INVALID 3014 기타
INVALID 3015 전송 경로 없음
INVALID 3016 첨부파일 사이즈 제한 실패
- 발신번호 변작방지 세칙위반
- 동보 메시지 전송 시 일부 건 세칙 위반
INVALID 3018 휴대폰 가입 이동통신사를 통해 발신번호 변작 방지 부가 서비스에 가입 된 번호를 발신번호로 사용하는 경우
INVALID 3019 KISA or 미래부에서 모든 고객사에 대하여 차단 처리 요청된 번호를 발신 번호로 사용하는 경우
INVALID 3022 Charset conversion error
- 동보 사용시 국가코드 ‘82’ 인 경우, 건별 인코딩 오류 처리
INVALID 3025 24시간 이내 중복 발송
INVALID 3029 광고 전송 제한 시간 발송
INVALID 3035 해당 통신사 장애 설정 으로 전송 불가
INVALID 3036 KISA 최초 발신자 식별코드 오류로 발송 불가

참고사항

Concatenated message
해외에서 사용하는 160자 이상의 메시지를 전송하기 위한 전송 방식으로 일부 국가와 통신사에서 지원하며 실제 휴대폰에서는 전체 메시지가 1건으로 보입니다. 한국의 LMS와 유사하지만 Standard SMS 1건을 기준 글자수로 하여 글자 수에 따라 요금이 부과되는 차이점이 있습니다.
예) 160자가 Standard SMS인 국가로 350자의 메시지를 전송할 수 있으며,
요금은 153자+153자+44자 = 350자로 3건의 요금이 부과됩니다.
concatenated SMS 이용 시 긴 문자 처리를 위한 코드가 포함되어 153자가 1건으로 과금됩니다.

최초 발신사업자 식별코드(originCID)
인터넷 문자 전송 시 최초 발신사업자를 특정하기 위해 삽입하는 식별코드이며, 특수한 유형의 부가통신사업자 등록번호(9자리 숫자)를 사용합니다.
최초 발신사업자가 재판매사업자이면 최초 재판매사업자 등록번호가 수록되고, 재판매사업자를 통하지 않고 문자중계사로 발송할 경우 문자중계사의 등록번호가 수록됩니다.
예1) 기업 → 재판매사업자1 → 재판매사업자 2 → 문자중계사 → 이동통신사
: 재판매사업자1의 등록번호가 삽입
예2) 기업 → 문자중계사 → 이동통신사
: 문자중계사의 등록번호가 삽입

FAQ

Q. Report 전달에 제약사항이 있나요?
Report 전달이 실패 할 경우 메시지 당 최대 3회 까지 재시도 합니다. 3회 초과 시 해당 리포트는 전달되지 않습니다.

기술지원 상담

Email help@Infobank.net 

Tel. 031-628-1511

Back to top
  • 상담요청하기
  • CONTACT US
  • FAQ
  • 상담 게시판