@lumra/payments
v0.1.1
Published
Lumra payment provider abstraction layer
Readme
@lumra/payments
Payment provider registry for Lumra. Defines the PaymentProvider interface and manages registered providers. Backend package — Node.js only.
Install
npm install @lumra/paymentsUsage
import { registerProvider, getProvider } from '@lumra/payments'
import { createStripeConnectProvider } from '@lumra/module-stripe-connect'
// Register once at app startup
registerProvider(createStripeConnectProvider({
secretKey: process.env.STRIPE_SECRET_KEY!,
webhookSecret: process.env.STRIPE_WEBHOOK_SECRET!,
}))
// Use anywhere in your app
const provider = getProvider('stripe')
const session = await provider.createCheckoutSession({
resourceId: 'video-123',
userId: 'user-456',
amount: 999, // cents — always from your DB, never from the client
currency: 'usd',
successUrl: 'https://yourapp.com/watch/video-123?success=1',
cancelUrl: 'https://yourapp.com/watch/video-123',
})
console.log(session.url) // redirect the user hereMultiple providers
import { registerProvider, getProvider } from '@lumra/payments'
import { createStripeConnectProvider } from '@lumra/module-stripe-connect'
import { createPayPalProvider } from '@lumra/module-paypal'
registerProvider(createStripeConnectProvider({ ... }))
registerProvider(createPayPalProvider({ ... }))
const stripe = getProvider('stripe')
const paypal = getProvider('paypal')PaymentProvider interface
Implement this interface to add any payment gateway:
interface PaymentProvider {
name: string
createCheckoutSession(params: CheckoutSessionParams): Promise<{ url: string }>
handleWebhook(rawBody: Buffer, signature: string): Promise<PaymentEvent>
}See @lumra/module-stripe-connect for a full implementation example.
© 2026 Reel Foundry AU. All rights reserved.
MIT License — see LICENSE
