# Developers

Frihet exposes a full REST API and a webhook system so you can integrate your ERP with any tool. Automate workflows, sync data with your existing systems, or build custom integrations. See all [Frihet features](https://www.frihet.io/en/features) and [available integrations](https://www.frihet.io/en/integrations).

## Core resources

### [REST API](/desarrolladores/api-rest)

RESTful API with API key authentication. Access invoices, expenses, clients, products, and quotes programmatically.

- Full CRUD endpoints for 5 resources
- Pagination, filtering, and sorting
- 100 requests/minute limit per key
- Standardized JSON responses

### [Webhooks](/desarrolladores/webhooks)

Receive real-time notifications when events occur in your Frihet account. 14 event types with HMAC-SHA256 signatures to verify the authenticity of every payload.

- 14 event types (invoices, expenses, quotes, clients, products)
- Cryptographic signature on every delivery
- Automatic retries with exponential backoff
- Delivery logs accessible from the dashboard

---

## Integration tier model

Frihet organizes its 100+ integrations into three levels based on connection depth:

| Tier | Name | Description |
|------|------|-------------|
| **Tier 1** | Full Sync | Complete bidirectional sync via dedicated services (import + webhooks + reconciliation). |
| **Tier 2** | Credentials Only / Beta | Credentials stored securely. Full automatic sync on the roadmap. |
| **Tier 3** | Webhook URL | Generates a webhook URL to connect with your automations. No bidirectional sync. |

The tier badge for each integration is visible on the connection screen inside the app.

---

## Supported integrations

Frihet connects natively with 100+ tools. Each integration can be extended with the REST API and webhooks to cover advanced use cases. See all [available integrations](https://www.frihet.io/en/integrations) on the website.

### Tier 1 — Full Sync (41 integrations)

Complete bidirectional sync. Production-ready.

| Category | Services |
|----------|---------|
| **Payments** | [PayPal](/integraciones/paypal), GoCardless, Stripe Revenue, Stripe Connect |
| **Banking** | Mercury, Pleo, Wise, Qonto |
| **E-commerce** | [Shopify](/integraciones/shopify), [WooCommerce](/integraciones/woocommerce), [Gumroad](/integraciones/gumroad), [Lemon Squeezy](/integraciones/lemon-squeezy), [Etsy](/integraciones/etsy), [Square](/integraciones/square), [Squarespace](/integraciones/squarespace), [PrestaShop](/integraciones/prestashop) |
| **Accounting** | Xero, QuickBooks Online, FreshBooks, Wave Accounting, Zoho Books, Sage Business Cloud, Lexoffice |
| **Time tracking** | [Toggl](/integraciones/toggl), [Clockify](/integraciones/clockify), [Harvest](/integraciones/harvest) |
| **Productivity** | [Asana](/integraciones/asana), [Trello](/integraciones/trello), [Notion](/integraciones/notion) |
| **Calendar** | [Google Calendar](/integraciones/google-calendar), [Outlook Calendar](/integraciones/outlook-calendar) |
| **Storage** | [Google Drive](/integraciones/google-drive), [Google Sheets](/integraciones/google-sheets), [Dropbox](/integraciones/dropbox) |
| **Communication** | [Slack](/integraciones/slack) |
| **CRM** | [HubSpot](/integraciones/hubspot), [Pipedrive](/integraciones/pipedrive), [Intercom](/integraciones/intercom) |
| **eSign** | [PandaDoc](/integraciones/pandadoc), [DocuSign](/integraciones/docusign), [HelloSign](/integraciones/hellosign) |
| **Expenses** | [Expensify](/integraciones/expensify) |
| **Email** | [Mailchimp](/integraciones/mailchimp) |

### Tier 2 — Credentials Only / Beta (56 integrations)

Credentials connected and configuration ready. Full sync on the roadmap.

| Category | Services |
|----------|----------|
| **E-commerce** | eBay, TikTok Shop, Printful, BigCommerce, Magento/Adobe Commerce |
| **CRM** | Salesforce, Zoho CRM, Freshsales, Close CRM, Copper CRM |
| **Logistics** | Sendcloud, ShipStation, Correos Spain, SEUR, DHL Express, FedEx, UPS, Shippo |
| **HR** | Factorial, Personio, BambooHR, Gusto, PayFit |
| **Marketing** | Brevo, ConvertKit, ActiveCampaign, Lemlist, Beehiiv, Meta Marketing API, Google Ads API |
| **POS** | SumUp POS, SumUp Payments, SumUp Invoices, Lightspeed Restaurant, Lightspeed X-Series |
| **Communication** | Discord Webhooks, Microsoft Teams Webhooks, Telegram Bot API |
| **Freelance** | Upwork |
| **Payments** | Adyen, Checkout.com, Braintree, Mollie, Bunq, Brex, Monzo Premium, N26 Business, Starling Bank |
| **Open Banking** | Tink, OpenBanking, PayPal Sandbox, Plaid, Revolut |
| **Banking** | [N26](/integraciones/n26) |
| **Messaging** | [WhatsApp](/integraciones/whatsapp) |
| **Marketplaces** | [Amazon Seller](/integraciones/amazon-seller) |
| **Accounting** | Bexio |

### Tier 3 — Webhook URL (3 integrations)

Connect via custom webhook to your automation flows.

| Service | Description |
|---------|-------------|
| [n8n](/integraciones/n8n) | Custom automation flows via webhook |
| [Zapier](/integraciones/zapier) | Connect 6,000+ apps without code via webhooks |
| [Make](/integraciones/make) | Visual automation with hundreds of apps via webhooks |

### [MCP Server](/desarrolladores/mcp-server)

Official MCP server published on npm as `@frihet/mcp-server` (v1.15.0), registered as `io.frihet/erp` in the MCP Registry. Connect your AI assistant (Claude, Cursor, Windsurf, Cline) directly to your ERP.

- 157 tools, 11 resources, 10 prompts (invoices, expenses, clients, products, quotes, vendors, webhooks)
- Local transport (stdio) and remote (mcp.frihet.io)
- Open source (MIT) on [GitHub](https://github.com/Frihet-io/frihet-mcp)
- Automatic rate-limit retry with exponential backoff

### [Claude Code Skill](/desarrolladores/skill-claude-code)

Official skill that adds business intelligence on top of the MCP server. Conversational commands, workflow recipes, and formatted financial reports.

- Commands: `/frihet invoice`, `/frihet expense`, `/frihet report`, `/frihet clients`
- Natural language workflows for monthly close, tax prep, and overdue follow-up
- Install: `npx skills add Frihet-io/frihet-mcp`

---

## Security

Security is a priority throughout Frihet's integration layer.

- **AES-256-GCM encryption** for sensitive stored data (integration tokens, webhook secrets)
- **HMAC-SHA256** on every webhook delivery to verify payload authenticity
- **SHA-256 hashing** of API keys on the server — the plaintext key is shown only once at creation
- **Rate limiting** of 100 requests per minute per API key
- **URL validation** on webhooks: only HTTPS endpoints are allowed (except localhost in development)
- **Private IP blocking** to prevent SSRF attacks on webhook URLs
- **Configurable key expiration** — create keys with an expiry date

---

## SDKs and CLI

Official SDKs to integrate Frihet into your stack:

| Package | Install | Description |
|---------|---------|-------------|
| [`@frihet/sdk`](https://www.npmjs.com/package/@frihet/sdk) | `npm i @frihet/sdk` | TypeScript SDK — `frihet.invoices.create()`, full types, auto-retry |
| [`frihet`](https://www.npmjs.com/package/frihet) | `npm i -g frihet` | CLI — `frihet invoices list --status overdue` |
| **Python** | Coming soon | In development |

```typescript

const frihet = new Frihet({ apiKey: 'fri_...' });
const invoice = await frihet.invoices.create({
  clientName: 'Acme Corp',
  items: [{ description: 'Consulting', quantity: 10, unitPrice: 150 }],
});
```

Repository: [github.com/Frihet-io/frihet-sdk](https://github.com/Frihet-io/frihet-sdk)

---

## Limits and quotas

| Resource | Limit |
|----------|-------|
| API requests | 100/minute per key |
| Request body size | 1 MB maximum |
| Webhook payload size | 100 KB maximum |
| Webhooks per account | 20 maximum |
| Webhook retries | 3 attempts per delivery |
| Results per page | 100 maximum (50 default) |

---

## Getting started

1. Go to **Settings > API** in your Frihet account
2. Create a new API key and copy it (shown only once)
3. Test the connection with a GET request to `/api/v1/clients`
4. Configure webhooks to receive events in real time

```bash
curl -s https://api.frihet.io/v1/clients \
  -H "X-API-Key: fri_your-key-here" | head -c 200
```

If the response includes your clients, the integration is working. See the [REST API reference](./api-rest.md) for all available endpoints.
