콘텐츠로 이동

TossApiFailure — @gj-kit/toss-payments

@gj-kit/toss-payments/server에서 공개하는 interface입니다. package version 0.6.1의 release declaration을 그대로 표시합니다.

import { TossApiFailure } from '@gj-kit/toss-payments/server';
/**
* 에러 모델 — 최상위 판별자 `source`: 'library'(API 미도달 보장) / 'toss'(서버 응답) / 'network'(전송).
*
* retryable 판정은 **코드 테이블**로만 한다 — HTTP status 판정 금지.
* 근거: PROVIDER_ERROR는 400이지만 재시도 가능, REFUND_REJECTED는 400이지만 비재시도.
*/
interface TossApiFailure<Code extends string = string> {
readonly source: 'toss';
/** 토스 응답 {code, message} 원문 무손실 보존. */
readonly code: Code;
readonly message: string;
/** 보존하되 판정에 쓰지 않는다. */
readonly httpStatus: number;
readonly category: ErrorCategory;
/** ⚠ 코드 테이블 판정 — HTTP status 아님. */
readonly retryable: boolean;
/** x-tosspayments-trace-id */
readonly traceId: string | null;
}

이 선언은 매개변수, optionality, 제네릭, 반환값, 공개 union/type 계약의 정본입니다. 호출 전 필요한 환경·권한·오류 경계는 패키지 Golden path와 이 subpath의 import 조건을 함께 확인하세요.

  • 패키지: @gj-kit/toss-payments
  • 버전: 0.6.1
  • 공개 entry: ./server
  • 소스: GitHub

에러 모델 — 최상위 판별자 source: ‘library’(API 미도달 보장) / ‘toss’(서버 응답) / ‘network’(전송).

retryable 판정은 코드 테이블로만 한다 — HTTP status 판정 금지. 근거: PROVIDER_ERROR는 400이지만 재시도 가능, REFUND_REJECTED는 400이지만 비재시도.