핵심 개념

응답 봉투와 에러

모든 응답을 감싸는 봉투의 모양과 숫자 에러 코드를 읽는 법. 스펙 문서와 실제가 다른 지점입니다.

이 문서에서 가장 먼저 읽어야 할 페이지입니다. 성공이든 실패든 모든 응답이 같은 봉투에 담겨 오는데, 자동 생성된 OpenAPI 문서에는 그 봉투가 그려지지 않습니다. 모르고 짜면 첫 요청부터 값을 찾지 못합니다.

성공 응답

실제로 쓰는 값은 전부 data 안에 있습니다.

{
  "success": true,
  "message": "Request processed successfully",
  "data": {
    "groupId": "grp_01HQZX8N2K4M7P9R3T5V6W8Y0A",
    "status": "QUEUED",
    "sendCount": 1206
  },
  "timestamp": "2026-08-25T14:32:10.482+09:00",
  "method": "POST",
  "path": "/public/v1/messages/alimtalk",
  "correlationId": "c7f1a2b4-9e30-4d15-8a6c-2f0b7d9e1c34"
}

실패 응답

모양이 거의 같지만 두 곳이 다릅니다 — data 가 빠지고 숫자 code 가 붙습니다.

{
  "success": false,
  "message": "유효하지 않은 API 키입니다.",
  "code": 8621,
  "timestamp": "2026-08-25T14:32:10.482+09:00",
  "method": "POST",
  "path": "/public/v1/messages/alimtalk",
  "correlationId": "c7f1a2b4-9e30-4d15-8a6c-2f0b7d9e1c34"
}
  • successboolean필수

    실패 응답에서는 항상 `false` 입니다.

    예: false

  • messagestring필수

    실패 사유. 그대로 사용자에게 보여 줄 수 있는 한국어 문구입니다.

    예: "유효하지 않은 API 키입니다."

  • codenumber선택

    숫자 에러 코드. **항상 오지는 않습니다** — 프레임워크가 먼저 거절한 요청(잘못된 JSON, 없는 경로 등)에는 이 필드가 없습니다. HTTP 상태와 함께 보세요.

    예: 8621

  • dataobject선택null 가능

    일부 코드만 싣는 부가 정보 (예: 한도 초과 시 현재값·한도). 없는 경우가 더 많습니다.

  • timestampstring필수date-time

    응답을 만든 시각 (KST)

  • methodstring필수

    요청 메서드. 요청을 그대로 되비춰 줍니다.

    예: "POST"

  • pathstring필수

    요청 경로

    예: "/public/v1/messages/alimtalk"

  • correlationIdstring필수

    요청 추적 ID. **문의할 때 이 값을 함께 알려 주세요** — 서버 로그를 이 값으로 찾습니다.

code 를 읽을 때 주의할 것

  • 우리가 의도적으로 던진 오류가 아니면 `code` 는 9000 으로 뭉뚱그려집니다. 원인은 `message` 와 `correlationId` 로 구분해 주세요.
  • 프레임워크가 먼저 거절한 요청(잘못된 JSON, 너무 큰 본문, 없는 경로 등)에는 `code` 필드가 **아예 없습니다.** `code` 를 필수로 두고 파싱하면 그 경우에 깨집니다 — 항상 HTTP 상태를 함께 보세요.

코드 대역

앞자리로 원인의 갈래를 알 수 있습니다. 정확한 뜻은 각 엔드포인트 페이지의 「에러」 표에 있습니다.

대역갈래
1xxx잘못된 요청 · 유효성
2xxx인증
3xxx권한
69xx발송 접수
695x발송 결과 조회
86xxAPI 키
862xPublic API 인증 · 차단
9xxx서버 · 외부 연동

문의할 때

correlationId 를 함께 알려 주세요. 서버 로그를 이 값으로 찾습니다 — 「어제 오후에 실패했어요」보다 훨씬 빠릅니다. 실패 응답을 로그에 남길 때 이 값을 반드시 함께 기록해 두시길 권합니다.