Holded PayPal integration
PayPal payments booked in Holded with correct VAT, fees and multi-currency.
Implementation time · 4-6 días laborables
The problem
PayPal is still a relevant channel in many Spanish SMEs: ecommerce with buyers who prefer PayPal for trust, professional services with international clients who only pay via PayPal, freelancers who have billed EU and UK clients since before Stripe. But its output to Holded is nonexistent: a PayPal dashboard with payments, someone exports a quarterly CSV, someone else cleans it, fees booked wrong, VAT by country lost. The official PayPal to Holded extension is limited and does not handle multi-currency or intra-community VAT properly.
ProposalThe solution
Every PayPal payment received generates a Holded invoice with the matching customer, VAT by buyer country and the correct series. PayPal fees are booked as an expense by category. Payments in other currencies (USD, GBP) are recorded with their EUR equivalent at PayPal's own rate. Supports one-off payments, PayPal recurring subscriptions, full and partial refunds, disputes and chargebacks. For sellers with an active PayPal Business account, it is the foundation of their Spanish tax accounting.
What we automate
- PaymentReceived to Holded invoice with correct customer, VAT and series
- PayPal Subscriptions to Holded recurring invoice
- Full or partial refund to Holded credit note with the exact amount
- PayPal fees (percentage plus fixed) to a categorized expense entry
- Multi-currency with EUR equivalent at PayPal's rate on the payment date
- Disputes and chargebacks to pending credit notes with traceability
- Multi-account PayPal (several companies in the group) to separate series
- Identification of intra-community B2B from the buyer's data
Real use cases
These are the profiles that most ask us for the Holded ↔ PayPal integration and what they get in the end.
International SaaS collecting USD and EUR via PayPal
Before: USD to EUR at the bank's rate created mismatches with the actual collection.
After: PayPal's daily rate respected. Bank and Holded match to the cent.
Freelancer with UK and USA clients
Before: Payments with variable fees never booked as an expense.
After: Fees categorized as an expense. Real net profit visible.
Ecommerce with PayPal as a second channel after card
Before: Reconciling PayPal vs Stripe vs bank was a quarterly hell.
After: PayPal and Stripe payments both in Holded automatically. Reconciliation closed in hours.
What changes exactly
Without the integration
- Quarterly PayPal CSV opened by hand
- Multi-currency with EUR/USD/GBP mismatches
- PayPal fees never categorized as an expense
- Partial refunds badly reflected
With the integration
- PayPal to Holded in near real-time via webhooks
- Multi-currency with a precise PayPal rate
- Fees as categorized entries
- Partial credit notes with the exact amount
How we build it
PayPal REST API plus webhooks (PAYMENT.CAPTURE.COMPLETED, BILLING.SUBSCRIPTION.PAYMENT.COMPLETED, CUSTOMER.DISPUTE.CREATED) with signature verification. A persistent, idempotent queue using PayPal's event.id. Calls to Holded to create invoices with the correct tax matrix by buyer country. Fees are categorized by type (cross-border, currency conversion, chargeback) and posted to their accounting account.
Frequently asked questions
PayPal Business or personal?
Business is mandatory for API integration. If your account is personal and you bill professional services, it is best to migrate to Business first (free, same number).
And chargebacks?
When a dispute comes in, we generate a pending credit note in Holded. If you win the case, it is voided. If you lose, it is confirmed. Full traceability for your defense.
PayPal Subscriptions?
Supported. Each renewal generates a Holded recurring invoice with the series you define. Cancellations are propagated to the customer's status.
And cross-border fees (international shipping)?
Categorized separately as an expense. Cross-border fee, currency conversion fee, chargeback fee, each in its own accounting account.
Intra-community VAT with PayPal?
PayPal gives you the buyer's data. If they have a validatable intra-community tax ID, we apply 0% B2B. If not, the VAT of the buyer's country for B2C.
How long does it take?
Between 4 and 6 business days. Setups with heavy multi-currency or multiple accounts can rise to 7 or 8.
Related integrations
QuickBooks + Stripe
Every Stripe charge, refund and payout lands in QuickBooks on its own, with fees split out and the bank reconciled.
See integrationPaymentsXero + Stripe
Stripe payments, refunds and payouts pushed to Xero and grouped so the bank matches.
See integrationPaymentsNetSuite + Stripe
Stripe payments, refunds, payouts and subscriptions reconciled in NetSuite, with revenue schedules and automatic bank matching.
See integrationShall we talk about your PayPal integration?
A 30-minute call, no strings. You leave with scope and a price.