빠른 시작

Modfolio 앱을 만드는 팀을 위한 연동 순서입니다. SDK 설치부터 첫 API 호출까지 차례로 따라가세요.

1

SDK 설치

Bun 또는 npm으로 SDK를 설치합니다.

Terminal
bun add @modfolio/pay-sdk
2

클라이언트 생성

createPayClient를 import하고 인증 정보를 설정합니다. 서버 간 통신에는 API Key를, 사용자 대신 호출할 때는 JWT를 사용하세요.

TypeScript
import { createPayClient } from "@modfolio/pay-sdk";

const pay = createPayClient({
  baseUrl: "https://my.modfolio.io",
  auth: {
    type: "api-key",
    key: process.env.MODFOLIO_PAY_KEY,
    sourceApp: "gistcore",
    userId: "user_abc123",
  },
});
sourceApp 은 앱 식별자이고, 서버 간 호출용 X-API-Key 설정은인증 가이드를 참고하세요.
3

첫 번째 API 호출

월렛 잔액을 조회하는 간단한 API 호출로 연동을 확인합니다. 크레딧 충전을 제공하지 않아 잔액은 현재 항상 0 입니다.

TypeScript
const wallet = await pay.wallets.get();
console.log("잔액:", wallet.balance);
4

사용량 기반 과금 (현재 제공하지 않음)

크레딧 차감은 현재 제공하지 않습니다 — 아래 호출은 403 credits_disabled 를 받습니다. 제공을 재개하면 사용자의 액션마다 크레딧을 차감하고, 멱등성 키로 중복 차감을 막습니다.

TypeScript
const result = await pay.wallets.chargeAction({
  sourceApp: "gistcore",
  actionCode: "ai_generation",
  idempotencyKey: "unique-key-123",
});
5

웹훅 수신

이용권 구매(payment.completed)와 해지(subscription.cancelled)를 실시간으로 받으려면 웹훅 엔드포인트를 등록하세요.

TypeScript
// 결제 이벤트를 받으려면 웹훅 엔드포인트를 등록하세요
await pay.webhooks.create({
  url: "https://gistcore.com/api/webhooks/pay",
  events: ["payment.completed", "subscription.cancelled"],
});
웹훅 서명 검증과 재시도 정책은웹훅 가이드에서 자세히 다룹니다.