Skip to main content

Payments: direct connection

InvoiceQuickly + PayPal: PayPal-hosted payment links for your invoices

On the Pro plan ($9/month), you connect your own PayPal account by entering a REST app Client ID, Client Secret and webhook ID. For any sent invoice you can then create a PayPal link: InvoiceQuickly creates a matching invoice in your PayPal account for the remaining balance, without PayPal emailing your client, and gives you its payment page. Your client pays on PayPal, the money lands in your PayPal balance, and InvoiceQuickly records the payment when PayPal sends its invoice-paid event. InvoiceQuickly adds no per-payment fee. PayPal charges its own invoicing rates, for example 2.99% + $0.49 when a US client pays by card (PayPal fee page last updated October 1, 2026). Refunds are issued in PayPal and then recorded in InvoiceQuickly; InvoiceQuickly cannot send a PayPal refund for you.

How it works

Setting up PayPal payments, step by step

  1. Step 1: Get live REST app credentials from PayPal

    In the PayPal Developer Dashboard, open Apps & Credentials, switch to Live, and create or open a REST app. Copy its Client ID and Secret. PayPal issues live credentials only to verified Business or Premier accounts. Use live credentials: InvoiceQuickly connects to PayPal's live API, so sandbox credentials fail with an authentication error.

  2. Step 2: Configure the PayPal card in Integrations

    In InvoiceQuickly, go to Integrations and choose Configure on the PayPal card. Save the Client ID and Client Secret first, leaving Webhook ID empty. The inactive connection then shows its Webhook URL; payment links stay off until the real Webhook ID is saved. Only owners and admins can save provider credentials, and the card is locked on the Free plan.

  3. Step 3: Add the webhook in PayPal and save its ID

    After saving, the PayPal card shows a Webhook URL with a Copy button. In your PayPal app's live webhook settings, add a webhook with that URL and subscribe it to INVOICING.INVOICE.PAID. PayPal then shows a Webhook ID. Back in InvoiceQuickly, choose Finish webhook setup and save the real Webhook ID. Leave unchanged credential fields blank to keep them.

  4. Step 4: Send the invoice, then choose Create PayPal link

    The Create PayPal link action appears in an invoice's action menu once the invoice has left draft, is not cancelled, and still has a balance. InvoiceQuickly creates a PayPal invoice with a unique provider number and your original invoice number as the reference, one line for the balance, and your client's email as the recipient. PayPal does not email it; the link appears on your invoice, as a Pay button in the client portal, and in the next invoice email you send.

  5. Step 5: PayPal confirms, InvoiceQuickly records

    Your client pays the full balance on PayPal's invoice page. When PayPal sends INVOICING.INVOICE.PAID, InvoiceQuickly checks the signature with PayPal, matches the PayPal invoice ID to your invoice, and records the payment. If it clears the balance, the invoice status changes to paid.

Why connect it

What connecting PayPal gives you

What you get

  • Clients who already use PayPal pay on PayPal's own invoice page, and card details never pass through InvoiceQuickly
  • The payment goes to your PayPal balance; InvoiceQuickly never holds funds
  • Each webhook event is verified with PayPal's signature-verification API before anything is recorded
  • Repeated deliveries of the same PayPal event are ignored, so retries do not double-count a payment
  • Credentials are encrypted with AES-256-GCM before storage and only the last four characters are shown
  • You can connect both PayPal and Stripe and choose which link to create for each invoice

Best for

  • Freelancers whose clients prefer to pay with a PayPal account, a card, or Pay Later through PayPal
  • Small businesses that already run a verified PayPal Business account and want those payments recorded on each invoice
  • Invoices a client may pay days after receiving them, since a PayPal link is an invoice rather than a 24-hour checkout session
  • Not a fit if you want refunds issued from InvoiceQuickly, need the client to pay in instalments through PayPal, or do not have a PayPal Business or Premier account

Setup

Setting it up

You need a PayPal account with REST API credentials and an InvoiceQuickly paid plan with an owner or admin role. Use credentials and webhooks matching the environment shown on the PayPal card; the production default is Live. Save Client ID and Client Secret first, leaving Webhook ID empty. The connection remains inactive and displays a Webhook URL. Add that URL in the same PayPal app, subscribe to INVOICING.INVOICE.PAID, then choose Finish webhook setup and save the real Webhook ID. Leave unchanged credential fields blank. Payment links stay off until setup is complete. Send a test invoice using the appropriate test environment and verify the payment record. Updating keeps the same webhook URL; disconnecting and reconnecting creates a new URL that you must update in PayPal.

