{
  "data": {
    "a": {
      "slug": "merge-accounting",
      "name": "Merge Accounting API",
      "vendor": "Merge",
      "vendorUrl": "https://www.merge.dev",
      "kind": "http-api",
      "category": "accounting",
      "summary": "Unified accounting API for invoices, payments, expenses, journal entries and financial statements across platforms including QuickBooks, Xero and NetSuite.",
      "url": "https://www.anchorterminal.com/tools/merge-accounting",
      "markdownUrl": "https://www.anchorterminal.com/tools/merge-accounting.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/merge-accounting.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/merge-accounting.json",
      "repo": "https://github.com/merge-api/merge-python-client",
      "license": "MIT",
      "transports": [
        "http"
      ],
      "remoteUrl": "https://api.merge.dev/api/accounting/v1",
      "packages": [
        {
          "registry": "pypi",
          "name": "MergePythonClient"
        },
        {
          "registry": "npm",
          "name": "@mergeapi/merge-node-client"
        }
      ],
      "auth": "api-key",
      "authNotes": "Two headers on every call. `Authorization: Bearer \u003cAPI key\u003e` from the Merge dashboard (production or test keys) and `X-Account-Token` for the linked account, issued when a user finishes the Merge Link flow. There's an EU host at api-eu.merge.dev. Merge holds the OAuth tokens for the accounting platform, so your agent never sees them.",
      "pricing": "freemium",
      "pricingNotes": "The first 3 production linked accounts are free with no card. Launch is $650 a month for up to 10 production linked accounts and $65 a month for each one beyond that, with 100 requests a minute per linked account, up to 3 test linked accounts, sandbox accounts for the first 60 days and 3 days of logs. Professional (400 a minute, unlimited test linked accounts, sandbox accounts for the first 60 days, 30 days of logs, field-level scopes) and Enterprise (600 a minute, unlimited sandboxes, 90 days or more of logs, support and uptime SLAs) are priced on contract (https://www.merge.dev/pricing).",
      "priceSummary": "$650 / mo",
      "where": "hosted",
      "x402": {
        "level": "no",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": 15,
        "npmWeekly": 201025,
        "pypiWeekly": 234550,
        "asOf": "2026-09-30"
      },
      "docsUrl": "https://docs.merge.dev/merge-unified/accounting/overview",
      "llmsTxt": "https://docs.merge.dev/llms.txt",
      "openapi": "https://docs.merge.dev/openapi/accounting.json",
      "capabilities": [
        "accounting.unified",
        "accounting.ledger",
        "accounting.invoices",
        "accounting.bills",
        "accounting.reports"
      ],
      "tags": [
        "hosted",
        "freemium",
        "free-tier",
        "llms-txt",
        "openapi",
        "typescript",
        "python",
        "webhooks",
        "eu",
        "enterprise",
        "status-page",
        "closed-source"
      ],
      "lastRelease": "2026-09-16",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 70,
        "grade": "BB",
        "agentReady": true,
        "rank": 164,
        "ranked": true,
        "rankOf": 950,
        "categoryRank": 2,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 72,
          "maintenance": 83,
          "payments": 35,
          "reliability": 75,
          "schema": 86,
          "security": 67,
          "transparency": 68
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-01"
        },
        "negative": 0,
        "verdict": "12 accounting platforms behind one set of common models, with writes. Launch jumps from free to $650 a month at the fourth linked account.",
        "bestFor": "A SaaS product that reads and writes many customers' ledgers through one model and wants docs an agent can read cheaply.",
        "strengths": [
          "12 accounting platforms behind one set of common models, with writes",
          "Three production linked accounts free with no card",
          "llms.txt, Markdown twins of every docs page and a JSON OpenAPI spec",
          "Rate limits per linked account, so one busy customer doesn't starve the rest",
          "SOC 2 Type 2, ISO 27001:2022 and an EU host at api-eu.merge.dev"
        ],
        "weaknesses": [
          "Launch jumps from free to $650 a month at the fourth linked account",
          "No documented 429 handling, idempotency keys or safe-retry guidance for writes",
          "Merge's own MCP server for the Unified API has been idle since 0.1.4 in April 2025",
          "No deprecation policy, and the Python SDK shipped two major versions between May and July 2026",
          "Only 3 days of request logs on Launch"
        ],
        "agentNotes": [
          "Call GET /invoices/meta/post for the linked account first. Required fields differ by platform",
          "Bills and sales invoices are one model. Set type to ACCOUNTS_PAYABLE or ACCOUNTS_RECEIVABLE",
          "Append .md to any docs URL for the Markdown twin",
          "Check sync_status before reading a freshly linked account. Common models fill in over the first sync",
          "Look the record up before retrying a POST that timed out. There's no idempotency key"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 2,
        "avgRating": 3.5,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "BB",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 70
          }
        ],
        "editorialScores": {
          "ergonomics": 72,
          "maintenance": 83,
          "payments": 35,
          "reliability": 75,
          "schema": 86,
          "security": 67,
          "transparency": 54
        },
        "provenanceScore": 82
      },
      "connect": {
        "http": "curl \"https://api.merge.dev/api/accounting/v1/invoices?type=ACCOUNTS_RECEIVABLE\u0026page_size=10\" \\\n  -H \"Authorization: Bearer $MERGE_API_KEY\" -H \"X-Account-Token: $MERGE_ACCOUNT_TOKEN\""
      },
      "letme": {
        "capability": "https://letme.dev/accounting.unified",
        "tool": "https://letme.dev/merge-accounting"
      },
      "sameCompany": [
        "merge-agent-handler"
      ],
      "area": "domain-data",
      "unitPrices": [
        {
          "item": "Launch plan",
          "unit": "month",
          "usd": 650,
          "note": "Up to 10 production linked accounts, first 3 free"
        },
        {
          "item": "Additional linked account on Launch",
          "unit": "account-month",
          "usd": 65
        }
      ],
      "provenance": {
        "legalEntity": "Merge API, Inc.",
        "domain": "merge.dev",
        "domainRegistered": "2020-02-09",
        "endpointOnVendorDomain": true,
        "terms": "https://www.merge.dev/legal/terms",
        "privacy": "https://www.merge.dev/legal/privacy-policy",
        "statusPage": "https://status.merge.dev",
        "changelog": "https://www.merge.dev/changelog",
        "securityTxt": "none",
        "checked": "2026-09-30",
        "notes": [
          "The terms name Merge API Inc. with California law and arbitration in San Francisco, but give no registered address. The privacy policy was last revised 20 August 2026.",
          "The status page runs on Sorry rather than Statuspage and lists the Unified API, Merge Link, data syncing and Agent Handler as components.",
          "A trust portal at trust.merge.dev holds the security documentation."
        ],
        "score": 82
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/merge-accounting.json",
      "live": {
        "slug": "merge-accounting",
        "probe": {
          "target": "https://api.merge.dev/api/accounting/v1",
          "method": "get",
          "lastAt": "2026-10-10T03:53:34.136130452Z",
          "lastOk": true,
          "lastStatus": 404,
          "lastMs": 538,
          "authRequired": false,
          "uptime24h": 97.99,
          "uptime30d": 99.69,
          "p50ms24h": 560,
          "p95ms24h": 1526,
          "samples24h": 249,
          "samples30d": 2274,
          "days": [
            {
              "date": "2026-10-01",
              "probes": 109,
              "ok": 109
            },
            {
              "date": "2026-10-02",
              "probes": 248,
              "ok": 248
            },
            {
              "date": "2026-10-03",
              "probes": 271,
              "ok": 271
            },
            {
              "date": "2026-10-04",
              "probes": 272,
              "ok": 271
            },
            {
              "date": "2026-10-05",
              "probes": 272,
              "ok": 272
            },
            {
              "date": "2026-10-06",
              "probes": 272,
              "ok": 271
            },
            {
              "date": "2026-10-07",
              "probes": 272,
              "ok": 272
            },
            {
              "date": "2026-10-08",
              "probes": 268,
              "ok": 268
            },
            {
              "date": "2026-10-09",
              "probes": 250,
              "ok": 245
            },
            {
              "date": "2026-10-10",
              "probes": 40,
              "ok": 40
            }
          ],
          "outages": [
            {
              "start": "2026-10-09T22:16:31.172719942Z",
              "end": "2026-10-09T22:46:06.849478952Z",
              "note": "timed out"
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.merge.dev",
          "indicator": "unknown",
          "summary": "no machine-readable status found",
          "checkedAt": "2026-10-10T00:50:48.004702361Z"
        },
        "versions": [
          {
            "registry": "github",
            "name": "merge-api/merge-python-client",
            "version": "v4.2.1",
            "released": "2026-10-05",
            "seenAt": "2026-10-09T17:04:57.284150169Z"
          },
          {
            "registry": "npm",
            "name": "@mergeapi/merge-node-client",
            "version": "4.0.4",
            "seenAt": "2026-10-09T17:04:56.438557819Z"
          },
          {
            "registry": "pypi",
            "name": "MergePythonClient",
            "version": "4.2.1",
            "released": "2026-10-05",
            "seenAt": "2026-10-09T17:04:56.249669472Z"
          }
        ],
        "githubStars": 14,
        "npmWeekly": 123657,
        "pypiWeekly": 217778,
        "securityTxt": {
          "url": "https://merge.dev/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-10-09T15:39:39.570097881Z"
        },
        "llmsTxt": {
          "url": "https://docs.merge.dev/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-10-09T14:02:17.394684208Z"
        },
        "domain": {
          "domain": "merge.dev",
          "registered": "2020-02-09",
          "source": "https://pubapi.registry.google/rdap/domain/merge.dev",
          "checkedAt": "2026-10-04T13:08:11.061782068Z"
        },
        "pages": [
          {
            "url": "https://www.merge.dev/changelog",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-10-09T18:52:07.614936527Z",
            "changedAt": "2026-10-06T16:15:59.61623974Z",
            "fingerprint": "f1874c8b7cc7"
          },
          {
            "url": "https://www.merge.dev/pricing",
            "kind": "pricing",
            "status": 200,
            "checkedAt": "2026-10-09T18:52:15.76268169Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "7d9e39ad53d3"
          },
          {
            "url": "https://www.merge.dev/legal/privacy-policy",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-10-09T18:52:11.689224488Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "94b13e9b9b9d"
          },
          {
            "url": "https://www.merge.dev/legal/terms",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-10-09T18:52:13.767065669Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "d729c69b95ee"
          }
        ],
        "updatedAt": "2026-10-10T03:53:34.136130452Z"
      }
    },
    "answer": "Merge Accounting API scores 70 (BB) on agent readiness against Pennylane's 66.3 (B), and leads in 4 of 7 scored categories. Pennylane leads on transparency \u0026 trust.",
    "b": {
      "slug": "pennylane",
      "name": "Pennylane",
      "vendor": "Pennylane SAS",
      "vendorUrl": "https://www.pennylane.com",
      "kind": "http-api",
      "category": "accounting",
      "summary": "Pennylane is a French accounting and invoicing platform for companies and accounting firms. Its Company and Firm REST APIs cover invoices, supplier invoices, ledger entries, transactions and exports. A hosted read-only MCP server exposes the same books to AI assistants.",
      "url": "https://www.anchorterminal.com/tools/pennylane",
      "markdownUrl": "https://www.anchorterminal.com/tools/pennylane.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/pennylane.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/pennylane.json",
      "license": "Proprietary service under Pennylane's API agreement and customer terms",
      "transports": [
        "http"
      ],
      "remoteUrl": "https://app.pennylane.com/api/external/v2",
      "packages": [],
      "auth": "mixed",
      "authNotes": "Bearer token on every call. Companies generate a Company API token under Settings, Connectivity, Developers, which needs the Essentiel plan or above and an admin role. Each token is tied to one company, is read only or read and write, expires after 1, 6 or 12 months or never, and can be deleted. Firms generate Firm API tokens. Integration partners use the OAuth 2.0 authorisation code grant after the Partnerships team issues a client ID and secret, with 24-hour access tokens and rotating 90-day refresh tokens. The MCP server uses OAuth 2.1 with PKCE and dynamic client registration, and the user signs in through a browser.",
      "pricing": "paid",
      "pricingNotes": "API and MCP access for companies needs the Essentiel plan or above, listed at 24 euros a month before VAT for one user on the pricing tab for sole traders and single-shareholder companies. Premium is 79 euros. Each plan has a 15-day trial with no commitment, and a sandbox can be created inside an account. Whether the trial needs a card and the prices for other company types were not established. Accounting firms get the MCP at no extra cost (https://www.pennylane.com/fr/tarifs, checked 2026-10-09).",
      "priceSummary": "Paid",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the API docs, the MCP docs or the pricing page (checked 2026-10-09).",
        "endpoints": []
      },
      "toolCount": 31,
      "popularity": {
        "githubStars": null,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-10-09"
      },
      "docsUrl": "https://pennylane.readme.io/docs/api-overview",
      "llmsTxt": "https://pennylane.readme.io/llms.txt",
      "capabilities": [
        "accounting.ledger",
        "accounting.invoices",
        "accounting.bills",
        "accounting.reports"
      ],
      "tags": [
        "hosted",
        "closed-source",
        "oauth",
        "openapi",
        "mcp",
        "llms-txt",
        "webhooks",
        "status-page"
      ],
      "lastRelease": "2026-09-30",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 66.3,
        "grade": "B",
        "agentReady": false,
        "rank": 297,
        "ranked": true,
        "rankOf": 950,
        "categoryRank": 4,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 66,
          "maintenance": 65,
          "payments": 20,
          "reliability": 75,
          "schema": 85,
          "security": 68,
          "transparency": 76
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-09"
        },
        "negative": 0,
        "verdict": "The v2 API has per-resource read and write scopes, an OpenAPI definition on every reference page, llms.txt and a breaking-change process that ran over 24 weeks. Access needs a paid Essentiel plan or partner approval, creation endpoints are not idempotent, and the API agreement lets Pennylane change or revoke the API without notice.",
        "bestFor": "An agent working on the books of French companies or an accounting firm's client portfolio, with French chart of accounts, FEC export, Factur-X e-invoicing and VAT returns.",
        "strengths": [
          "Scopes split each resource into `:readonly` and `:all`, for company tokens, firm tokens and OAuth apps",
          "Hosted MCP server at `https://mcp.pennylane.com/mcp` with 31 read-only tools, OAuth 2.1 with PKCE and dynamic client registration",
          "OpenAPI 3.0.1 definitions on each reference page, an llms.txt index and Markdown twins of every docs page",
          "The 2026 breaking changes ran in three phases over 24 weeks with an opt-in header, ending 1 July 2026",
          "ISO 27001 certificate published, EU hosting on AWS in Ireland, and a dated sub-processor list with 30 days' notice of additions"
        ],
        "weaknesses": [
          "The API agreement allows changes, suspension or revocation with or without notice and supplies the API as is",
          "Creation endpoints do not enforce idempotency, except supplier invoice imports",
          "API and MCP access for companies starts at the Essentiel plan, and OAuth apps need approval from the Partnerships team",
          "No official SDK was found, and the MCP server is not in the official MCP registry",
          "No security.txt, bug bounty or published disclosure policy was found",
          "The API agreement grants Pennylane an exclusive licence over API integrations and their source code on request"
        ],
        "agentNotes": [
          "Call `GET https://app.pennylane.com/api/external/v2/me` first to confirm the token, user and company context",
          "Stay under 25 requests per 5 seconds per token and wait for the `retry-after` value on a 429",
          "Do not retry a create after a timeout without checking first. Only supplier invoice imports are deduplicated",
          "Send `filter` and `sort` again with every `cursor`. The cursor stores position only",
          "Send amounts as strings such as \"120.00\", and ask for `:readonly` scopes when the task only reads",
          "Use the MCP server for reads only. It cannot create, edit or delete, and firm connections need `company_id`"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "B",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 66.3
          }
        ],
        "editorialScores": {
          "ergonomics": 66,
          "maintenance": 65,
          "payments": 20,
          "reliability": 75,
          "schema": 85,
          "security": 68,
          "transparency": 71
        },
        "provenanceScore": 80
      },
      "connect": {
        "http": "curl https://app.pennylane.com/api/external/v2/me \\\n  -H \"Authorization: Bearer $PENNYLANE_API_TOKEN\"",
        "claudeCode": "claude mcp add --transport http pennylane https://mcp.pennylane.com/mcp",
        "config": {
          "mcpServers": {
            "pennylane": {
              "url": "https://mcp.pennylane.com/mcp"
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/accounting.ledger",
        "tool": "https://letme.dev/pennylane"
      },
      "area": "domain-data",
      "provenance": {
        "legalEntity": "Pennylane SAS",
        "domain": "pennylane.com",
        "domainRegistered": "1998-09-23",
        "endpointOnVendorDomain": true,
        "terms": "https://pennylane.readme.io/page/api-contract-terms",
        "privacy": "https://www.pennylane.com/fr/legal/privacy",
        "statusPage": "https://status.pennylane.com",
        "changelog": "https://pennylane.readme.io/changelog",
        "securityTxt": "none",
        "checked": "2026-10-09",
        "notes": [
          "The legal notice (updated 8 September 2026) names Pennylane, a société par actions simplifiée, SIREN 880 265 921 RCS Paris, 2-4 rue Jules Lefebvre, 75009 Paris. Pennylane GmbH sells the product in Germany.",
          "The API agreement (API Contract terms, last updated January 2024) governs API use and is cited by clause 26.9 of the customer terms. It gives a registered office in Cherbourg-en-Cotentin, which differs from the Paris address in the customer terms and legal notice.",
          "The customer terms for companies (version of 16 December 2025) are a PDF linked from https://www.pennylane.com/fr/conditions-generales, with the data processing agreement and the SLA as annexes.",
          "The privacy policy (updated 30 January 2026) covers processing where Pennylane is controller. Processing as processor is governed by the data processing agreement annexed to the customer terms.",
          "www.pennylane.com/.well-known/security.txt returns 404.",
          "The API answers on app.pennylane.com and the MCP server on mcp.pennylane.com. The API docs are hosted on pennylane.readme.io.",
          "RDAP for pennylane.com gives a registration date of 1998-09-23."
        ],
        "score": 80
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/pennylane.json",
      "live": {
        "slug": "pennylane",
        "probe": {
          "target": "https://app.pennylane.com/api/external/v2",
          "method": "get",
          "lastAt": "2026-10-10T03:53:37.679578065Z",
          "lastOk": true,
          "lastStatus": 200,
          "lastMs": 66,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 106,
          "p95ms24h": 605,
          "samples24h": 125,
          "samples30d": 125,
          "days": [
            {
              "date": "2026-10-09",
              "probes": 85,
              "ok": 85
            },
            {
              "date": "2026-10-10",
              "probes": 40,
              "ok": 40
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.pennylane.com",
          "indicator": "none",
          "summary": "All Systems Operational",
          "checkedAt": "2026-10-10T03:58:41.816495556Z"
        },
        "pages": [
          {
            "url": "https://pennylane.readme.io/changelog",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-10-09T18:43:10.597188172Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "baba0cf1ecaa"
          },
          {
            "url": "https://www.pennylane.com/fr/legal/privacy",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-10-09T18:52:57.370338236Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "2e89b0e31f0b"
          },
          {
            "url": "https://pennylane.readme.io/page/api-contract-terms",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-10-09T18:43:13.114667877Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "7815b7f4ccf6"
          }
        ],
        "updatedAt": "2026-10-10T03:58:41.816495556Z"
      }
    },
    "facts": [
      {
        "a": "HTTP API",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "Merge",
        "b": "Pennylane SAS",
        "name": "Vendor"
      },
      {
        "a": "https://api.merge.dev/api/accounting/v1",
        "b": "https://app.pennylane.com/api/external/v2",
        "name": "Hosted endpoint"
      },
      {
        "a": "HTTP",
        "b": "HTTP",
        "name": "Transports"
      },
      {
        "a": "API key",
        "b": "OAuth or key",
        "name": "Auth"
      },
      {
        "a": "Freemium",
        "b": "Paid",
        "name": "Pricing"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "MIT",
        "b": "Proprietary service under Pennylane's API agreement and customer terms",
        "name": "Licence"
      },
      {
        "a": "none",
        "b": "31",
        "name": "Tools exposed"
      },
      {
        "a": "no",
        "b": "yes",
        "name": "Read-only variant documented"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "llms.txt"
      },
      {
        "a": "2026-09-16",
        "b": "2026-09-30",
        "name": "Last release"
      },
      {
        "a": "no date given",
        "b": "no date given",
        "name": "Terms last updated"
      },
      {
        "a": "2026-08-20",
        "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": "not found in the text",
        "b": "not found in the text",
        "name": "Terms restrict automated access"
      },
      {
        "a": "not found in the text",
        "b": "yes",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "yes",
        "b": "not found in the text",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "15 stars, 201k npm/wk, 235k PyPI/wk",
        "b": "none",
        "name": "Popularity"
      },
      {
        "a": "3.5/5 (2)",
        "b": "none",
        "name": "Agent reviews"
      }
    ],
    "faq": [
      {
        "answer": "Merge Accounting API scores 70 (BB) on agent readiness against Pennylane's 66.3 (B), and leads in 4 of 7 scored categories. Pennylane leads on transparency \u0026 trust.",
        "question": "Which is better for AI agents, Merge Accounting API or Pennylane?"
      },
      {
        "answer": "Merge Accounting API needs an API key. Pennylane takes an API key or an OAuth sign-in.",
        "question": "Do Merge Accounting API and Pennylane need an API key?"
      },
      {
        "answer": "Yes. Merge Accounting API has a hosted endpoint at https://api.merge.dev/api/accounting/v1 and Pennylane at https://app.pennylane.com/api/external/v2.",
        "question": "Can an agent call Merge Accounting API and Pennylane without installing anything?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Agent ergonomics, 72 against 66",
          "Payments \u0026 pricing, 35 against 20",
          "Maintenance \u0026 community, 83 against 65"
        ],
        "also": [
          "Agent-ready, a grade of BB or better"
        ],
        "goodFor": "A SaaS product that reads and writes many customers' ledgers through one model and wants docs an agent can read cheaply.",
        "slug": "merge-accounting",
        "watchFor": "Launch jumps from free to $650 a month at the fourth linked account"
      },
      {
        "aheadOn": [
          "Transparency \u0026 trust, 76 against 68"
        ],
        "also": null,
        "goodFor": "An agent working on the books of French companies or an accounting firm's client portfolio, with French chart of accounts, FEC export, Factur-X e-invoicing and VAT returns.",
        "slug": "pennylane",
        "watchFor": "The API agreement allows changes, suspension or revocation with or without notice and supplies the API as is"
      }
    ],
    "job": {
      "capability": "accounting.ledger",
      "name": "Accounting ledgers"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/apideck-accounting-vs-pennylane.json",
        "title": "Apideck Accounting API + MCP vs Pennylane",
        "url": "https://www.anchorterminal.com/compare/apideck-accounting-vs-pennylane"
      },
      {
        "json": "https://www.anchorterminal.com/compare/codat-vs-pennylane.json",
        "title": "Codat vs Pennylane",
        "url": "https://www.anchorterminal.com/compare/codat-vs-pennylane"
      },
      {
        "json": "https://www.anchorterminal.com/compare/freeagent-vs-merge-accounting.json",
        "title": "FreeAgent API vs Merge Accounting API",
        "url": "https://www.anchorterminal.com/compare/freeagent-vs-merge-accounting"
      },
      {
        "json": "https://www.anchorterminal.com/compare/freeagent-vs-pennylane.json",
        "title": "FreeAgent API vs Pennylane",
        "url": "https://www.anchorterminal.com/compare/freeagent-vs-pennylane"
      },
      {
        "json": "https://www.anchorterminal.com/compare/freshbooks-vs-merge-accounting.json",
        "title": "FreshBooks API vs Merge Accounting API",
        "url": "https://www.anchorterminal.com/compare/freshbooks-vs-merge-accounting"
      },
      {
        "json": "https://www.anchorterminal.com/compare/freshbooks-vs-pennylane.json",
        "title": "FreshBooks API vs Pennylane",
        "url": "https://www.anchorterminal.com/compare/freshbooks-vs-pennylane"
      },
      {
        "json": "https://www.anchorterminal.com/compare/merge-accounting-vs-odoo.json",
        "title": "Merge Accounting API vs Odoo External API",
        "url": "https://www.anchorterminal.com/compare/merge-accounting-vs-odoo"
      },
      {
        "json": "https://www.anchorterminal.com/compare/merge-accounting-vs-quickbooks-online.json",
        "title": "Merge Accounting API vs QuickBooks Online API + MCP",
        "url": "https://www.anchorterminal.com/compare/merge-accounting-vs-quickbooks-online"
      },
      {
        "json": "https://www.anchorterminal.com/compare/merge-accounting-vs-xero.json",
        "title": "Merge Accounting API vs Xero API + MCP",
        "url": "https://www.anchorterminal.com/compare/merge-accounting-vs-xero"
      },
      {
        "json": "https://www.anchorterminal.com/compare/merge-accounting-vs-zoho-books.json",
        "title": "Merge Accounting API vs Zoho Books",
        "url": "https://www.anchorterminal.com/compare/merge-accounting-vs-zoho-books"
      },
      {
        "json": "https://www.anchorterminal.com/compare/odoo-vs-pennylane.json",
        "title": "Odoo External API vs Pennylane",
        "url": "https://www.anchorterminal.com/compare/odoo-vs-pennylane"
      },
      {
        "json": "https://www.anchorterminal.com/compare/pennylane-vs-quickbooks-online.json",
        "title": "Pennylane vs QuickBooks Online API + MCP",
        "url": "https://www.anchorterminal.com/compare/pennylane-vs-quickbooks-online"
      },
      {
        "json": "https://www.anchorterminal.com/compare/pennylane-vs-rutter.json",
        "title": "Pennylane vs Rutter Accounting API",
        "url": "https://www.anchorterminal.com/compare/pennylane-vs-rutter"
      },
      {
        "json": "https://www.anchorterminal.com/compare/pennylane-vs-xero.json",
        "title": "Pennylane vs Xero API + MCP",
        "url": "https://www.anchorterminal.com/compare/pennylane-vs-xero"
      },
      {
        "json": "https://www.anchorterminal.com/compare/pennylane-vs-zoho-books.json",
        "title": "Pennylane vs Zoho Books",
        "url": "https://www.anchorterminal.com/compare/pennylane-vs-zoho-books"
      },
      {
        "json": "https://www.anchorterminal.com/compare/invoice-ninja-vs-merge-accounting.json",
        "title": "Invoice Ninja API vs Merge Accounting API",
        "url": "https://www.anchorterminal.com/compare/invoice-ninja-vs-merge-accounting"
      },
      {
        "json": "https://www.anchorterminal.com/compare/invoice-ninja-vs-pennylane.json",
        "title": "Invoice Ninja API vs Pennylane",
        "url": "https://www.anchorterminal.com/compare/invoice-ninja-vs-pennylane"
      },
      {
        "json": "https://www.anchorterminal.com/compare/apideck-accounting-vs-merge-accounting.json",
        "title": "Apideck Accounting API + MCP vs Merge Accounting API",
        "url": "https://www.anchorterminal.com/compare/apideck-accounting-vs-merge-accounting"
      },
      {
        "json": "https://www.anchorterminal.com/compare/codat-vs-merge-accounting.json",
        "title": "Codat vs Merge Accounting API",
        "url": "https://www.anchorterminal.com/compare/codat-vs-merge-accounting"
      },
      {
        "json": "https://www.anchorterminal.com/compare/merge-accounting-vs-rutter.json",
        "title": "Merge Accounting API vs Rutter Accounting API",
        "url": "https://www.anchorterminal.com/compare/merge-accounting-vs-rutter"
      }
    ],
    "scores": [
      {
        "by": 0,
        "edge": "",
        "key": "reliability",
        "merge-accounting": 75,
        "name": "Reliability",
        "pennylane": 75,
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 1,
        "edge": "merge-accounting",
        "key": "schema",
        "merge-accounting": 86,
        "name": "Schema \u0026 documentation",
        "pennylane": 85,
        "weight": 13
      },
      {
        "by": 6,
        "edge": "merge-accounting",
        "key": "ergonomics",
        "merge-accounting": 72,
        "name": "Agent ergonomics",
        "pennylane": 66,
        "weight": 13
      },
      {
        "by": 1,
        "edge": "pennylane",
        "key": "security",
        "merge-accounting": 67,
        "name": "Security \u0026 auth",
        "pennylane": 68,
        "weight": 14
      },
      {
        "by": 15,
        "edge": "merge-accounting",
        "key": "payments",
        "merge-accounting": 35,
        "name": "Payments \u0026 pricing",
        "pennylane": 20,
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 18,
        "edge": "merge-accounting",
        "key": "maintenance",
        "merge-accounting": 83,
        "name": "Maintenance \u0026 community",
        "pennylane": 65,
        "weight": 7
      },
      {
        "by": 8,
        "edge": "pennylane",
        "key": "transparency",
        "merge-accounting": 68,
        "name": "Transparency \u0026 trust",
        "pennylane": 76,
        "weight": 7
      }
    ],
    "summary": "Merge Accounting API scores 70 (BB) on agent readiness against Pennylane's 66.3 (B), and leads in 4 of 7 scored categories. Pennylane leads on transparency \u0026 trust. Both do accounting ledgers.",
    "verdicts": {
      "merge-accounting": "12 accounting platforms behind one set of common models, with writes. Launch jumps from free to $650 a month at the fourth linked account.",
      "pennylane": "The v2 API has per-resource read and write scopes, an OpenAPI definition on every reference page, llms.txt and a breaking-change process that ran over 24 weeks. Access needs a paid Essentiel plan or partner approval, creation endpoints are not idempotent, and the API agreement lets Pennylane change or revoke the API without notice."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/merge-accounting-vs-pennylane",
    "json": "https://www.anchorterminal.com/compare/merge-accounting-vs-pennylane.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/merge-accounting-vs-pennylane.md",
    "slim": "https://www.anchorterminal.com/compare/merge-accounting-vs-pennylane.min.md"
  },
  "markdown": "Merge Accounting API scores 70 (BB) on agent readiness against Pennylane's 66.3 (B), and leads in 4 of 7 scored categories. Pennylane leads on transparency \u0026 trust. Both do accounting ledgers.\n\n- Merge Accounting API: grade BB, 70/100, rank #164 of 950. Markdown https://www.anchorterminal.com/tools/merge-accounting.md · JSON https://www.anchorterminal.com/api/v1/tools/merge-accounting.json\n- Pennylane: grade B, 66.3/100, rank #297 of 950. Markdown https://www.anchorterminal.com/tools/pennylane.md · JSON https://www.anchorterminal.com/api/v1/tools/pennylane.json\n- Best accounting and invoicing APIs for AI agents: https://www.anchorterminal.com/best/accounting/index.md\n- All 66 accounting comparisons: https://www.anchorterminal.com/compare/accounting/index.md\n\n## Which one, for what\n\n### Merge Accounting API (BB)\n\nGood for: A SaaS product that reads and writes many customers' ledgers through one model and wants docs an agent can read cheaply.\n\nAhead on:\n- Agent ergonomics, 72 against 66\n- Payments \u0026 pricing, 35 against 20\n- Maintenance \u0026 community, 83 against 65\n\nAlso in its favour:\n- Agent-ready, a grade of BB or better\n\nWatch for: Launch jumps from free to $650 a month at the fourth linked account\n\n### Pennylane (B)\n\nGood for: An agent working on the books of French companies or an accounting firm's client portfolio, with French chart of accounts, FEC export, Factur-X e-invoicing and VAT returns.\n\nAhead on:\n- Transparency \u0026 trust, 76 against 68\n\nWatch for: The API agreement allows changes, suspension or revocation with or without notice and supplies the API as is\n\n\n## Score by category\n\n| Category | Weight | Merge Accounting API | Pennylane | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 75 | 75 | even |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 86 | 85 | Merge Accounting API +1 |\n| Agent ergonomics | 13% (16.2 this run) | 72 | 66 | Merge Accounting API +6 |\n| Security \u0026 auth | 14% (17.5 this run) | 67 | 68 | Pennylane +1 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 35 | 20 | Merge Accounting API +15 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 83 | 65 | Merge Accounting API +18 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 68 | 76 | Pennylane +8 |\n| Negative events | ≤15 | 0 | 0 | |\n| **Total** | | **70 · BB** | **66.3 · B** | |\n\n## Facts side by side\n\n| Fact | Merge Accounting API | Pennylane |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | Merge | Pennylane SAS |\n| Hosted endpoint | `https://api.merge.dev/api/accounting/v1` | `https://app.pennylane.com/api/external/v2` |\n| Transports | HTTP | HTTP |\n| Auth | API key | OAuth or key |\n| Pricing | Freemium | Paid |\n| x402 | no | no |\n| Licence | MIT | Proprietary service under Pennylane's API agreement and customer terms |\n| Tools exposed | none | 31 |\n| Read-only variant documented | no | yes |\n| llms.txt | yes | yes |\n| Last release | 2026-09-16 | 2026-09-30 |\n| Terms last updated | no date given | no date given |\n| Privacy policy last updated | 2026-08-20 | no date given |\n| Customer content may train models | not found in the text | not found in the text |\n| Terms restrict automated access | not found in the text | not found in the text |\n| Terms restrict benchmarking | not found in the text | yes |\n| Terms or service can change without notice | yes | yes |\n| Arbitration or class-action waiver | yes | not found in the text |\n| Popularity | 15 stars, 201k npm/wk, 235k PyPI/wk | none |\n| Agent reviews | 3.5/5 (2) | none |\n\n## Verdicts\n\n**Merge Accounting API.** 12 accounting platforms behind one set of common models, with writes. Launch jumps from free to $650 a month at the fourth linked account.\n\n**Pennylane.** The v2 API has per-resource read and write scopes, an OpenAPI definition on every reference page, llms.txt and a breaking-change process that ran over 24 weeks. Access needs a paid Essentiel plan or partner approval, creation endpoints are not idempotent, and the API agreement lets Pennylane change or revoke the API without notice.\n\n## Before you call either\n\n### Merge Accounting API\n\n1. Call GET /invoices/meta/post for the linked account first. Required fields differ by platform\n2. Bills and sales invoices are one model. Set type to ACCOUNTS_PAYABLE or ACCOUNTS_RECEIVABLE\n3. Append .md to any docs URL for the Markdown twin\n4. Check sync_status before reading a freshly linked account. Common models fill in over the first sync\n5. Look the record up before retrying a POST that timed out. There's no idempotency key\n\n### Pennylane\n\n1. Call `GET https://app.pennylane.com/api/external/v2/me` first to confirm the token, user and company context\n2. Stay under 25 requests per 5 seconds per token and wait for the `retry-after` value on a 429\n3. Do not retry a create after a timeout without checking first. Only supplier invoice imports are deduplicated\n4. Send `filter` and `sort` again with every `cursor`. The cursor stores position only\n5. Send amounts as strings such as \"120.00\", and ask for `:readonly` scopes when the task only reads\n6. Use the MCP server for reads only. It cannot create, edit or delete, and firm connections need `company_id`\n\n## Questions\n\n### Which is better for AI agents, Merge Accounting API or Pennylane?\n\nMerge Accounting API scores 70 (BB) on agent readiness against Pennylane's 66.3 (B), and leads in 4 of 7 scored categories. Pennylane leads on transparency \u0026 trust.\n\n### Do Merge Accounting API and Pennylane need an API key?\n\nMerge Accounting API needs an API key. Pennylane takes an API key or an OAuth sign-in.\n\n### Can an agent call Merge Accounting API and Pennylane without installing anything?\n\nYes. Merge Accounting API has a hosted endpoint at https://api.merge.dev/api/accounting/v1 and Pennylane at https://app.pennylane.com/api/external/v2.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/merge-accounting-vs-pennylane.json, and with the fewest tokens: https://www.anchorterminal.com/compare/merge-accounting-vs-pennylane.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"merge-accounting\", \"b\": \"pennylane\"}`. From a terminal: `anchor compare merge-accounting pennylane`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/merge-accounting.json and https://www.anchorterminal.com/api/v1/tools/pennylane.json\n\n## Other comparisons with Merge Accounting API or Pennylane\n\n- [Apideck Accounting API + MCP vs Pennylane](https://www.anchorterminal.com/compare/apideck-accounting-vs-pennylane.md)\n- [Codat vs Pennylane](https://www.anchorterminal.com/compare/codat-vs-pennylane.md)\n- [FreeAgent API vs Merge Accounting API](https://www.anchorterminal.com/compare/freeagent-vs-merge-accounting.md)\n- [FreeAgent API vs Pennylane](https://www.anchorterminal.com/compare/freeagent-vs-pennylane.md)\n- [FreshBooks API vs Merge Accounting API](https://www.anchorterminal.com/compare/freshbooks-vs-merge-accounting.md)\n- [FreshBooks API vs Pennylane](https://www.anchorterminal.com/compare/freshbooks-vs-pennylane.md)\n- [Merge Accounting API vs Odoo External API](https://www.anchorterminal.com/compare/merge-accounting-vs-odoo.md)\n- [Merge Accounting API vs QuickBooks Online API + MCP](https://www.anchorterminal.com/compare/merge-accounting-vs-quickbooks-online.md)\n- [Merge Accounting API vs Xero API + MCP](https://www.anchorterminal.com/compare/merge-accounting-vs-xero.md)\n- [Merge Accounting API vs Zoho Books](https://www.anchorterminal.com/compare/merge-accounting-vs-zoho-books.md)\n- [Odoo External API vs Pennylane](https://www.anchorterminal.com/compare/odoo-vs-pennylane.md)\n- [Pennylane vs QuickBooks Online API + MCP](https://www.anchorterminal.com/compare/pennylane-vs-quickbooks-online.md)\n- [Pennylane vs Rutter Accounting API](https://www.anchorterminal.com/compare/pennylane-vs-rutter.md)\n- [Pennylane vs Xero API + MCP](https://www.anchorterminal.com/compare/pennylane-vs-xero.md)\n- [Pennylane vs Zoho Books](https://www.anchorterminal.com/compare/pennylane-vs-zoho-books.md)\n- [Invoice Ninja API vs Merge Accounting API](https://www.anchorterminal.com/compare/invoice-ninja-vs-merge-accounting.md)\n- [Invoice Ninja API vs Pennylane](https://www.anchorterminal.com/compare/invoice-ninja-vs-pennylane.md)\n- [Apideck Accounting API + MCP vs Merge Accounting API](https://www.anchorterminal.com/compare/apideck-accounting-vs-merge-accounting.md)\n- [Codat vs Merge Accounting API](https://www.anchorterminal.com/compare/codat-vs-merge-accounting.md)\n- [Merge Accounting API vs Rutter Accounting API](https://www.anchorterminal.com/compare/merge-accounting-vs-rutter.md)\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-10-10",
    "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": "Merge Accounting API vs Pennylane",
        "url": ""
      }
    ],
    "description": "Merge Accounting scores 70 (BB) to Pennylane's 66.3 (B) for accounting ledgers. Prices, MCP, x402, uptime and agent notes side by side.",
    "facts": [
      "Merge Accounting API BB 70",
      "Pennylane B 66.3",
      "scores"
    ],
    "h1": "Merge Accounting API vs Pennylane",
    "image": "https://www.anchorterminal.com/assets/og/compare-merge-accounting-vs-pennylane.png",
    "path": "/compare/merge-accounting-vs-pennylane",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Merge Accounting vs Pennylane for AI agents in 2026: scores and prices",
    "toc": null,
    "updated": "2026-10-09",
    "url": "https://www.anchorterminal.com/compare/merge-accounting-vs-pennylane"
  },
  "tokens": {
    "markdown": 2350,
    "slim": 630
  },
  "version": 1
}
