Reevit

Payment Links

Generate shareable payment pages without writing code

Payment Links

Payment Links let you generate a unique URL that displays a branded checkout page. Share it via email, SMS, or embed it on your websiteβ€”no coding required. Each link tracks its own stats, usage limits, and associated payments.

Payment Links are ideal for invoicing, donations, event tickets, or any one-off transaction where you don't want to build a custom checkout flow.


Use CaseWhy Payment Links Work
InvoicesSend a payment link to a client instead of chasing bank transfers.
DonationsCreate a shareable donation page with optional custom amounts.
Events & TicketsGenerate a link for event registration with a fixed price.
Quick SalesShare a link on social media for one-off product sales.

Via the Dashboard

Navigate to Payment Links in your dashboard and click "Create Link". Fill in the required fields and share the generated URL.

Via SDK

import { Reevit } from '@reevit/node';

const link = await reevit.paymentLinks.create({
  name: 'Event Ticket - Q1 Meetup',
  description: 'Entry for the Jan 2025 Developer Meetup',
  amount: 5000, // 50.00 GHS in minor units
  currency: 'GHS',
  redirect_url: 'https://yoursite.com/thank-you',
  max_uses: 100,
  expires_at: '2025-01-31T23:59:59Z'
});

console.log(link.url); // https://pay.reevit.dev/lnk_xyz123

πŸ“‹ Field Reference

FieldTypeRequiredDescription
namestringβœ…Internal name for the link (e.g., "Jan Invoice for Client A").
descriptionstringCustomer-facing text shown on the checkout page.
amountintegerFixed amount in minor currency units. Omit if using allow_custom_amount.
currencystringβœ…ISO 4217 currency code (e.g., GHS, NGN, USD).
allow_custom_amountbooleanIf true, the customer can enter their own amount.
min_amountintegerMinimum amount when custom amounts are enabled.
max_amountintegerMaximum amount when custom amounts are enabled.
redirect_urlstringURL to redirect customer after successful payment.
webhook_urlstringOptional override for webhooks related to this link.
expires_atstringISO 8601 timestamp after which the link becomes unusable.
max_usesintegerMaximum number of successful payments before the link deactivates.
custom_fieldsarrayCollect extra data (e.g., name, email) before payment.
brandingobjectCustomize the checkout page's logo and colors.
metadataobjectAttach your own key-value pairs for tracking.

πŸ“Š Tracking & Stats

Each Payment Link has its own analytics:

  • Total Views: How many times the checkout page was loaded.
  • Successful Payments: Number of completed transactions.
  • Conversion Rate: Successful Payments / Total Views.
  • Total Revenue: Sum of all successful payments.

Fetch stats programmatically:

const stats = await reevit.paymentLinks.getStats('lnk_xyz123');
// { views: 150, payments: 45, conversion_rate: 0.30, total_revenue: 225000 }

βœ… Best Practices

  1. Set Expiry Dates: For time-sensitive campaigns, always set an expires_at to prevent stale links.
  2. Use Descriptive Names: Make internal names searchable (e.g., "Invoice #1234 - Acme Corp").
  3. Custom Branding: Use the branding field to match the checkout page to your brand.
  4. Limit Usage: For limited promotions, set max_uses to control how many payments can be processed.