리셀러 본인 하위에 만들어둔 테스트 셀러 한 곳을 통째로 삭제한다. 셀러 자신, 셀러의 모든 프로젝트(app), 발급된 연동키(AppKey), 셀러·프로젝트 멤버 권한이 한 번에 정리된다.
테스트 전용
이 엔드포인트는 통합 테스트·CI 에서 만들어둔 데이터를 정리하기 위한 용도다. 운영 데이터에는 절대 호출하지 않는다. 결제 내역·정산 데이터와 함께 셀러가 사라져 복구할 수 없다.
핵심 요약
- 리셀러 본인의 하위가 아닌 셀러는 삭제되지 않는다.
provider_id가 다른 리셀러 소속이면PROVIDER_NOT_FOUND가 떨어진다. - 본인(리셀러 자기 자신) 의
provider_id를 넣어도 거부된다. 리셀러 자체는 이 API 로 삭제할 수 없다. - 한 번에 한 셀러만 삭제된다. 대량 정리는 반복 호출이 필요하다.
API 정보
DELETE
https://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) // 200javascriptimport base64, os, requests
auth = 'Basic ' + base64.b64encode(
f"{os.environ['BOOTPAY_RESELLER_CLIENT_KEY']}:{os.environ['BOOTPAY_RESELLER_SECRET_KEY']}".encode()
).decode()
provider_id = '65a1c0aa8f1b5b00367a0001'
res = requests.delete(
f'https://api.bootpay.co.kr/v2/reseller/test/seller/{provider_id}',
headers={'Authorization': auth}
)
print(res.status_code)pythonRESELLER_AUTH=$(printf '%s' "$BOOTPAY_RESELLER_CLIENT_KEY:$BOOTPAY_RESELLER_SECRET_KEY" | base64)
PROVIDER_ID='65a1c0aa8f1b5b00367a0001'
curl -X DELETE "https://api.bootpay.co.kr/v2/reseller/test/seller/$PROVIDER_ID" \
-H "Authorization: Basic $RESELLER_AUTH"bash삭제 범위
한 번의 호출로 아래가 모두 사라진다.
| 대상 | 설명 |
|---|---|
| 셀러(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 }
})
}javascriptprimary_key 에 CI 빌드 식별자를 박아두면 누구의 어떤 실행에서 만든 셀러인지 추적이 쉽다. 정리에서 누락된 잔여 셀러가 있어도 primary_key 패턴으로 찾아 일괄 처리할 수 있다.