Good practice

Best practices

Keep the Client ID, Secret and Webhook ID from the same live app

InvoiceQuickly verifies each event by asking PayPal to check it against the Webhook ID you saved, using the Client ID and Secret. If the webhook belongs to a different app or to the sandbox, verification fails and the payment is not recorded.

Cancel the old PayPal invoice when the balance changes

A PayPal link is a PayPal invoice for a fixed amount. If you record a manual payment or a credit note afterwards, cancel the earlier invoice in PayPal and create a new link, so the client cannot pay the old, higher amount. InvoiceQuickly refuses to record more than the remaining balance.

Confirm pending payments in PayPal

PayPal's invoice-paid event also fires when a payment is made but still pending. InvoiceQuickly records the amount when the event arrives, so for bank-funded payments check PayPal before you treat the money as received.

Reconcile fees and refunds in PayPal

InvoiceQuickly records the gross amount, such as $850.00, not the $824.09 that reaches your PayPal balance. Payments arriving from PayPal are labelled as card payments in InvoiceQuickly whatever the client used, so use PayPal's activity reports to see the method and fees.

Troubleshooting

Common issues

Creating a link says PayPal authentication failed

The Client ID or Secret is wrong, from a sandbox app, or from a different app. Copy both again from the Live view of your REST app, choose Update on the PayPal card, and enter all three values.

The client paid in PayPal, but the invoice is still unpaid

Check that the live app has a webhook at the exact URL shown on the PayPal card, subscribed to INVOICING.INVOICE.PAID, and that its Webhook ID is the one saved in InvoiceQuickly. Then open PayPal's Webhooks Events page for the live environment. Failed deliveries are retried up to 25 times over 3 days and can be resent from there. If the client paid outside the link, record the payment by hand.

Webhook deliveries fail with a 404

Either the URL no longer matches an active PayPal connection, usually after disconnecting and reconnecting, or the PayPal invoice in the event does not match the latest link created in InvoiceQuickly, for example because a newer link replaced it. Update the webhook URL in PayPal, and record payments on replaced links by hand.

Webhook deliveries fail with a 400

Signature verification failed, usually a Webhook ID from another app or environment, or the invoice could not take the payment because it was already paid or the amount exceeds the remaining balance. Correct the Webhook ID, or check the invoice's recorded payments and refund any overpayment in PayPal.

Questions

PayPal and InvoiceQuickly: questions

Do I need a PayPal Business account?

You need an account that PayPal will issue live REST API credentials to. PayPal's developer documentation says that requires a verified Premier or verified Business account. A personal account cannot generate them.

What does PayPal charge on an invoice payment?

PayPal's invoicing rates, not InvoiceQuickly's. Worked example on an $850.00 invoice using PayPal's US merchant fee page (last updated October 1, 2026; accessed October 27, 2026): a card payment is 2.99% + $0.49 = $25.91, so you receive $824.09. Paying with a PayPal account is 3.49% + $0.49 = $30.16 ($819.84 net). Pay Later is 4.99% + $0.49 = $42.91 ($807.09 net). PayPal adds 1.50% for international invoicing transactions, and non-US accounts have different rates.

Is it safe for my client to pay through the PayPal link?

The link opens an invoice page hosted by PayPal for your PayPal account, so your client enters payment details with PayPal, not InvoiceQuickly. InvoiceQuickly stores only the PayPal invoice ID and never sees card numbers.

Does PayPal email the invoice to my client?

No. InvoiceQuickly creates the PayPal invoice with PayPal's notifications turned off. You share the link yourself: it appears on the invoice, in the client portal, and in the invoice email InvoiceQuickly sends on Pro.

Can I refund a PayPal payment from InvoiceQuickly?

Not directly. Issue the refund in PayPal first. Then, in InvoiceQuickly Payments, choose Refund, keep the box saying you already completed the refund outside InvoiceQuickly ticked, and save. The invoice balance reopens. InvoiceQuickly does not read PayPal's refund event, so this step is manual.

Can my client pay part of the invoice through PayPal?

No. The PayPal invoice is created without partial payments, which PayPal's API defaults to off, so the client pays the full balance shown. For instalments, record each payment by hand and create a new link for what remains.

Is PayPal available on the Free plan?

No. Stripe and PayPal payment links are part of Pro. Free can record bank transfers, cards, cash, checks and partial payments by hand.

Create your first invoice

The Free plan covers 5 invoices in total with PDF download. Pro is $9/month for unlimited invoices, email delivery and Stripe or PayPal payment links.

Start free

Last verified: October 2026