openapi: 3.0.3 info: title: PortOne B2b Identity Verifications API version: 1.16.0 servers: - url: https://api.portone.io description: 운영환경 서버 tags: - name: Identity Verifications paths: /identity-verifications/{identityVerificationId}/confirm: post: summary: 본인인증 확인 description: '본인인증 확인 요청된 본인인증에 대한 확인을 진행합니다.' operationId: confirmIdentityVerification parameters: - name: identityVerificationId in: path description: 본인인증 아이디 required: true schema: type: string x-portone-title: 본인인증 아이디 requestBody: content: application/json: schema: $ref: '#/components/schemas/ConfirmIdentityVerificationBody' required: true responses: '200': description: 성공 응답 content: application/json: schema: $ref: '#/components/schemas/ConfirmIdentityVerificationResponse' x-portone-title: 성공 응답 '400': description: '* `InvalidRequestError`: 요청된 입력 정보가 유효하지 않은 경우' content: application/json: schema: $ref: '#/components/schemas/ConfirmIdentityVerificationError' '401': description: '* `UnauthorizedError`: 인증 정보가 올바르지 않은 경우' content: application/json: schema: $ref: '#/components/schemas/ConfirmIdentityVerificationError' '403': description: '* `ForbiddenError`: 요청이 거절된 경우' content: application/json: schema: $ref: '#/components/schemas/ConfirmIdentityVerificationError' '404': description: '* `IdentityVerificationNotFoundError`: 요청된 본인인증 건이 존재하지 않는 경우 * `IdentityVerificationNotSentError`: 본인인증 건이 API로 요청된 상태가 아닌 경우' content: application/json: schema: $ref: '#/components/schemas/ConfirmIdentityVerificationError' '409': description: '* `IdentityVerificationAlreadyVerifiedError`: 본인인증 건이 이미 인증 완료된 상태인 경우' content: application/json: schema: $ref: '#/components/schemas/ConfirmIdentityVerificationError' '502': description: '* `PgProviderError`: PG사에서 오류를 전달한 경우' content: application/json: schema: $ref: '#/components/schemas/ConfirmIdentityVerificationError' security: - bearerJwt: [] - portOne: [] x-portone-category: identityVerification x-portone-title: 본인인증 확인 x-portone-description: 요청된 본인인증에 대한 확인을 진행합니다. x-portone-error: $ref: '#/components/schemas/ConfirmIdentityVerificationError' tags: - Identity Verifications /identity-verifications/{identityVerificationId}/resend: post: summary: SMS 본인인증 요청 재전송 description: 'SMS 본인인증 요청 재전송 SMS 본인인증 요청을 재전송합니다.' operationId: resendIdentityVerification parameters: - name: identityVerificationId in: path description: 본인인증 아이디 required: true schema: type: string x-portone-title: 본인인증 아이디 - name: storeId in: query description: '상점 아이디 접근 권한이 있는 상점 아이디만 입력 가능하며, 미입력시 인증 정보의 상점 아이디를 사용합니다.' required: false schema: type: string x-portone-title: 상점 아이디 x-portone-description: 접근 권한이 있는 상점 아이디만 입력 가능하며, 미입력시 인증 정보의 상점 아이디를 사용합니다. responses: '200': description: 성공 응답 content: application/json: schema: $ref: '#/components/schemas/ResendIdentityVerificationResponse' x-portone-title: 성공 응답 '400': description: '* `InvalidRequestError`: 요청된 입력 정보가 유효하지 않은 경우' content: application/json: schema: $ref: '#/components/schemas/ResendIdentityVerificationError' '401': description: '* `UnauthorizedError`: 인증 정보가 올바르지 않은 경우' content: application/json: schema: $ref: '#/components/schemas/ResendIdentityVerificationError' '403': description: '* `ForbiddenError`: 요청이 거절된 경우' content: application/json: schema: $ref: '#/components/schemas/ResendIdentityVerificationError' '404': description: '* `IdentityVerificationNotFoundError`: 요청된 본인인증 건이 존재하지 않는 경우 * `IdentityVerificationNotSentError`: 본인인증 건이 API로 요청된 상태가 아닌 경우' content: application/json: schema: $ref: '#/components/schemas/ResendIdentityVerificationError' '409': description: '* `IdentityVerificationAlreadyVerifiedError`: 본인인증 건이 이미 인증 완료된 상태인 경우' content: application/json: schema: $ref: '#/components/schemas/ResendIdentityVerificationError' '502': description: '* `PgProviderError`: PG사에서 오류를 전달한 경우' content: application/json: schema: $ref: '#/components/schemas/ResendIdentityVerificationError' security: - bearerJwt: [] - portOne: [] x-portone-category: identityVerification x-portone-title: SMS 본인인증 요청 재전송 x-portone-description: SMS 본인인증 요청을 재전송합니다. x-portone-error: $ref: '#/components/schemas/ResendIdentityVerificationError' tags: - Identity Verifications /identity-verifications/{identityVerificationId}/send: post: summary: 본인인증 요청 전송 description: '본인인증 요청 전송 SMS 또는 APP 방식을 이용하여 본인인증 요청을 전송합니다.' operationId: sendIdentityVerification parameters: - name: identityVerificationId in: path description: 본인인증 아이디 required: true schema: type: string x-portone-title: 본인인증 아이디 requestBody: content: application/json: schema: $ref: '#/components/schemas/SendIdentityVerificationBody' required: true responses: '200': description: 성공 응답 content: application/json: schema: $ref: '#/components/schemas/SendIdentityVerificationResponse' x-portone-title: 성공 응답 '400': description: '* `InvalidRequestError`: 요청된 입력 정보가 유효하지 않은 경우 * `MaxTransactionCountReachedError`: 결제 혹은 본인인증 시도 횟수가 최대에 도달한 경우' content: application/json: schema: $ref: '#/components/schemas/SendIdentityVerificationError' '401': description: '* `UnauthorizedError`: 인증 정보가 올바르지 않은 경우' content: application/json: schema: $ref: '#/components/schemas/SendIdentityVerificationError' '403': description: '* `ForbiddenError`: 요청이 거절된 경우' content: application/json: schema: $ref: '#/components/schemas/SendIdentityVerificationError' '404': description: '* `IdentityVerificationNotFoundError`: 요청된 본인인증 건이 존재하지 않는 경우 * `ChannelNotFoundError`: 요청된 채널이 존재하지 않는 경우' content: application/json: schema: $ref: '#/components/schemas/SendIdentityVerificationError' '409': description: '* `IdentityVerificationAlreadyVerifiedError`: 본인인증 건이 이미 인증 완료된 상태인 경우 * `IdentityVerificationAlreadySentError`: 본인인증 건이 이미 API로 요청된 상태인 경우' content: application/json: schema: $ref: '#/components/schemas/SendIdentityVerificationError' '502': description: '* `PgProviderError`: PG사에서 오류를 전달한 경우' content: application/json: schema: $ref: '#/components/schemas/SendIdentityVerificationError' security: - bearerJwt: [] - portOne: [] x-portone-category: identityVerification x-portone-title: 본인인증 요청 전송 x-portone-description: SMS 또는 APP 방식을 이용하여 본인인증 요청을 전송합니다. x-portone-error: $ref: '#/components/schemas/SendIdentityVerificationError' tags: - Identity Verifications /identity-verifications/{identityVerificationId}: get: summary: 본인인증 단건 조회 description: '본인인증 단건 조회 주어진 아이디에 대응되는 본인인증 내역을 조회합니다.' operationId: getIdentityVerification parameters: - name: identityVerificationId in: path description: 조회할 본인인증 아이디 required: true schema: type: string example: your-identity-verification-id x-portone-title: 조회할 본인인증 아이디 - name: storeId in: query description: '상점 아이디 접근 권한이 있는 상점 아이디만 입력 가능하며, 미입력시 인증 정보의 상점 아이디를 사용합니다.' required: false schema: type: string example: your-store-id x-portone-title: 상점 아이디 x-portone-description: 접근 권한이 있는 상점 아이디만 입력 가능하며, 미입력시 인증 정보의 상점 아이디를 사용합니다. responses: '200': description: 성공 응답으로 본인 인증 객체를 반환합니다. content: application/json: schema: $ref: '#/components/schemas/IdentityVerification' x-portone-description: 성공 응답으로 본인 인증 객체를 반환합니다. '400': description: '* `InvalidRequestError`: 요청된 입력 정보가 유효하지 않은 경우' content: application/json: schema: $ref: '#/components/schemas/GetIdentityVerificationError' '401': description: '* `UnauthorizedError`: 인증 정보가 올바르지 않은 경우' content: application/json: schema: $ref: '#/components/schemas/GetIdentityVerificationError' '403': description: '* `ForbiddenError`: 요청이 거절된 경우' content: application/json: schema: $ref: '#/components/schemas/GetIdentityVerificationError' '404': description: '* `IdentityVerificationNotFoundError`: 요청된 본인인증 건이 존재하지 않는 경우' content: application/json: schema: $ref: '#/components/schemas/GetIdentityVerificationError' security: - bearerJwt: [] - portOne: [] x-portone-category: identityVerification x-portone-title: 본인인증 단건 조회 x-portone-description: 주어진 아이디에 대응되는 본인인증 내역을 조회합니다. x-portone-error: $ref: '#/components/schemas/GetIdentityVerificationError' tags: - Identity Verifications /identity-verifications: get: summary: 본인인증 내역 다건 조회 description: '본인인증 내역 다건 조회 주어진 조건에 맞는 본인인증 내역들을 페이지 기반으로 조회합니다.' operationId: getIdentityVerifications parameters: - name: requestBody in: query required: false content: application/json: schema: $ref: '#/components/schemas/GetIdentityVerificationsBody' responses: '200': description: 성공 응답으로 조회된 본인인증 내역 리스트와 페이지 정보가 반환됩니다. content: application/json: schema: $ref: '#/components/schemas/GetIdentityVerificationsResponse' x-portone-title: 성공 응답으로 조회된 본인인증 내역 리스트와 페이지 정보가 반환됩니다. '400': description: '* `InvalidRequestError`: 요청된 입력 정보가 유효하지 않은 경우' content: application/json: schema: $ref: '#/components/schemas/GetIdentityVerificationsError' '401': description: '* `UnauthorizedError`: 인증 정보가 올바르지 않은 경우' content: application/json: schema: $ref: '#/components/schemas/GetIdentityVerificationsError' '403': description: '* `ForbiddenError`: 요청이 거절된 경우' content: application/json: schema: $ref: '#/components/schemas/GetIdentityVerificationsError' security: - bearerJwt: [] - portOne: [] x-portone-category: identityVerification x-portone-title: 본인인증 내역 다건 조회 x-portone-description: 주어진 조건에 맞는 본인인증 내역들을 페이지 기반으로 조회합니다. x-portone-error: $ref: '#/components/schemas/GetIdentityVerificationsError' tags: - Identity Verifications components: schemas: IdentityVerificationSortBy: title: 본인인증 내역 정렬 기준 description: 본인인증 내역 정렬 기준 type: string enum: - REQUESTED_AT - VERIFIED_AT - FAILED_AT - STATUS_UPDATED_AT x-portone-title: 본인인증 내역 정렬 기준 x-portone-enum: REQUESTED_AT: title: 요청 시각 VERIFIED_AT: title: 완료 시각 FAILED_AT: title: 실패 시각 STATUS_UPDATED_AT: title: 상태 변경 시각 description: 요청 상태의 경우 REQUESTED_AT, 완료 상태의 경우 VERIFIED_AT, 실패 상태의 경우 FAILED_AT IdentityVerification: title: 본인인증 내역 description: 본인인증 내역 oneOf: - $ref: '#/components/schemas/FailedIdentityVerification' - $ref: '#/components/schemas/ReadyIdentityVerification' - $ref: '#/components/schemas/VerifiedIdentityVerification' discriminator: propertyName: status mapping: FAILED: '#/components/schemas/FailedIdentityVerification' READY: '#/components/schemas/ReadyIdentityVerification' VERIFIED: '#/components/schemas/VerifiedIdentityVerification' x-portone-title: 본인인증 내역 x-portone-discriminator: READY: title: 준비 상태의 본인인증 내역 VERIFIED: title: 완료된 본인인증 내역 FAILED: title: 실패한 본인인증 내역 IdentityVerificationOperator: title: 본인인증 통신사 description: 본인인증 통신사 type: string enum: - SKT - KT - LGU - SKT_MVNO - KT_MVNO - LGU_MVNO x-portone-title: 본인인증 통신사 x-portone-enum: SKT: title: SKT KT: title: KT KT_MVNO: title: KT 알뜰폰 LGU_MVNO: title: LGU 알뜰폰 SKT_MVNO: title: SKT 알뜰폰 LGU: title: LGU ResendIdentityVerificationResponse: title: 본인인증 요청 재전송 성공 응답 description: 본인인증 요청 재전송 성공 응답 type: object x-portone-title: 본인인증 요청 재전송 성공 응답 PgProvider: title: PG사 결제 모듈 description: PG사 결제 모듈 type: string enum: - HTML5_INICIS - PAYPAL - PAYPAL_V2 - INICIS - DANAL - NICE - DANAL_TPAY - JTNET - UPLUS - NAVERPAY - KAKAO - SETTLE - KCP - MOBILIANS - KAKAOPAY - NAVERCO - SYRUP - KICC - EXIMBAY - SMILEPAY - PAYCO - KCP_BILLING - ALIPAY - PAYPLE - CHAI - BLUEWALNUT - SMARTRO - SMARTRO_V2 - PAYMENTWALL - TOSSPAYMENTS - KCP_QUICK - DAOU - GALAXIA - TOSSPAY - KCP_DIRECT - SETTLE_ACC - SETTLE_FIRM - INICIS_UNIFIED - KSNET - PINPAY - NICE_V2 - TOSS_BRANDPAY - WELCOME - TOSSPAY_V2 - INICIS_V2 - KPN - KCP_V2 - HYPHEN - EXIMBAY_V2 - INICIS_JP - PAYLETTER_GLOBAL - MOBILIANS_V2 - TRIPLE_A - KICC_V2 - INNOPAY - HECTO_GLOBAL x-portone-title: PG사 결제 모듈 x-portone-enum: KICC: {} SYRUP: {} KCP_BILLING: {} SMARTRO_V2: {} CHAI: {} NICE_V2: {} KAKAO: {} DANAL: {} KAKAOPAY: {} EXIMBAY: {} ALIPAY: {} HTML5_INICIS: {} WELCOME: {} SMARTRO: {} PAYLETTER_GLOBAL: {} PAYCO: {} SMILEPAY: {} PAYMENTWALL: {} NAVERPAY: {} EXIMBAY_V2: {} INNOPAY: {} KCP_QUICK: {} NAVERCO: {} DAOU: {} GALAXIA: {} PINPAY: {} MOBILIANS_V2: {} INICIS_JP: {} SETTLE_ACC: {} TOSSPAY_V2: {} TOSSPAY: {} SETTLE_FIRM: {} INICIS: {} TOSS_BRANDPAY: {} JTNET: {} PAYPAL: {} DANAL_TPAY: {} KCP_DIRECT: {} SETTLE: {} MOBILIANS: {} UPLUS: {} HYPHEN: {} PAYPAL_V2: {} HECTO_GLOBAL: {} TRIPLE_A: {} KPN: {} KICC_V2: {} INICIS_V2: {} KCP_V2: {} INICIS_UNIFIED: {} BLUEWALNUT: {} NICE: {} TOSSPAYMENTS: {} PAYPLE: {} KSNET: {} KCP: {} Carrier: title: 통신사 description: 통신사 type: string enum: - SKT - KT - LGU - SKT_MVNO - KT_MVNO - LGU_MVNO x-portone-title: 통신사 x-portone-enum: SKT: title: SKT KT: title: KT KT_MVNO: title: KT 알뜰폰 LGU_MVNO: title: LGU 알뜰폰 SKT_MVNO: title: SKT 알뜰폰 LGU: title: LG 유플러스 ResendIdentityVerificationError: title: ResendIdentityVerificationError oneOf: - $ref: '#/components/schemas/ForbiddenError' - $ref: '#/components/schemas/IdentityVerificationAlreadyVerifiedError' - $ref: '#/components/schemas/IdentityVerificationNotFoundError' - $ref: '#/components/schemas/IdentityVerificationNotSentError' - $ref: '#/components/schemas/InvalidRequestError' - $ref: '#/components/schemas/PgProviderError' - $ref: '#/components/schemas/UnauthorizedError' discriminator: propertyName: type mapping: FORBIDDEN: '#/components/schemas/ForbiddenError' IDENTITY_VERIFICATION_ALREADY_VERIFIED: '#/components/schemas/IdentityVerificationAlreadyVerifiedError' IDENTITY_VERIFICATION_NOT_FOUND: '#/components/schemas/IdentityVerificationNotFoundError' IDENTITY_VERIFICATION_NOT_SENT: '#/components/schemas/IdentityVerificationNotSentError' INVALID_REQUEST: '#/components/schemas/InvalidRequestError' PG_PROVIDER: '#/components/schemas/PgProviderError' UNAUTHORIZED: '#/components/schemas/UnauthorizedError' IdentityVerificationNotSentError: title: 본인인증 건이 API로 요청된 상태가 아닌 경우 description: 본인인증 건이 API로 요청된 상태가 아닌 경우 type: object required: - type properties: type: type: string message: type: string x-portone-title: 본인인증 건이 API로 요청된 상태가 아닌 경우 x-portone-status-code: 404 ConfirmIdentityVerificationResponse: title: 본인인증 확인 성공 응답 description: 본인인증 확인 성공 응답 type: object required: - identityVerification properties: identityVerification: $ref: '#/components/schemas/VerifiedIdentityVerification' title: 완료된 본인인증 내역 x-portone-title: 본인인증 확인 성공 응답 IdentityVerificationStatus: title: 본인인증 상태 description: 본인인증 상태 type: string enum: - READY - VERIFIED - FAILED x-portone-title: 본인인증 상태 x-portone-enum: READY: title: 요청 상태 VERIFIED: title: 완료 상태 FAILED: title: 실패 상태 IdentityVerificationFilterInput: title: 본인인증 다건 조회를 위한 입력 정보 description: 본인인증 다건 조회를 위한 입력 정보 type: object properties: storeId: type: string title: 상점 아이디 description: Merchant 사용자만 사용가능하며, 지정되지 않은 경우 고객사 전체 본인인증 내역을 조회합니다. timeRangeField: $ref: '#/components/schemas/IdentityVerificationTimeRangeField' title: 조회 기준 시점 유형 description: 값을 입력하지 않으면 REQUESTED_AT으로 설정됩니다. from: type: string format: date-time title: 조회 기준 시점 범위의 시작 description: 값을 입력하지 않으면 end의 90일 전으로 설정됩니다. until: type: string format: date-time title: 조회 기준 시점 범위의 끝 description: 값을 입력하지 않으면 현재 시점으로 설정됩니다. identityVerificationId: type: string title: 고객사 본인인증 번호 description: V1 본인인증 건의 경우 `imp_uid`에 대응됩니다. identityVerificationTxId: type: string title: 포트원 본인인증 시도 번호 description: V1 본인인증 건의 경우 `imp_uid`에 대응됩니다. isTest: type: boolean title: 테스트 결제 필터링 statuses: title: 본인인증 상태 리스트 type: array items: $ref: '#/components/schemas/IdentityVerificationStatus' description: 값을 입력하지 않으면 필터링이 적용되지 않습니다. pgTxId: type: string title: PG사 본인인증 번호 pgMerchantId: type: string title: PG 상점아이디 pgProviders: title: PG사 결제 모듈 리스트 type: array items: $ref: '#/components/schemas/PgProvider' description: 값을 입력하지 않으면 PG사 결제 모듈 필터링이 적용되지 않습니다. pgCompanies: title: PG사 리스트 type: array items: $ref: '#/components/schemas/PgCompany' description: 값을 입력하지 않으면 PG사 필터링이 적용되지 않습니다. carriers: title: 통신사 리스트 type: array items: $ref: '#/components/schemas/Carrier' version: $ref: '#/components/schemas/PortOneVersion' title: 포트원 버전 customer: $ref: '#/components/schemas/IdentityVerificationFilterCustomerInput' title: 고객 정보 description: 인증이 완료되지 않은 본인인증 내역의 경우 요청 시 고객 정보로, 인증이 완료된 본인인증 내역의 경우 인증된 고객 정보로 필터링합니다. x-portone-title: 본인인증 다건 조회를 위한 입력 정보 VerifiedIdentityVerification: title: 완료된 본인인증 내역 description: 완료된 본인인증 내역 type: object required: - status - id - verifiedCustomer - requestedAt - updatedAt - statusChangedAt - verifiedAt - pgTxId - pgRawResponse - version properties: status: type: string title: 본인인증 상태 id: type: string title: 고객사 본인인증 번호 channel: $ref: '#/components/schemas/SelectedChannel' title: 사용된 본인인증 채널 verifiedCustomer: $ref: '#/components/schemas/IdentityVerificationVerifiedCustomer' title: 인증된 고객 정보 customData: type: string title: 사용자 지정 데이터 requestedAt: type: string format: date-time title: 본인인증 요청 시점 updatedAt: type: string format: date-time title: 업데이트 시점 statusChangedAt: type: string format: date-time title: 상태 업데이트 시점 verifiedAt: type: string format: date-time title: 본인인증 완료 시점 pgTxId: type: string title: 본인인증 내역 PG사 아이디 pgRawResponse: type: string title: PG사 응답 데이터 version: $ref: '#/components/schemas/PortOneVersion' title: 포트원 버전 x-portone-title: 완료된 본인인증 내역 IdentityVerificationMethod: title: 본인인증 방식 description: 본인인증 방식 type: string enum: - SMS - APP x-portone-title: 본인인증 방식 x-portone-enum: SMS: {} APP: {} GetIdentityVerificationsBody: title: GetIdentityVerificationsBody description: 본인인증 내역 다건 조회를 위한 입력 정보 type: object properties: page: $ref: '#/components/schemas/PageInput' title: 요청할 페이지 정보 description: '미 입력 시 number: 0, size: 10 으로 기본값이 적용됩니다.' sort: $ref: '#/components/schemas/IdentityVerificationSortInput' title: 정렬 조건 description: '미 입력 시 sortBy: REQUESTED_AT, sortOrder: DESC 으로 기본값이 적용됩니다.' filter: $ref: '#/components/schemas/IdentityVerificationFilterInput' title: 조회할 본인인증 내역 조건 필터 x-portone-description: 본인인증 내역 다건 조회를 위한 입력 정보 PageInput: title: 다건 조회 API 에 사용되는 페이지 입력 정보 description: 다건 조회 API 에 사용되는 페이지 입력 정보 type: object properties: number: type: integer format: int32 title: 0부터 시작하는 페이지 번호 size: type: integer format: int32 title: 각 페이지 당 포함할 객체 수 x-portone-title: 다건 조회 API 에 사용되는 페이지 입력 정보 PgCompany: title: PG사 description: PG사 type: string enum: - INICIS - NICE - KCP - DANAL - TOSSPAYMENTS - MOBILIANS - KICC - SMARTRO - DAOU - BLUEWALNUT - PAYPAL - ALIPAY - EXIMBAY - PAYMENTWALL - SETTLE - GALAXIA - NAVERPAY - KAKAOPAY - SMILEPAY - KAKAO - TOSSPAY - CHAI - PAYCO - PAYPLE - SYRUP - KSNET - WELCOME - JTNET - KPN - HYPHEN - PAYLETTER - TRIPLE_A - INNOPAY x-portone-title: PG사 x-portone-enum: KICC: {} ALIPAY: {} SYRUP: {} PAYCO: {} PAYLETTER: {} CHAI: {} TOSSPAY: {} INICIS: {} SETTLE: {} KAKAO: {} DANAL: {} BLUEWALNUT: {} KAKAOPAY: {} EXIMBAY: {} WELCOME: {} SMARTRO: {} SMILEPAY: {} PAYMENTWALL: {} NAVERPAY: {} INNOPAY: {} GALAXIA: {} DAOU: {} JTNET: {} PAYPAL: {} MOBILIANS: {} HYPHEN: {} TRIPLE_A: {} KPN: {} NICE: {} TOSSPAYMENTS: {} PAYPLE: {} KSNET: {} KCP: {} IdentityVerificationAlreadySentError: title: 본인인증 건이 이미 API로 요청된 상태인 경우 description: 본인인증 건이 이미 API로 요청된 상태인 경우 type: object required: - type properties: type: type: string message: type: string x-portone-title: 본인인증 건이 이미 API로 요청된 상태인 경우 x-portone-status-code: 409 GetIdentityVerificationsError: title: GetIdentityVerificationsError oneOf: - $ref: '#/components/schemas/ForbiddenError' - $ref: '#/components/schemas/InvalidRequestError' - $ref: '#/components/schemas/UnauthorizedError' discriminator: propertyName: type mapping: FORBIDDEN: '#/components/schemas/ForbiddenError' INVALID_REQUEST: '#/components/schemas/InvalidRequestError' UNAUTHORIZED: '#/components/schemas/UnauthorizedError' SendIdentityVerificationBodyCustomer: title: 본인인증 요청을 위한 고객 정보 description: 본인인증 요청을 위한 고객 정보 type: object required: - name - phoneNumber - ipAddress properties: id: type: string title: 식별 아이디 name: type: string title: 이름 phoneNumber: type: string title: 전화번호 description: 특수 문자(-) 없이 숫자만 입력합니다. identityNumber: type: string title: 주민등록번호 앞 7자리 description: SMS 방식의 경우 필수로 입력합니다. ipAddress: type: string title: IP 주소 description: 고객의 요청 속도 제한에 사용됩니다. x-portone-title: 본인인증 요청을 위한 고객 정보 SortOrder: title: 정렬 방식 description: 정렬 방식 type: string enum: - DESC - ASC x-portone-title: 정렬 방식 x-portone-enum: DESC: title: 내림차순 ASC: title: 오름차순 SendIdentityVerificationBody: title: 본인인증 요청을 위한 입력 정보 description: 본인인증 요청을 위한 입력 정보 type: object required: - channelKey - customer - operator - method properties: storeId: type: string title: 상점 아이디 description: 접근 권한이 있는 상점 아이디만 입력 가능하며, 미입력시 인증 정보의 상점 아이디를 사용합니다. channelKey: type: string title: 채널 키 customer: $ref: '#/components/schemas/SendIdentityVerificationBodyCustomer' title: 고객 정보 customData: type: string title: 사용자 지정 데이터 bypass: type: object title: PG사별 추가 파라미터 ("PG사별 연동 가이드" 참고) operator: $ref: '#/components/schemas/IdentityVerificationOperator' title: 통신사 method: $ref: '#/components/schemas/IdentityVerificationMethod' title: 본인인증 방식 x-portone-title: 본인인증 요청을 위한 입력 정보 IdentityVerificationSortInput: title: 본인인증 내역 다건 조회 시 정렬 조건 description: 본인인증 내역 다건 조회 시 정렬 조건 type: object properties: by: $ref: '#/components/schemas/IdentityVerificationSortBy' title: 정렬 기준 필드 description: 어떤 필드를 기준으로 정렬할 지 결정합니다. 비워서 보낼 경우, REQUESTED_AT이 기본값으로 설정됩니다. order: $ref: '#/components/schemas/SortOrder' title: 정렬 순서 description: 어떤 순서로 정렬할 지 결정합니다. 비워서 보낼 경우, DESC(내림차순)가 기본값으로 설정됩니다. x-portone-title: 본인인증 내역 다건 조회 시 정렬 조건 PageInfo: title: 반환된 페이지 결과 정보 description: 반환된 페이지 결과 정보 type: object required: - number - size - totalCount properties: number: type: integer format: int32 title: 요청된 페이지 번호 size: type: integer format: int32 title: 요청된 페이지 당 객체 수 totalCount: type: integer format: int32 title: 실제 반환된 객체 수 x-portone-title: 반환된 페이지 결과 정보 PortOneVersion: title: 포트원 버전 description: 포트원 버전 type: string enum: - V1 - V2 x-portone-title: 포트원 버전 x-portone-enum: V1: {} V2: {} IdentityVerificationNotFoundError: title: 요청된 본인인증 건이 존재하지 않는 경우 description: 요청된 본인인증 건이 존재하지 않는 경우 type: object required: - type properties: type: type: string message: type: string x-portone-title: 요청된 본인인증 건이 존재하지 않는 경우 x-portone-status-code: 404 SendIdentityVerificationError: title: SendIdentityVerificationError oneOf: - $ref: '#/components/schemas/ChannelNotFoundError' - $ref: '#/components/schemas/ForbiddenError' - $ref: '#/components/schemas/IdentityVerificationAlreadySentError' - $ref: '#/components/schemas/IdentityVerificationAlreadyVerifiedError' - $ref: '#/components/schemas/IdentityVerificationNotFoundError' - $ref: '#/components/schemas/InvalidRequestError' - $ref: '#/components/schemas/MaxTransactionCountReachedError' - $ref: '#/components/schemas/PgProviderError' - $ref: '#/components/schemas/UnauthorizedError' discriminator: propertyName: type mapping: CHANNEL_NOT_FOUND: '#/components/schemas/ChannelNotFoundError' FORBIDDEN: '#/components/schemas/ForbiddenError' IDENTITY_VERIFICATION_ALREADY_SENT: '#/components/schemas/IdentityVerificationAlreadySentError' IDENTITY_VERIFICATION_ALREADY_VERIFIED: '#/components/schemas/IdentityVerificationAlreadyVerifiedError' IDENTITY_VERIFICATION_NOT_FOUND: '#/components/schemas/IdentityVerificationNotFoundError' INVALID_REQUEST: '#/components/schemas/InvalidRequestError' MAX_TRANSACTION_COUNT_REACHED: '#/components/schemas/MaxTransactionCountReachedError' PG_PROVIDER: '#/components/schemas/PgProviderError' UNAUTHORIZED: '#/components/schemas/UnauthorizedError' IdentityVerificationFilterCustomerInput: title: 본인인증 다건 조회를 위한 고객 정보 입력 정보 description: 본인인증 다건 조회를 위한 고객 정보 입력 정보 type: object properties: name: type: string title: 이름 birthYear: type: string title: 출생 연도 birthMonth: type: string title: 출생월 birthDay: type: string title: 출생일 phoneNumber: type: string title: 전화번호 description: 특수 문자(-) 없이 숫자로만 이루어진 번호 형식입니다. gender: $ref: '#/components/schemas/Gender' title: 성별 x-portone-title: 본인인증 다건 조회를 위한 고객 정보 입력 정보 IdentityVerificationFailure: title: 본인인증 실패 정보 description: 본인인증 실패 정보 type: object properties: reason: type: string title: 실패 사유 pgCode: type: string title: PG사 실패 코드 pgMessage: type: string title: PG사 실패 메시지 x-portone-title: 본인인증 실패 정보 ForbiddenError: title: 요청이 거절된 경우 description: 요청이 거절된 경우 type: object required: - type properties: type: type: string message: type: string x-portone-title: 요청이 거절된 경우 x-portone-status-code: 403 SendIdentityVerificationResponse: title: 본인인증 요청 전송 성공 응답 description: 본인인증 요청 전송 성공 응답 type: object x-portone-title: 본인인증 요청 전송 성공 응답 SelectedChannel: title: (결제, 본인인증 등에) 선택된 채널 정보 description: (결제, 본인인증 등에) 선택된 채널 정보 type: object required: - type - pgProvider - pgMerchantId properties: type: $ref: '#/components/schemas/SelectedChannelType' title: 채널 타입 id: type: string title: 채널 아이디 key: type: string title: 채널 키 name: type: string title: 채널 명 pgProvider: $ref: '#/components/schemas/PgProvider' title: PG사 결제 모듈 pgMerchantId: type: string title: PG사 고객사 식별 아이디 x-portone-title: (결제, 본인인증 등에) 선택된 채널 정보 IdentityVerificationTimeRangeField: title: 본인인증 다건 조회 시, 시각 범위를 적용할 필드 description: 본인인증 다건 조회 시, 시각 범위를 적용할 필드 type: string enum: - REQUESTED_AT - VERIFIED_AT - FAILED_AT - STATUS_UPDATED_AT x-portone-title: 본인인증 다건 조회 시, 시각 범위를 적용할 필드 x-portone-enum: REQUESTED_AT: title: 요청 시각 VERIFIED_AT: title: 완료 시각 FAILED_AT: title: 실패 시각 STATUS_UPDATED_AT: title: 상태 변경 시각 description: 요청 상태의 경우 REQUESTED_AT, 완료 상태의 경우 VERIFIED_AT, 실패 상태의 경우 FAILED_AT SelectedChannelType: title: 채널 타입 description: 채널 타입 type: string enum: - LIVE - TEST x-portone-title: 채널 타입 x-portone-enum: LIVE: title: 실 연동 채널 TEST: title: 테스트 연동 채널 PgProviderError: title: PG사에서 오류를 전달한 경우 description: PG사에서 오류를 전달한 경우 type: object required: - type - pgCode - pgMessage properties: type: type: string message: type: string pgCode: type: string pgMessage: type: string x-portone-title: PG사에서 오류를 전달한 경우 x-portone-status-code: 502 IdentityVerificationAlreadyVerifiedError: title: 본인인증 건이 이미 인증 완료된 상태인 경우 description: 본인인증 건이 이미 인증 완료된 상태인 경우 type: object required: - type properties: type: type: string message: type: string x-portone-title: 본인인증 건이 이미 인증 완료된 상태인 경우 x-portone-status-code: 409 ReadyIdentityVerification: title: 준비 상태의 본인인증 내역 description: 준비 상태의 본인인증 내역 type: object required: - status - id - requestedCustomer - requestedAt - updatedAt - statusChangedAt - version properties: status: type: string title: 본인인증 상태 id: type: string title: 고객사 본인인증 번호 channel: $ref: '#/components/schemas/SelectedChannel' title: 사용된 본인인증 채널 requestedCustomer: $ref: '#/components/schemas/IdentityVerificationRequestedCustomer' title: 요청 시 고객 정보 customData: type: string title: 사용자 지정 데이터 requestedAt: type: string format: date-time title: 본인인증 요청 시점 updatedAt: type: string format: date-time title: 업데이트 시점 statusChangedAt: type: string format: date-time title: 상태 업데이트 시점 version: $ref: '#/components/schemas/PortOneVersion' title: 포트원 버전 pgTxId: type: string title: 본인인증 내역 PG사 아이디 x-portone-title: 준비 상태의 본인인증 내역 InvalidRequestError: title: 요청된 입력 정보가 유효하지 않은 경우 description: '요청된 입력 정보가 유효하지 않은 경우 허가되지 않은 값, 올바르지 않은 형식의 요청 등이 모두 해당됩니다.' type: object required: - type properties: type: type: string message: type: string x-portone-title: 요청된 입력 정보가 유효하지 않은 경우 x-portone-description: 허가되지 않은 값, 올바르지 않은 형식의 요청 등이 모두 해당됩니다. x-portone-status-code: 400 IdentityVerificationVerifiedCustomer: title: 인증된 고객 정보 description: 인증된 고객 정보 type: object required: - name properties: id: type: string title: 식별 아이디 name: type: string title: 이름 operator: $ref: '#/components/schemas/IdentityVerificationOperator' title: 통신사 description: '다날: 별도 계약이 필요합니다. KG이니시스: 제공하지 않습니다.' phoneNumber: type: string title: 전화번호 description: '특수 문자(-) 없이 숫자로만 이루어진 번호 형식입니다. 다날: 별도 계약이 필요합니다. KG이니시스: 항상 제공합니다.' birthDate: description: 포트원 V2 본인인증 건의 경우 항상 존재합니다. type: string format: date x-portone-description: 날짜를 나타내는 문자열로, `yyyy-MM-dd` 형식을 따릅니다. title: 생년월일 (yyyy-MM-dd) gender: $ref: '#/components/schemas/Gender' title: 성별 description: '다날: 항상 제공합니다. KG이니시스: 항상 제공합니다.' isForeigner: type: boolean title: 외국인 여부 description: '다날: 별도 계약이 필요합니다. KG이니시스: 항상 제공합니다.' ci: type: string title: CI (개인 고유 식별키) description: '개인을 식별하기 위한 고유 정보입니다. 다날: 항상 제공합니다. KG이니시스: 카카오를 제외한 인증사에서 제공합니다.' di: type: string title: DI (사이트별 개인 고유 식별키) description: '중복 가입을 방지하기 위해 개인을 식별하는 사이트별 고유 정보입니다. 다날: 항상 제공합니다. KG이니시스: 제공하지 않습니다.' x-portone-title: 인증된 고객 정보 ConfirmIdentityVerificationError: title: ConfirmIdentityVerificationError oneOf: - $ref: '#/components/schemas/ForbiddenError' - $ref: '#/components/schemas/IdentityVerificationAlreadyVerifiedError' - $ref: '#/components/schemas/IdentityVerificationNotFoundError' - $ref: '#/components/schemas/IdentityVerificationNotSentError' - $ref: '#/components/schemas/InvalidRequestError' - $ref: '#/components/schemas/PgProviderError' - $ref: '#/components/schemas/UnauthorizedError' discriminator: propertyName: type mapping: FORBIDDEN: '#/components/schemas/ForbiddenError' IDENTITY_VERIFICATION_ALREADY_VERIFIED: '#/components/schemas/IdentityVerificationAlreadyVerifiedError' IDENTITY_VERIFICATION_NOT_FOUND: '#/components/schemas/IdentityVerificationNotFoundError' IDENTITY_VERIFICATION_NOT_SENT: '#/components/schemas/IdentityVerificationNotSentError' INVALID_REQUEST: '#/components/schemas/InvalidRequestError' PG_PROVIDER: '#/components/schemas/PgProviderError' UNAUTHORIZED: '#/components/schemas/UnauthorizedError' FailedIdentityVerification: title: 실패한 본인인증 내역 description: 실패한 본인인증 내역 type: object required: - status - id - requestedCustomer - requestedAt - updatedAt - statusChangedAt - failure - version properties: status: type: string title: 본인인증 상태 id: type: string title: 고객사 본인인증 번호 channel: $ref: '#/components/schemas/SelectedChannel' title: 사용된 본인인증 채널 requestedCustomer: $ref: '#/components/schemas/IdentityVerificationRequestedCustomer' title: 요청 시 고객 정보 customData: type: string title: 사용자 지정 데이터 requestedAt: type: string format: date-time title: 본인인증 요청 시점 updatedAt: type: string format: date-time title: 업데이트 시점 statusChangedAt: type: string format: date-time title: 상태 업데이트 시점 failure: $ref: '#/components/schemas/IdentityVerificationFailure' title: 본인인증 실패 정보 version: $ref: '#/components/schemas/PortOneVersion' title: 포트원 버전 pgTxId: type: string title: 본인인증 내역 PG사 아이디 x-portone-title: 실패한 본인인증 내역 IdentityVerificationRequestedCustomer: title: 요청 시 고객 정보 description: 요청 시 고객 정보 type: object properties: id: type: string title: 식별 아이디 name: type: string title: 이름 phoneNumber: type: string title: 전화번호 description: 특수 문자(-) 없이 숫자로만 이루어진 번호 형식입니다. birthYear: type: string title: 출생연도 birthMonth: type: string title: 출생월 birthDay: type: string title: 출생일 x-portone-title: 요청 시 고객 정보 ChannelNotFoundError: title: 요청된 채널이 존재하지 않는 경우 description: 요청된 채널이 존재하지 않는 경우 type: object required: - type properties: type: type: string message: type: string x-portone-title: 요청된 채널이 존재하지 않는 경우 x-portone-status-code: 404 UnauthorizedError: title: 인증 정보가 올바르지 않은 경우 description: 인증 정보가 올바르지 않은 경우 type: object required: - type properties: type: type: string message: type: string x-portone-title: 인증 정보가 올바르지 않은 경우 x-portone-status-code: 401 GetIdentityVerificationError: title: GetIdentityVerificationError oneOf: - $ref: '#/components/schemas/ForbiddenError' - $ref: '#/components/schemas/IdentityVerificationNotFoundError' - $ref: '#/components/schemas/InvalidRequestError' - $ref: '#/components/schemas/UnauthorizedError' discriminator: propertyName: type mapping: FORBIDDEN: '#/components/schemas/ForbiddenError' IDENTITY_VERIFICATION_NOT_FOUND: '#/components/schemas/IdentityVerificationNotFoundError' INVALID_REQUEST: '#/components/schemas/InvalidRequestError' UNAUTHORIZED: '#/components/schemas/UnauthorizedError' GetIdentityVerificationsResponse: title: 본인인증 내역 다건 조회 성공 응답 정보 description: 본인인증 내역 다건 조회 성공 응답 정보 type: object required: - items - page properties: items: title: 조회된 본인인증 내역 리스트 type: array items: $ref: '#/components/schemas/IdentityVerification' page: $ref: '#/components/schemas/PageInfo' title: 조회된 페이지 정보 x-portone-title: 본인인증 내역 다건 조회 성공 응답 정보 MaxTransactionCountReachedError: title: 결제 혹은 본인인증 시도 횟수가 최대에 도달한 경우 description: 결제 혹은 본인인증 시도 횟수가 최대에 도달한 경우 type: object required: - type properties: type: type: string message: type: string x-portone-title: 결제 혹은 본인인증 시도 횟수가 최대에 도달한 경우 x-portone-status-code: 400 ConfirmIdentityVerificationBody: title: 본인인증 확인을 위한 입력 정보 description: 본인인증 확인을 위한 입력 정보 type: object properties: storeId: type: string title: 상점 아이디 description: 접근 권한이 있는 상점 아이디만 입력 가능하며, 미입력시 인증 정보의 상점 아이디를 사용합니다. otp: type: string title: OTP (One-Time Password) description: SMS 방식에서만 사용됩니다. x-portone-title: 본인인증 확인을 위한 입력 정보 Gender: title: 성별 description: 성별 type: string enum: - MALE - FEMALE - OTHER x-portone-title: 성별 x-portone-enum: MALE: title: 남성 FEMALE: title: 여성 OTHER: title: 그 외 성별 securitySchemes: bearerJwt: type: http description: 'Authorization: Bearer `엑세스 토큰`' scheme: bearer portOne: type: http description: 'Authorization: PortOne `발급된 API 시크릿`' scheme: portone x-portone-categories: - id: payment title: 결제 관련 API description: 결제와 관련된 API 기능을 제공합니다. children: - id: payment.paymentSchedule title: 결제 예약 관련 API description: 결제 예약과 관련된 API 기능을 제공합니다. - id: payment.billingKey title: 빌링키 관련 API description: 빌링키와 관련된 API 기능을 제공합니다. - id: payment.cashReceipt title: 현금 영수증 관련 API description: 현금 영수증과 관련된 API 기능을 제공합니다. - id: payment.promotion title: 프로모션 관련 API description: 프로모션과 관련된 API 기능을 제공합니다. - id: payment.additionalFeature title: 결제 부가기능 관련 API description: 결제 부가기능과 관련된 API 기능을 제공합니다. - id: identityVerification title: 본인인증 관련 API description: 본인인증과 관련된 API 기능을 제공합니다. - id: pgSpecific title: 특정 PG사 관련 API description: 특정 PG사에 국한된 API 기능을 제공합니다. - id: reconciliation title: 대사 서비스 API description: 거래 대사 및 정산 대사 관련 API 기능을 제공합니다. - id: b2b title: 세금계산서 API description: 세금계산서 API 기능을 제공합니다. children: - id: b2b.counterparty title: 거래처 관련 API description: 거래처 관련 API 기능을 제공합니다. - id: b2b.taxInvoice title: 세금계산서 발행 관련 API description: 세금계산서 발행 관련 API 기능을 제공합니다. - id: platform title: 파트너 정산 관련 API description: 파트너 정산 서비스 API 기능을 제공합니다. children: - id: platform.policy title: 정책 관련 API description: 파트너 정산에 적용할 정책에 관한 API 입니다. - id: platform.partner title: 파트너 관련 API description: 파트너 정산에 적용할 파트너에 관한 API 입니다. - id: platform.transfer title: 정산 상세내역 관련 API description: 파트너 정산 서비스의 정산 상세내역과 관련된 API 입니다. - id: platform.account title: 계좌 관련 API description: 파트너 정산 서비스의 계좌와 관련된 API 입니다. - id: platform.partnerSettlement title: 정산 내역 관련 API description: 파트너 정산 서비스의 정산 내역과 관련된 API 입니다. - id: platform.payout title: 지급 내역 관련 API description: 파트너 정산 서비스의 지급 내역과 관련된 API 입니다. - id: platform.bulkPayout title: 일괄 지급 내역 관련 API description: 파트너 정산 서비스의 일괄 지급 내역과 관련된 API 입니다. - id: platform.accountTransfer title: 이체 내역 관련 API description: 파트너 정산 서비스의 이체 내역과 관련된 API 입니다. - id: platform.bulkAccountTransfer title: 일괄 이체 내역 관련 API description: 파트너 정산 서비스의 일괄 이체 내역과 관련된 API 입니다. - id: platform.company title: 사업자 관련 API description: 파트너 정산 서비스의 사업자와 관련된 API 입니다. - id: auth title: 인증 관련 API description: '인증과 관련된 API 기능을 제공합니다. 접근 토큰 방식으로 인증하기를 원하는 경우, API 시크릿을 통해 토큰을 발급받은 후 Authorization 헤더에 `Bearer ACCESS_TOKEN` 형식으로 전달합니다.' - id: paymentSession title: 결제 세션 API description: 결제 세션 생성 및 관리 API. 호스티드 체크아웃에 사용됩니다. - id: checkoutProfile title: 체크아웃 프로필 API description: 체크아웃 프로필에서 결제 수단 목록을 조회하기 위한 API. - id: ap title: AP API description: AP 기능을 제공합니다. - id: common title: 공통 API description: 공통 API 기능을 제공합니다.