따라하기 가이드Business 플랜부터구매 후 권한·전달 처리
화이트라벨 — 처음부터 판매까지
내 서비스를 구매자의 브랜드로 제공하는 방식입니다. 구매자별 서비스 공간을 준비하라는 웹훅을 받아 공간을 생성하고 접속 정보를 전달합니다.
시작 전에 준비하세요
- 판매할 상품과 제공할 내용을 정합니다.
- 상품 등록에서 전달 방식을 선택합니다. 여러 방식을 함께 설정할 수 있습니다.
- 이 가이드에 따라 설정한 뒤 다른 계정으로 전달 결과를 확인합니다.
화면 예시·전달 방식·판매 조건 자세히 보기
아래 화면 예시는 실제 새몰 화면과 동일한 구성으로 재현한 것입니다. 내 계정에서는 상품 등록과 상품 수정 페이지의 연동 정보 카드에서 같은 화면을 만나게 됩니다.
한눈에 보기
1구매자새몰결제 (구매자 = 내 SaaS를 자기 브랜드로 운영하려는 사업자)
2새몰판매자tenant.provision_requested 웹훅 (구매자·플랜 정보)
3판매자판매자테넌트 인스턴스 생성 + 브랜딩 주입
4판매자구매자접속 정보 전달 (주문 전달 정보·이메일)
다른 자동 방식과 달리 프로비저닝(인스턴스 생성)은 판매자 몫입니다. 새몰은 결제·통지·접근 키·상태 관리를 맡습니다.
따라하기
1
상품 등록 — 프로비저닝 안내와 브랜딩 항목
화이트라벨은 Business 플랜부터 등록할 수 있습니다.
saemol.com/products/new
전달 방식 *
화이트라벨결제되면 테넌트를 만들라는 웹훅을 보내드립니다.
API 상품결제 즉시 API Key를 발급합니다.
프로비저닝 안내 (선택)
웹훅 수신 후 24시간 내 테넌트가 생성되며 접속 정보가 이메일로 발송됩니다
구매자에게 전달 정보로 안내됩니다
브랜딩 주입 항목 (선택)
로고, 도메인, 브랜드 컬러
구매자에게 준비해야 할 브랜딩 자료로 안내됩니다
웹훅 URL *
https://ops.mysaas.io/webhooks/saemol
2
결제 → 프로비저닝 웹훅 수신
결제 완료 시 tenant.provision_requested가 발송됩니다. 반드시 서명을 검증한 뒤 처리하세요.
webhooks/saemol.ts
import { verifyWebhook } from '@saemol/sdk'
export async function POST(req: Request) {
const event = verifyWebhook({
headers: req.headers,
rawBody: await req.text(),
secret: process.env.SAEMOL_WEBHOOK_SECRET!,
})
if (event.event === 'tenant.provision_requested') {
// event.data → { order_id, entitlement_id, plan_name, api_key, buyer_id }
await queueTenantProvisioning(event.data) // 멱등 처리 — 중복 도착 가능
}
return Response.json({ received: true })
}3
테넌트 생성 + 브랜딩 주입
내 인프라에서 인스턴스(서브도메인·DB 스키마 등)를 만들고, 구매자가 보낸 로고·도메인·컬러를 주입합니다. 발급된 접근 키(mfk_…)를 테넌트에 저장해 두면 이후 상태 확인에 쓸 수 있습니다.
테넌트 상태 확인 (선택) — 구독 만료·환불 대응
const ent = await saemol.verifyEntitlement({ apiKey: tenant.saemolKey })
if (!ent.valid) suspendTenant(tenant.id) // 환불·회수 → 접근 중단4
접속 정보 전달
인스턴스가 준비되면 주문의 전달 정보(또는 안내한 채널)로 접속 URL·초기 계정을 전달합니다.
saemol.com/orders/… (구매자 화면)
전달 정보
접근 키
mfk_b1c9…3e02테넌트 주소
https://acme.mysaas.io (초기 관리자 계정은 이메일 발송)테넌트 생성이 요청되었습니다. 웹훅 수신 후 24시간 내 테넌트가 생성되며 접속 정보가 이메일로 발송됩니다. 준비할 브랜딩 자료: 로고, 도메인, 브랜드 컬러
출시 전 체크리스트
- 웹훅 핸들러가 멱등하다 (같은 entitlement_id 중복 도착 대비)
- 프로비저닝 안내에 현실적인 소요 시간을 적었다
- 환불·회수 시 테넌트 접근 중단 절차가 있다 (verify 또는 entitlement.revoked 웹훅)