e
EBUT Developer Portal 이벗 API 통합 문서 · v3 · api.ebut.co.kr
핵심 개념 · Error Codes

에러 코드

이벗 API v3 의 모든 에러는 일관된 구조로 반환됩니다. success: false + error.code + error.message 조합으로 클라이언트에서 안전하게 분기 처리할 수 있습니다.

공통 에러 응답

HTTP 400 | 401 | 403 | 404 | 409 | 429 | 500
{
  "success": false,
  "error": {
    "code": "ERROR_CODE",
    "message": "사람이 읽을 수 있는 에러 메시지"
  }
}
왜 HTTP status 와 별도로 code 가 있나요? HTTP status 만으로는 같은 400 안에서도 "필수 누락"과 "값 형식 오류"를 구분할 수 없습니다. error.code 로 정확히 분기하고, error.message 는 사용자 안내용으로 활용하세요.

인증 에러

codeHTTP설명
AUTH_MISSING_TOKEN401인증 헤더 누락
AUTH_INVALID_TOKEN401키/토큰 유효하지 않음
AUTH_EXPIRED_TOKEN401JWT 만료 — refresh 필요
AUTH_FORBIDDEN403접근 권한 부족

상세 처리 방법은 인증 가이드 를 참고하세요.

공통 에러

codeHTTP설명
INVALID_PARAMETER400파라미터 형식 / 값 오류
REQUIRED_PARAMETER400필수 파라미터 누락
NOT_FOUND404리소스 없음
DUPLICATE409중복 데이터
RATE_LIMIT_EXCEEDED429요청 한도 초과 (Rate Limits)
INTERNAL_ERROR500서버 내부 오류 — 운영팀 문의

WMS · 매니저 도메인 에러

codeHTTP설명
ORDER_NOT_FOUND404주문 없음
ORDER_ALREADY_SHIPPED409이미 출고된 주문 — 수정 불가
ORDER_DRAFT_NOT_FOUND404임시(오픈DB) 주문 없음
INVENTORY_INSUFFICIENT400재고 부족
RETURN_CANCEL_EXPIRED400반품 철회 가능 시간(18시) 초과
PRODUCT_NOT_FOUND404상품 없음
OPTION_NOT_FOUND404옵션 없음

이벗캠 에러

codeHTTP설명
CAM_INVOICE_NOT_FOUND404해당 송장번호로 영상 없음

페이똑딱 에러

codeHTTP설명
PAY_DEPOSIT_NOT_FOUND404입금 내역 없음
PAY_ALREADY_PROCESSED409이미 처리된 입금

부분 실패 (행 단위)

일괄 등록 endpoint (예: POST /orders/draft) 는 전체가 모두 성공하거나 모두 실패하는 방식이 아니라, 행 단위로 성공/실패가 갈리는 "부분 실패" 응답을 사용합니다.

HTTP 200
{
  "success": true,
  "data": {
    "succeeded_count": 8,
    "failed_count": 2,
    "succeeded": [
      { "row": 1, "order_no": "20260614-000001" },
      { "row": 2, "order_no": "20260614-000002" }
    ],
    "failed": [
      {
        "row": 3,
        "error": {
          "code": "PRODUCT_NOT_FOUND",
          "message": "상품 코드 'X123' 을 찾을 수 없습니다."
        }
      }
    ]
  }
}
주의 — HTTP 200 이어도 실패가 섞일 수 있습니다 일괄 등록 endpoint 는 success: true 라도 반드시 failed_count / failed[] 를 확인하셔야 합니다. 행 단위로 재처리 로직이 필요한 경우가 많습니다.

트러블슈팅

401 이 반복됩니다

400 + REQUIRED_PARAMETER

429 가 자주 발생합니다

Rate Limits 가이드 의 모범 사례(백오프·배치·캐싱·비동기 큐)를 적용하세요.

500 — 서버 내부 오류

재현 가능한 요청 본문 + 요청 시각(분 단위 정확히) + X-Request-Id 헤더 값을 모아 help@ebut.co.kr 로 보내주시면 빠르게 분석해드립니다.