마켓플레이스

신청서 서류 열기

판매자가 올린 사업자등록증을 리셀러 화면에서 바로 확인한다.

하위 가맹점의 PG 가맹 신청서에 올라간 서류 목록과, 서류마다 3분 동안만 열 수 있는 열람 주소를 돌려준다. 신청서 id 는 등록 상태 조회 의 onboarding_id 다.

핵심 요약

  • 지금 신청서에 붙는 서류는 사업자등록증 하나다. 올리지 않았으면 list 가 빈 배열이다.
  • url 은 3분 뒤 막힌다. 저장해 두지 말고 열 때마다 이 API 를 다시 부른다.
  • 서류는 개인정보다. url 을 로그·에러 리포팅·브라우저 주소 공유에 남기지 않는다.
  • 부를 때마다 열람 기록이 신청서에 남는다(리셀러가 열었다는 기록).
  • 판매자가 콘솔에서 직접 낸 신청서도 본인 하위 가맹점 것이면 열 수 있다.
  • 다른 가맹점이나 다른 리셀러 하위의 신청서는 없는 것과 같은 PG_WAIT_NOT_FOUND 다.
  • 열기 전에 서류가 그 하위 가맹점이 올린 파일인지 확인한다. 아니거나 지워진 파일이면 그 서류는 list 에 나오지 않는다.

API 정보

GEThttps://api.bootpay.co.kr/v2/reseller/seller/:provider_id/onboarding/:onboarding_id/documentsBasic Auth (리셀러 계정 키)

요청 파라미터

파라미터 타입 필수 설명
provider_id String 필수 하위 가맹점 provider_id (URL 경로)
onboarding_id String 필수 신청서 id (URL 경로) — 등록 상태 조회 의 onboarding_id

코드 예제

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 onboardingId = '65a1c0aa8f1b5b00367a0050'

const res = await fetch(`https://api.bootpay.co.kr/v2/reseller/seller/${providerId}/onboarding/${onboardingId}/documents`, {
    headers: { 'Authorization': RESELLER_AUTH }
})
const { list } = await res.json()
// list[0].url 을 바로 열어 보여 준다 — 저장하지 않는다javascript

응답

{
  "onboarding_id": "65a1c0aa8f1b5b00367a0050",
  "list": [
    {
      "kind":        "business_license",
      "file_name":   "사업자등록증.pdf",
      "mime_type":   "application/pdf",
      "size":        482113,
      "uploaded_at": "2026-10-20T11:02:00+09:00",
      "url":         "https://s.bootapi.com/api/v1/secure_documents/example_file_id/download?expires=1793090063&p=65a1c0aa8f1b5b00367a0001&sig=example_signature",
      "expires_at":  "2026-10-27T10:03:00+09:00",
      "expires_in":  180
    }
  ]
}json
필드 타입 필수 설명
onboarding_id String 필수 신청서 id
list Array 필수 서류 목록. 서류가 없으면 []
kind String 필수 서류 종류. 지금은 business_license(사업자등록증)
file_name String 선택 올린 파일 이름
mime_type String 선택 파일 형식
size Number 선택 파일 크기(바이트)
uploaded_at String 선택 올린 시각
url String 필수 열람 주소. 3분 뒤 막힌다
expires_at String 필수 url 이 막히는 시각
expires_in Number 필수 url 유효 시간(초). 180

에러 코드

코드 메시지 대처 방법
API_ONLY_RESELLER (601) 리셀러만 이용이 가능한 API 다 리셀러 권한 계정 키로 호출한다
API_SCOPE_INVALID 허용되지 않은 API 권한의 키다 (HTTP 401) 키에 이 API 의 리셀러 스코프 를 주거나 전체 권한(supervisor) 키로 호출한다
PROVIDER_NOT_FOUND (300) 본인 하위 가맹점이 아니다 (HTTP 404) provider_id 가 본인 리셀러 하위인지 확인한다
PG_WAIT_NOT_FOUND (11000) 그 가맹점의 신청서가 아니다 (HTTP 404) 등록 상태 조회 에서 onboarding_id 를 다시 확인한다
COMMERCE_REQUEST_FAILED (8182) 서류 주인을 확인하지 못했다(연동 서버 오류). 열람 주소를 주지 않는다 잠시 뒤 다시 부른다

함께 보기