io.github.codespar/mcp-rinne
io.github.codespar/mcp-rinne · 273 stars · TypeScript · MIT
MCP server Brazilian card acquiring API — merchants, cards-on-file, 3DS, PIX, banking, pricing.
Install
The repo has no one-line install. Follow its README.
Published as
- npm
@codespar/mcp-rinnestdio
From the server's entry in the official MCP Registry.
Configuration
| Name | Set as | What it is |
|---|---|---|
RINNE_API_KEYRequired · Secret | Env var | API key sent as x-api-key header on every request. Organization-level keys see all merchants; merchant-level keys are scoped to one merchant. |
RINNE_SANDBOXOptional | Env var | Defaults to sandbox (https://api-sandbox.rinne.com.br/core). Set to "false" for production (https://api.rinne.com.br/core). |
RINNE_EMAILOptional | Env var | Login identifier for the access-management tools (API Keys, Roles, Permissions, org Users, Zipcode lookup), which reject x-api-key by design and require a JWT session. |
RINNE_PASSWORDOptional · Secret | Env var | Login password paired with RINNE_EMAIL. |
RINNE_COMPANY_IDOptional | Env var | Company to select after JWT login, for accounts with access to multiple companies. |
Files
@codespar/mcp-rinne
MCP server for Rinne — Brazilian card acquiring, PIX, banking, and payment infrastructure, covering the full API surface
What is Rinne?
Rinne is a Brazilian payment infrastructure API. It runs a B2B2B model: your Organization manages any number of Merchants, each merchant onboards via KYC and connects to a payment provider (Rinne itself, Cappta, Celcoin, ...) through an Affiliation, and everything downstream flows through that affiliation — card and PIX transactions, cards-on-file, 3D Secure, cashouts/payouts, ledger, and pricing.
This MCP server wraps the entire Rinne REST API — not just card acquiring — so AI agents can manage merchants, run transactions, move money, and administer access in sandbox or production.
Quick Start
Claude Desktop
Add to ~/.config/claude/claude_desktop_config.json:
{
"mcpServers": {
"rinne": {
"command": "npx",
"args": ["-y", "@codespar/mcp-rinne"],
"env": {
"RINNE_API_KEY": "your-api-key",
"RINNE_SANDBOX": "true"
}
}
}
}
Claude Code
claude mcp add rinne -- npx @codespar/mcp-rinne
Cursor / VS Code
Add to .cursor/mcp.json or .vscode/mcp.json:
{
"servers": {
"rinne": {
"command": "npx",
"args": ["-y", "@codespar/mcp-rinne"],
"env": {
"RINNE_API_KEY": "your-api-key",
"RINNE_SANDBOX": "true"
}
}
}
}
Tools (62)
Company
| Tool | Purpose |
|---|---|
get_company |
Get the authenticated company (org or merchant, depending on key scope) |
update_company |
Update the authenticated company |
Merchants
| Tool | Purpose |
|---|---|
create_merchant |
Create a merchant under your organization (KYC) |
list_merchants |
List merchants |
get_merchant |
Get merchant details by ID |
update_merchant |
Update a merchant |
Affiliations
| Tool | Purpose |
|---|---|
create_affiliation |
Create a merchant account with a payment provider (Rinne, Cappta, Celcoin, ...) |
register_affiliation |
Register a gateway-mode affiliation using existing provider credentials |
list_affiliations |
List affiliations, org-wide or for one merchant |
get_affiliation |
Get a specific affiliation |
Cards on file
| Tool | Purpose |
|---|---|
store_card |
Save a card for reuse in future transactions |
list_cards |
List stored cards |
get_card |
Get a stored card by ID |
delete_card |
Delete a stored card |
3D Secure
| Tool | Purpose |
|---|---|
create_3ds_session |
Create a 3DS authentication session ahead of a transaction |
Transactions
| Tool | Purpose |
|---|---|
create_transaction |
Create a card (raw, stored, or Apple Pay/Google Pay) or PIX transaction |
authenticate_transaction |
Complete 3DS for a transaction awaiting authentication |
get_transaction |
Get transaction details and status, including refunds |
list_transactions |
List transactions, org-wide or for one merchant |
cancel_transaction |
Cancel a pending transaction (e.g. unpaid bolepix) |
refund_transaction |
Refund a transaction, fully or partially |
cancel_refund |
Cancel a refund that hasn't settled yet |
get_transaction_receipt |
Get a transaction's receipt (base64 PDF) |
simulate_pay_transaction |
Sandbox only — mark a transaction as paid |
PIX (collection keys)
| Tool | Purpose |
|---|---|
create_pix_collection_key |
Create a PIX key the merchant uses to receive payments |
list_pix_collection_keys |
List the merchant's PIX collection keys |
Ledger
| Tool | Purpose |
|---|---|
list_ledger_entries |
List ledger entries for the authenticated company |
get_ledger_entry |
Get a single ledger entry |
Banking
| Tool | Purpose |
|---|---|
create_bank_account |
Register an external bank account (payout destination) |
update_bank_account |
Set a bank account as primary |
register_cashout_pix_key |
Register an external PIX key as a payout destination |
get_balance |
Get the current balance |
topup_balance |
Sandbox only — simulate funding the balance |
get_statement |
Get a merchant's balance statement for a date range |
create_internal_transfer |
Transfer funds between your org's own bank accounts |
list_judicial_blockages |
List court-ordered account freezes affecting balances |
Cashouts
| Tool | Purpose |
|---|---|
create_cashout |
Create a payout to a bank account or PIX key |
list_cashouts |
List cashouts |
get_cashout |
Get a single cashout |
get_cashout_receipt |
Get a cashout's receipt |
Pricing
| Tool | Purpose |
|---|---|
list_fee_policies |
List fee policies (what you charge merchants) |
create_fee_policy |
Create a fee policy |
replace_fee_policy |
Replace a fee policy in full |
update_fee_policy |
Partially update a fee policy |
list_cost_policies |
List cost policies (what providers charge you) |
list_mccs |
List Merchant Category Codes |
Webhooks
| Tool | Purpose |
|---|---|
get_webhook_dashboard_url |
Get the URL to configure webhook endpoints/events |
System
| Tool | Purpose |
|---|---|
get_health |
Check API health status |
Access management — JWT required
| Tool | Purpose |
|---|---|
create_api_key |
Create an API key (shown once) |
list_api_keys |
List API keys (prefix + last 4 only) |
revoke_api_key |
Revoke an API key |
create_role |
Create a custom role |
list_roles |
List roles |
list_permissions |
List all available permissions |
get_current_session |
Whoami for the JWT session |
Users
| Tool | Purpose |
|---|---|
create_user |
Create a user (merchant scope: x-api-key; org scope: JWT) |
list_users |
List users |
update_user |
Update a user's name/roles — JWT, org only |
suspend_user |
Suspend a user — JWT, org only |
activate_user |
Reactivate a user — JWT, org only |
Zipcode — JWT required
| Tool | Purpose |
|---|---|
lookup_zipcode |
Look up a Brazilian address by CEP |
Sandbox
| Tool | Purpose |
|---|---|
get_sandbox_guide |
Return test cards, the amount-based decline rule, and which tools need JWT |
Card data is never sent in the clear
Rinne does not accept a raw card number or CVV over this API. Every number/cvv field (and, for Apple Pay/Google Pay, network_token/cryptogram) must already be an encrypted token ("ev:...") produced by the rinne-js Card/Wallet Element running in a browser — a raw PAN/CVV is rejected with 400 VALIDATION_ERROR, and there is no server-side encryption path.
In practice, this server is the second half of a checkout: run a rinne-js flow (see rinne-js docs) to collect and encrypt the card client-side, then hand the resulting token to store_card or create_transaction here to finish the operation. Alternatively, use card_id on create_transaction to charge a card already saved via store_card.
Organization vs. merchant scope
Every resource that operates on transactions, cards, 3DS sessions, affiliations, or banking accepts an optional merchant_id:
- Omitted — acts at the organization/self level.
- Provided — acts on that specific merchant (
/v1/merchants/{merchant_id}/...), for an organization managing multiple merchants.
refund_transaction, get_statement, and create_pix_collection_key/list_pix_collection_keys always require merchant_id — they only exist at the merchant level.
Two PIX key resources — don't confuse them
Rinne has two distinct PIX-key resources with similarly-named endpoints:
create_pix_collection_key(/v1/merchants/{id}/pix/keys) — a key the merchant uses to receive PIX payments, tied to a provider affiliation (provider,key_type).register_cashout_pix_key(/v1/merchants/{id}/pix-keysor/v1/companies/me/pix-keys) — an external key registered as a payout destination for cashouts (key,primary).
Authentication
Most of the API uses x-api-key, but Rinne's access-management surface deliberately rejects it — a leaked API key must not be able to create other keys, roles, or users. Those tools need a JWT session instead:
| Auth | Used by |
|---|---|
x-api-key (RINNE_API_KEY) |
Everything else — merchants, affiliations, cards, 3DS, transactions, PIX, banking, cashouts, pricing, webhooks, merchant-scoped users |
JWT (RINNE_EMAIL + RINNE_PASSWORD) |
create_api_key, list_api_keys, revoke_api_key, create_role, list_roles, list_permissions, get_current_session, lookup_zipcode, and org-scoped create_user/list_users/update_user/suspend_user/activate_user |
This server logs in lazily on the first JWT-gated tool call and caches the token, re-logging-in once on a 401. If RINNE_COMPANY_ID is set, it selects that company right after login (for accounts with access to multiple companies). If RINNE_EMAIL/RINNE_PASSWORD aren't set, JWT-gated tools return a clear error instead of failing silently — the rest of the server works fine without them.
Sandbox / Testing
Defaults to sandbox (https://api-sandbox.rinne.com.br/core). Set RINNE_SANDBOX=false for production (https://api.rinne.com.br/core).
Sandbox simulation rules
Call get_sandbox_guide for the full JSON, or see below:
Test cards
| Card number | Brand | 3DS |
|---|---|---|
5155901222280001 |
Mastercard | No |
4012001037141112 |
Visa | No |
4242424242424242 |
Visa | Challenge |
Outcome by amount
The last two digits of the amount (in cents) determine the result — not the card number:
| Last 2 digits | Result |
|---|---|
00 |
Approved |
51 |
Refused — insufficient funds |
05 |
Refused — do not honor |
54 |
Refused — expired card |
Example: amount: 1051 → REFUSED with code 51.
PIX
Use simulate_pay_transaction (sandbox only) to mark a WAITING_PAYMENT PIX transaction as paid.
Reference: Rinne testing guide
Environment Variables
| Variable | Required | Description |
|---|---|---|
RINNE_API_KEY |
Yes | API key, sent as x-api-key |
RINNE_SANDBOX |
No | Defaults to sandbox; set to "false" for production |
RINNE_EMAIL |
No | Login identifier for JWT-gated tools |
RINNE_PASSWORD |
No | Login password, paired with RINNE_EMAIL |
RINNE_COMPANY_ID |
No | Company to select after login, for multi-company accounts |
Links
Enterprise
Need governance, budget limits, and audit trails for agent payments? CodeSpar Enterprise adds policy engine, payment routing, and compliance templates on top of these MCP servers.
License
MIT
Facts
- Kind
- MCP server
- Group
- Uncategorized
- Stars
- 273
- License
- MIT
- Language
- TypeScript
- Last push
- 2026-09-27
- Forks
- 50
- MCP Registry
- io.github.codespar/mcp-rinne
- Homepage
- codespar.dev/servers
- Topics
- agentic-commerce, ai-agents, brazil, claude, fintech, latin-america, llm-tools, mcp, model-context-protocol, nfe, open-finance, payments, pix
- 1REAio.github.morluto/reaReverse engineer anything from your terminal or agent with one CLI and MCP server.125.3k
- 2com.browser-use/browser-usecom.browser-use/browser-useControl a real Chrome browser to complete any task: fill forms, extract data, book flights.117.7k
- 3World Monitorapp.worldmonitor/mcpLive markets, conflicts, country risk, chokepoints, energy, and China decision signals. 93 tools.88.3k
- 4Scrapling MCP Serverd4vinci/scrapling🕷️ An adaptive Web Scraping framework that handles everything from a single request to a full-scale crawl! Don't be shy, join here: https://discord.gg/EMgGbDceNQ and follow here for daily tips and tricks: https://x.com/Scraplingdev86.9k
- 5Everythingmodelcontextprotocol/serversThis MCP server attempts to exercise all the features of the MCP protocol. It is not intended to be a useful server, but rather a test server for builders of MCP clients. It implements prompts, tools, resources, sampling, and more to showcase MCP capabilities.85.8k
- 6Fetchmodelcontextprotocol/serversA Model Context Protocol server that provides web content fetching capabilities. This server enables LLMs to retrieve and process content from web pages, converting HTML to markdown for easier consumption.85.8k