PayPal
Connecting PayPal lets Loyva send invoices from your PayPal account and collect payment there. PayPal emails the customer a hosted pay page, and the payment status flows back into Loyva automatically.
Connect from Settings → Integrations → PayPal.
Unlike DocuSign or QuickBooks, PayPal has no one-click authorization flow for this. You create a REST app in your own PayPal Developer Dashboard and paste two values into Loyva. It takes about two minutes — see below.
What PayPal can and can't do
Each payment system Loyva supports has slightly different capabilities. Loyva adapts the invoice screen to whichever one you're using, so you'll never be offered something your provider can't do — but it's worth knowing the shape up front.
| PayPal | |
|---|---|
| One-time invoices | ✅ |
| Recurring subscriptions | ✅ — one recurring item per agreement |
| One-time and recurring on the same invoice | ❌ — send them separately |
| Payment reminders | ✅ |
| Future-dated billing start | ✅ |
| Voiding an invoice | ✅ |
| Cancel at period end | ❌ — cancelling stops future charges immediately |
| Loyva platform fee | ❌ — none is taken on PayPal invoices |
Connecting
1. Create a REST app in PayPal
- Go to the PayPal Developer Dashboard → Apps & Credentials.
- Choose Sandbox (for testing) or Live (for real payments) at the top.
- Click Create App, give it a name, and choose the Merchant type.
- Copy the Client ID and Secret.
2. Paste them into Loyva
- Open Settings → Integrations → PayPal.
- Pick the matching Environment — Sandbox or Live.
- Paste the Client ID and Secret.
- Click Connect PayPal.
Loyva verifies the credentials against PayPal before saving. If they're rejected, the error tells you which environment was tried — pasting Live keys while Sandbox is selected (or the reverse) is the most common mistake.
3. Add the Webhook ID (recommended)
Without this step invoices still get paid, but Loyva only notices on its hourly sync — so a paid invoice can show as unpaid for up to an hour.
- In your PayPal app, scroll to Webhooks and click Add Webhook.
- Set the URL to
https://webhook.loyva.io/paypal. - Subscribe to these events:
INVOICING.INVOICE.PAIDINVOICING.INVOICE.CANCELLEDINVOICING.INVOICE.REFUNDEDINVOICING.INVOICE.UPDATEDBILLING.SUBSCRIPTION.ACTIVATEDBILLING.SUBSCRIPTION.CANCELLEDBILLING.SUBSCRIPTION.SUSPENDEDBILLING.SUBSCRIPTION.EXPIREDBILLING.SUBSCRIPTION.PAYMENT.FAILEDBILLING.SUBSCRIPTION.UPDATED
- Save, then copy the generated Webhook ID (it starts with
WH-). - Paste it into the Webhook ID field in Loyva.
Choosing PayPal as your default
If you have more than one payment system connected, set which one new invoices use under Settings → Integrations → Default payment system.
Leaving it on Automatic keeps the historical behaviour: Stripe if connected, then QuickBooks, then PayPal.
If your chosen system is later disconnected, Loyva keeps invoicing on whatever else is connected and shows a warning — your preference is remembered, so reconnecting restores it.
Recurring billing on PayPal
PayPal handles recurring differently from other providers, and the difference matters:
A PayPal recurring agreement is created in a pending state and charges nothing until the customer clicks an approval link. Loyva emails that link for you (PayPal doesn't), and the invoice shows Awaiting customer approval until they act.
If the customer never approves, no money is ever collected. Loyva stops counting the agreement after 30 days.
Two limits worth planning around:
- One recurring item per agreement. PayPal ties a subscription to a single plan. If you have several recurring items, send them as separate invoices.
- No mixing. One-time and recurring items can't share an invoice on PayPal. Loyva tells you before you send.
Cancelling a PayPal agreement stops future charges immediately — there is no cancel-at-period-end.
Disconnecting
Settings → Integrations → PayPal → Disconnect removes the stored credentials.
Invoices you've already sent stay in PayPal and can still be paid — but Loyva stops tracking their status, so reconnect if you need payments to keep syncing.
Reconnecting to a different PayPal account is safe: Loyva clears the product and plan records cached against the old account, since those don't exist under the new one.
Troubleshooting
"PayPal rejected these credentials." The Client ID and Secret don't match the selected environment. Sandbox credentials only work with Sandbox, Live only with Live.
Invoices are paid in PayPal but still show as unpaid in Loyva. Either no Webhook ID is saved (Loyva then relies on its hourly sync), or the Webhook ID doesn't match the app the credentials came from. Reconnect with the correct Webhook ID.
"This customer has no email address." PayPal addresses invoices by email — add one to the customer record and try again.
A recurring agreement has been pending for days. The customer hasn't clicked the approval link. Resend it from the invoice, or use Send Reminder.