For recurring billing and subscription management, see Customer Lifecycle.
How it works
- Create a payment via the API with an amount, currency, and optional details
- Share the payment URL with your customer — via link, email, or embedded in your app
- Customer pays on the hosted payment portal
- Receive a webhook confirming the payment status
Create a payment
API Reference: See the Create Payment endpoint for the complete request and response schema.
paymentUrl that you can share with your customer to complete the payment.
Check payment status
You can poll payment status as a fallback if webhooks are delayed.Payment lifecycle
Every payment moves through these statuses:| Status | Description |
|---|---|
pending | Payment created, waiting for customer to pay |
processing | Customer submitted payment, processing with payment provider |
completed | Payment successfully collected |
expired | Payment link expired before the customer paid |
cancelled | Payment was cancelled |
Most payments follow the path:
pending → processing → completed. If the customer doesn’t pay before the expiration, the payment transitions to expired.Key features
- Currency — Payments use your account currency, chosen during onboarding (USD, EUR, GBP, or AUD)
- Line items — Optional itemized breakdown displayed on the payment page (up to 100 items)
- Idempotency — Use
idempotencyKeyto safely retry requests without creating duplicate payments - Metadata — Attach arbitrary key-value pairs to payments for your own tracking
- Custom expiration — Set
expiresInas an ISO 8601 duration (e.g.,P7Dfor 7 days). Default is 30 days, maximum is 31 days - Redirect URLs — Specify
successRedirectUrlandfailureRedirectUrlfor the hosted payment page - Save payment method — Set
savePaymentMethod: trueto store the customer’s card for future use (requirescustomerId) - Amount range — Minimum 1.00, maximum 5,000.00 (in your account currency). Contact support@paygentic.io for higher limits
Webhooks
Payment status changes fire webhook events. Listen for these to confirm payments server-side:| Event | Description |
|---|---|
payment.completed.v0 | Payment was successfully completed |
payment.failed.v0 | Payment attempt failed (includes error code and message) |
payment.expired.v0 | Payment expired before the customer completed it |
Next steps
- Payment Portal — Embed the payment page in your application
- Create Payment API Reference — Full endpoint documentation
- Accounts — How funds are managed and settled