{
  "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-08T21:53:31.639684795Z",
          "lastOk": true,
          "lastStatus": 404,
          "lastMs": 117,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 107,
          "p95ms24h": 155,
          "samples24h": 71,
          "samples30d": 71,
          "days": [
            {
              "date": "2026-10-08",
              "probes": 71,
              "ok": 71
            }
          ]
        },
        "vendorStatus": {
          "page": "https://quaderno.statuspage.io",
          "indicator": "none",
          "summary": "All Systems Operational",
          "checkedAt": "2026-10-08T21:58:11.903111788Z"
        },
        "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-08T21:58:11.903111788Z"
      }
    },
    "answer": "Quaderno scores 59.5 (C) on agent readiness against Zamp's 49.5 (D), and leads in 4 of 7 scored categories. Zamp leads on agent ergonomics and maintenance \u0026 community.",
    "b": {
      "slug": "zamp",
      "name": "Zamp",
      "vendor": "Zamp Inc.",
      "vendorUrl": "https://zamp.com",
      "kind": "http-api",
      "category": "tax",
      "summary": "Zamp is a managed sales tax service for US and Canadian sellers. Its REST API calculates tax by address, records transactions for filing and reads registrations and filings, while Zamp's team registers, files and remits.",
      "url": "https://www.anchorterminal.com/tools/zamp",
      "markdownUrl": "https://www.anchorterminal.com/tools/zamp.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/zamp.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/zamp.json",
      "license": "Proprietary service under Zamp's Standard Terms and Conditions, which form part of a signed Order Form. The sandbox has its own Developer trial terms",
      "transports": [
        "http"
      ],
      "remoteUrl": "https://api.zamp.com",
      "packages": [],
      "auth": "api-key",
      "authNotes": "Every request carries an API key as a Bearer token in the `Authorization` header. A 30-day sandbox key is emailed after a form that asks for a business email, with no card or sales call. A production key is copied from the Integrations page of app.zamp.com or issued by Zamp's account team, and a Zamp account comes through a demo and an Order Form. No scopes, read-only keys or expiry settings were found in the reviewed documentation. The docs tell users to rotate or reset an exposed key without describing how.",
      "pricing": "paid",
      "pricingNotes": "No price is published. The pricing page names three plans, Free, U.S. and U.S. + Canada, and the two paid plans read \"Contact sales\". Free includes a rate-limited 30-day API sandbox with no card. Zamp says API calls are never metered and that usage is counted in committed transactions. The terms count ten calculation calls as one transaction for customers who use calculation only (https://zamp.com/pricing, https://zamp.com/terms-conditions section 6.2, checked 2026-10-08).",
      "priceSummary": "Paid",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the developer docs, the pricing page or the terms (checked 2026-10-08).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": null,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-10-08"
      },
      "docsUrl": "https://developer.zamp.com",
      "llmsTxt": "https://developer.zamp.com/llms.txt",
      "capabilities": [
        "tax.calculate",
        "tax.transactions",
        "tax.filing",
        "tax.exemptions",
        "shipping.address-validation"
      ],
      "tags": [
        "hosted",
        "paid",
        "closed-source",
        "api-key",
        "llms-txt",
        "sandbox",
        "free-trial",
        "no-card",
        "sales-led",
        "status-page"
      ],
      "lastRelease": "2026-08-31",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 49.5,
        "grade": "D",
        "agentReady": false,
        "rank": 609,
        "ranked": true,
        "rankOf": 722,
        "categoryRank": 9,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 64,
          "maintenance": 42,
          "payments": 20,
          "reliability": 72,
          "schema": 44,
          "security": 40,
          "transparency": 50
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-08"
        },
        "negative": 0,
        "verdict": "A free 30-day sandbox key needs no card or sales call, and the docs are served as Markdown with llms.txt and a published limit of 1,000 requests a minute. There is no OpenAPI file, SDK, API changelog or published price, production keys come with a sales-led account, and the site footer says SOC 2 compliance is in progress.",
        "bestFor": "An agent working for a US or Canadian seller that wants Zamp's team to register, file and remit, and needs calculation and transaction sync through a small API.",
        "strengths": [
          "Free 30-day sandbox key by email with no card or sales call, preloaded with all 47 remote-seller state registrations",
          "Docs served as Markdown with `llms.txt` and `llms-full.txt`, and cURL, Node.js and Python examples in the quickstart",
          "Published limit of 1,000 requests a minute, and responses carry `x-zamp-rate-limit-remaining` and `x-zamp-rate-limit-reset` headers",
          "Errors return a named code and message, and validation failures add an `issues` array with the path of each bad field",
          "One transaction object is used by `/calculations` and `/transactions`, with a per-jurisdiction breakdown in every response"
        ],
        "weaknesses": [
          "No OpenAPI file for the API. The one file on the docs host is the documentation platform's plant store sample",
          "No price is published. The U.S. and U.S. + Canada plans read \"Contact sales\", and production keys come with a Zamp account",
          "No API changelog, version in the path, deprecation policy or official SDK found in the reviewed documentation",
          "API keys have no scopes or read-only mode in the reviewed documentation, and `DELETE /transactions/:id` deletes permanently",
          "No security.txt or disclosure policy found, and the site footer says SOC 2 compliance is in progress",
          "No webhooks, and registrations can't be started or approved through the API"
        ],
        "agentNotes": [
          "Call `POST /calculations` for a quote and `POST /transactions` only when the sale is final. Put the returned `taxDue` in `taxCollected` when posting",
          "Keep transaction and line item ids to 25 characters. A repeated `POST /transactions` with an existing id returns 409 `CONFLICT`, so a retry doesn't create a second record",
          "For a refund, post a new transaction with `parentId` set to the sale's id and a negative `quantity`. Never send a negative `amount` on a line item",
          "Send `shipToAddress.state` and `country` set to CA for Canadian orders. `POST /addresses` validates US addresses only",
          "Page lists with `limit` (1 to 100, default 10) and `cursor` until `nextCursor` is null. `GET /transactions` returns only transactions written with the same key",
          "Don't store sensitive or personal data in the sandbox. Trial data is deleted after 30 days and the trial terms forbid live customer data"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "D",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 49.5
          }
        ],
        "editorialScores": {
          "ergonomics": 64,
          "maintenance": 42,
          "payments": 20,
          "reliability": 72,
          "schema": 44,
          "security": 40,
          "transparency": 27
        },
        "provenanceScore": 73
      },
      "connect": {
        "http": "curl -X POST https://api.zamp.com/calculations \\\n  -H \"Authorization: Bearer {your-api-key}\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"id\":\"123\",\"name\":\"INV-123\",\"transactedAt\":\"2023-07-01T00:00:00.000Z\",\"isResale\":false,\"discount\":2,\"subtotal\":18,\"shippingHandling\":5,\"total\":23,\"shipToAddress\":{\"line1\":\"120 SW 10TH AVE\",\"line2\":null,\"state\":\"KS\",\"city\":\"TOPEKA\",\"zip\":\"66612\"},\"lineItems\":[{\"id\":\"LI-123\",\"amount\":10,\"quantity\":2,\"discount\":0,\"shippingHandling\":0,\"productName\":\"The Ultimate Sampler\",\"productSku\":\"SAMPLER-100\",\"productTaxCode\":\"R_TPP_FOOD-BEVERAGE_HOME-CONSUMPTION\"}]}'"
      },
      "letme": {
        "capability": "https://letme.dev/tax.calculate",
        "tool": "https://letme.dev/zamp"
      },
      "area": "domain-data",
      "provenance": {
        "legalEntity": "Zamp Inc.",
        "domain": "zamp.com",
        "domainRegistered": "2001-08-01",
        "endpointOnVendorDomain": true,
        "terms": "https://zamp.com/terms-conditions",
        "privacy": "https://zamp.com/privacy-policy",
        "statusPage": "https://zamp.statuspage.io",
        "changelog": "",
        "securityTxt": "none",
        "checked": "2026-10-08",
        "notes": [
          "The site footer reads \"© 2026 Zamp Inc.\" with an address in Miami, Florida. The terms name the company only as ZAMP, and the Companies API example shows \"Zamp Technologies, Inc.\" trading as Zamp Tax.",
          "The Standard Terms and Conditions at zamp.com/terms-conditions form part of the customer's Order Form and are governed by Delaware law. Section 2.2 covers the API. The page carries no date.",
          "Sandbox use is governed by the Developer trial terms and conditions at developer.zamp.com/guides/developer-trial-terms-and-conditions, effective 1 October 2025.",
          "The privacy policy, last updated 11 February 2025, defines the Service as the website and adds a Global Privacy Statement on data sent through the API. It is the only privacy document found.",
          "The terms refer to a Data Processing Agreement. No link to it was found on the pages we read.",
          "The API answers at api.zamp.com, on the vendor's domain. Its response headers name Vercel as the server.",
          "status.zamp.com redirects to zamp.statuspage.io. The page lists four components and its incident feed is empty.",
          "zamp.com, developer.zamp.com and api.zamp.com all return 404 for /.well-known/security.txt.",
          "No API changelog was found. The docs carry dated release notes for the QuickBooks, WooCommerce and NetSuite connectors only.",
          "RDAP for zamp.com gives a registration date of 2001-08-01, which predates the company's use of the name."
        ],
        "score": 73
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/zamp.json",
      "live": {
        "slug": "zamp",
        "probe": {
          "target": "https://api.zamp.com",
          "method": "get",
          "lastAt": "2026-10-08T21:53:39.098194091Z",
          "lastOk": true,
          "lastStatus": 418,
          "lastMs": 565,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 270,
          "p95ms24h": 1284,
          "samples24h": 28,
          "samples30d": 28,
          "days": [
            {
              "date": "2026-10-08",
              "probes": 28,
              "ok": 28
            }
          ]
        },
        "vendorStatus": {
          "page": "https://zamp.statuspage.io",
          "indicator": "none",
          "summary": "All Systems Operational",
          "checkedAt": "2026-10-08T21:58:19.582371702Z"
        },
        "updatedAt": "2026-10-08T21:58:19.582371702Z"
      }
    },
    "facts": [
      {
        "a": "HTTP API",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "Recrea Systems, SL",
        "b": "Zamp Inc.",
        "name": "Vendor"
      },
      {
        "a": "https://quadernoapp.com/api",
        "b": "https://api.zamp.com",
        "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 Zamp's Standard Terms and Conditions, which form part of a signed Order Form. The sandbox has its own Developer trial terms",
        "name": "Licence"
      },
      {
        "a": "no",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "llms.txt"
      },
      {
        "a": "2026-07-04",
        "b": "2026-08-31",
        "name": "Last release"
      },
      {
        "a": "2026-09-15",
        "b": "no date given",
        "name": "Terms last updated"
      },
      {
        "a": "2024-05-16",
        "b": "2025-02-11",
        "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": "yes",
        "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": "none",
        "name": "Popularity"
      }
    ],
    "faq": [
      {
        "answer": "Quaderno scores 59.5 (C) on agent readiness against Zamp's 49.5 (D), and leads in 4 of 7 scored categories. Zamp leads on agent ergonomics and maintenance \u0026 community.",
        "question": "Which is better for AI agents, Quaderno or Zamp?"
      },
      {
        "answer": "Quaderno takes an API key or an OAuth sign-in. Zamp needs an API key.",
        "question": "Do Quaderno and Zamp need an API key?"
      },
      {
        "answer": "Yes. Quaderno has a hosted endpoint at https://quadernoapp.com/api and Zamp at https://api.zamp.com.",
        "question": "Can an agent call Quaderno and Zamp without installing anything?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Reliability, 91 against 72",
          "Schema \u0026 documentation, 77 against 44",
          "Payments \u0026 pricing, 30 against 20",
          "Transparency \u0026 trust, 76 against 50"
        ],
        "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, 64 against 56",
          "Maintenance \u0026 community, 42 against 28"
        ],
        "also": [
          "Free to start without a card"
        ],
        "goodFor": "An agent working for a US or Canadian seller that wants Zamp's team to register, file and remit, and needs calculation and transaction sync through a small API.",
        "slug": "zamp",
        "watchFor": "No OpenAPI file for the API. The one file on the docs host is the documentation platform's plant store sample"
      }
    ],
    "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-zamp.json",
        "title": "Anrok vs Zamp",
        "url": "https://www.anchorterminal.com/compare/anrok-vs-zamp"
      },
      {
        "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-zamp.json",
        "title": "Avalara AvaTax vs Zamp",
        "url": "https://www.anchorterminal.com/compare/avalara-vs-zamp"
      },
      {
        "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-zamp.json",
        "title": "Fonoa vs Zamp",
        "url": "https://www.anchorterminal.com/compare/fonoa-vs-zamp"
      },
      {
        "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-zamp.json",
        "title": "Kintsugi vs Zamp",
        "url": "https://www.anchorterminal.com/compare/kintsugi-vs-zamp"
      },
      {
        "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-zamp.json",
        "title": "Numeral vs Zamp",
        "url": "https://www.anchorterminal.com/compare/numeral-vs-zamp"
      },
      {
        "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-taxjar.json",
        "title": "Quaderno vs TaxJar",
        "url": "https://www.anchorterminal.com/compare/quaderno-vs-taxjar"
      },
      {
        "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/taxcloud-vs-zamp.json",
        "title": "TaxCloud vs Zamp",
        "url": "https://www.anchorterminal.com/compare/taxcloud-vs-zamp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/taxjar-vs-zamp.json",
        "title": "TaxJar vs Zamp",
        "url": "https://www.anchorterminal.com/compare/taxjar-vs-zamp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/vertex-tax-vs-zamp.json",
        "title": "Vertex O Series vs Zamp",
        "url": "https://www.anchorterminal.com/compare/vertex-tax-vs-zamp"
      }
    ],
    "scores": [
      {
        "by": 19,
        "edge": "quaderno",
        "key": "reliability",
        "name": "Reliability",
        "quaderno": 91,
        "weight": 16,
        "zamp": 72
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 33,
        "edge": "quaderno",
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "quaderno": 77,
        "weight": 13,
        "zamp": 44
      },
      {
        "by": 8,
        "edge": "zamp",
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "quaderno": 56,
        "weight": 13,
        "zamp": 64
      },
      {
        "by": 1,
        "edge": "zamp",
        "key": "security",
        "name": "Security \u0026 auth",
        "quaderno": 39,
        "weight": 14,
        "zamp": 40
      },
      {
        "by": 10,
        "edge": "quaderno",
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "quaderno": 30,
        "weight": 10,
        "zamp": 20
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 14,
        "edge": "zamp",
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "quaderno": 28,
        "weight": 7,
        "zamp": 42
      },
      {
        "by": 26,
        "edge": "quaderno",
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "quaderno": 76,
        "weight": 7,
        "zamp": 50
      }
    ],
    "summary": "Quaderno scores 59.5 (C) on agent readiness against Zamp's 49.5 (D), and leads in 4 of 7 scored categories. Zamp 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.",
      "zamp": "A free 30-day sandbox key needs no card or sales call, and the docs are served as Markdown with llms.txt and a published limit of 1,000 requests a minute. There is no OpenAPI file, SDK, API changelog or published price, production keys come with a sales-led account, and the site footer says SOC 2 compliance is in progress."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/quaderno-vs-zamp",
    "json": "https://www.anchorterminal.com/compare/quaderno-vs-zamp.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/quaderno-vs-zamp.md",
    "slim": "https://www.anchorterminal.com/compare/quaderno-vs-zamp.min.md"
  },
  "markdown": "Quaderno scores 59.5 (C) on agent readiness against Zamp's 49.5 (D), and leads in 4 of 7 scored categories. Zamp 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- Zamp: grade D, 49.5/100, rank #609 of 722. Markdown https://www.anchorterminal.com/tools/zamp.md · JSON https://www.anchorterminal.com/api/v1/tools/zamp.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 72\n- Schema \u0026 documentation, 77 against 44\n- Payments \u0026 pricing, 30 against 20\n- Transparency \u0026 trust, 76 against 50\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### Zamp (D)\n\nGood for: An agent working for a US or Canadian seller that wants Zamp's team to register, file and remit, and needs calculation and transaction sync through a small API.\n\nAhead on:\n- Agent ergonomics, 64 against 56\n- Maintenance \u0026 community, 42 against 28\n\nAlso in its favour:\n- Free to start without a card\n\nWatch for: No OpenAPI file for the API. The one file on the docs host is the documentation platform's plant store sample\n\n\n## Score by category\n\n| Category | Weight | Quaderno | Zamp | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 91 | 72 | Quaderno +19 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 77 | 44 | Quaderno +33 |\n| Agent ergonomics | 13% (16.2 this run) | 56 | 64 | Zamp +8 |\n| Security \u0026 auth | 14% (17.5 this run) | 39 | 40 | Zamp +1 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 30 | 20 | Quaderno +10 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 28 | 42 | Zamp +14 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 76 | 50 | Quaderno +26 |\n| Negative events | ≤15 | 0 | 0 | |\n| **Total** | | **59.5 · C** | **49.5 · D** | |\n\n## Facts side by side\n\n| Fact | Quaderno | Zamp |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | Recrea Systems, SL | Zamp Inc. |\n| Hosted endpoint | `https://quadernoapp.com/api` | `https://api.zamp.com` |\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 Zamp's Standard Terms and Conditions, which form part of a signed Order Form. The sandbox has its own Developer trial terms |\n| Read-only variant documented | no | no |\n| llms.txt | yes | yes |\n| Last release | 2026-07-04 | 2026-08-31 |\n| Terms last updated | 2026-09-15 | no date given |\n| Privacy policy last updated | 2024-05-16 | 2025-02-11 |\n| Customer content may train models | not found in the text | not found in the text |\n| Terms restrict automated access | yes | yes |\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 | 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**Zamp.** A free 30-day sandbox key needs no card or sales call, and the docs are served as Markdown with llms.txt and a published limit of 1,000 requests a minute. There is no OpenAPI file, SDK, API changelog or published price, production keys come with a sales-led account, and the site footer says SOC 2 compliance is in progress.\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### Zamp\n\n1. Call `POST /calculations` for a quote and `POST /transactions` only when the sale is final. Put the returned `taxDue` in `taxCollected` when posting\n2. Keep transaction and line item ids to 25 characters. A repeated `POST /transactions` with an existing id returns 409 `CONFLICT`, so a retry doesn't create a second record\n3. For a refund, post a new transaction with `parentId` set to the sale's id and a negative `quantity`. Never send a negative `amount` on a line item\n4. Send `shipToAddress.state` and `country` set to CA for Canadian orders. `POST /addresses` validates US addresses only\n5. Page lists with `limit` (1 to 100, default 10) and `cursor` until `nextCursor` is null. `GET /transactions` returns only transactions written with the same key\n6. Don't store sensitive or personal data in the sandbox. Trial data is deleted after 30 days and the trial terms forbid live customer data\n\n## Questions\n\n### Which is better for AI agents, Quaderno or Zamp?\n\nQuaderno scores 59.5 (C) on agent readiness against Zamp's 49.5 (D), and leads in 4 of 7 scored categories. Zamp leads on agent ergonomics and maintenance \u0026 community.\n\n### Do Quaderno and Zamp need an API key?\n\nQuaderno takes an API key or an OAuth sign-in. Zamp needs an API key.\n\n### Can an agent call Quaderno and Zamp without installing anything?\n\nYes. Quaderno has a hosted endpoint at https://quadernoapp.com/api and Zamp at https://api.zamp.com.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/quaderno-vs-zamp.json, and with the fewest tokens: https://www.anchorterminal.com/compare/quaderno-vs-zamp.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"quaderno\", \"b\": \"zamp\"}`. From a terminal: `anchor compare quaderno zamp`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/quaderno.json and https://www.anchorterminal.com/api/v1/tools/zamp.json\n\n## Other comparisons with Quaderno or Zamp\n\n- [Anrok vs Quaderno](https://www.anchorterminal.com/compare/anrok-vs-quaderno.md)\n- [Anrok vs Zamp](https://www.anchorterminal.com/compare/anrok-vs-zamp.md)\n- [Avalara AvaTax vs Quaderno](https://www.anchorterminal.com/compare/avalara-vs-quaderno.md)\n- [Avalara AvaTax vs Zamp](https://www.anchorterminal.com/compare/avalara-vs-zamp.md)\n- [Fonoa vs Quaderno](https://www.anchorterminal.com/compare/fonoa-vs-quaderno.md)\n- [Fonoa vs Zamp](https://www.anchorterminal.com/compare/fonoa-vs-zamp.md)\n- [Kintsugi vs Quaderno](https://www.anchorterminal.com/compare/kintsugi-vs-quaderno.md)\n- [Kintsugi vs Zamp](https://www.anchorterminal.com/compare/kintsugi-vs-zamp.md)\n- [Numeral vs Quaderno](https://www.anchorterminal.com/compare/numeral-vs-quaderno.md)\n- [Numeral vs Zamp](https://www.anchorterminal.com/compare/numeral-vs-zamp.md)\n- [Quaderno vs TaxCloud](https://www.anchorterminal.com/compare/quaderno-vs-taxcloud.md)\n- [Quaderno vs TaxJar](https://www.anchorterminal.com/compare/quaderno-vs-taxjar.md)\n- [Quaderno vs Vertex O Series](https://www.anchorterminal.com/compare/quaderno-vs-vertex-tax.md)\n- [TaxCloud vs Zamp](https://www.anchorterminal.com/compare/taxcloud-vs-zamp.md)\n- [TaxJar vs Zamp](https://www.anchorterminal.com/compare/taxjar-vs-zamp.md)\n- [Vertex O Series vs Zamp](https://www.anchorterminal.com/compare/vertex-tax-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 Zamp",
        "url": ""
      }
    ],
    "description": "Quaderno scores 59.5 (C) on agent readiness against Zamp's 49.5 (D), and leads in 4 of 7 scored categories. Zamp 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",
      "Zamp D 49.5",
      "scores"
    ],
    "h1": "Quaderno vs Zamp",
    "image": "https://www.anchorterminal.com/assets/og/compare-quaderno-vs-zamp.png",
    "path": "/compare/quaderno-vs-zamp",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Quaderno vs Zamp for AI agents, C 59.5 vs D 49.5 | Anchor Terminal",
    "toc": null,
    "updated": "2026-10-08",
    "url": "https://www.anchorterminal.com/compare/quaderno-vs-zamp"
  },
  "tokens": {
    "markdown": 2200,
    "slim": 630
  },
  "version": 1
}
