# Fonoa (slim) > Fonoa is a hosted indirect tax platform for VAT, GST and sales tax. Its REST API validates tax identification numbers, calculates tax on a transaction and reports e-invoices to tax authorities, with a sandbox and a demo environment. - Full: https://www.anchorterminal.com/tools/fonoa.md (~7,200 tokens) · this version ~1,880 tokens · JSON https://www.anchorterminal.com/tools/fonoa.json · canonical https://www.anchorterminal.com/tools/fonoa - Index: https://www.anchorterminal.com/llms.txt · API: https://www.anchorterminal.com/api/v1/index.json · Updated: 2026-10-08 **D · 51.7/100 · rank #575 of 722 · #8 in Tax calculation & compliance · not agent-ready · confidence medium** Assessment: The API reference is served as Markdown with an OpenAPI definition on each endpoint page, and e-invoicing submissions are idempotent by `transaction_id`. API keys are issued by Fonoa staff after contact, no price, rate limit or changelog is published, and the only public terms date from May 2020 and cover older seller sites. ## Facts - Kind: HTTP API · vendor: Fonoa Technologies Limited · category: Tax calculation & compliance · legal entity: Fonoa Technologies Limited · provenance 69/100 - Endpoint: `https://api.fonoa.com` (HTTP) - Auth: API key · pricing: Paid · x402: no · licence: Proprietary service. The API contract is not published. The public Terms of Service took effect on 14 May 2020 and name older seller sites - Probe metrics: not measured yet (probes haven't run) - API: REST with JSON at https://api.fonoa.com. More than 35 operation pages across Lookup (v1 and v2), Instant Lookup, Tax and E-invoicing, each with an OpenAPI 3.0 definition inline. No single spec file was found - Tax ID validation: POST `/lookup/v2/single-validations` or `/lookup/v2/batch-validations`, then GET the result or wait for a webhook. `/lookup/v2/single-searches` finds a business by name. `/instant-lookup/v1/find` answers at once for business tax IDs in the countries where it is rolled out - Calculation: POST `/tax/v2/calculations` with supplier, customer and items returns net, gross and a tax breakdown per item. GET `/tax/v2/calculations/` reads it back and POST `/tax/v2/calculations//commit` marks it committed for revenue tracking - E-invoicing: POST `/v1/transactions` reports a transaction to a tax authority, with separate endpoints for adjustment, credit and cancellation, a history endpoint per transaction, company onboarding under `/onboarding/v2/companies` and PDF document templates - Credentials: Subscription key in the `Ocp-Apim-Subscription-Key` header, primary and secondary, issued by Fonoa. Separate sandbox and production keys. No scopes found - Environments: Sandbox at https://sandbox.fonoa.com (fixed data, unlimited usage), demo at https://api-demo.fonoa.com (limited usage), production at https://api.fonoa.com - Rate limits: No numbers found. E-invoicing and onboarding endpoints document a 429 that reads "Too many requests were sent for a short period of time. Try again a bit later." - Errors: 400 responses list errors with `code`, `message` and `type`, such as `field_not_valid` and `unsupported_field`. Later failures arrive on the transaction and by webhook. A missing key returns 401 with the plain text "Unauthorized" - Paging: Cursor paging on list endpoints with `limit` (default 25) and `next_cursor`. The transaction list takes 27 query parameters and the company list 14 - Webhooks: One payload shape for all products with `event_type`, `resource_url` and `webhook_id`. A `Fonoa-Webhook-Token` header holds an OIDC token verifiable at https://fit-passport.fonoa.com. Retries use exponential backoff. Configured by Fonoa staff on request - Pricing: Not published. Contact sales - SDKs: No official SDK found. An npm search for fonoa returned nothing, PyPI has no `fonoa` project and GitHub has no fonoa organisation - Certifications: ISO/IEC 27001 badge on the security page. Fonoa says penetration test reports can be shared under NDA. The Vanta trust centre at trust.fonoa.com is drawn by script and was not read - Status: https://status.fonoa.com on UptimeRobot with three heartbeat monitors, E-Invoicing, Lookup and Tax - Scores: Reliability 66, Performance pending, Schema & documentation 68, Agent ergonomics 64, Security & auth 47, Payments & pricing 3, Task success pending, Maintenance & community 49, Transparency & trust 48 · total over the 7 assessed categories - Why: Reliability, Graded on the public REST API with the hosted lines. · Schema & documentation, Each reference page carries an OpenAPI 3.0 definition for its endpoint, readable in the Markdown twin. · Agent ergonomics, List endpoints take `limit`, default 25, with no field selection, and validation results are long (12). · Security & auth, One subscription key in the `Ocp-Apim-Subscription-Key` header, issued by Fonoa as a primary and secondary pair, with no scopes or expiry fo… · Payments & pricing, No x402, MPP or L402 (0). · Maintenance & community, Closed service with no release tags. · Transparency & trust, Closed service. - Sources: 34, open questions: 10, both in the full twin - Capabilities: tax.calculate, tax.transactions, tax.invoicing - JSON: https://www.anchorterminal.com/api/v1/tools/fonoa.json - Verify (for the vendor): the badge `https://www.anchorterminal.com/badges/fonoa.svg` or a link to https://www.anchorterminal.com/tools/fonoa from a page on fonoa.com or one of its subdomains, then `POST https://www.anchorterminal.com/api/v1/verify` `{"slug", "url"}` or `verify_listing` at /mcp; re-checked weekly, no effect on the grade. Snippets in the full twin. ## Before you call it 1. Send the key in the `Ocp-Apim-Subscription-Key` header. Use the sandbox key at https://sandbox.fonoa.com and the production key at https://api.fonoa.com 2. Treat validations and e-invoicing submissions as asynchronous. POST, then poll the GET endpoint or wait for the webhook, and avoid tight polling 3. Reuse the same `transaction_id` on a retry of `/v1/transactions`. A transaction already processed is not processed again 4. Commit a calculation with POST `/tax/v2/calculations//commit` only when the sale is final. The commit adds it to revenue tracking 5. Ask the Fonoa contact to configure webhooks. There is no API for it, and always fetch `resource_url` as given in the webhook ## Connect ```bash curl --location 'https://sandbox.fonoa.com/lookup/v2/single-validations' \ --header 'Content-Type: application/json' \ --header 'Ocp-Apim-Subscription-Key: ' \ --data '{ "country_iso_code": "pl", "tax_identification_number": "2000" }' ``` Full config and headless snippets are in the full page. Through letme (picks today, calling later): https://letme.dev/fonoa ## Similar tools | Tool | Grade | Score | Shared capabilities | Slim | | --- | --- | --- | --- | --- | | Avalara AvaTax | B | 68.8 | tax.calculate, tax.transactions, tax.invoicing | https://www.anchorterminal.com/tools/avalara.min.md | | Quaderno | C | 59.5 | tax.calculate, tax.transactions, tax.invoicing | https://www.anchorterminal.com/tools/quaderno.min.md | | Vertex O Series | C | 54.7 | tax.calculate, tax.transactions, tax.invoicing | https://www.anchorterminal.com/tools/vertex-tax.min.md | | Anrok | C | 61.6 | tax.calculate, tax.transactions | https://www.anchorterminal.com/tools/anrok.min.md | | Kintsugi | C | 60.7 | tax.calculate, tax.transactions | https://www.anchorterminal.com/tools/kintsugi.min.md | ## Panel reviews (0, desk reviews from public material, no calls made)