PayPal
This integration is active and ready to use in Frihet.
Connect your PayPal Business account to Frihet. Import transactions, view balances, and automatically reconcile international payments with your invoices. Supports sandbox mode for testing.
What is it for?
With PayPal integrated:
- Import transactions — Automatically bring PayPal payments into Frihet as invoices
- Full pagination — Import all transactions without limit (automatic pagination)
- Smart history — First import: 1 year of history. Afterwards: only new transactions since the last synchronization
- Refunds — Refunds are imported with
[Refund]prefix and negative amount for clear accounting - View balances — View your PayPal balance directly from the Frihet dashboard
- Reconcile payments — Associate PayPal transactions with existing invoices
- Multi-currency — Handles payments in EUR, USD, GBP, and other currencies
- Deduplication — Already imported transactions are not duplicated (
PP-prefix) - Sandbox mode — Test the integration without affecting real data
Requirements
- PayPal Business Account — Personal accounts do not have API access
- Application in PayPal Developer — To obtain Client ID and Client Secret
- Frihet Pro or higher
Connect PayPal with Frihet
Step 1: Create an application in PayPal Developer
- Go to developer.paypal.com
- Log in with your PayPal Business account
- In the dashboard, go to Apps & Credentials
- Select Live mode (or Sandbox for testing)
- Click on Create App
- Give it a name (e.g.: "Frihet ERP")
- Click on Create App
Once created, you will see:
- Client ID — A public identifier (e.g.:
AaBbCcDdEe...) - Client Secret — A private key (click "Show" to view it)
The Client Secret is only shown once. Copy it and save it in a secure place before continuing.
Step 2: Configure in Frihet
- Go to Settings → Integrations
- Search for PayPal
- Click on Connect
- Enter your Client ID and Client Secret
- Select the mode:
- Live — For real transactions
- Sandbox — For testing with fictitious data
- Click on Verify connection
- If correct, you will see "Connected"
Step 3: Verify connection
- Frihet automatically obtains an OAuth2 token using your credentials
- If the verification is successful, you will see your PayPal balance in the dashboard
- You can perform a test import with the latest transactions
How it works
Frihet uses the PayPal REST API v2 with OAuth2 authentication (client credentials flow):
- You provide Client ID and Client Secret
- Frihet automatically requests an access token from PayPal
- With that token, Frihet queries transactions and balances
- The credentials are stored encrypted (AES-256-GCM) in Frihet
- The token is automatically renewed when it expires
At no point do you need to manage tokens manually.
Synchronized data
| Data | Direction | Frequency |
|---|---|---|
| Received transactions | PayPal → Frihet | On demand / periodic |
| Account balance | PayPal → Frihet | On each query |
| Payer data | PayPal → Frihet | With each transaction |
| Currency and exchange rate | PayPal → Frihet | With each transaction |
Use cases
Freelancer with international clients
You charge clients in USD and EUR via PayPal. Frihet imports each payment, associates it with the corresponding invoice, and converts the amount to your base currency.
Online store with PayPal as payment method
You receive payments from clients via PayPal Checkout. Transactions are imported into Frihet, and you can reconcile them with invoiced orders.
Verify balance before paying vendors
Check your PayPal balance from the Frihet dashboard without leaving the application. Decide if you have available funds before issuing transfers.
Sandbox Mode
To test the integration without affecting real data:
- On developer.paypal.com, create an app in Sandbox mode
- Use the Sandbox credentials in Frihet (select "Sandbox" mode)
- PayPal provides test accounts with a fictitious balance
- Verify that transactions are imported correctly
- When you are ready, switch to Live mode with production credentials
Troubleshooting
"Authentication error"
- Verify that the Client ID and Client Secret are correct
- Make sure to use Live credentials in Live mode and Sandbox credentials in Sandbox mode
- Check that your PayPal Business account is active and verified
"No transactions are imported"
- Verify that there are transactions in the consulted period (1 year in first import, since last synchronization in subsequent ones)
- In Sandbox mode, generate test transactions from the PayPal Developer dashboard
- Check that your application in PayPal has the necessary permissions activated
- If the toast shows "No new transactions to import", all transactions are already in Frihet
"API permissions error"
- When creating the app in PayPal Developer, make sure it includes the transactions scope
- If you changed permissions, generate a new Client Secret and update it in Frihet
"I want to switch from Sandbox to Live"
- Go to Settings → Integrations → PayPal
- Click on Disconnect
- Reconnect with the production (Live) credentials