앱 등록
개발자포털 [내 앱] 메뉴에서 신규
애플리케이션을 등록합니다.
DJBank Open API를 호출하기 위한 ClientID/Secret 기반 토큰 발급과
Bearer 인증 호출 방법을 단계별로 설명합니다.
개발자포털 [내 앱] 메뉴에서 신규
애플리케이션을 등록합니다.
승인 완료 후 발급된 자격증명을
서버 환경변수에 안전하게 보관.
호출하려는 API에 필요한 scope
권한이 부여됐는지 확인합니다.
ClientID/Secret 으로 토큰 엔드포인트에 POST 합니다.
https://openapi.djbank.co.kr/dj/oauth/token
x-www-form-urlencoded
| PARAMETER | REQ | 설명 |
|---|---|---|
grant_type |
필수 | 고정값 "client_credentials" |
client_id |
필수 | 발급받은 클라이언트 식별자 |
client_secret |
필수 | 발급받은 비밀 키 (서버 보관) |
scope |
필수 | 고정값 "api" |
⚠ Content-Type: application/x-www-form-urlencoded 헤더 필수
# 액세스 토큰 발급 curl -X POST 'https://openapi.djbank.co.kr/dj/oauth/token' \ -H 'Content-Type: application/x-www-form-urlencoded' \ -d 'grant_type=client_credentials' \ -d 'client_id=YOUR_CLIENT_ID' \ -d 'client_secret=YOUR_CLIENT_SECRET' \ -d 'scope=api' # 응답: 200 OK + JSON
정상 발급 시 200 OK 와 함께 다음 JSON 을 반환합니다.
{
"access_token": "eyJhbGciOiJSUzI1NiJ9...",
"token_type": "bearer",
"expires_in": 86399,
"scope": "api",
"jti": "f47ac10b-58cc-4372-..."
}
# 응답 본문은 캐싱하여 expires_in 동안 재사용 가능
| FIELD | TYPE | 설명 |
|---|---|---|
access_token |
string | Bearer 호출에 사용할 토큰 |
token_type |
string | 고정값 "bearer" |
expires_in |
int | 유효 시간(초). 기본 86400 |
scope |
string | 부여된 권한 범위 (api) |
jti |
string | 토큰 고유 ID (감사/취소용) |
X-AUTH-TOKEN 헤더에 Bearer 토큰을 실어 보호 자원 API 를 호출합니다.
X-AUTH-TOKEN:
Bearer eyJhbGciOiJSUzI1NiJ9...
# 보호 자원 API 호출 curl -X GET \ 'https://openapi.djbank.co.kr/api/v1/accounts' \ -H 'X-AUTH-TOKEN: Bearer eyJhbGciOiJSUzI..' \ -H 'Accept: application/json' # 응답 HTTP/1.1 200 OK { "accounts": [ ... ] }
| HTTP | ERROR CODE | 의미 | 해결 가이드 |
|---|---|---|---|
| 401 | E.GW.AUTH_FAIL |
client not found (client_id 오류) | client_id 확인 |
| 401 | E.GW.AUTH_FAIL |
Bad client credentials (client_secret 불일치) | client_secret 확인 |
| 401 | E.GW.AUTH_FAIL |
Include unacceptable scope (허용되지 않은 scope) | scope 를 api 로 설정 |
| 401 | E.GW.AUTH_FAIL |
Access token expired (토큰 만료) | 토큰 재발급 후 재시도 |
| 400 | E.GW.AUTH_FAIL |
Invalid Mandatory Field {grant_type} (누락) | grant_type 포함 여부 확인 |
| 400 | E.GW.AUTH_FAIL |
Invalid Mandatory Field {client_id} (누락) | client_id 포함 여부 확인 |
| 400 | E.GW.AUTH_FAIL |
Invalid Mandatory Field {client_secret} (누락) | client_secret 포함 여부 확인 |
| 400 | E.GW.AUTH_FAIL |
Invalid Mandatory Field {scope} (누락) | scope=api 포함 여부 확인 |
자격증명 불일치 시 401 Unauthorized 와 함께 다음 JSON 을 반환합니다.
{
"error": "E.GW.AUTH_FAIL",
"error_description":
"Unauthorized. [Bad client credentials(Client Secret is not match)]"
}
# 처리: ClientID·Secret 확인 후 재시도
| FIELD | TYPE | 설명 |
|---|---|---|
error |
string | 에러 코드 (예: E.GW.AUTH_FAIL) |
error_description |
string | 오류 상세 설명 (사람이 읽을 수 있는 형태) |
⚠ error 코드는 게이트웨이 표준 코드 (E.GW.AUTH_FAIL)
사용 가능한 DJBank Open API 카탈로그를 확인하세요.