자주 터지는 커머스 오류를 코드별 원인과 대응으로 묶어요.
Commerce API(고객, 상품, 주문, 구독 등) 연동 과정에서 발생하는 에러 코드예요.
이럴 때 필요해요: Commerce API 호출 시 에러 응답을 받았을 때, 주문·구독·상품 상태 코드를 확인할 때
자주 만나는 에러 TOP 4
연동 중 가장 많이 발생하는 에러와 해결법이에요.
1INVENTORY_INSUFFICIENT 재고 부족
흔한 원인: 동시 주문 시 재고 체크 후 결제 사이에 다른 주문이 먼저 처리됨.
- 주문서 생성 시점에 재고를 미리 차감(예약)하는 것을 권장해요
2ORDER_USER_INVALID 결제 요청 회원정보 불일치
흔한 원인: 프론트엔드에서 보낸 user.id와 서버의 로그인 세션 사용자가 다름.
3SUBSCRIPTION_WALLET_BLANK 빌링키 미등록
흔한 원인: 구독 결제 시 빌링키 발급 단계를 건너뜀. 빌링키 삭제 후 구독 결제 시도.
4INVOICE_PRICE_GT_0 결제금액 0원
흔한 원인: 할인 적용 후 금액이 0원 이하가 됨. price 파라미터 누락.
에러 응답 형식
HTTP/1.1 400 Bad Request
Content-Type: application/json
{
"error_code": "CANCEL_ALREADY_DONE",
"message": "이미 결제 취소 처리가 되었습니다"
}json
| 필드 |
타입 |
설명 |
| error_code |
String |
에러 코드 텍스트 (아래 코드표의 숫자 코드에 대응) |
| message |
String |
에러 메시지 (한국어) |
| payload |
Object |
추가 데이터 (에러에 따라 포함, 없으면 생략) |
| pg_error_code |
String |
PG사 에러 코드 (결제 관련 에러에서만 포함) |
아래 코드표의 숫자 코드(예: 3710)는 내부 에러 코드예요. API 응답에서는 이에 대응하는 텍스트(예: "CANCEL_ALREADY_DONE")가 error_code 필드로 반환돼요.
인증 관련 에러 {#인증-관련-에러}
| 코드 |
메시지 |
대처 방법 |
AUTHENTICITY_TOKEN_EXPIRE |
인증 정보가 올바르지 않아요 |
Client Key 또는 Secret Key를 관리자 > 개발자 설정에서 다시 확인해요 |
APP_KEY_NOT_FOUND |
Client Key를 찾지 못했어요 |
관리자 > 개발자 설정 > API 연동키에서 키를 확인해요 |
APP_KEY_PLATFORM_NOT_MATCH |
요청한 Platform Type과 SDK Platform Type이 일치하지 않는다 |
Client Key의 플랫폼 타입(Web/Android/iOS)을 확인해요 |
APP_KEY_NOT_REST |
요청한 Client Key가 REST API 키가 아니에요 |
REST API용 Client Key를 사용해요 |
APP_FIREWALL_BLOCKED |
접근이 허가된 IP가 아니에요 |
관리자 > 개발자 설정 > 보안 정책에서 IP 보안 설정을 확인해요 |
APP_SK_NOT_MATCHED |
Secret Key가 올바르지 않아요 |
관리자 > 개발자 설정에서 Secret Key를 다시 확인해요 |
APP_AT_AUTHORIZE_TYPE_INVALID |
Authorization 인증 타입이 올바르지 않아요 |
Authorization: Basic {base64} 형식인지 확인해요 |
APP_AT_AUTHORIZE_HEADER_BLANK |
Authorization 헤더가 비어 있어요 |
Authorization: Basic {base64(client_key:secret_key)} 형식으로 헤더를 추가해요 |
APP_API_SCOPE_NOT_MATCHED |
현재 사용 중인 API 키에 필요한 권한이 없어요 |
관리자 > 개발자 설정 > API 연동키에서 API Scope 권한을 추가해요 |
ONLY_INTERNAL_SERVER |
부트페이 내부용 API예요. 외부에서는 사용할 수 없어요 |
외부에서 호출 가능한 API 엔드포인트를 사용해요 |
SESSION_RESULT_BLANK |
세션 정보가 비어 있어요 |
다시 로그인하거나 API 인증 정보를 확인해요 |
SERVICE_WALLET_REQUIRED |
서비스 이용료 결제 등록이 필요해요 |
부트페이 관리자 > 이용요금 > 결제수단 관리에서 지갑을 추가해요 |
CURRENCY_DATA_INVALIDATE |
통화/시간 데이터 형식이 잘못됐어요 |
ISO 8601 표준시 포맷으로 보내준다 |
DB_ERROR |
데이터베이스 오류가 발생했어요 |
잠시 후 재시도하거나 관리자에 문의해요 |
REST_API_ERROR |
REST API 처리 중 오류가 발생했어요 |
요청 파라미터를 확인하고 재시도해요 |
공통 에러
| 코드 |
메시지 |
대처 방법 |
DB_ERROR |
데이터베이스 오류가 발생했어요 |
잠시 후 재시도하거나 관리자에 문의해요 |
EX_UID_DUPLICATED |
이미 존재하는 ex_uid예요 |
다른 ex_uid를 사용해요 |
PROCESS_DUPLICATED |
이미 처리된 요청이에요 (중복 요청) |
중복 요청인지 확인해요 |
에러 코드
Commerce API(고객, 상품, 주문, 구독 등) 연동 과정에서 발생하는 에러예요.
고객 관련 에러
| 코드 |
메시지 |
대처 방법 |
USER_NAME_BLANK |
고객명은 필수예요 |
name 파라미터를 입력해요 |
USER_PHONE_BLANK |
전화번호는 필수예요 |
phone 파라미터를 입력해요 |
USER_EMAIL_BLANK |
이메일을 입력해요 |
email 파라미터를 입력해요 |
USER_PHONE_OR_EMAIL_BLANK |
전화번호 또는 이메일을 입력해요 |
phone 또는 email을 입력해요 |
USER_ID_EXIST |
이미 사용중인 아이디예요 |
다른 login_id를 사용해요 |
USER_EMAIL_EXIST |
이미 사용중인 이메일이에요 |
다른 이메일을 사용해요 |
USER_ID_BLANK |
로그인 아이디를 입력해요 |
login_id를 입력해요 |
USER_ID_INVALID |
로그인 아이디는 영문+숫자 5~30자예요 |
형식에 맞는 login_id를 입력해요 |
USER_EMAIL_INVALID |
이메일 형식에 맞지 않아요 |
올바른 이메일 형식으로 입력해요 |
USER_LOGIN_FAILED |
가입되지 않은 계정이거나 비밀번호가 틀렸다 |
login_id와 password를 확인해요 |
USER_BLOCKED |
로그인이 제한된 계정이에요 |
쇼핑몰 관리자에게 문의해요 |
USER_LOGIN_PASSWORD_NOT_MATCH |
로그인 비밀번호가 잘못됐어요 |
password를 확인해요 |
USER_JWT_INVALID |
JWT 토큰 정보가 잘못됐어요 |
다시 로그인하여 유효한 JWT를 발급받아요 |
USER_SESSION_INVALID |
세션 정보가 없어요 |
로그인 세션이 유효한지 확인해요 |
USER_ADDRESS_BLANK |
주소를 입력해요 |
address 파라미터를 입력해요 |
USER_PASSWORD_BLANK |
비밀번호를 입력해요 |
password 파라미터를 입력해요 |
USER_NO_LOGIN_ID |
로그인 아이디가 없는 계정이에요 |
고객에게 login_id를 먼저 등록해요 |
USER_EXTERNAL_UID_EXIST |
중복된 회원 UNIQ ID예요 |
다른 ex_uid를 사용해요 |
USER_PASSWORD_INVALID |
유효한 비밀번호가 아니에요 |
비밀번호 형식 조건을 확인해요 |
USER_NOT_FOUND |
회원정보를 찾을 수 없어요 |
user_id를 확인해요 |
USER_DUPLICATE |
중복된 회원정보예요 |
이미 등록된 회원인지 확인해요 |
USER_NOT_MATCH |
일치하는 회원정보가 없어요 |
검색 조건을 확인해요 |
USER_DELETED |
삭제된 회원이에요 |
관리자에게 문의해요 |
고객 그룹 관련 에러
| 코드 |
메시지 |
대처 방법 |
USER_GROUP_NOT_FOUND |
회원 그룹 정보를 찾지 못했어요 |
user_group_id를 확인해요 |
USER_COMPANY_NAME_BLANK |
기업회원은 회사명을 입력해야 해요 |
company_name을 입력해요 |
USER_BUSINESS_NUMBER_BLANK |
기업회원은 사업자 등록번호를 입력해야 해요 |
business_number를 입력해요 |
USER_GROUP_ALREADY_EXISTS |
이미 존재하는 고객 그룹이에요 |
기존 그룹을 확인해요 |
USER_GROUP_EXTERNAL_UID_EXIST |
중복된 사업자 UNIQ ID예요 |
다른 ex_uid를 사용해요 |
USER_GROUP_BUSINESS_NUMBER_ALREADY_EXISTS |
중복된 사업자번호를 가진 그룹이 이미 있어요 |
기존 그룹을 확인해요 |
USER_ALREADY_IN_GROUP |
사용자가 이미 그룹에 속해있어요 |
그룹 멤버 목록을 확인해요 |
USER_NOT_IN_GROUP |
사용자가 그룹에 속해 있지 않아요 |
사용자의 그룹 소속을 확인해요 |
USER_GROUP_ENROLL_FAILED |
사용자 그룹 등록에 실패했어요 |
요청 파라미터를 확인 후 재시도해요 |
USER_GROUP_WITHDRAW_FAILED |
사용자 그룹 추방에 실패했어요 |
요청 파라미터를 확인 후 재시도해요 |
USER_GROUP_NOT_AUTHORIZED |
그룹 정보를 설정할 권한이 없어요 |
그룹 관리자 권한이 있는지 확인해요 |
USER_GROUP_DELETE_UNABLE |
이미 삭제된 그룹이거나 삭제가 불가능한 상태예요 |
쇼핑몰 관리자에 문의해요 |
USER_GROUP_SUBSCRIPTION_PURCHASE_LIMIT_ERROR |
월 구매 한도 금액이 초과했어요 |
구매 한도를 확인하거나 관리자에게 상향 요청해요 |
USER_GROUP_PURCHASE_LIMIT_REQUIRED |
월 구매 한도 금액 값을 입력해요 |
purchase_limit 값을 입력해요 |
USER_GROUP_PURCHASE_LIMIT_BELOW_SUBSCRIBED |
월 구매 한도 금액이 현재 구독 금액보다 적다 |
현재 구독 금액 이상으로 설정해요 |
USER_GROUP_ID_BLANK |
USER_GROUP_ID가 비어 있어요 |
user_group_id를 입력해요 |
USER_GROUP_ROLE_NOT_FOUND |
사업자 관리 역할이 존재하지 않는다 |
역할을 먼저 설정해요 |
상품 관련 에러
| 코드 |
메시지 |
대처 방법 |
PRODUCT_NAME_BLANK |
상품명이 비어있어요 |
name 파라미터를 입력해요 |
PRODUCT_ACTIVE_CANNOT_BE_DELETED |
전시중이거나 판매중인 상품은 삭제할 수 없어요 |
상품을 비활성화한 후 삭제해요 |
PRODUCT_NOT_FOUND |
존재하지 않는 상품이에요 |
product_id를 확인해요 |
PRODUCT_ID_BLANK |
상품ID가 비어 있어요 |
product_id를 입력해요 |
PRODUCT_FROZEN |
판매금지된 상품은 편집/저장할 수 없어요 |
관리자에게 문의해요 |
PRODUCT_DENIED |
상품 조회 권한이 없어요 |
API 인증 권한을 확인해요 |
PRODUCT_PRICE_INVALID |
상품가격은 0원 이상이어야 해요 |
price 값을 확인해요 |
PRODUCT_OPTION_LENGTH_INVALID |
상품 옵션 개수가 일치하지 않는다 |
옵션 배열 길이를 맞춰요 |
PRODUCT_OPTION_DENIED |
상품 옵션이 비활성화된 상태예요 |
옵션 상태를 확인해요 |
PRODUCT_OPTION_NOT_MATCH |
상품 옵션 정보가 없어요 |
option_id를 확인해요 |
PRODUCT_OPTION_PRICE_INVALID |
옵션 합산가격이 0원 이상이어야 해요 |
옵션 가격을 확인해요 |
INVENTORY_INSUFFICIENT |
재고가 부족해요 |
상품 재고를 확인해요 |
INVENTORY_INVALID_QUANTITY |
유효하지 않은 수량이에요 |
qty 값을 확인해요 |
INVENTORY_UPDATE_FAILED |
재고 수정에 실패했어요 |
재시도하거나 관리자에 문의해요 |
EX_UID_DUPLICATED |
이미 존재하는 ex_uid를 가진 데이터가 있어요 |
다른 ex_uid를 사용해요 |
링크페이 관련 에러
| 코드 |
메시지 |
대처 방법 |
INVOICE_PRICE_GT_0 |
결제금액이 0보다 커야 해요 |
price를 0보다 크게 설정해요 |
INVOICE_TAX_FREE_GT_0 |
면세금액이 설정되면 0보다 커야 해요 |
tax_free를 0보다 크게 설정하거나 제거해요 |
INVOICE_TAX_FREE_LTE_PRICE |
면세금액이 판매금액보다 크면 안돼요 |
tax_free ≤ price 조건을 확인해요 |
INVOICE_TYPE_INVALID |
링크페이 결제 종류가 잘못 선택됐어요 |
type 값을 확인해요 |
INVOICE_NOT_FOUND |
링크페이 정보를 찾을 수 없어요 |
invoice_id를 확인해요 |
INVOICE_DENIED |
조회 권한이 없는 회원세션이에요 |
올바른 API 키를 사용하고 있는지 확인해요 |
INVOICE_TARGET_NOT_FOUND |
링크페이에 등록된 사용자 정보가 없어요 |
사용자 정보를 먼저 등록해요 |
INVOICE_ORDER_DONE_EXPIRED |
기간만료된 청구서예요 |
새 청구서를 발급해요 |
INVOICE_NOT_READY |
주문 대기 상태가 아니에요 |
청구서 상태를 확인해요 |
INVOICE_EXPIRED_DATE_INVALID |
만료일이 현재 시간보다 과거예요 |
expired_at을 미래 시간으로 설정해요 |
INVOICE_ITEM_QTY_LT_ZERO |
상품 수량은 0보다 커야 해요 |
qty를 1 이상으로 설정해요 |
INVOICE_PRODUCT_NOT_FOUND |
존재하지 않는 상품이 포함되어 있어요 |
product_id를 확인해요 |
INVOICE_PRODUCT_OPTION_ID_REQUIRED |
옵션이 필요한 상품이 포함되어 있어요 |
product_option_id를 입력해요 |
INVOICE_PRODUCT_OPTION_NOT_FOUND |
존재하지 않는 옵션이 포함되어 있어요 |
product_option_id를 확인해요 |
INVOICE_SUBSCRIPTION_REQUEST_ONLY_ONE |
구독 상품은 하나만 청구서에 포함될 수 있어요 |
구독 상품을 하나만 포함해요 |
INVOICE_PRODUCT_SUBSCRIPTION_DURATION_NOT_FOUND |
존재하지 않는 구독 기간이 포함되어 있어요 |
duration 값을 확인해요 |
INVOICE_PRODUCT_SUBSCRIPTION_DURATION_REQUIRED |
구독 상품은 구독 기간이 필요해요 |
duration 파라미터를 추가해요 |
INVOICE_NEED_USAGE_API_URL |
사용량 기반 구독 상품은 사용량 API URL이 필요해요 |
usage_api_url을 입력해요 |
INVOICE_REQUEST_ID_BLANK |
요청 ID가 필요해요 |
request_id를 입력해요 |
주문 관련 에러
| 코드 |
메시지 |
대처 방법 |
ORDER_NOT_FOUND |
주문내역을 찾지 못했어요 |
order_id 또는 order_number를 확인해요 |
RECEIPT_ID_BLANK |
receipt_id가 비어 있어요 |
receipt_id를 입력해요 |
ORDER_RECEIPT_STATUS_INVALID |
결제 완료 정보를 수신하지 못했어요 |
처음부터 결제를 다시 진행해요 |
ORDER_CONFIRM_PAYMENT_FAILED |
결제 승인에 실패했어요 |
결제 정보를 확인 후 재시도해요 |
ORDER_RECEIPT_PRICE_INVALID |
요청 금액과 승인 금액이 일치하지 않는다 |
price 값을 확인해요 |
ORDER_CANCEL_ALREADY_COMPLETED |
이미 결제 취소 처리가 됐어요 |
주문 상태를 먼저 조회해요 |
ORDER_PRODUCT_BLANK |
주문한 상품 정보가 없어요 |
products 파라미터를 확인해요 |
ORDER_PRODUCT_NOT_FOUND |
상품 정보가 없어요 |
product_id를 확인해요 |
ORDER_OPTION_NOT_FOUND |
상품 옵션 정보가 없어요 |
option_id를 확인해요 |
ORDER_PRODUCT_NEED_OPTION |
상품에 옵션 선택이 필수예요 |
option_id를 추가해요 |
ORDER_PRODUCT_STOCK_OUT |
상품 재고가 모두 소진됐어요 |
상품 재고를 확인해요 |
ORDER_OPTION_STOCK_OUT |
상품 옵션 재고가 모두 소진됐어요 |
옵션 재고를 확인해요 |
ORDER_SUBSCRIPTION_ONLY |
구독상품은 일반 상품과 함께 구매할 수 없어요 |
구독상품만 별도로 주문해요 |
ORDER_PRICE_NOT_MATCH |
요청 금액과 상품 결제 금액이 일치하지 않는다 |
price 계산을 확인해요 |
ORDER_SUBSCRIPTION_INVALID |
구독결제 정보가 올바르지 않아요 |
구독 설정을 확인해요 |
ORDER_ADDRESS_BLANK |
배송상품은 배송지 정보가 필수예요 |
address 정보를 입력해요 |
ORDER_USER_INVALID |
결제 요청 회원정보가 일치하지 않는다 |
로그인 세션을 확인해요 |
ORDER_CANCEL_PRICE_LT_ZERO |
취소금액이 0보다 작을 수 없어요 |
cancel_price를 확인해요 |
ORDER_CANCEL_PRICE_OVER |
취소 가능 금액보다 취소 요청 금액이 더 커요 |
남은 취소 가능 금액을 확인해요 |
ORDER_CANCEL_CRITICAL_ERROR |
상품 취소시 치명적인 오류가 발생했어요 |
관리자에 문의해요 |
ORDER_DENIED |
주문 정보를 조회할 권한이 없어요 |
API 인증 권한을 확인해요 |
ORDER_STATUS_NOT_CANCELABLE |
취소가 불가능한 주문 상태예요 |
주문 상태를 확인해요 |
ORDER_PRODUCT_ALREADY_CANCELLED |
이미 취소된 상품이에요 |
주문 상품의 취소 상태를 확인해요 |
ORDER_EXPIRED |
주문 기간이 지났다 |
유효 기간 내에 처리해요 |
ORDER_NUMBER_EXIST |
이미 결제가 진행된 주문정보가 있어요 |
새 주문을 생성해요 |
ORDER_GUEST_SUBSCRIPTION_NOT_ALLOWED |
비회원은 구독/멤버십 상품을 구매할 수 없어요 |
회원가입 후 이용해요 |
ORDER_CANCEL_REQUEST_TYPE_METHOD |
취소 요청 정보가 없어요 |
취소 요청 파라미터를 확인해요 |
ORDER_CANCEL_REQUEST_REJECT_UNABLE |
취소 요청 처리가 불가능한 상태예요 |
요청 상태를 확인해요 |
ORDER_CANCEL_REQUEST_REJECT_CRITICAL_ERROR |
취소 철회 중 오류가 발생했어요 |
관리자에 문의해요 |
ORDER_CANCEL_NOT_REQUESTED |
취소 요청 상태가 아니에요 |
주문의 취소 요청 상태를 확인해요 |
ORDER_CANCEL_REQUEST_WITHDRAW_UNABLE |
취소 요청 철회가 불가능해요 |
요청 상태를 확인해요 |
구독 관련 에러
| 코드 |
메시지 |
대처 방법 |
SUBSCRIPTION_NOT_ACTIVE |
구독계약이 활성화되지 않은 상태예요 |
구독 상태를 확인하거나 관리자에 문의해요 |
SUBSCRIPTION_PAYMENT_CYCLE_TYPE_INVALID |
잘못 설정된 결제 주기예요 |
구독상품의 결제 주기를 확인해요 |
SUBSCRIPTION_TRANSACTION_NOT_READY |
회차 구독결제가 이미 결제되었거나 만료된 상태예요 |
관리자에 문의해요 |
SUBSCRIPTION_TRANSACTION_PAYMENT_ERROR |
구독결제가 실패했어요 |
결제 수단을 확인하거나 관리자에 문의해요 |
SUBSCRIPTION_DENIED |
구독 계약 정보를 조회할 권한이 없어요 |
API 인증 권한을 확인해요 |
SUBSCRIPTION_WALLET_BLANK |
구독 결제를 위한 빌링키가 등록되지 않았다 |
결제 수단을 먼저 등록해요 |
SUBSCRIPTION_ADJUSTMENT_NOT_FOUND |
구독결제 조정 정보를 찾을 수 없어요 |
adjustment_id를 확인해요 |
SUBSCRIPTION_ADJUSTMENT_PAYMENT_COMPLETED |
이미 결제가 완료된 회차예요 |
미결제 회차에 대해서만 조정해요 |
SUBSCRIPTION_ADJUSTMENT_DUPLICATE |
동일 회차에 같은 유형의 조정이 이미 있어요 |
기존 조정을 확인해요 |
SUBSCRIPTION_ADJUSTMENT_DURATION_INVALID |
회차가 지정되지 않았다 |
cycle 파라미터를 입력해요 |
SUBSCRIPTION_ADJUSTMENT_NEGATIVE_PRICE |
조정으로 인해 결제 금액이 음수가 돼요 |
조정 금액을 확인해요 |
WALLET_TYPE_INVALID |
등록할 구독결제 수단 정보가 올바르지 않아요 |
빌링키 정보를 확인해요 |
구독 청구 관련 에러
| 코드 |
메시지 |
대처 방법 |
ORDER_SUBSCRIPTION_BILL_NOT_FOUND |
회차 구독결제 청구 정보를 찾을 수 없어요 |
bill_id를 확인해요 |
ORDER_SUBSCRIPTION_BILL_STATUS_NOT_DONE |
회차 구독결제 청구 상태가 완료되지 않았다 |
결제 완료 후 시도해요 |
ORDER_SUBSCRIPTION_BILL_CANCELLED_PRICE_OVER |
취소 요청 금액이 결제 금액을 초과해요 |
취소 가능 금액을 확인해요 |
ORDER_SUBSCRIPTION_BILL_CANCELLED_TAX_PRICE_OVER |
비과세 취소 요청 금액이 결제 금액을 초과해요 |
비과세 취소 가능 금액을 확인해요 |
ORDER_SUBSCRIPTION_BILL_UNABLE_EXECUTE_PAYMENT |
결제할 수 없는 상태예요 |
청구 상태를 확인해요 |
ORDER_SUBSCRIPTION_BILL_EXIST |
이미 청구가 있어요 |
기존 청구를 확인해요 |
ORDER_SUBSCRIPTION_BILL_PAYMENT_TIME_UNCHANGEABLE |
결제예정시간을 변경할 수 없어요 |
변경 가능한 상태인지 확인해요 |
ORDER_SUBSCRIPTION_BILL_UNCHANGEABLE_ALREADY_PAY |
이미 결제된 주문이에요 |
결제 상태를 확인해요 |
ORDER_SUBSCRIPTION_BILL_PAYMENT_TIME_INVALID |
유효한 결제시간이 아니에요 |
결제 시간을 현재 이후로 설정해요 |
구독 취소·해지 관련 에러
| 코드 |
메시지 |
대처 방법 |
ORDER_SUBSCRIPTION_TRANSACTION_CANCEL_NOT_FOUND |
회차 구독결제 취소 요청 내역을 찾을 수 없어요 |
취소 요청 ID를 확인해요 |
ORDER_SUBSCRIPTION_TRANSACTION_CANCEL_ALREADY_COMPLETED |
해당 회차 구독결제는 이미 취소 완료됐어요 |
구독 상태를 확인해요 |
ORDER_SUBSCRIPTION_TRANSACTION_CANCEL_ALREADY_REQUESTED |
이미 취소 신청이 완료된 건이에요 |
기존 취소 요청 상태를 확인해요 |
ORDER_SUBSCRIPTION_TRANSACTION_CANCEL_CANNOT_STATUS |
현재 상태에서는 취소 신청을 할 수 없어요 |
구독 상태를 확인해요 |
ORDER_SUBSCRIPTION_NOT_FOUND |
구독결제 건을 찾을 수 없어요 |
order_subscription_id를 확인해요 |
ORDER_SUBSCRIPTION_CANCEL_ALREADY_REQUESTED |
이미 취소 신청이 된 구독계약이에요 |
기존 취소 요청 상태를 확인해요 |
ORDER_SUBSCRIPTION_CANCEL_CANNOT_REQUEST_SETTING |
이 구독 계약은 중도해지를 지원하지 않는다 |
구독 정책을 확인해요 |
ORDER_SUBSCRIPTION_TERMINATE_UNABLE |
이미 해지되었거나 해지할 수 없는 구독 상태예요 |
구독 상태를 확인해요 |
ORDER_SUBSCRIPTION_REQUEST_UNABLE |
이미 처리 대기 중인 요청이 있어요 |
기존 요청을 먼저 처리하거나 취소해요 |
ORDER_SUBSCRIPTION_PAUSE_UNABLE |
이 구독은 일시정지를 지원하지 않는 정책이에요 |
구독 정책을 확인해요 |
ORDER_SUBSCRIPTION_RESUME_UNABLE |
현재 일시정지 상태가 아니므로 재개할 수 없어요 |
구독 상태를 확인해요 |
ORDER_SUBSCRIPTION_CANCEL_NOT_FOUND |
구독 취소 정보를 찾을 수 없어요 |
cancel_id를 확인해요 |
ORDER_SUBSCRIPTION_CANCEL_NOT_CANCEL_ABLE |
취소 요청이 불가능한 상태예요 |
구독 취소 상태를 확인해요 |
ORDER_SUBSCRIPTION_TERMINATE_APPROVE_ERROR |
구독해지 승인이 실패했어요 |
관리자에 문의해요 |
ORDER_SUBSCRIPTION_TERMINATE_CRITICAL_ERROR |
구독해지 승인 중 치명적인 오류가 발생했어요 |
관리자에 문의해요 |
ORDER_SUBSCRIPTION_TERMINATE_CANNOT_ABLE |
구독해지를 승인할 수 없는 상태예요 |
구독 상태를 확인해요 |
ORDER_SUBSCRIPTION_REJECT_REASON_BLANK |
구독 거절 시 거절 사유는 필수예요 |
reason 파라미터를 입력해요 |
구독 고급 기능 에러
| 코드 |
메시지 |
대처 방법 |
SUBSCRIPTION_PAUSE_NOT_ALLOWED |
일시정지 기능이 비활성화되어 있어요 |
구독 설정에서 일시정지를 활성화해요 |
SUBSCRIPTION_PAUSE_COUNT_EXCEEDED |
일시정지 횟수가 초과됐어요 |
최대 일시정지 횟수를 확인해요 |
SUBSCRIPTION_PAUSE_DURATION_TOO_SHORT |
일시정지 기간이 너무 짧다 |
최소 일시정지 기간을 확인해요 |
SUBSCRIPTION_PAUSE_DURATION_TOO_LONG |
일시정지 기간이 최대 기간을 초과했어요 |
최대 일시정지 기간 이내로 설정해요 |
ORDER_SUBSCRIPTION_PAUSE_APPROVE_ERROR |
일시정지 승인을 할 수 없는 상태예요 |
요청 상태를 확인해요 |
ORDER_SUBSCRIPTION_PAUSE_REJECT_ERROR |
일시정지 거부를 할 수 없는 상태예요 |
요청 상태를 확인해요 |
ORDER_SUBSCRIPTION_PAUSE_REASON_BLANK |
일시정지 거절 사유가 비어 있어요 |
reason 파라미터를 입력해요 |
SUBSCRIPTION_TRANSFER_NOT_ALLOWED |
이전/승계 기능이 비활성화되어 있어요 |
구독 설정에서 이전/승계를 활성화해요 |
SUBSCRIPTION_TRANSFER_USER_INFO_REQUIRED |
신규 사용자 정보가 필요해요 |
new_user 정보를 입력해요 |
ORDER_SUBSCRIPTION_TRANSFER_REQUEST_DUPLICATE |
이미 대기 중인 이전/승계 요청이 있어요 |
기존 요청 처리를 기다린다 |
ORDER_SUBSCRIPTION_PURCHASE_REQUEST_DUPLICATE |
이미 대기 중인 중도인수 요청이 있어요 |
기존 요청 처리를 기다린다 |
SUBSCRIPTION_TERMINATION_NOT_ALLOWED |
중도해지 요청을 할 수 없는 상태예요 |
구독 상태를 확인해요 |
SUBSCRIPTION_TERMINATION_REASON_REQUIRED |
중도해지 사유를 입력해야 해요 |
reason 파라미터를 입력해요 |
ORDER_SUBSCRIPTION_PURCHASE_NOT_ALLOWED |
해당 구독계약은 중도인수 설정이 되지 않았다 |
구독 설정을 확인해요 |
ORDER_SUBSCRIPTION_PURCHASE_STATUS_INVALID |
중도인수가 가능한 상태가 아니에요 |
구독 상태를 확인해요 |
ORDER_SUBSCRIPTION_PAYMENT_DATE_INVALID |
유효하지 않는 결제일이에요 |
다른 일자로 선택해요 |
ORDER_SUBSCRIPTION_PAYMENT_DATE_TODAY_UNCHANGEABLE |
당일 결제예정건은 변경할 수 없어요 |
다음날 이후로 변경해요 |
ORDER_SUBSCRIPTION_REQUEST_HISTORY_NOT_FOUND |
계약변경 요청 내역을 찾을 수 없어요 |
request_history_id를 확인해요 |
ORDER_SUBSCRIPTION_REQUEST_HISTORY_CANNOT_WITHDRAW |
계약변경 요청을 취소할 수 없어요 |
요청 상태를 확인해요 |
ORDER_SUBSCRIPTION_REQUEST_HISTORY_ALREADY_PROCESSED |
이미 처리된 요청이에요 |
새로운 요청을 생성해요 |
SUBSCRIPTION_RESUME_REASON_REQUIRED |
재개 사유를 입력해야 해요 |
reason 파라미터를 입력해요 |
장바구니 관련 에러
| 코드 |
메시지 |
대처 방법 |
CART_NOT_FOUND |
장바구니를 찾을 수 없어요 |
cart_id를 확인해요 |
CART_SUBSCRIBE_PRODUCT_NOT_ALLOWED |
구독 상품은 장바구니에 담을 수 없어요 |
구독 상품은 직접 주문해요 |
CART_PRODUCT_OPTION_REQUIRED |
상품 옵션 선택이 필요해요 |
option_id를 입력해요 |
CART_FULL |
장바구니가 가득 찼다 (비회원 최대 50개) |
기존 아이템을 삭제해요 |
CART_ITEM_NOT_FOUND |
장바구니 아이템을 찾을 수 없어요 |
item_id를 확인해요 |
CART_ITEM_UNAVAILABLE |
장바구니 아이템을 사용할 수 없어요 |
상품이 삭제/변경되었는지 확인해요 |
CART_MERGE_FAILED |
장바구니 병합에 실패했어요 |
재시도해요 |
CART_EMPTY |
장바구니가 비어있어요 |
상품을 먼저 담는다 |
CART_HAS_UNAVAILABLE_ITEMS |
장바구니에 구매 불가능한 상품이 포함되어 있어요 |
불가 상품을 제거해요 |
PRODUCT_NOT_AVAILABLE |
상품을 구매할 수 없어요 (삭제 또는 비활성화됨) |
상품 상태를 확인해요 |
CART_ITEM_STOCK_OUT |
장바구니 아이템의 재고가 부족해요 |
수량을 줄이거나 재고를 확인해요 |
CART_ITEM_SNAPSHOT_CHANGED |
장바구니에 담긴 상품 정보가 변경됐어요 |
장바구니를 새로고침해요 |
웹훅 관련 에러
| 코드 |
메시지 |
대처 방법 |
WEBHOOK_LOG_NOT_FOUND |
웹훅 로그 정보가 없어요 |
webhook_log_id를 확인해요 |
WEBHOOK_LOG_URL_BLANK |
웹훅 로그 URL이 설정되지 않았다 |
웹훅 URL을 설정해요 |
WEBHOOK_URL_BLANK |
웹훅 URL을 입력해요 |
url 파라미터를 입력해요 |
WEBHOOK_HEADER_CONTENT_TYPE_INVALID |
웹훅 Content Type이 잘못됐어요 |
application/json 또는 application/x-www-form-urlencoded를 사용해요 |
WEBHOOK_RETRY_COUNT_INVALID |
웹훅 재시도 횟수가 잘못됐어요 |
1~25 사이 값을 설정해요 |
코드표 (Enum)
주문 상태, 취소 요청 상태, 링크페이 상태, 구독 상태, 구독 회차 상태 등 코드값은 별도 페이지로 분리됐어요.
→ 커머스 Enum