Support & Quick Troubleshooting
This guide covers Frihet's support channels, what details to include for first-contact resolution, and the quick diagnostic matrix for the most common issues (both in the web UI and via MCP agents or the REST API).
System Status
Real-time availability for the web app, REST API v1, webhooks, and tax gateways.
Open Contextual Ticket
Direct support form routed by your plan priority and page context.
In-App Feedback & Bug Report
Report issues or request features directly from the screen you are working on.
1. Support Channels
You can write to us through the contextual support form or by email (see section 6). Support priority depends on your plan.
What to Include for First-Contact Resolution
To resolve your request on the first reply—while keeping your account secure—include only reference identifiers (never send passwords, full API keys, or .p12/.pfx digital certificate files):
- Your account email or workspace name.
- Affected document identifier: invoice number/series (e.g.
F-2026-0142), expense ID, or bank transaction date. - Exact status code or message: if you hit a tax authority rejection (AEAT / TicketBAI / SDI / KSeF) or a REST API error (
400,401,403,422,429), paste the exact error code returned.
2. Quick Troubleshooting: Tax Compliance (VeriFactu, TicketBAI & E-Invoicing)
| Symptom or Message | Common Root Cause | Step-by-Step Resolution (UI & MCP Agent) |
|---|---|---|
| Cannot edit or delete an issued invoice | Under anti-fraud regulations (fiscal immutability), an issued and hash-chained invoice cannot be modified or deleted. | Issue a corrective invoice (credit note) from the invoice actions menu (Create corrective, by substitution S or by differences I), or call the create_credit_note MCP tool. |
| AEAT rejection: recipient Tax ID (NIF/VAT) not identified | The client's Tax ID contains formatting errors or does not match the legal business name in the AEAT census. | 1. Update the Tax ID and legal name on the client record (Client Management). 2. For EU intra-community clients, verify the VAT number using frihet_tax_id_vies_lookup.3. Resubmit the record via verifactu_resubmit. |
| Digital certificate error when signing or submitting | The .p12 / .pfx certificate has expired, the password is incorrect, or the certificate was revoked. | Go to Settings → VeriFactu and tax compliance, upload a valid .p12/.pfx certificate, and enter its password. Check live status via verifactu_status or ticketbai_status. |
| Facturae / XRechnung XML rejected by recipient | Missing administrative routing codes (DIR3 codes for Spanish B2G FACe or Leitweg-ID for German B2G). | Fill in the administrative codes in the client profile before sending. More details in Facturae B2G. |
3. Quick Troubleshooting: Invoicing, Payments & Email Delivery
| Symptom or Message | Common Root Cause | Step-by-Step Resolution |
|---|---|---|
| Client says they did not receive the invoice email | Typo in recipient address, strict corporate spam filter, or hard bounce recorded in activity log. | 1. Check the Activity Log inside the invoice detail view to see if the email status is Delivered or Bounced. 2. Verify the email address on the client record and click Resend. |
| "Pay online" button does not appear on the invoice or portal | Payment gateway is not connected or the invoice is already marked as paid. | Connect Stripe Connect or GoCardless under Settings → Integrations. |
| 1-cent rounding difference on imported invoices | Line-level rounding vs. subtotal-level rounding from external software imports. | Check tax and decimal rounding rules in Pricing & Taxes. |
4. Quick Troubleshooting: Banking & Reconciliation
| Symptom or Message | Common Root Cause | Step-by-Step Resolution |
|---|---|---|
| An imported bank payment does not auto-match its invoice | The bank deposit arrived net of payment gateway fees or without the invoice number in the payment reference. | Go to Finance → Banking, filter the unmatched transactions, click Review and confirm the suggestion with Apply, or use Link invoice to do it manually. See Automatic Bank Reconciliation. |
| Importing a statement (OFX, QFX, MT940, CAMT.053 or CSV) adds 0 transactions | Transactions in that date range were already imported (duplicate protection safely skips them). | Verify the exported date range from your bank statement. See Bank Connections. |
5. Quick Troubleshooting: REST API, Webhooks & MCP Server
| Code / Symptom | Root Cause | Resolution |
|---|---|---|
401 Unauthorized calling https://api.frihet.io/v1 | Missing X-API-Key header, revoked key, or trailing whitespace when copying the key. | Generate or verify your active key (fri_live_...) under Settings → API Keys and pass it in the X-API-Key HTTP header. |
429 Too Many Requests | Per-minute API rate limit exceeded. | Honor the Retry-After response header and use pagination (limit / cursor). See REST API. |
| Webhook endpoint is not receiving events | Endpoint is not publicly reachable over HTTPS, has an invalid TLS certificate, or takes >10s to return a 2xx status. | Click Send test under Settings → Webhooks or call the test_webhook MCP tool to inspect the HTTP status returned by your endpoint. |
| AI agent (Claude Code / Cursor / ChatGPT) is missing new MCP tools | Cached older version in npx or missing FRIHET_API_KEY environment variable in MCP config. | Ensure you run the latest published version of @frihet/mcp-server (1.17.0) or connect to https://mcp.frihet.io/mcp. See Connect Your Agent. |
6. Direct Contact
If you still need assistance after checking this guide:
- Inside Frihet ERP: open the sidebar menu → Feedback.
- Contextual Web Support Form: www.frihet.io/en/contact
- Support Email: ayuda@frihet.io