Show HN: Stripe-no-webhooks – Stripe 데이터를 Postgres DB에 동기화
발행: (2026년 2월 11일 오전 02:14 GMT+9)
4 분 소요
원문: Hacker News
Source: Hacker News
Overview
stripe-no-webhooks은 Stripe 결제 데이터를 자체 Postgres 데이터베이스와 동기화하는 오픈소스 라이브러리입니다.
- Repository:
- Demo video:
Why it’s useful
- No webhook plumbing – 라이브러리는 Stripe에 필요한 웹훅 엔드포인트를 자동으로 생성하고 모든 이벤트를
stripe.*스키마에 저장하므로, 어떤 웹훅을 들어야 할지 결정하거나 직접 리스너를 작성할 필요가 없습니다. - Avoid rate limits – Stripe API는 분당 100 요청으로 제한됩니다. 로컬 Postgres를 조회하면 이 제한을 우회할 수 있어 내부 도구나 빈번한 구독 확인에 편리합니다.
- Secure AI access – AI 에이전트에게
stripe.*스키마에 대한 읽기 전용 권한을 부여해 결제 문제(실패한 청구, 환불 등)를 디버깅할 수 있으며, Stripe 대시보드를 노출할 필요가 없습니다. - Custom analytics – Stripe 데이터를 자체 테이블과 조인해 LTV 계산, 맞춤 보고서 등 다양한 분석을 수행할 수 있습니다.
How it works
- 라이브러리는 Stripe 계정에 웹훅 엔드포인트를 등록합니다.
- 들어오는 Stripe 이벤트는 백엔드로 전달되고, 리스너가 데이터를 Postgres의 새로운
stripe.*스키마에 기록합니다. - TypeScript로 플랜을 정의하고 동기화 명령을 실행합니다. 라이브러리는 해당 Stripe 제품 및 가격을 생성하고, 웹훅을 처리하며, 데이터베이스를 동기화 상태로 유지합니다.
- 기존 Stripe 데이터는 이미 존재하는 계정에 대해 백필(backfill)할 수 있습니다.
Features
- 선불 사용 크레딧, 계정 지갑, 사용량 기반 청구
- 자동 생성, 커스터마이징 가능한 가격표 컴포넌트
- 청구 정보를 접근하기 위한 간단한 API
// Example API calls
billing.subscriptions.get({ userId });
billing.credits.consume({ userId, key: "api_calls", amount: 1 });
billing.usage.record({ userId, key: "ai_model_tokens_input", amount: 4726 });
Plan definition (TypeScript)
{
name: "Pro",
description: "Cursor Pro plan",
price: [{ amount: 2000, currency: "usd", interval: "month" }],
features: {
api_completion: {
pricePerCredit: 1, // 1 cent per unit
trackUsage: true, // Enable usage billing
credits: { allocation: 500 },
displayName: "API Completions",
},
tab_completion: {
credits: { allocation: 2000 },
displayName: "Tab Completions",
},
},
}
Consuming credits
await billing.credits.consume({
userId: user.id,
key: "api_completion",
amount: 1,
});
await billing.credits.topUp({
userId: user.id,
key: "api_completion",
amount: 500, // buy 500 credits, charges $5.00
});
Additional capabilities
- 좌석 수준 크레딧 및 금전 지갑(마이크로 센트 정밀도)
- 자동 충전, 견고한 실패 복구, 세금 징수, 인보이스
- 바로 사용할 수 있는 가격표 UI
Demo app
테스트용 토이 앱이 제공됩니다:
- App: (no validation; feel free to sign up with a dummy email)
- Test card:
4242 4242 4242 4242, any future expiry, any 3‑digit CVV - Screenshot:
편하게 사용해 보세요! 라이브러리를 사용한다면 저장소에 버그를 보고해 주세요. 도움이 필요하거나 토론하고 싶다면 HN 프로필을 통해 연락할 수 있습니다.