{"_id":"@codespar/mcp-safrapay","_rev":"5-2bcc692654147e14e995fdfc6292aa1d","name":"@codespar/mcp-safrapay","dist-tags":{"latest":"0.2.0-alpha.3","alpha":"0.2.0-alpha.2"},"versions":{"0.1.0-alpha.1":{"name":"@codespar/mcp-safrapay","version":"0.1.0-alpha.1","keywords":["mcp","safrapay","banco-safra","aditum","payments","pix","boleto","split","brazil"],"license":"MIT","_id":"@codespar/mcp-safrapay@0.1.0-alpha.1","maintainers":[{"name":"codespar-npm","email":"contact@codespar.dev"}],"bin":{"mcp-safrapay":"dist/index.js"},"dist":{"shasum":"f1a4e2323557044b8e367386edd5e41547defab8","tarball":"https://registry.npmjs.org/@codespar/mcp-safrapay/-/mcp-safrapay-0.1.0-alpha.1.tgz","fileCount":6,"integrity":"sha512-RmnoArZCcr4iI/FbHXQ7mv3tVJqCg3fSFezKHthyiaaqc1u+Y8atet/Tyb+2FOpMmWl+B31nf6ypPKtLPOm+Ng==","signatures":[{"sig":"MEQCID4jLDjgDbnB2aEZsSSPup67uTAxIbIt5t1/78n0LTcNAiAOBzJBF9e8GVsNnjZewIjXSONHq0yBJou1j1eGQDMSdQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":58738},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","gitHead":"e1164fd411e8952e8b9f8c723795dc85f86f15d2","mcpName":"io.github.codespar/mcp-safrapay","scripts":{"build":"tsc","start":"node dist/index.js"},"_npmUser":{"name":"codespar-npm","email":"contact@codespar.dev"},"_npmVersion":"11.8.0","description":"MCP server for Safrapay — Banco Safra's acquirer (B2B-banking crossover, mid-to-large BR merchants). Credit, Pix, boleto + split, statement, tokenization.","directories":{},"_nodeVersion":"25.5.0","dependencies":{"@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.8.0","@types/node":"^25.5.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-safrapay_0.1.0-alpha.1_1776993359939_0.7239190263802129","host":"s3://npm-registry-packages-npm-production"}},"0.2.0-alpha.1":{"name":"@codespar/mcp-safrapay","version":"0.2.0-alpha.1","keywords":["mcp","safrapay","banco-safra","aditum","payments","pix","boleto","split","brazil"],"license":"MIT","_id":"@codespar/mcp-safrapay@0.2.0-alpha.1","maintainers":[{"name":"codespar-npm","email":"contact@codespar.dev"}],"bin":{"mcp-safrapay":"dist/index.js"},"dist":{"shasum":"b00cef0b7f13adbec9ba3c63a1b686affca6f148","tarball":"https://registry.npmjs.org/@codespar/mcp-safrapay/-/mcp-safrapay-0.2.0-alpha.1.tgz","fileCount":6,"integrity":"sha512-Xv6Ab64LR4xY/C8iuG0cA5W2T90hb/k+Whv2+l8SRP94jxddoYMSF4I5D2Wr+e5efJ9B8LQZAUOOchCaE27Enw==","signatures":[{"sig":"MEYCIQD1QIgvvpgPpiFPNUzqExKD/3LEi7hJ1epw7iVY3wCGfwIhANtTVIjJKdHwnXBrH1R1mxNhVhAPma4O5LjzpJBT+zUA","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":84734},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","gitHead":"206367773b96786003af53c16c38c7c3d6f823bd","mcpName":"io.github.codespar/mcp-safrapay","scripts":{"build":"tsc","start":"node dist/index.js"},"_npmUser":{"name":"codespar-npm","email":"contact@codespar.dev"},"_npmVersion":"11.8.0","description":"MCP server for Safrapay — Banco Safra's acquirer (B2B-banking crossover, mid-to-large BR merchants). Credit, Pix, boleto + split, statement, tokenization, recurrence, 3DS, chargebacks, settlement, payment links.","directories":{},"_nodeVersion":"25.5.0","dependencies":{"@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^5.8.0","@types/node":"^25.5.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-safrapay_0.2.0-alpha.1_1777069515297_0.5425874536085726","host":"s3://npm-registry-packages-npm-production"}},"0.2.0-alpha.2":{"name":"@codespar/mcp-safrapay","version":"0.2.0-alpha.2","keywords":["mcp","safrapay","banco-safra","aditum","payments","pix","boleto","split","brazil"],"license":"MIT","_id":"@codespar/mcp-safrapay@0.2.0-alpha.2","maintainers":[{"name":"codespar-npm","email":"contact@codespar.dev"}],"bin":{"mcp-safrapay":"dist/index.js"},"dist":{"shasum":"c5e35dba896fa84332caae70be19cbf8df1d35cd","tarball":"https://registry.npmjs.org/@codespar/mcp-safrapay/-/mcp-safrapay-0.2.0-alpha.2.tgz","fileCount":6,"integrity":"sha512-5etcOgaUIqbRm0oMJVcgIw/QN5zEwDVR51AhQMnYZJy6nBicGPuaEZCYFDtIHOuoaZo1wXlQ6XUj6cUY3MvLHA==","signatures":[{"sig":"MEYCIQCv01YuoZ2uZxyNFvomlh2mJl1kF51Hi5ATI0ZzarJiMAIhAOvDILQh06XHgMs5twccpJiRvMCFp0e2VgzgfX8gaTRA","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":85644},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","gitHead":"0ab801a863239f0cb986bbda65abbaee3c621b44","mcpName":"io.github.codespar/mcp-safrapay","scripts":{"build":"tsc","start":"node dist/index.js"},"_npmUser":{"name":"codespar-npm","email":"contact@codespar.dev"},"_npmVersion":"11.8.0","description":"MCP server for Safrapay — Banco Safra's acquirer (B2B-banking crossover, mid-to-large BR merchants). Credit, Pix, boleto + split, statement, tokenization, recurrence, 3DS, chargebacks, settlement, payment links.","directories":{},"_nodeVersion":"25.5.0","dependencies":{"@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"typescript":"^5.8.0","@types/node":"^25.5.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-safrapay_0.2.0-alpha.2_1777123260621_0.761054626563141","host":"s3://npm-registry-packages-npm-production"}},"0.2.0-alpha.3":{"name":"@codespar/mcp-safrapay","version":"0.2.0-alpha.3","description":"MCP server for Safrapay — Banco Safra's acquirer (B2B-banking crossover, mid-to-large BR merchants). Credit, Pix, boleto + split, statement, tokenization, recurrence, 3DS, chargebacks, settlement, payment links.","type":"module","main":"./dist/index.js","bin":{"mcp-safrapay":"dist/index.js"},"scripts":{"build":"tsc","start":"node dist/index.js"},"dependencies":{"@modelcontextprotocol/sdk":"^1.0.0"},"devDependencies":{"@types/node":"^25.5.0","typescript":"^5.8.0"},"license":"MIT","keywords":["mcp","safrapay","banco-safra","aditum","payments","pix","boleto","split","brazil"],"mcpName":"io.github.codespar/mcp-safrapay","_id":"@codespar/mcp-safrapay@0.2.0-alpha.3","gitHead":"8e115a5cb8aed75e812af698b03aa996ccd8d7c1","types":"./dist/index.d.ts","_nodeVersion":"22.22.3","_npmVersion":"10.9.8","dist":{"integrity":"sha512-SJtEpVAlAYSJeKTR7gyVQZMRetA/v2xgWpF5+XsN3adiJXB60ODfIOxwM6M5V8yeoRI7QTlbBD5L+y7QX34Uaw==","shasum":"58ae5833b46a7382b10ddaa2033f953938657f06","tarball":"https://registry.npmjs.org/@codespar/mcp-safrapay/-/mcp-safrapay-0.2.0-alpha.3.tgz","fileCount":6,"unpackedSize":87033,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCCZT9Gam4hkgUK2lzFcKV9Mod8C3u1u1G2cjSoty1oiQIhAMlpNNCAC2dJGSbYet85zRLxbC3y8vXO9tbrtU5J4gd5"}]},"_npmUser":{"name":"codespar-npm","email":"fabiano@codespar.dev"},"directories":{},"maintainers":[{"name":"codespar-npm","email":"fabiano@codespar.dev"},{"name":"dangazineu","email":"daniel.gazineu@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/mcp-safrapay_0.2.0-alpha.3_1782158213461_0.2810590158835804"},"_hasShrinkwrap":false}},"time":{"created":"2026-04-24T01:15:59.805Z","modified":"2026-06-22T19:56:53.716Z","0.1.0-alpha.1":"2026-04-24T01:16:00.060Z","0.2.0-alpha.1":"2026-04-24T22:25:15.454Z","0.2.0-alpha.2":"2026-04-25T13:21:00.810Z","0.2.0-alpha.3":"2026-06-22T19:56:53.583Z"},"license":"MIT","keywords":["mcp","safrapay","banco-safra","aditum","payments","pix","boleto","split","brazil"],"description":"MCP server for Safrapay — Banco Safra's acquirer (B2B-banking crossover, mid-to-large BR merchants). Credit, Pix, boleto + split, statement, tokenization, recurrence, 3DS, chargebacks, settlement, payment links.","maintainers":[{"name":"codespar-npm","email":"fabiano@codespar.dev"},{"name":"dangazineu","email":"daniel.gazineu@gmail.com"}],"readme":"# @codespar/mcp-safrapay\n\nMCP server for [Safrapay](https://developers.safrapay.com.br) — Banco Safra's acquirer. B2B-banking crossover focused on mid-to-large BR merchants and private-banking clientele.\n\nSafrapay's API surface is operated on Aditum's payment platform (documented at [safrapay-docs.aditum.com.br](https://safrapay-docs.aditum.com.br)). The gateway, portal, reconciliation, and webhook products are split across separate base hosts.\n\n> **Status: 0.1.0-alpha.1.** The endpoint paths here were derived from the Aditum-hosted Safrapay developer docs (publicly reachable). Auth flow (BCRYPT + CNPJ on gateway, JWT Bearer thereafter) is best-effort: the BCRYPT hash input format is not fully specified in public docs and very likely requires a sandbox account to finalize. Treat all tools as scaffolding until validated against a live sandbox merchant.\n\n## Tools (22)\n\n| Tool | Purpose |\n|---|---|\n| `authorize_payment` | Authorize a credit-card payment on Safrapay. |\n| `capture_payment` | Capture a previously authorized (pre-auth) payment. |\n| `cancel_payment` | Cancel (void) an authorized-but-uncaptured payment. |\n| `refund_payment` | Refund a captured payment. |\n| `create_pix` | Create a Pix charge. |\n| `create_boleto` | Create a boleto charge. |\n| `get_payment` | Retrieve a charge by Safrapay chargeId. |\n| `tokenize_card` | Tokenize a card for PCI-safe reuse. |\n| `create_split_rule` | Configure split distribution for an existing charge. |\n| `get_statement` | Retrieve the digital statement (extrato). |\n| `list_transactions` | List charges with optional filters. |\n| `delete_card_token` | Revoke a stored card token. |\n| `search_by_merchant_order` | Look up charges by the merchant-side order identifier (the order_id supplied at creation). |\n| `query_chargeback` | Retrieve chargeback (contestacao) detail for a charge: reason code, acquirer deadline, dispute amount, evid... |\n| `query_installments` | Simulate an installment plan for a given amount. |\n| `authenticate_3ds` | Kick off 3-D Secure authentication before authorize_payment. |\n| `create_recurrence` | Create a recurring-billing subscription. |\n| `get_recurrence` | Retrieve a recurrence by id: schedule, next-charge date, charge history, status. |\n| `cancel_recurrence` | Cancel an active recurrence. |\n| `get_settlement_report` | Retrieve a settlement (liquidacao) report from the reconciliation host. |\n| `create_payment_link` | Create a hosted-checkout payment link. |\n| `register_webhook` | Bulk-register webhook subscriptions on the Safrapay webhook product. |\n\n## Install\n\n```bash\nnpm install @codespar/mcp-safrapay@alpha\n```\n\n## Environment\n\n```bash\nSAFRAPAY_CLIENT_ID=\"...\"      # Merchant CNPJ (sent as merchantCredential)\nSAFRAPAY_CLIENT_SECRET=\"...\"  # MerchantToken (used to compute BCRYPT)\nSAFRAPAY_MERCHANT_ID=\"...\"    # Safrapay merchant id (body field where required)\nSAFRAPAY_ENV=\"sandbox\"        # 'sandbox' (default) or 'production'\n```\n\n## Base URLs\n\nSafrapay splits its API into four products hosted on distinct domains:\n\n| Product | Sandbox | Production |\n|---|---|---|\n| Gateway (payments) | `https://payment-dev.aditum.com.br` | `https://payment.aditum.com.br` |\n| Portal (management) | `https://portal-dev.aditum.com.br` | `https://portal-api.aditum.com.br` |\n| Reconciliation | `https://reconciliation-dev.aditum.com.br` | `https://reconciliation-api.aditum.com.br` |\n| Webhook | `https://webhook-dev.aditum.com.br` | `https://webhook.aditum.com.br` |\n\n## Authentication\n\nGateway uses a two-step bootstrap:\n\n1. `POST {gateway}/v2/merchant/auth` with headers `Authorization: <BCRYPT(CNPJ+MerchantToken)>` and `merchantCredential: <CNPJ>` to exchange for a JWT access token.\n2. Subsequent calls send `Authorization: Bearer <jwt>`.\n\nThe server caches the JWT in memory until 60 s before expiry. The BCRYPT input concatenation is an informed guess; refine once you have a sandbox account.\n\n## Run\n\n```bash\n# stdio (default)\nnpx @codespar/mcp-safrapay\n\n# HTTP\nMCP_HTTP=true MCP_PORT=3000 npx @codespar/mcp-safrapay\n```\n\n## Endpoint map (used by tools)\n\n| Tool | Method | Path (under gateway, unless noted) |\n|---|---|---|\n| `authorize_payment` | POST | `/v2/charge/authorization` or `/v2/charge/preauthorization` |\n| `capture_payment` | PUT | `/v2/charge/capture/{chargeId}` |\n| `cancel_payment` | PUT | `/v2/charge/cancelation/{chargeId}` |\n| `refund_payment` | PUT | `/v2/charge/cancelation/{chargeId}` (partial amount) |\n| `create_pix` | POST | `/v2/charge/pix` |\n| `create_boleto` | POST | `/v2/charge/boleto` |\n| `get_payment` | GET | `/v2/charge/{chargeId}` |\n| `tokenize_card` | POST | `/v2/card` (or `/v2/temporary/card`) |\n| `create_split_rule` | PUT | `/v2/charge/split/{chargeId}` |\n| `get_statement` | GET | `/v2/Account/Movement/Extract` |\n| `list_transactions` | GET | `/v2/charges` |\n| `register_webhook` | POST | `{webhook}/v1/webhook/bulk` |\n\n## Enterprise\n\nNeed governance, budget limits, and audit trails for agent payments? [CodeSpar Enterprise](https://codespar.dev/enterprise) adds policy engine, payment routing, and compliance templates on top of these MCP servers.\n\n## License\n\nMIT\n","readmeFilename":"README.md"}