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
namestringInternal 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.
currencystringISO 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.
referencestringYour internal order ID or reference for the transaction.
Webhook Routing: Reevit automatically injects the correlation metadata needed for PSP webhooks. Use metadata for your own tracking fields.

📊 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.