{
  "data": {
    "a": {
      "slug": "quaderno",
      "name": "Quaderno",
      "vendor": "Recrea Systems, SL",
      "vendorUrl": "https://quaderno.io",
      "kind": "http-api",
      "category": "tax",
      "summary": "Sales tax, VAT and GST software for online businesses from Recrea Systems, a Visma company in Spain. Its REST API calculates tax for a sale, records sales and refunds, issues invoices and credit notes and exports tax reports.",
      "url": "https://www.anchorterminal.com/tools/quaderno",
      "markdownUrl": "https://www.anchorterminal.com/tools/quaderno.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/quaderno.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/quaderno.json",
      "repo": "https://github.com/quaderno/quaderno-ruby",
      "license": "Proprietary service under Quaderno's terms of service. The Ruby library on GitHub is MIT",
      "transports": [
        "http"
      ],
      "remoteUrl": "https://quadernoapp.com/api",
      "packages": [
        {
          "registry": "rubygems",
          "name": "quaderno"
        },
        {
          "registry": "packagist",
          "name": "quaderno/quaderno"
        }
      ],
      "auth": "mixed",
      "authNotes": "Self-serve API key. Sign up at quadernoapp.com (or sandbox-quadernoapp.com for the sandbox), copy the key from the API keys page and send it as the HTTP Basic username with an empty password to https://ACCOUNT_NAME.quadernoapp.com/api. The docs say anyone holding the key can read and modify everything the account has access to. Platforms on Quaderno Connect use OAuth 2.0 authorisation code instead, with an app created in the dashboard, scopes read_only (the default) or read_write, access tokens that expire after 25 days and refresh tokens. No app review or sales approval was found for either route.",
      "pricing": "paid",
      "pricingNotes": "Four monthly plans by recorded transactions. Hobby $29 (25 transactions, 1 user, 1 jurisdiction, 1 integration), Startup $49 (250), Business $99 (1,000) and Growth $149 (2,500), with Enterprise on request above that. Yearly billing costs ten months. API calls are capped at ten times the plan's transactions, and passing the transaction limit moves the account up a plan, with no overage fee. An agent can start without a contract through the 7-day trial, which needs no card, or the free sandbox, which is capped at 200 documents. Registration and filing are sold as an add-on service (https://quaderno.io/pricing/, checked 2026-10-08).",
      "priceSummary": "$29 / mo",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the developer docs, the OpenAPI spec or the pricing page (checked 2026-10-08).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": 15,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-10-08"
      },
      "docsUrl": "https://developers.quaderno.io",
      "llmsTxt": "https://quaderno.io/llms.txt",
      "openapi": "https://developers.quaderno.io/redocusaurus/openapi-v20241028.yaml",
      "capabilities": [
        "tax.calculate",
        "tax.transactions",
        "tax.invoicing"
      ],
      "tags": [
        "hosted",
        "paid",
        "free-trial",
        "sandbox",
        "api-key",
        "oauth",
        "openapi",
        "llms-txt",
        "webhooks",
        "ruby",
        "php",
        "status-page",
        "sla",
        "vat",
        "sales-tax",
        "e-invoicing"
      ],
      "lastRelease": "2026-07-04",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 59.5,
        "grade": "C",
        "agentReady": false,
        "rank": 427,
        "ranked": true,
        "rankOf": 722,
        "categoryRank": 4,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 56,
          "maintenance": 28,
          "payments": 30,
          "reliability": 91,
          "schema": 77,
          "security": 39,
          "transparency": 76
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-08"
        },
        "negative": 0,
        "verdict": "A public OpenAPI 3.1 spec covers 92 operations, with a free sandbox and a status page showing no incident since July 2025. The API key has full account access, there are no idempotency keys, and the newest public API version is dated October 2024.",
        "bestFor": "An agent working for a SaaS, digital-goods or e-commerce seller that needs a tax rate at checkout, a record of each sale with location evidence, and compliant invoices, including Spanish Verifactu and TicketBAI.",
        "strengths": [
          "Public OpenAPI 3.1 spec with 92 operations across tax rates, transactions, invoices, credit notes, reporting and webhooks",
          "Separate free sandbox at sandbox-quadernoapp.com with test tax IDs and a purge endpoint, and a 7-day production trial without a card",
          "Statuspage with API and web application components and no incident recorded since 16 July 2025",
          "Published rate limit of 100 calls per 15 seconds, with X-RateLimit headers and a /ping endpoint that reports remaining calls",
          "Subprocessors and hosting locations listed on the Visma Trust Centre (DigitalOcean in the Netherlands, AWS in Ireland)"
        ],
        "weaknesses": [
          "One API key reads and writes everything its user can reach. Scopes exist only on Connect OAuth tokens (read_only, read_write)",
          "No idempotency keys, and the docs say retry logic is the integration's responsibility",
          "The newest public API version is 20241028. A preview of 20260309 is in the docs but not yet available",
          "No security.txt, the bug bounty is marked temporarily closed, and no SOC 2 or ISO 27001 report was found for Quaderno itself",
          "Registration and filing are a done-for-you service booked by call, not API operations. Monthly API calls are capped at ten times the plan's transactions"
        ],
        "agentNotes": [
          "Call GET https://quadernoapp.com/api/authorization first. Its `href` gives the account subdomain that every other call needs",
          "Before retrying a failed POST /transactions, list invoices by `processor_id` to check whether the sale was recorded. There is no idempotency key",
          "Treat GET /invoices/{id}/deliver as a write. It emails the invoice to the customer",
          "Correct a final invoice with a credit note. DELETE on invoices returns 410 and PUT accepts only notes, tags, metadata and address fields",
          "Read X-RateLimit-Remaining and X-RateLimit-Reset, and page with `created_before` and `limit` up to 100"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "C",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 59.5
          }
        ],
        "editorialScores": {
          "ergonomics": 56,
          "maintenance": 28,
          "payments": 30,
          "reliability": 91,
          "schema": 77,
          "security": 39,
          "transparency": 69
        },
        "provenanceScore": 83
      },
      "connect": {
        "install": "gem install quaderno",
        "http": "curl \"https://ACCOUNT_NAME.quadernoapp.com/api/tax_rates/calculate?to_country=US\u0026to_postal_code=10128\" \\\n  -u YOUR_API_KEY:x"
      },
      "letme": {
        "capability": "https://letme.dev/tax.calculate",
        "tool": "https://letme.dev/quaderno"
      },
      "area": "domain-data",
      "unitPrices": [
        {
          "item": "Hobby plan, 25 transactions",
          "unit": "month",
          "usd": 29,
          "note": "1 user, 1 jurisdiction, 1 integration. $24 a month billed yearly"
        },
        {
          "item": "Startup plan, 250 transactions",
          "unit": "month",
          "usd": 49,
          "note": "$41 a month billed yearly"
        },
        {
          "item": "Business plan, 1,000 transactions",
          "unit": "month",
          "usd": 99,
          "note": "$83 a month billed yearly"
        },
        {
          "item": "Growth plan, 2,500 transactions",
          "unit": "month",
          "usd": 149,
          "note": "$124 a month billed yearly"
        }
      ],
      "provenance": {
        "legalEntity": "Recrea Systems, SL",
        "domain": "quaderno.io",
        "domainRegistered": "2012-10-22",
        "endpointOnVendorDomain": true,
        "terms": "https://quaderno.io/legal/terms/",
        "privacy": "https://quaderno.io/legal/privacy/",
        "statusPage": "https://quaderno.statuspage.io",
        "changelog": "https://developers.quaderno.io/api-changelog/",
        "securityTxt": "none",
        "checked": "2026-10-08",
        "notes": [
          "The terms (updated 15 September 2026, effective 1 October 2026) name Recrea Systems, SL, company registration number B35635648, Venegas 2A, Local 1, 35003 Las Palmas, Spain, under Spanish law. The DPA calls it a company in the Visma Group.",
          "The API and dashboard answer at quadernoapp.com and its account subdomains, a second domain the vendor's docs and terms point to. RDAP gives its registration date as 2012-04-27.",
          "RDAP for quaderno.io gives a registration date of 2012-10-22 and an expiry of 2026-10-22.",
          "quaderno.io/.well-known/security.txt and quadernoapp.com/.well-known/security.txt both return 404. The security policy says the bug bounty programme is temporarily closed.",
          "Subprocessors are listed on the Visma Trust Centre at https://www.visma.com/trust-centre-products/quaderno, which shows the legal unit as Recrea Systems SL, ES."
        ],
        "score": 83
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/quaderno.json",
      "live": {
        "slug": "quaderno",
        "probe": {
          "target": "https://quadernoapp.com/api",
          "method": "get",
          "lastAt": "2026-10-08T23:26:41.652472385Z",
          "lastOk": true,
          "lastStatus": 404,
          "lastMs": 109,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 106,
          "p95ms24h": 155,
          "samples24h": 87,
          "samples30d": 87,
          "days": [
            {
              "date": "2026-10-08",
              "probes": 87,
              "ok": 87
            }
          ]
        },
        "vendorStatus": {
          "page": "https://quaderno.statuspage.io",
          "indicator": "none",
          "summary": "All Systems Operational",
          "checkedAt": "2026-10-08T23:24:16.12643186Z"
        },
        "githubStars": 15,
        "securityTxt": {
          "url": "https://quaderno.io/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-10-08T15:38:48.301371426Z"
        },
        "pages": [
          {
            "url": "https://developers.quaderno.io/api-changelog/",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-10-08T18:17:58.645813139Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "69ea7b5187a7"
          },
          {
            "url": "https://quaderno.io/pricing/",
            "kind": "pricing",
            "status": 200,
            "checkedAt": "2026-10-08T18:23:37.065141515Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "0674c9e74b70"
          },
          {
            "url": "https://quaderno.io/legal/privacy/",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-10-08T18:23:32.930235875Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "02d941cfbb26"
          },
          {
            "url": "https://quaderno.io/legal/terms/",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-10-08T18:23:35.074640255Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "9b2392893a86"
          }
        ],
        "updatedAt": "2026-10-08T23:26:41.652472385Z"
      }
    },
    "answer": "Quaderno scores 59.5 (C) on agent readiness against TaxJar's 57.6 (C), and leads in 3 of 7 scored categories. TaxJar leads on agent ergonomics and maintenance \u0026 community.",
    "b": {
      "slug": "taxjar",
      "name": "TaxJar",
      "vendor": "TaxJar (Stripe)",
      "vendorUrl": "https://www.taxjar.com",
      "kind": "http-api",
      "category": "tax",
      "summary": "TaxJar is Stripe's US sales tax service for businesses that sell across states. Its REST API calculates tax for an order, looks up rates by address, records orders and refunds for reporting, and stores exempt customers.",
      "url": "https://www.anchorterminal.com/tools/taxjar",
      "markdownUrl": "https://www.anchorterminal.com/tools/taxjar.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/taxjar.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/taxjar.json",
      "repo": "https://github.com/taxjar/taxjar-node",
      "license": "Proprietary service under TaxJar's terms of service and API licence agreement. The official API clients on GitHub are MIT",
      "transports": [
        "http"
      ],
      "remoteUrl": "https://api.taxjar.com/v2",
      "packages": [
        {
          "registry": "npm",
          "name": "taxjar"
        },
        {
          "registry": "pypi",
          "name": "taxjar"
        }
      ],
      "auth": "api-key",
      "authNotes": "A self-serve API token, generated by a signed-in user at Account \u003e TaxJar API in the web app and sent as `Authorization: Bearer \u003ctoken\u003e`. The token has no scopes and covers every endpoint for that account, deletes included. API access needs the Professional plan or the 30-day trial. The sandbox takes its own token. No OAuth, app review or partner approval applies.",
      "pricing": "paid",
      "pricingNotes": "The API needs the Professional plan, from $99 a month at 200 orders, with higher order tiers on a selector. Each calculation or rate lookup counts as a tenth of an order, errors included. A 30-day trial with API access needs no card, so an agent's owner can start without a contract. The sandbox comes with Professional plans (checked 2026-10-08).",
      "priceSummary": "$99 / mo",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the API reference, the API guides or the pricing page (checked 2026-10-08).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": 57,
        "npmWeekly": 95036,
        "pypiWeekly": 49713,
        "asOf": "2026-10-08"
      },
      "docsUrl": "https://developers.taxjar.com/api/reference/",
      "capabilities": [
        "tax.calculate",
        "tax.transactions",
        "tax.exemptions",
        "shipping.address-validation"
      ],
      "tags": [
        "hosted",
        "closed-source",
        "api-key",
        "sandbox",
        "no-card",
        "python",
        "typescript",
        "ruby",
        "php",
        "java",
        "go",
        "dotnet",
        "status-page",
        "soc2"
      ],
      "lastRelease": "2026-09-02",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 57.6,
        "grade": "C",
        "agentReady": false,
        "rank": 470,
        "ranked": true,
        "rankOf": 722,
        "categoryRank": 5,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 61,
          "maintenance": 64,
          "payments": 30,
          "reliability": 84,
          "schema": 48,
          "security": 43,
          "transparency": 71
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-08"
        },
        "negative": 0,
        "verdict": "A 21-operation REST API with a no-card 30-day trial, caller-chosen transaction IDs that make order pushes safe to repeat, and no status-page incident since March 2026. No OpenAPI spec or llms.txt was found, the API changelog stops at January 2022, tokens carry no scopes, and calculation is US-only for new accounts.",
        "bestFor": "An agent working for a US seller that needs sales tax on an order at checkout and a record of orders and refunds for state reporting, with exempt customers handled by ID.",
        "strengths": [
          "30-day trial with Professional plan access, the API included, and no card needed at signup",
          "Orders and refunds take a caller-chosen `transaction_id`. A duplicate create returns 422 and the docs direct a PUT update",
          "status.taxjar.com lists seven components and no incident since 26 March 2026",
          "Rate limits published as 10,000 requests a minute on Professional and 25,000 on Premium",
          "Official clients for seven languages. The Node client reached 5.0.0 on npm on 2 September 2026 and .NET 5.0.0 on NuGet on 4 August 2026"
        ],
        "weaknesses": [
          "No OpenAPI spec or llms.txt was found. The taxjar/openapi repository on GitHub holds only a README",
          "The API changelog's last entry is 24 January 2022, and no deprecation policy was found",
          "Calculation covers the United States only for new accounts. The docs point other countries to Stripe Tax",
          "API tokens carry no scopes or read-only mode, and the same token can delete transactions and customers",
          "Calls that return an error still count as a tenth of an order against the plan, per the help centre"
        ],
        "agentNotes": [
          "Send `x-api-version: 2022-01-24` on every call. Accounts opened before 3 February 2022 default to an older version with weaker validation",
          "Pass `nexus_addresses[]` or keep nexus states in the account. Without nexus the API returns zero tax and reports no error",
          "Create orders with your own `transaction_id`. On 422 the order already exists, so send a PUT to update it",
          "Post JSON with `Content-Type: application/json`. Form-encoded arrays such as `line_items[]` can return 406",
          "Cache calculations and skip states without nexus. Each calculation or rate lookup counts as a tenth of an order, errors included"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "C",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 57.6
          }
        ],
        "editorialScores": {
          "ergonomics": 61,
          "maintenance": 64,
          "payments": 30,
          "reliability": 84,
          "schema": 48,
          "security": 43,
          "transparency": 55
        },
        "provenanceScore": 87
      },
      "connect": {
        "install": "npm install taxjar",
        "http": "curl https://api.taxjar.com/v2/categories \\\n  -H \"Authorization: Bearer ${TAXJAR_API_KEY}\""
      },
      "letme": {
        "capability": "https://letme.dev/tax.calculate",
        "tool": "https://letme.dev/taxjar"
      },
      "area": "domain-data",
      "unitPrices": [
        {
          "item": "Professional, 200 orders a month",
          "unit": "month",
          "usd": 99,
          "note": "the plan with API access; a calculation or rate lookup counts as a tenth of an order"
        },
        {
          "item": "Professional, 500 orders a month",
          "unit": "month",
          "usd": 249,
          "note": "per the flex fee article"
        },
        {
          "item": "Professional, 1,000 orders a month",
          "unit": "month",
          "usd": 499,
          "note": "per the flex fee article"
        },
        {
          "item": "Starter, 200 orders a month",
          "unit": "month",
          "usd": 39,
          "note": "no API access"
        },
        {
          "item": "AutoFile return beyond included credits, Professional",
          "unit": "tx",
          "usd": 55,
          "note": "four credits a year included; $50 on Starter"
        }
      ],
      "provenance": {
        "legalEntity": "TPS Unlimited, Inc. (d/b/a TaxJar, a wholly owned subsidiary of Stripe, Inc.)",
        "domain": "taxjar.com",
        "domainRegistered": "2012-03-02",
        "endpointOnVendorDomain": true,
        "terms": "https://www.taxjar.com/terms-of-service",
        "privacy": "https://www.taxjar.com/privacy",
        "statusPage": "https://status.taxjar.com",
        "changelog": "https://developers.taxjar.com/api/reference/#changelog",
        "securityTxt": "none",
        "checked": "2026-10-08",
        "notes": [
          "The terms of service and the API licence agreement on the same page (last updated 14 May 2026) are with TPS Unlimited, Inc. d/b/a TaxJar. The data processing agreement of the same date calls it a wholly owned subsidiary of Stripe, Inc.",
          "The privacy policy (last updated 7 January 2022) gives TPS Unlimited, Inc., 462 Washington St. #3066, Woburn, Massachusetts 01888, and adds (A Stripe Company). The about page says Stripe acquired TaxJar in 2021.",
          "Stripe is listed separately on Anchor Terminal. TaxJar keeps its own API, account system, terms and status page, and its sub-processor list names Stripe, LLC and affiliates for billing.",
          "The API host is api.taxjar.com and the sandbox api.sandbox.taxjar.com. RDAP gives a registration date of 2012-03-02 for taxjar.com, with Com Laude as registrar.",
          "www.taxjar.com/.well-known/security.txt and api.taxjar.com/.well-known/security.txt return 404. stripe.com serves a valid security.txt that points to HackerOne, and we didn't establish whether that programme covers TaxJar hosts.",
          "The changelog is a section of the API reference page, and its newest entry is dated 24 January 2022."
        ],
        "score": 87
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/taxjar.json",
      "live": {
        "slug": "taxjar",
        "probe": {
          "target": "https://api.taxjar.com/v2",
          "method": "get",
          "lastAt": "2026-10-08T23:26:45.984485346Z",
          "lastOk": true,
          "lastStatus": 404,
          "lastMs": 267,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 263,
          "p95ms24h": 292,
          "samples24h": 87,
          "samples30d": 87,
          "days": [
            {
              "date": "2026-10-08",
              "probes": 87,
              "ok": 87
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.taxjar.com",
          "indicator": "none",
          "summary": "All Systems Operational",
          "checkedAt": "2026-10-08T23:24:21.143108256Z"
        },
        "versions": [
          {
            "registry": "github",
            "name": "taxjar/taxjar-node",
            "version": "v5.0.0",
            "released": "2026-02-03",
            "seenAt": "2026-10-08T16:31:32.062161715Z"
          },
          {
            "registry": "npm",
            "name": "taxjar",
            "version": "5.0.0",
            "seenAt": "2026-10-08T16:31:31.016239944Z"
          },
          {
            "registry": "pypi",
            "name": "taxjar",
            "version": "2.0.1",
            "released": "2025-04-14",
            "seenAt": "2026-10-08T16:31:31.869241068Z"
          }
        ],
        "githubStars": 57,
        "npmWeekly": 95036,
        "pypiWeekly": 49713,
        "securityTxt": {
          "url": "https://taxjar.com/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-10-08T15:39:06.776426979Z"
        },
        "pages": [
          {
            "url": "https://developers.taxjar.com/api/reference/",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-10-08T18:18:03.269696625Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "fb0fe884536c"
          },
          {
            "url": "https://www.taxjar.com/privacy",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-10-08T18:30:56.737296724Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "b22cd1da61e7"
          },
          {
            "url": "https://www.taxjar.com/terms-of-service",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-10-08T18:30:59.304705205Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "7e694d9c9de5"
          }
        ],
        "updatedAt": "2026-10-08T23:26:45.984485346Z"
      }
    },
    "facts": [
      {
        "a": "HTTP API",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "Recrea Systems, SL",
        "b": "TaxJar (Stripe)",
        "name": "Vendor"
      },
      {
        "a": "https://quadernoapp.com/api",
        "b": "https://api.taxjar.com/v2",
        "name": "Hosted endpoint"
      },
      {
        "a": "HTTP",
        "b": "HTTP",
        "name": "Transports"
      },
      {
        "a": "OAuth or key",
        "b": "API key",
        "name": "Auth"
      },
      {
        "a": "Paid",
        "b": "Paid",
        "name": "Pricing"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "Proprietary service under Quaderno's terms of service. The Ruby library on GitHub is MIT",
        "b": "Proprietary service under TaxJar's terms of service and API licence agreement. The official API clients on GitHub are MIT",
        "name": "Licence"
      },
      {
        "a": "no",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "yes",
        "b": "no",
        "name": "llms.txt"
      },
      {
        "a": "2026-07-04",
        "b": "2026-09-02",
        "name": "Last release"
      },
      {
        "a": "2026-09-15",
        "b": "2026-05-14",
        "name": "Terms last updated"
      },
      {
        "a": "2024-05-16",
        "b": "2022-01-07",
        "name": "Privacy policy last updated"
      },
      {
        "a": "not found in the text",
        "b": "not found in the text",
        "name": "Customer content may train models"
      },
      {
        "a": "yes",
        "b": "not found in the text",
        "name": "Terms restrict automated access"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "yes",
        "b": "not found in the text",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "not found in the text",
        "b": "not found in the text",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "15 stars",
        "b": "57 stars, 95k npm/wk, 50k PyPI/wk",
        "name": "Popularity"
      }
    ],
    "faq": [
      {
        "answer": "Quaderno scores 59.5 (C) on agent readiness against TaxJar's 57.6 (C), and leads in 3 of 7 scored categories. TaxJar leads on agent ergonomics and maintenance \u0026 community.",
        "question": "Which is better for AI agents, Quaderno or TaxJar?"
      },
      {
        "answer": "Quaderno takes an API key or an OAuth sign-in. TaxJar needs an API key.",
        "question": "Do Quaderno and TaxJar need an API key?"
      },
      {
        "answer": "Yes. Quaderno has a hosted endpoint at https://quadernoapp.com/api and TaxJar at https://api.taxjar.com/v2.",
        "question": "Can an agent call Quaderno and TaxJar without installing anything?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Reliability, 91 against 84",
          "Schema \u0026 documentation, 77 against 48",
          "Transparency \u0026 trust, 76 against 71"
        ],
        "also": null,
        "goodFor": "An agent working for a SaaS, digital-goods or e-commerce seller that needs a tax rate at checkout, a record of each sale with location evidence, and compliant invoices, including Spanish Verifactu and TicketBAI.",
        "slug": "quaderno",
        "watchFor": "One API key reads and writes everything its user can reach. Scopes exist only on Connect OAuth tokens (read_only, read_write)"
      },
      {
        "aheadOn": [
          "Agent ergonomics, 61 against 56",
          "Maintenance \u0026 community, 64 against 28"
        ],
        "also": [
          "Free to start without a card"
        ],
        "goodFor": "An agent working for a US seller that needs sales tax on an order at checkout and a record of orders and refunds for state reporting, with exempt customers handled by ID.",
        "slug": "taxjar",
        "watchFor": "No OpenAPI spec or llms.txt was found. The taxjar/openapi repository on GitHub holds only a README"
      }
    ],
    "job": {
      "capability": "tax.calculate",
      "name": "Tax calculate"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/anrok-vs-quaderno.json",
        "title": "Anrok vs Quaderno",
        "url": "https://www.anchorterminal.com/compare/anrok-vs-quaderno"
      },
      {
        "json": "https://www.anchorterminal.com/compare/anrok-vs-taxjar.json",
        "title": "Anrok vs TaxJar",
        "url": "https://www.anchorterminal.com/compare/anrok-vs-taxjar"
      },
      {
        "json": "https://www.anchorterminal.com/compare/avalara-vs-quaderno.json",
        "title": "Avalara AvaTax vs Quaderno",
        "url": "https://www.anchorterminal.com/compare/avalara-vs-quaderno"
      },
      {
        "json": "https://www.anchorterminal.com/compare/avalara-vs-taxjar.json",
        "title": "Avalara AvaTax vs TaxJar",
        "url": "https://www.anchorterminal.com/compare/avalara-vs-taxjar"
      },
      {
        "json": "https://www.anchorterminal.com/compare/fonoa-vs-quaderno.json",
        "title": "Fonoa vs Quaderno",
        "url": "https://www.anchorterminal.com/compare/fonoa-vs-quaderno"
      },
      {
        "json": "https://www.anchorterminal.com/compare/fonoa-vs-taxjar.json",
        "title": "Fonoa vs TaxJar",
        "url": "https://www.anchorterminal.com/compare/fonoa-vs-taxjar"
      },
      {
        "json": "https://www.anchorterminal.com/compare/kintsugi-vs-quaderno.json",
        "title": "Kintsugi vs Quaderno",
        "url": "https://www.anchorterminal.com/compare/kintsugi-vs-quaderno"
      },
      {
        "json": "https://www.anchorterminal.com/compare/kintsugi-vs-taxjar.json",
        "title": "Kintsugi vs TaxJar",
        "url": "https://www.anchorterminal.com/compare/kintsugi-vs-taxjar"
      },
      {
        "json": "https://www.anchorterminal.com/compare/numeral-vs-quaderno.json",
        "title": "Numeral vs Quaderno",
        "url": "https://www.anchorterminal.com/compare/numeral-vs-quaderno"
      },
      {
        "json": "https://www.anchorterminal.com/compare/numeral-vs-taxjar.json",
        "title": "Numeral vs TaxJar",
        "url": "https://www.anchorterminal.com/compare/numeral-vs-taxjar"
      },
      {
        "json": "https://www.anchorterminal.com/compare/quaderno-vs-taxcloud.json",
        "title": "Quaderno vs TaxCloud",
        "url": "https://www.anchorterminal.com/compare/quaderno-vs-taxcloud"
      },
      {
        "json": "https://www.anchorterminal.com/compare/quaderno-vs-vertex-tax.json",
        "title": "Quaderno vs Vertex O Series",
        "url": "https://www.anchorterminal.com/compare/quaderno-vs-vertex-tax"
      },
      {
        "json": "https://www.anchorterminal.com/compare/quaderno-vs-zamp.json",
        "title": "Quaderno vs Zamp",
        "url": "https://www.anchorterminal.com/compare/quaderno-vs-zamp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/taxcloud-vs-taxjar.json",
        "title": "TaxCloud vs TaxJar",
        "url": "https://www.anchorterminal.com/compare/taxcloud-vs-taxjar"
      },
      {
        "json": "https://www.anchorterminal.com/compare/taxjar-vs-vertex-tax.json",
        "title": "TaxJar vs Vertex O Series",
        "url": "https://www.anchorterminal.com/compare/taxjar-vs-vertex-tax"
      },
      {
        "json": "https://www.anchorterminal.com/compare/taxjar-vs-zamp.json",
        "title": "TaxJar vs Zamp",
        "url": "https://www.anchorterminal.com/compare/taxjar-vs-zamp"
      }
    ],
    "scores": [
      {
        "by": 7,
        "edge": "quaderno",
        "key": "reliability",
        "name": "Reliability",
        "quaderno": 91,
        "taxjar": 84,
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 29,
        "edge": "quaderno",
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "quaderno": 77,
        "taxjar": 48,
        "weight": 13
      },
      {
        "by": 5,
        "edge": "taxjar",
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "quaderno": 56,
        "taxjar": 61,
        "weight": 13
      },
      {
        "by": 4,
        "edge": "taxjar",
        "key": "security",
        "name": "Security \u0026 auth",
        "quaderno": 39,
        "taxjar": 43,
        "weight": 14
      },
      {
        "by": 0,
        "edge": "",
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "quaderno": 30,
        "taxjar": 30,
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 36,
        "edge": "taxjar",
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "quaderno": 28,
        "taxjar": 64,
        "weight": 7
      },
      {
        "by": 5,
        "edge": "quaderno",
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "quaderno": 76,
        "taxjar": 71,
        "weight": 7
      }
    ],
    "summary": "Quaderno scores 59.5 (C) on agent readiness against TaxJar's 57.6 (C), and leads in 3 of 7 scored categories. TaxJar leads on agent ergonomics and maintenance \u0026 community. Both do tax calculate.",
    "verdicts": {
      "quaderno": "A public OpenAPI 3.1 spec covers 92 operations, with a free sandbox and a status page showing no incident since July 2025. The API key has full account access, there are no idempotency keys, and the newest public API version is dated October 2024.",
      "taxjar": "A 21-operation REST API with a no-card 30-day trial, caller-chosen transaction IDs that make order pushes safe to repeat, and no status-page incident since March 2026. No OpenAPI spec or llms.txt was found, the API changelog stops at January 2022, tokens carry no scopes, and calculation is US-only for new accounts."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/quaderno-vs-taxjar",
    "json": "https://www.anchorterminal.com/compare/quaderno-vs-taxjar.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/quaderno-vs-taxjar.md",
    "slim": "https://www.anchorterminal.com/compare/quaderno-vs-taxjar.min.md"
  },
  "markdown": "Quaderno scores 59.5 (C) on agent readiness against TaxJar's 57.6 (C), and leads in 3 of 7 scored categories. TaxJar leads on agent ergonomics and maintenance \u0026 community. Both do tax calculate.\n\n- Quaderno: grade C, 59.5/100, rank #427 of 722. Markdown https://www.anchorterminal.com/tools/quaderno.md · JSON https://www.anchorterminal.com/api/v1/tools/quaderno.json\n- TaxJar: grade C, 57.6/100, rank #470 of 722. Markdown https://www.anchorterminal.com/tools/taxjar.md · JSON https://www.anchorterminal.com/api/v1/tools/taxjar.json\n\n## Which one, for what\n\n### Quaderno (C)\n\nGood for: An agent working for a SaaS, digital-goods or e-commerce seller that needs a tax rate at checkout, a record of each sale with location evidence, and compliant invoices, including Spanish Verifactu and TicketBAI.\n\nAhead on:\n- Reliability, 91 against 84\n- Schema \u0026 documentation, 77 against 48\n- Transparency \u0026 trust, 76 against 71\n\nWatch for: One API key reads and writes everything its user can reach. Scopes exist only on Connect OAuth tokens (read_only, read_write)\n\n### TaxJar (C)\n\nGood for: An agent working for a US seller that needs sales tax on an order at checkout and a record of orders and refunds for state reporting, with exempt customers handled by ID.\n\nAhead on:\n- Agent ergonomics, 61 against 56\n- Maintenance \u0026 community, 64 against 28\n\nAlso in its favour:\n- Free to start without a card\n\nWatch for: No OpenAPI spec or llms.txt was found. The taxjar/openapi repository on GitHub holds only a README\n\n\n## Score by category\n\n| Category | Weight | Quaderno | TaxJar | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 91 | 84 | Quaderno +7 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 77 | 48 | Quaderno +29 |\n| Agent ergonomics | 13% (16.2 this run) | 56 | 61 | TaxJar +5 |\n| Security \u0026 auth | 14% (17.5 this run) | 39 | 43 | TaxJar +4 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 30 | 30 | even |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 28 | 64 | TaxJar +36 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 76 | 71 | Quaderno +5 |\n| Negative events | ≤15 | 0 | 0 | |\n| **Total** | | **59.5 · C** | **57.6 · C** | |\n\n## Facts side by side\n\n| Fact | Quaderno | TaxJar |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | Recrea Systems, SL | TaxJar (Stripe) |\n| Hosted endpoint | `https://quadernoapp.com/api` | `https://api.taxjar.com/v2` |\n| Transports | HTTP | HTTP |\n| Auth | OAuth or key | API key |\n| Pricing | Paid | Paid |\n| x402 | no | no |\n| Licence | Proprietary service under Quaderno's terms of service. The Ruby library on GitHub is MIT | Proprietary service under TaxJar's terms of service and API licence agreement. The official API clients on GitHub are MIT |\n| Read-only variant documented | no | no |\n| llms.txt | yes | no |\n| Last release | 2026-07-04 | 2026-09-02 |\n| Terms last updated | 2026-09-15 | 2026-05-14 |\n| Privacy policy last updated | 2024-05-16 | 2022-01-07 |\n| Customer content may train models | not found in the text | not found in the text |\n| Terms restrict automated access | yes | not found in the text |\n| Terms restrict benchmarking | yes | yes |\n| Terms or service can change without notice | yes | not found in the text |\n| Arbitration or class-action waiver | not found in the text | not found in the text |\n| Popularity | 15 stars | 57 stars, 95k npm/wk, 50k PyPI/wk |\n\n## Verdicts\n\n**Quaderno.** A public OpenAPI 3.1 spec covers 92 operations, with a free sandbox and a status page showing no incident since July 2025. The API key has full account access, there are no idempotency keys, and the newest public API version is dated October 2024.\n\n**TaxJar.** A 21-operation REST API with a no-card 30-day trial, caller-chosen transaction IDs that make order pushes safe to repeat, and no status-page incident since March 2026. No OpenAPI spec or llms.txt was found, the API changelog stops at January 2022, tokens carry no scopes, and calculation is US-only for new accounts.\n\n## Before you call either\n\n### Quaderno\n\n1. Call GET https://quadernoapp.com/api/authorization first. Its `href` gives the account subdomain that every other call needs\n2. Before retrying a failed POST /transactions, list invoices by `processor_id` to check whether the sale was recorded. There is no idempotency key\n3. Treat GET /invoices/{id}/deliver as a write. It emails the invoice to the customer\n4. Correct a final invoice with a credit note. DELETE on invoices returns 410 and PUT accepts only notes, tags, metadata and address fields\n5. Read X-RateLimit-Remaining and X-RateLimit-Reset, and page with `created_before` and `limit` up to 100\n\n### TaxJar\n\n1. Send `x-api-version: 2022-01-24` on every call. Accounts opened before 3 February 2022 default to an older version with weaker validation\n2. Pass `nexus_addresses[]` or keep nexus states in the account. Without nexus the API returns zero tax and reports no error\n3. Create orders with your own `transaction_id`. On 422 the order already exists, so send a PUT to update it\n4. Post JSON with `Content-Type: application/json`. Form-encoded arrays such as `line_items[]` can return 406\n5. Cache calculations and skip states without nexus. Each calculation or rate lookup counts as a tenth of an order, errors included\n\n## Questions\n\n### Which is better for AI agents, Quaderno or TaxJar?\n\nQuaderno scores 59.5 (C) on agent readiness against TaxJar's 57.6 (C), and leads in 3 of 7 scored categories. TaxJar leads on agent ergonomics and maintenance \u0026 community.\n\n### Do Quaderno and TaxJar need an API key?\n\nQuaderno takes an API key or an OAuth sign-in. TaxJar needs an API key.\n\n### Can an agent call Quaderno and TaxJar without installing anything?\n\nYes. Quaderno has a hosted endpoint at https://quadernoapp.com/api and TaxJar at https://api.taxjar.com/v2.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/quaderno-vs-taxjar.json, and with the fewest tokens: https://www.anchorterminal.com/compare/quaderno-vs-taxjar.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"quaderno\", \"b\": \"taxjar\"}`. From a terminal: `anchor compare quaderno taxjar`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/quaderno.json and https://www.anchorterminal.com/api/v1/tools/taxjar.json\n\n## Other comparisons with Quaderno or TaxJar\n\n- [Anrok vs Quaderno](https://www.anchorterminal.com/compare/anrok-vs-quaderno.md)\n- [Anrok vs TaxJar](https://www.anchorterminal.com/compare/anrok-vs-taxjar.md)\n- [Avalara AvaTax vs Quaderno](https://www.anchorterminal.com/compare/avalara-vs-quaderno.md)\n- [Avalara AvaTax vs TaxJar](https://www.anchorterminal.com/compare/avalara-vs-taxjar.md)\n- [Fonoa vs Quaderno](https://www.anchorterminal.com/compare/fonoa-vs-quaderno.md)\n- [Fonoa vs TaxJar](https://www.anchorterminal.com/compare/fonoa-vs-taxjar.md)\n- [Kintsugi vs Quaderno](https://www.anchorterminal.com/compare/kintsugi-vs-quaderno.md)\n- [Kintsugi vs TaxJar](https://www.anchorterminal.com/compare/kintsugi-vs-taxjar.md)\n- [Numeral vs Quaderno](https://www.anchorterminal.com/compare/numeral-vs-quaderno.md)\n- [Numeral vs TaxJar](https://www.anchorterminal.com/compare/numeral-vs-taxjar.md)\n- [Quaderno vs TaxCloud](https://www.anchorterminal.com/compare/quaderno-vs-taxcloud.md)\n- [Quaderno vs Vertex O Series](https://www.anchorterminal.com/compare/quaderno-vs-vertex-tax.md)\n- [Quaderno vs Zamp](https://www.anchorterminal.com/compare/quaderno-vs-zamp.md)\n- [TaxCloud vs TaxJar](https://www.anchorterminal.com/compare/taxcloud-vs-taxjar.md)\n- [TaxJar vs Vertex O Series](https://www.anchorterminal.com/compare/taxjar-vs-vertex-tax.md)\n- [TaxJar vs Zamp](https://www.anchorterminal.com/compare/taxjar-vs-zamp.md)\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-10-08",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.4",
    "openapi": "https://www.anchorterminal.com/openapi.json",
    "preview": false,
    "run": "2026-10-01",
    "runLabel": "October 2026 research run"
  },
  "page": {
    "breadcrumbs": [
      {
        "name": "Home",
        "url": "https://www.anchorterminal.com/"
      },
      {
        "name": "Compare",
        "url": "https://www.anchorterminal.com/compare/"
      },
      {
        "name": "Quaderno vs TaxJar",
        "url": ""
      }
    ],
    "description": "Quaderno scores 59.5 (C) on agent readiness against TaxJar's 57.6 (C), and leads in 3 of 7 scored categories. TaxJar leads on agent ergonomics and maintenance \u0026 community. Both do tax calculate. Category scores, facts, verdicts and agent notes side by side.",
    "facts": [
      "Quaderno C 59.5",
      "TaxJar C 57.6",
      "scores"
    ],
    "h1": "Quaderno vs TaxJar",
    "image": "https://www.anchorterminal.com/assets/og/compare-quaderno-vs-taxjar.png",
    "path": "/compare/quaderno-vs-taxjar",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Quaderno vs TaxJar for AI agents, C 59.5 vs C 57.6 | Anchor Terminal",
    "toc": null,
    "updated": "2026-10-08",
    "url": "https://www.anchorterminal.com/compare/quaderno-vs-taxjar"
  },
  "tokens": {
    "markdown": 2150,
    "slim": 680
  },
  "version": 1
}
