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

기술정보센터

RESTful 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 정보 : 183.110.234.54/ 183.110.234.55

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)

발신번호는 숫자형식을 지원합니다.
한국으로 90byte를 초과하는 메시지 발송 시 LMS(첨부파일 없는 MMS) 형태로 자동 전환됩니다.

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를 통해 확인 할 수 있습니다.

* [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값 전달

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를 발송합니다.
리포트 관련 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’ 인 경우, 건별 인코딩 오류 처리
Download(KOR)

기술지원 상담

서비스 운영실

곽동규/책임  Email help@Infobank.net  Tel. 031-628-1511

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