Skip to Content
레퍼런스코어 API

코어 API

캔디페이 API 엔드포인트와 객체 정보, 파라미터, 요청 및 응답 예제를 살펴보세요.

결제

결제에 관한 모든 API와 결제 API의 응답으로 돌아오는 PaymentIntent 객체, PaymentCancel 객체를 살펴봅니다.

PaymentIntent 객체

결제 정보를 담고 있는 객체입니다. 결제 한 건의 결제 상태, 결제 취소 기록, 매출 전표, 현금영수증 정보 등을 자세히 알 수 있습니다.

결제가 승인됐을 때 응답은 PaymentIntent 객체로 항상 동일합니다. 객체의 구성은 결제수단(카드, 가상계좌, 간편결제 등)에 따라 조금씩 달라집니다.

interface PaymentIntent { /** * @minLength 21 * @maxLength 21 * 결제의 키값입니다. 캔디페이에서 각 결제별로 자동으로 생성해주는 문자열입니다. * 각 결제를 식별하는 역할로, 결제 데이터 관리를 위해 반드시 저장해야 합니다. * 결제 상태가 변해도 값이 유지됩니다. * 결제 승인, 결제 조회, 결제 취소 API에 사용합니다. */ intentKey: string /** * @minLength 16 * @maxLength 50 * 주문번호입니다. 결제 요청에서 내 상점이 직접 생성한 영문 대소문자, 숫자, 특수문자 -, _로 이루어진 16자 이상 50자 이하의 문자열입니다. * 각 주문을 식별하는 역할로, 결제 데이터 관리를 위해 반드시 저장해야 합니다. * 결제 상태가 변해도 orderId는 유지됩니다. */ orderId: string /** * @maxLength 100 * @example '생수 외 1건' * 주문의 이름입니다. 가맹점이 직접 값을 지정해줘야 합니다. 구매상품으로 지정하는 것을 권장합니다. */ orderName: string /** * 상점아이디(MID)입니다. 캔디페이에서 발급합니다. */ mId: number /** * 총 결제 금액입니다. 결제가 취소되는 등 결제 상태가 변해도 최초에 결제된 결제 금액으로 유지됩니다 */ totalAmount: number /** * 작성중 FIXME */ status: string /** * @pattern yyyy-MM-dd'T'HH:mm:ss±hh:mm * @example '2022-01-01T00:00:00+09:00' * 결제를 요청한 날짜와 시간 정보입니다. ISO 8601 형식입니다. */ requestedAt: string /** * @pattern yyyy-MM-dd'T'HH:mm:ss±hh:mm * @example '2022-01-01T00:00:00+09:00' * 결제 승인이 일어난 날짜와 시간 정보입니다. ISO 8601 형식입니다. */ approvedAt?: string /** * 결제가 취소된 상태면 이 필드에 값이 채워집니다. */ cancel?: PaymentCancel methods: PaymentIntentMethod[] /** * 결제 요청 시 SDK에서 직접 추가할 수 있는 결제 관련 정보입니다. 최대 5개의 키-값(key-value) 쌍입니다. * JSON으로 직렬화했을 때 2000자를 넘을 수 없습니다. */ metadata?: Jsonifiable /** * 발행된 영수증 정보입니다. */ reciept?: { /** * 결제금액에 대한 캔디페이 통합 영수증입니다. 사용을 권장하지 않습니다. */ candyUrl: string /** * 구매자에게 제공할 수 있는 결제수단별 영수증입니다. 카드 결제는 매출전표가 제공됩니다. */ perMethodUrls: string[] } /** * 결제창 관련 정보입니다. 결제창 SDK에서 사용합니다. */ checkout?: { /** * 결제창이 열리는 주소입니다. */ url: string } /** * 결제가 실패 상태이면 (주로 승인 실패) 여기에 에러 객체를 담아 보내줍니다. */ failure?: { code: string message: string detail?: string } } interface PaymentCancel { /** * @pattern yyyy-MM-dd'T'HH:mm:ss±hh:mm * @example '2022-01-01T00:00:00+09:00' * 결제 취소가 일어난 날짜와 시간 정보입니다. ISO 8601 형식입니다. */ canceledAt?: string } interface PaymentIntentMethod { /** * 결제수단 종류입니다. 현재는 카드키인결제만 지원하므로 'KEYIN'만 반환합니다. */ method: 'KEYIN' /** * 결제수단별 결제 금액입니다. */ amount: number /** * 카드로 결제하면 제공되는 키인결제 관련 정보입니다. */ keyin?: { /** * 카드번호입니다. 번호의 일부는 마스킹 되어 있습니다. 최대 길이는 20자입니다. */ number: string /** * 할부 개월 수입니다. 일시불이면 0입니다. */ installmentPlanMonths: number /** * 카드 발급사 두 자리 코드입니다. 기관 코드를 참고하세요. */ issuerCode: string } }

결제 승인

Request

POST https://api.candypay.co.kr/px/intents/confirm Content-Type: application/json { "intentKey": "string", "orderId": "string", "amount": 10000 }

Response

성공

결제 승인에 성공하면 PaymentIntent 객체가 돌아옵니다. 필드에 값이 제대로 들어왔는지 확인하세요.

실패

결제 승인에 실패했다면 HTTP 상태 코드와 함께 에러 객체가 돌아옵니다.

결제 승인 API에서 발생할 수 있는 에러를 살펴보세요.

intentKey로 결제 조회

Request

GET https://api.candypay.co.kr/px/intents/{intentKey}

Response

성공

결제 조회에 성공하면 PaymentIntent 객체가 돌아옵니다. 필드에 값이 제대로 들어왔는지 확인하세요.

실패

결제 조회에 실패했다면 HTTP 상태 코드와 함께 에러 객체가 돌아옵니다.

결제 조회 API에서 발생할 수 있는 에러를 살펴보세요.

결제 취소

Request

POST https://api.candypay.co.kr/px/intents/{intentKey}/cancel Content-Type: application/json { "cancelReason": "string (maxLength: 200)" }

Response

성공

결제 취소에 성공하면 PaymentIntent 객체cancels 필드에 취소 객체가 돌아옵니다.

실패

결제 취소에 실패했다면 HTTP 상태 코드와 함께 에러 객체가 돌아옵니다.

결제 취소 API에서 발생할 수 있는 에러를 살펴보세요.

Last updated on