{
  "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": 377,
        "ranked": true,
        "rankOf": 629,
        "categoryRank": 3,
        "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-08T19:08:56.578554907Z",
          "lastOk": true,
          "lastStatus": 404,
          "lastMs": 118,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 107,
          "p95ms24h": 154,
          "samples24h": 42,
          "samples30d": 42,
          "days": [
            {
              "date": "2026-10-08",
              "probes": 42,
              "ok": 42
            }
          ]
        },
        "vendorStatus": {
          "page": "https://quaderno.statuspage.io",
          "indicator": "none",
          "summary": "All Systems Operational",
          "checkedAt": "2026-10-08T19:06:56.504813893Z"
        },
        "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-08T19:08:56.578554907Z"
      }
    },
    "answer": "Quaderno scores 59.5 (C) on agent readiness against Vertex O Series's 54.7 (C), and leads in 5 of 7 scored categories. Vertex O Series leads on security \u0026 auth and maintenance \u0026 community.",
    "b": {
      "slug": "vertex-tax",
      "name": "Vertex O Series",
      "vendor": "Vertex, Inc.",
      "vendorUrl": "https://www.vertexinc.com",
      "kind": "http-api",
      "category": "tax",
      "summary": "Vertex O Series is indirect tax software from Vertex, Inc. that calculates sales tax, use tax and VAT for a transaction and records it for reporting. Agents reach it through REST v2 APIs with OAuth client credentials.",
      "url": "https://www.anchorterminal.com/tools/vertex-tax",
      "markdownUrl": "https://www.anchorterminal.com/tools/vertex-tax.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/vertex-tax.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/vertex-tax.json",
      "license": "Proprietary service under a customer agreement with Vertex, Inc. that isn't published",
      "transports": [
        "http"
      ],
      "remoteUrl": "https://calcconnect.vertexsmb.com/vertex-ws/v2",
      "packages": [],
      "auth": "oauth",
      "authNotes": "Access is granted through a sales contract. OAuth 2.0 client credentials follow. A Cloud Partition System Administrator creates an API credential under Account Settings, Security \u0026 Credentials, choosing the API and the partition it maps to. The client id and secret are exchanged at https://auth.vertexcloud.com/oauth/token with audience `verx://migration-api` for a bearer token that lasts 3,599 seconds. The secret is shown once and a credential can't be edited. Token requests are limited to 10 per 8 hours, and a caching endpoint at tokenguard.vertexcloud.com returns unexpired tokens. On-Premise and On-Demand deployments use a service account with the API User role and their own token URL.",
      "pricing": "paid",
      "pricingNotes": "No public prices. www.vertexinc.com/pricing returns 404 and the O Series product page asks visitors to book a demo. No free tier, trial or self-serve sandbox was found, and the security guide says to work with the Vertex sales team to establish an account. O Series Online Commerce documents a sandbox host that uses the same contracted credentials (checked 2026-10-08).",
      "priceSummary": "Paid",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the developer docs or the OpenAPI specs (checked 2026-10-08).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": null,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-10-08"
      },
      "docsUrl": "https://developer.vertexinc.com/oseries/docs/quick-start",
      "openapi": "https://developer.vertexinc.com/oseries/openapi/vertex-tax-calculation-and-tax-gis-api.json",
      "capabilities": [
        "tax.calculate",
        "tax.transactions",
        "tax.exemptions",
        "tax.invoicing"
      ],
      "tags": [
        "hosted",
        "enterprise",
        "oauth",
        "openapi",
        "sales-led",
        "status-page",
        "soc2",
        "on-premise",
        "vat",
        "sales-tax"
      ],
      "lastRelease": "2026-09-25",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 54.7,
        "grade": "C",
        "agentReady": false,
        "rank": 464,
        "ranked": true,
        "rankOf": 629,
        "categoryRank": 5,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 51,
          "maintenance": 62,
          "payments": 0,
          "reliability": 65,
          "schema": 74,
          "security": 57,
          "transparency": 68
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-08"
        },
        "negative": 0,
        "verdict": "Public OpenAPI 3.0 specs cover calculation, transaction management, tax area lookup and tax configuration, and guides are served as Markdown. Access needs a sales contract. No price, free tier, sandbox signup, calculation rate limit, idempotency key or official SDK was found in the reviewed documentation.",
        "bestFor": "An agent working inside a company that already has an O Series licence, for quotes, invoice tax, tax area lookups and tax configuration across sales tax, use tax and VAT.",
        "strengths": [
          "OpenAPI 3.0 specs download without a login. Calculation and Tax GIS is version 2.9.0 with 14 operations, Tax Configuration v2.1.0 with 29",
          "Every guide page is served as Markdown when .md is added to its URL",
          "Each Cloud API credential maps to one API and one partition, and token requests carrying credentials in the URL are rejected",
          "status.vertexinc.com lists 26 components, and no incident from 10 July to 8 October 2026 names O Series Cloud",
          "The trust centre lists SOC 1 Type II and SOC 2 Type II reports for 2025 and five sub-processors with locations"
        ],
        "weaknesses": [
          "No public price, free tier or self-serve signup. The security guide sends new users to the Vertex sales team for an account",
          "No rate limit for the calculation API and no idempotency key were found in the reviewed documentation",
          "The standard token endpoint allows 10 access token requests per 8 hours for each client",
          "No official SDK, MCP server or llms.txt on the developer site was found",
          "The customer agreement, DPA and Service Level Exhibit sit behind an access request in the trust centre"
        ],
        "agentNotes": [
          "Cache the access token for its 3,599-second life. The standard token endpoint allows 10 requests per 8 hours, and tokenguard.vertexcloud.com returns a cached token",
          "Send no `Authorization: Bearer` header to /oauth/token, and put the client id and secret in the body or a Basic header. Credentials in the URL are rejected",
          "Set `saleMessageType` to QUOTATION for an estimate. INVOICE is stored for reporting and remittance",
          "Call GET /v2/transaction-exists/{transactionid} before retrying a failed INVOICE. No idempotency key is documented",
          "Delete, reverse or roll back a Cloud transaction within 90 days of calculation. Later requests can cause calculation errors or duplicates"
        ],
        "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": 54.7
          }
        ],
        "editorialScores": {
          "ergonomics": 51,
          "maintenance": 62,
          "payments": 0,
          "reliability": 65,
          "schema": 74,
          "security": 57,
          "transparency": 52
        },
        "provenanceScore": 84
      },
      "connect": {
        "http": "curl --location 'https://auth.vertexcloud.com/oauth/token' \\\n  --header 'Content-Type: application/x-www-form-urlencoded' \\\n  --data-urlencode 'client_id=\u003cyour-client-id\u003e' \\\n  --data-urlencode 'client_secret=\u003cyour-client-secret\u003e' \\\n  --data-urlencode 'audience=verx://migration-api' \\\n  --data-urlencode 'grant_type=client_credentials'"
      },
      "letme": {
        "capability": "https://letme.dev/tax.calculate",
        "tool": "https://letme.dev/vertex-tax"
      },
      "area": "domain-data",
      "provenance": {
        "legalEntity": "Vertex, Inc.",
        "domain": "vertexinc.com",
        "domainRegistered": "1998-09-01",
        "endpointOnVendorDomain": true,
        "terms": "https://www.vertexinc.com/terms-of-use",
        "privacy": "https://www.vertexinc.com/vertex-privacy-policy",
        "statusPage": "https://status.vertexinc.com",
        "changelog": "https://developer.vertexinc.com/oseries/docs/os-release",
        "securityTxt": "none",
        "checked": "2026-10-08",
        "notes": [
          "The website terms of use and the privacy notice name Vertex, Inc., 2301 Renaissance Blvd., King of Prussia, PA 19406, and the terms choose Pennsylvania law. The privacy notice was last updated on 19 August 2026.",
          "Cloud API calls go to calcconnect.vertexsmb.com and auth.vertexcloud.com, which the vendor's developer docs name as its hosts. We didn't check the registration of those two domains. On-Demand deployments answer on \u003ccustomer\u003e.ondemand.vertexinc.com.",
          "www.vertexinc.com/.well-known/security.txt and /security.txt return 404.",
          "The terms URL is the website terms of use. The customer agreement, DPA, Security Exhibit and Service Level Exhibit are listed in the trust centre behind an access request.",
          "RDAP for vertexinc.com gives a registration date of 1998-09-01."
        ],
        "score": 84
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/vertex-tax.json",
      "live": {
        "slug": "vertex-tax",
        "probe": {
          "target": "https://calcconnect.vertexsmb.com/vertex-ws/v2",
          "method": "get",
          "lastAt": "2026-10-08T19:09:01.550123634Z",
          "lastOk": true,
          "lastStatus": 401,
          "lastMs": 328,
          "lastNote": "asks for credentials",
          "authRequired": true,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 337,
          "p95ms24h": 389,
          "samples24h": 42,
          "samples30d": 42,
          "days": [
            {
              "date": "2026-10-08",
              "probes": 42,
              "ok": 42
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.vertexinc.com",
          "indicator": "none",
          "summary": "All Systems Operational",
          "checkedAt": "2026-10-08T19:07:03.755128847Z"
        },
        "securityTxt": {
          "url": "https://vertexinc.com/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-10-08T15:38:42.909167355Z"
        },
        "pages": [
          {
            "url": "https://developer.vertexinc.com/oseries/docs/os-release",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-10-08T18:17:20.759088603Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "dbf33e43de24"
          },
          {
            "url": "https://www.vertexinc.com/vertex-privacy-policy",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-10-08T18:31:23.444238352Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "a77bfa05dfc0"
          },
          {
            "url": "https://www.vertexinc.com/terms-of-use",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-10-08T18:31:21.326104819Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "8a38170a4aef"
          }
        ],
        "updatedAt": "2026-10-08T19:09:01.550123634Z"
      }
    },
    "facts": [
      {
        "a": "HTTP API",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "Recrea Systems, SL",
        "b": "Vertex, Inc.",
        "name": "Vendor"
      },
      {
        "a": "https://quadernoapp.com/api",
        "b": "https://calcconnect.vertexsmb.com/vertex-ws/v2",
        "name": "Hosted endpoint"
      },
      {
        "a": "HTTP",
        "b": "HTTP",
        "name": "Transports"
      },
      {
        "a": "OAuth or key",
        "b": "OAuth",
        "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 a customer agreement with Vertex, Inc. that isn't published",
        "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-25",
        "name": "Last release"
      },
      {
        "a": "2026-09-15",
        "b": "no date given",
        "name": "Terms last updated"
      },
      {
        "a": "2024-05-16",
        "b": "no date given",
        "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": "not found in the text",
        "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": "none",
        "name": "Popularity"
      }
    ],
    "faq": [
      {
        "answer": "Quaderno scores 59.5 (C) on agent readiness against Vertex O Series's 54.7 (C), and leads in 5 of 7 scored categories. Vertex O Series leads on security \u0026 auth and maintenance \u0026 community.",
        "question": "Which is better for AI agents, Quaderno or Vertex O Series?"
      },
      {
        "answer": "Quaderno takes an API key or an OAuth sign-in. Vertex O Series uses an OAuth sign-in.",
        "question": "Do Quaderno and Vertex O Series need an API key?"
      },
      {
        "answer": "Yes. Quaderno has a hosted endpoint at https://quadernoapp.com/api and Vertex O Series at https://calcconnect.vertexsmb.com/vertex-ws/v2.",
        "question": "Can an agent call Quaderno and Vertex O Series without installing anything?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Reliability, 91 against 65",
          "Agent ergonomics, 56 against 51",
          "Payments \u0026 pricing, 30 against 0",
          "Transparency \u0026 trust, 76 against 68"
        ],
        "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": [
          "Security \u0026 auth, 57 against 39",
          "Maintenance \u0026 community, 62 against 28"
        ],
        "also": null,
        "goodFor": "An agent working inside a company that already has an O Series licence, for quotes, invoice tax, tax area lookups and tax configuration across sales tax, use tax and VAT.",
        "slug": "vertex-tax",
        "watchFor": "No public price, free tier or self-serve signup. The security guide sends new users to the Vertex sales team for an account"
      }
    ],
    "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-vertex-tax.json",
        "title": "Anrok vs Vertex O Series",
        "url": "https://www.anchorterminal.com/compare/anrok-vs-vertex-tax"
      },
      {
        "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-vertex-tax.json",
        "title": "Avalara AvaTax vs Vertex O Series",
        "url": "https://www.anchorterminal.com/compare/avalara-vs-vertex-tax"
      },
      {
        "json": "https://www.anchorterminal.com/compare/quaderno-vs-taxjar.json",
        "title": "Quaderno vs TaxJar",
        "url": "https://www.anchorterminal.com/compare/quaderno-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"
      }
    ],
    "scores": [
      {
        "by": 26,
        "edge": "quaderno",
        "key": "reliability",
        "name": "Reliability",
        "quaderno": 91,
        "vertex-tax": 65,
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 3,
        "edge": "quaderno",
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "quaderno": 77,
        "vertex-tax": 74,
        "weight": 13
      },
      {
        "by": 5,
        "edge": "quaderno",
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "quaderno": 56,
        "vertex-tax": 51,
        "weight": 13
      },
      {
        "by": 18,
        "edge": "vertex-tax",
        "key": "security",
        "name": "Security \u0026 auth",
        "quaderno": 39,
        "vertex-tax": 57,
        "weight": 14
      },
      {
        "by": 30,
        "edge": "quaderno",
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "quaderno": 30,
        "vertex-tax": 0,
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 34,
        "edge": "vertex-tax",
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "quaderno": 28,
        "vertex-tax": 62,
        "weight": 7
      },
      {
        "by": 8,
        "edge": "quaderno",
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "quaderno": 76,
        "vertex-tax": 68,
        "weight": 7
      }
    ],
    "summary": "Quaderno scores 59.5 (C) on agent readiness against Vertex O Series's 54.7 (C), and leads in 5 of 7 scored categories. Vertex O Series leads on security \u0026 auth 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.",
      "vertex-tax": "Public OpenAPI 3.0 specs cover calculation, transaction management, tax area lookup and tax configuration, and guides are served as Markdown. Access needs a sales contract. No price, free tier, sandbox signup, calculation rate limit, idempotency key or official SDK was found in the reviewed documentation."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/quaderno-vs-vertex-tax",
    "json": "https://www.anchorterminal.com/compare/quaderno-vs-vertex-tax.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/quaderno-vs-vertex-tax.md",
    "slim": "https://www.anchorterminal.com/compare/quaderno-vs-vertex-tax.min.md"
  },
  "markdown": "Quaderno scores 59.5 (C) on agent readiness against Vertex O Series's 54.7 (C), and leads in 5 of 7 scored categories. Vertex O Series leads on security \u0026 auth and maintenance \u0026 community. Both do tax calculate.\n\n- Quaderno: grade C, 59.5/100, rank #377 of 629. Markdown https://www.anchorterminal.com/tools/quaderno.md · JSON https://www.anchorterminal.com/api/v1/tools/quaderno.json\n- Vertex O Series: grade C, 54.7/100, rank #464 of 629. Markdown https://www.anchorterminal.com/tools/vertex-tax.md · JSON https://www.anchorterminal.com/api/v1/tools/vertex-tax.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 65\n- Agent ergonomics, 56 against 51\n- Payments \u0026 pricing, 30 against 0\n- Transparency \u0026 trust, 76 against 68\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### Vertex O Series (C)\n\nGood for: An agent working inside a company that already has an O Series licence, for quotes, invoice tax, tax area lookups and tax configuration across sales tax, use tax and VAT.\n\nAhead on:\n- Security \u0026 auth, 57 against 39\n- Maintenance \u0026 community, 62 against 28\n\nWatch for: No public price, free tier or self-serve signup. The security guide sends new users to the Vertex sales team for an account\n\n\n## Score by category\n\n| Category | Weight | Quaderno | Vertex O Series | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 91 | 65 | Quaderno +26 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 77 | 74 | Quaderno +3 |\n| Agent ergonomics | 13% (16.2 this run) | 56 | 51 | Quaderno +5 |\n| Security \u0026 auth | 14% (17.5 this run) | 39 | 57 | Vertex O Series +18 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 30 | 0 | Quaderno +30 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 28 | 62 | Vertex O Series +34 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 76 | 68 | Quaderno +8 |\n| Negative events | ≤15 | 0 | 0 | |\n| **Total** | | **59.5 · C** | **54.7 · C** | |\n\n## Facts side by side\n\n| Fact | Quaderno | Vertex O Series |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | Recrea Systems, SL | Vertex, Inc. |\n| Hosted endpoint | `https://quadernoapp.com/api` | `https://calcconnect.vertexsmb.com/vertex-ws/v2` |\n| Transports | HTTP | HTTP |\n| Auth | OAuth or key | OAuth |\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 a customer agreement with Vertex, Inc. that isn't published |\n| Read-only variant documented | no | no |\n| llms.txt | yes | no |\n| Last release | 2026-07-04 | 2026-09-25 |\n| Terms last updated | 2026-09-15 | no date given |\n| Privacy policy last updated | 2024-05-16 | no date given |\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 | not found in the text |\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 | none |\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**Vertex O Series.** Public OpenAPI 3.0 specs cover calculation, transaction management, tax area lookup and tax configuration, and guides are served as Markdown. Access needs a sales contract. No price, free tier, sandbox signup, calculation rate limit, idempotency key or official SDK was found in the reviewed documentation.\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### Vertex O Series\n\n1. Cache the access token for its 3,599-second life. The standard token endpoint allows 10 requests per 8 hours, and tokenguard.vertexcloud.com returns a cached token\n2. Send no `Authorization: Bearer` header to /oauth/token, and put the client id and secret in the body or a Basic header. Credentials in the URL are rejected\n3. Set `saleMessageType` to QUOTATION for an estimate. INVOICE is stored for reporting and remittance\n4. Call GET /v2/transaction-exists/{transactionid} before retrying a failed INVOICE. No idempotency key is documented\n5. Delete, reverse or roll back a Cloud transaction within 90 days of calculation. Later requests can cause calculation errors or duplicates\n\n## Questions\n\n### Which is better for AI agents, Quaderno or Vertex O Series?\n\nQuaderno scores 59.5 (C) on agent readiness against Vertex O Series's 54.7 (C), and leads in 5 of 7 scored categories. Vertex O Series leads on security \u0026 auth and maintenance \u0026 community.\n\n### Do Quaderno and Vertex O Series need an API key?\n\nQuaderno takes an API key or an OAuth sign-in. Vertex O Series uses an OAuth sign-in.\n\n### Can an agent call Quaderno and Vertex O Series without installing anything?\n\nYes. Quaderno has a hosted endpoint at https://quadernoapp.com/api and Vertex O Series at https://calcconnect.vertexsmb.com/vertex-ws/v2.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/quaderno-vs-vertex-tax.json, and with the fewest tokens: https://www.anchorterminal.com/compare/quaderno-vs-vertex-tax.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"quaderno\", \"b\": \"vertex-tax\"}`. From a terminal: `anchor compare quaderno vertex-tax`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/quaderno.json and https://www.anchorterminal.com/api/v1/tools/vertex-tax.json\n\n## Other comparisons with Quaderno or Vertex O Series\n\n- [Anrok vs Quaderno](https://www.anchorterminal.com/compare/anrok-vs-quaderno.md)\n- [Anrok vs Vertex O Series](https://www.anchorterminal.com/compare/anrok-vs-vertex-tax.md)\n- [Avalara AvaTax vs Quaderno](https://www.anchorterminal.com/compare/avalara-vs-quaderno.md)\n- [Avalara AvaTax vs Vertex O Series](https://www.anchorterminal.com/compare/avalara-vs-vertex-tax.md)\n- [Quaderno vs TaxJar](https://www.anchorterminal.com/compare/quaderno-vs-taxjar.md)\n- [TaxJar vs Vertex O Series](https://www.anchorterminal.com/compare/taxjar-vs-vertex-tax.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 Vertex O Series",
        "url": ""
      }
    ],
    "description": "Quaderno scores 59.5 (C) on agent readiness against Vertex O Series's 54.7 (C), and leads in 5 of 7 scored categories. Vertex O Series leads on security \u0026 auth and maintenance \u0026 community. Both do tax calculate. Category scores, facts, verdicts and agent notes side by side.",
    "facts": [
      "Quaderno C 59.5",
      "Vertex O Series C 54.7",
      "scores"
    ],
    "h1": "Quaderno vs Vertex O Series",
    "image": "https://www.anchorterminal.com/assets/og/compare-quaderno-vs-vertex-tax.png",
    "path": "/compare/quaderno-vs-vertex-tax",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Quaderno vs Vertex O Series for AI agents, C 59.5 vs C 54.7",
    "toc": null,
    "updated": "2026-10-08",
    "url": "https://www.anchorterminal.com/compare/quaderno-vs-vertex-tax"
  },
  "tokens": {
    "markdown": 2000,
    "slim": 680
  },
  "version": 1
}
