Offer Payment Processing to Your Customers

Earn Residual Income

Build apps. Offer payments. Earn residuals. Give your clients integrated processing and get paid on every transaction.

Integration Examples

See how easy it is to accept payments with just a few lines of code

One-Time Payment

3 lines

Accept a single payment with just a few lines of code. Perfect for products, services, or donations.

$99.99

Product Purchase

RRPay.init('pk_test_demo123'); RRPay.createButton('#pay-button', { amount: 99.99, description: 'Product Purchase' });

Subscription

with trial

Create recurring subscriptions with optional free trials. Weekly, monthly, yearly, or custom intervals.

$29.99/month
14-day free trial
RRPay.createSubscriptionButton('#btn', { amount: 29.99, interval: 'month', trialDays: 14 });

Weekly Billing

Perfect for services that bill on a weekly basis. Easy to set up with the interval option.

$9.99/week

Weekly Service

RRPay.createSubscriptionButton('#btn', { amount: 9.99, interval: 'week' });

Custom Interval

Need billing every 2 weeks? Quarterly? Every 6 months? Use intervalCount for custom cycles.

$79.99/quarter

Every 3 months

RRPay.createSubscriptionButton('#btn', { amount: 79.99, interval: 'month', intervalCount: 3 // Every 3 months });

Monthly vs Annual

toggle

Let customers choose between monthly and annual billing with a discount for annual plans.

Monthly
AnnualSave 17%
$29.99/month

Billed monthly

let isAnnual = false; function toggleBilling() { isAnnual = !isAnnual; const config = isAnnual ? { amount: 299, interval: 'year' } : { amount: 29.99, interval: 'month' }; RRPay.createSubscriptionButton('#btn', config); }

With Setup Fee

Charge a one-time setup fee along with the recurring subscription amount.

$49.99/month

+ $99 setup fee

RRPay.createSubscriptionButton('#btn', { amount: 49.99, interval: 'month', setupFee: 99.00 });

Custom Button

async/await

Use your own button design and trigger checkout programmatically with async/await.

async function pay() { const result = await RRPay.checkout({ amount: 19.99, description: 'Custom checkout' }); console.log('Paid!', result); }