마켓플레이스

결제수단 목록

하위 프로젝트에 어떤 PG 결제수단이 붙어 있고 켜져 있는지 확인한다.

하위 프로젝트에 설정된 결제수단을 모두 돌려준다. 켜진 것과 꺼 둔 것이 함께 나온다. 결제수단을 붙이거나 끄고 켜는 것은 PG 리소스 갱신 으로 한다.

핵심 요약

  • status 가 1 이면 켜짐(결제창에 나온다), 0 이면 꺼짐이다. 꺼 둔 결제수단도 연동 값과 기록이 그대로 남아 있어 다시 켤 수 있다.
  • resource 는 키 이름은 그대로, 값은 가린 값​​이다(앞 5자 + *****, 10자보다 짧은 값은 앞 절반 + *****). PG 가맹점 키 원문은 어떤 리셀러 API 응답에도 나오지 않는다.
  • sandbox_mode 가 true 면 테스트 모드다.
  • cert_expire_at 은 인증서가 필요한 결제수단(예: KCP 휴대폰 자동결제)의 가장 이른 인증서 만료 시각이다. 인증서가 없으면 null 이다.
  • 프로젝트를 만들 때 함께 붙는 부트페이 기본 결제수단(테스트 모드)도 목록에 나온다.
  • payment_setting_lock 은 이 프로젝트의 결제 설정 잠금 상태다(가맹점 잠금 seller_locked · 리셀러 잠금 reseller_locked). 잠금과 상관없이 리셀러 API 로는 결제수단을 바꿀 수 있다 — 결제 설정 잠금

API 정보

GEThttps://api.bootpay.co.kr/v2/reseller/seller/app/:app_id/payment-methodsBasic Auth (리셀러 계정 키)

요청 파라미터

파라미터 타입 필수 설명
app_id String 필수 하위 프로젝트의 app_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 appId = '65a1c0ab8f1b5b00367a0010'
const res = await fetch(`https://api.bootpay.co.kr/v2/reseller/seller/app/${appId}/payment-methods`, {
    headers: { 'Authorization': RESELLER_AUTH }
})
const { list } = await res.json()
console.log(list.filter(pm => pm.status === 1).map(pm => `${pm.pg_alias}/${pm.method_alias}`))javascript

응답

{
  "app_id": "65a1c0ab8f1b5b00367a0010",
  "list": [
    {
      "payment_resource_id": "65a1c0ab8f1b5b00367a0015",
      "pg_id":               "6098a1b2c3d4e5f600000101",
      "pg_name":             "나이스페이먼츠",
      "pg_alias":            "nicepay",
      "method_id":           "6098a1b2c3d4e5f600000201",
      "method_name":         "카드",
      "method_alias":        "card",
      "resource_mode":       null,
      "sandbox_mode":        false,
      "easypay":             false,
      "updated_at":          "2026-10-27T10:00:00+09:00",
      "status":              1,
      "resource": {
        "mid":          "nicep*****",
        "mkey":         "EYzu8*****"
      },
      "cert_expire_at": null
    }
  ],
  "payment_setting_lock": {
    "seller_locked":       false,
    "seller_changed_at":   null,
    "reseller_locked":     true,
    "reseller_changed_at": "2026-10-29T15:00:00+09:00"
  }
}json
필드 타입 필수 설명
app_id String 필수 프로젝트 식별자
list Array 필수 결제수단 목록
payment_resource_id String 필수 프로젝트에 붙은 결제수단 식별자
pg_id / pg_name / pg_alias String 필수 PG 식별자·이름·심볼
method_id / method_name / method_alias String 필수 결제수단 식별자·이름·심볼
resource_mode String 선택 PG 연동 방식(일부 PG 만)
sandbox_mode Boolean 필수 테스트 모드 여부
easypay Boolean 필수 간편결제 여부
updated_at String 선택 마지막 변경 시각
status Number 필수 1 켜짐, 0 꺼짐
resource Object 필수 연동 값. 키는 그대로, 값은 가린 값. 빈 값은 빈 값 그대로
cert_expire_at String 선택 인증서 만료 시각. 인증서가 없으면 null
payment_setting_lock Object 필수 결제 설정 잠금 상태
seller_locked Boolean 필수 가맹점이 자기 화면에서 켠 잠금
seller_changed_at String 선택 가맹점 잠금을 마지막으로 바꾼 시각
reseller_locked Boolean 필수 리셀러 잠금. 켜져 있으면 가맹점이 결제수단·테스트 모드·연동 값을 못 바꾼다
reseller_changed_at String 선택 리셀러 잠금을 마지막으로 바꾼 시각

에러 코드

코드 메시지 대처 방법
API_ONLY_RESELLER (601) 리셀러만 이용이 가능한 API 다 리셀러 권한 계정 키로 호출한다
API_SCOPE_INVALID 허용되지 않은 API 권한의 키다 (HTTP 401) 키에 이 API 의 리셀러 스코프 를 주거나 전체 권한(supervisor) 키로 호출한다
APP_NOT_FOUND (200) 프로젝트를 찾지 못했다 (HTTP 404) app_id 가 올바른지 확인한다
APP_NOT_PERMIT (201) 본인 하위 프로젝트가 아니다 (HTTP 401) app_id 가 본인 리셀러 하위 셀러의 프로젝트인지 확인한다

함께 보기