마켓플레이스

팀·프로젝트 초대

셀러 담당자에게 부트페이 콘솔 권한을 코드로 부여한다.

리셀러가 셀러의 부트페이 콘솔 권한을 코드로 발급한다. 셀러 전체(provider) 에 접근시키거나, 특정 프로젝트(app) 에만 권한을 묶는 두 가지 모드가 있다. 메일이 발송되고, 수신자가 메일 안의 링크로 가입을 완료하면 권한이 부여된다.

핵심 요약

  • invite_type 으로 팀(provider) / 프로젝트(app) 두 종류를 구분한다.
  • 같은 이메일을 짧은 시간에 반복 초대하면 INVITE_LIMIT_OVER 로 막힌다. 본사 콘솔에서 클릭 한 번에 여러 번 보내는 흐름은 디바운스해서 호출한다.
  • 이미 가입한 사용자에게는 가입 안내 대신 권한만 추가된다.
  • 응답 본문은 비어 있다. HTTP 200 이면 초대 메일이 발송된 상태다.

두 가지 초대 모드

invite_type 의미 필요한 식별자
또는 provider 셀러 전체(provider) 권한을 부여한다 provider_id
프로젝트 또는 app 특정 프로젝트(app) 권한만 부여한다 app_id

한국어 키와 영문 키 모두 받는다. 본문에서는 영문 키를 권장한다.

API 정보

POSThttps://api.bootpay.co.kr/v2/reseller/inviteBasic Auth (리셀러 계정 키)

요청 파라미터

파라미터 타입 필수 설명
invite_type String 필수 provider(셀러 전체) 또는 app(특정 프로젝트). 한국어 /프로젝트 도 허용
email String 필수 초대받을 사람의 이메일
level String 필수 권한 레벨. 아래 권한 레벨 표 참고
provider_id String 선택 invite_typeprovider 일 때 필수
app_id String 선택 invite_typeapp 일 때 필수

권한 레벨

levelinvite_type 에 따라 의미가 달라진다.

invite_type=app (프로젝트 권한)

level 의미
admin 또는 관리자 프로젝트의 모든 설정을 수정할 수 있다
manager 또는 매니저 결제 조회·취소, 결제 설정, 프로젝트 정보 설정 등
member 또는 팀원 결제 내역 조회 권한만 부여된다

invite_type=provider (팀 권한)

level 의미
admin 셀러 그룹의 정보·권한을 관리한다
user 셀러의 모든 프로젝트에 접속 가능. 프로젝트별로 별도 권한 부여 가능

코드 예제

셀러 전체 권한 부여

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 res = await fetch('https://api.bootpay.co.kr/v2/reseller/invite', {
    method: 'POST',
    headers: {
        'Content-Type': 'application/json',
        'Authorization': RESELLER_AUTH
    },
    body: JSON.stringify({
        invite_type: 'provider',
        provider_id: '65a1c0aa8f1b5b00367a0001',
        email:       'owner@hanip.shop',
        level:       'admin'
    })
})
console.log(res.status) // 200javascript

특정 프로젝트만 권한 부여

const res = await fetch('https://api.bootpay.co.kr/v2/reseller/invite', {
    method: 'POST',
    headers: {
        'Content-Type': 'application/json',
        'Authorization': RESELLER_AUTH
    },
    body: JSON.stringify({
        invite_type: 'app',
        app_id:      '65a1c0ab8f1b5b00367a0010',
        email:       'cs@hanip.shop',
        level:       'member'   // CS 담당자는 조회 권한만
    })
})javascript

응답

성공 시 응답 본문은 비어 있고, HTTP 200 으로 떨어진다. 초대 메일은 응답 직후 비동기로 발송된다.

동작 규칙

상황 결과
이메일 수신자가 부트페이 미가입자 가입 안내 메일이 발송된다. 가입 완료 시 권한 부여
이미 가입한 사용자 권한만 추가된다
같은 프로젝트에 이미 초대된 이메일 INVITE_ALREADY 가 떨어진다
짧은 시간에 같은 이메일을 반복 초대 INVITE_LIMIT_OVER 가 떨어진다

에러 코드

코드 메시지 대처 방법
API_ONLY_RESELLER 리셀러만 이용이 가능한 API 다 리셀러 권한 계정 키로 호출한다
INVITE_TYPE_INVALID invite_type 이 유효하지 않다 provider 또는 app 으로 지정한다
APP_OWNER_MEMBER_NOT_FOUND 초대 주체가 될 멤버를 찾지 못했다 리셀러 기본 프로젝트가 정상인지 확인한다
APP_NOT_FOUND 본인 하위 프로젝트가 아니다 app_id 와 소속 셀러를 확인한다
INVITE_PROJECT_LEVEL_INVALID level 값이 유효하지 않다 admin / manager / member 중 선택
INVITE_ALREADY 이미 초대된 사용자다 콘솔에서 멤버 목록을 먼저 확인한다
INVITE_LIMIT_OVER 같은 이메일이 단기간에 너무 많이 초대되었다 일정 시간 후 재시도한다

다음 단계