Skip to main content

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).


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):

  1. Your account email or workspace name.
  2. Affected document identifier: invoice number/series (e.g. F-2026-0142), expense ID, or bank transaction date.
  3. 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 MessageCommon Root CauseStep-by-Step Resolution (UI & MCP Agent)
Cannot edit or delete an issued invoiceUnder 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 identifiedThe 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 submittingThe .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 recipientMissing 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 MessageCommon Root CauseStep-by-Step Resolution
Client says they did not receive the invoice emailTypo 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 portalPayment 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 invoicesLine-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 MessageCommon Root CauseStep-by-Step Resolution
An imported bank payment does not auto-match its invoiceThe 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 transactionsTransactions 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 / SymptomRoot CauseResolution
401 Unauthorized calling https://api.frihet.io/v1Missing 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 RequestsPer-minute API rate limit exceeded.Honor the Retry-After response header and use pagination (limit / cursor). See REST API.
Webhook endpoint is not receiving eventsEndpoint 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 toolsCached 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: