마켓플레이스

테스트 데이터 삭제

CI 가 만들어둔 테스트 셀러를 한 줄로 청소한다.

리셀러 본인 하위에 만들어둔 테스트 셀러 한 곳을 통째로 삭제한다. 셀러 자신, 셀러의 모든 프로젝트(app), 발급된 연동키(AppKey), 셀러·프로젝트 멤버 권한이 한 번에 정리된다.

테스트 전용

이 엔드포인트는 통합 테스트·CI 에서 만들어둔 데이터를 정리하기 위한 용도다. 운영 데이터에는 절대 호출하지 않는다. 결제 내역·정산 데이터와 함께 셀러가 사라져 복구할 수 없다.

핵심 요약

  • 리셀러 본인의 하위가 아닌 셀러는 삭제되지 않는다. provider_id 가 다른 리셀러 소속이면 PROVIDER_NOT_FOUND 가 떨어진다.
  • 본인(리셀러 자기 자신) 의 provider_id 를 넣어도 거부된다. 리셀러 자체는 이 API 로 삭제할 수 없다.
  • 한 번에 한 셀러만 삭제된다. 대량 정리는 반복 호출이 필요하다.

API 정보

DELETEhttps://api.bootpay.co.kr/v2/reseller/test/seller/:provider_idBasic Auth (리셀러 계정 키)

요청 파라미터

파라미터 타입 필수 설명
provider_id String 필수 삭제할 테스트 셀러의 provider_id (URL 경로)

코드 예제

import fetch from 'node-fetch'

const RESELLER_AUTH = 'Basic ' + Buffer
  .from(`${process.env.BOOTPAY_RESELLER_CLIENT_KEY}:${process.env.BOOTPAY_RESELLER_SECRET_KEY}`)
  .toString('base64')

const providerId = '65a1c0aa8f1b5b00367a0001'

const res = await fetch(`https://api.bootpay.co.kr/v2/reseller/test/seller/${providerId}`, {
    method: 'DELETE',
    headers: { 'Authorization': RESELLER_AUTH }
})
console.log(res.status) // 200javascript

삭제 범위

한 번의 호출로 아래가 모두 사라진다.

대상 설명
셀러(provider) 셀러 자체 레코드
프로젝트(app) 셀러가 소유한 모든 프로젝트
AppKey 프로젝트에 발급된 모든 연동키 (client_key, secret_key)
ProviderRole 셀러에 묶인 모든 팀 멤버 권한
AppRole 프로젝트에 묶인 모든 프로젝트 멤버 권한
결제·정산 데이터

이 API 는 셀러와 그 하위 구조를 모두 삭제한다. 실제 결제 내역이 있는 운영 셀러에는 호출하면 안 된다. 테스트 환경에서만 사용한다.

응답

성공 시 본문은 비어 있고, HTTP 200 으로 떨어진다.

에러 코드

코드 메시지 대처 방법
API_ONLY_RESELLER 리셀러만 이용이 가능한 API 다 리셀러 권한 계정 키로 호출한다
PROVIDER_NOT_FOUND 셀러가 본인 하위에 없거나 본인 자신이다 provider_id 가 본인 하위 셀러인지 확인한다. 리셀러 자기 자신은 삭제 불가

CI 에서 쓰는 패턴

테스트 흐름은 보통 셋업·검증·정리 세 단계로 묶인다.

// 1) 셋업 — 테스트용 셀러 생성
const seller = await createTestSeller({
    primary_key: `ci-${process.env.GITHUB_RUN_ID}-${Date.now()}`,
    company_name: 'CI Sandbox',
    email: `ci+${Date.now()}@example.com`
})

try {
    // 2) 검증 — 결제 흐름 테스트
    await runPaymentFlow(seller.apps[0].application_keys[0].key)
} finally {
    // 3) 정리 — 어떤 결과든 셀러 일괄 삭제
    await fetch(`https://api.bootpay.co.kr/v2/reseller/test/seller/${seller.provider_id}`, {
        method: 'DELETE',
        headers: { 'Authorization': RESELLER_AUTH }
    })
}javascript

primary_key 에 CI 빌드 식별자를 박아두면 누구의 어떤 실행에서 만든 셀러인지 추적이 쉽다. 정리에서 누락된 잔여 셀러가 있어도 primary_key 패턴으로 찾아 일괄 처리할 수 있다.

다음 단계