Banking · Beta
Mercury
API integration
Ship Banking features without building the integration. Full Mercury API access via Proxy and 70+ MCP-ready tools for AI agents — extend models and mappings to fit your product.
Built for specific customer use cases. Issues are resolved quickly.
Talk to usUse Cases
Why integrate with Mercury
Common scenarios for SaaS companies building Mercury integrations for their customers.
Embed spend management for startup customers
Offer your users the ability to issue virtual and physical cards, set spend limits, and freeze cards in real time — all from inside your product. Ideal for procurement, HR, or budgeting SaaS targeting Mercury-banked startups.
Automate AP workflows with native approvals
Let your users pay vendors without your platform holding funds. Draft recipients and send-money requests land directly in the customer's Mercury dashboard for CFO approval, preserving their internal controls.
Sync banking data for accounting and reconciliation
Pull transactions, statements, and treasury activity directly from Mercury to power GL sync, month-end close, and auto-categorization — replacing brittle screen-scraping with a first-party API feed.
Native AR invoicing tied to your CRM or billing engine
Create Mercury customers and invoices when deals close or billing cycles run, and track paid status by polling invoice records. Keeps sales, billing, and cash collection in a single workflow.
Streamlined bank account onboarding for incorporation flows
Legal, incorporation, and formation platforms can pass entity and beneficial owner data to Mercury to pre-fill applications, so founders open a funded bank account in the same session they incorporate.
What You Can Build
Ship these features with Truto + Mercury
Concrete product features your team can ship faster by leveraging Truto’s Mercury integration instead of building from scratch.
Programmatic card issuing with dynamic limits
Issue Mercury cards on demand, adjust spend limits based on your app's rules, and freeze or unfreeze cards instantly for policy enforcement.
Vendor payment drafts with in-Mercury approval
Create recipients and send-money requests from your app that route to your customer's Mercury approval queue instead of moving funds through your platform.
Transaction sync with receipt attachments
Continuously pull transactions and treasury activity, then write receipts and supporting documents back to the Mercury ledger via transaction attachments.
Native invoicing for AR automation
Create customers, generate invoices, retrieve invoice PDFs, and monitor payment status to close the loop between your billing system and your users' bank.
Statement and document ingestion for close workflows
Fetch account and treasury statements, statement PDFs, and safe documents to power automated reconciliation and audit-ready reporting.
Real-time event handling via Mercury webhooks
Register and manage Mercury webhooks from your platform, verify incoming events, and react to transaction or account changes without polling.
SuperAI
Mercury AI agent tools
Comprehensive AI agent toolset with fine-grained control. Integrates with MCP clients like Cursor and Claude, or frameworks like LangChain.
list_all_mercury_account
List Mercury accounts. Returns: accountNumber, availableBalance, canReceiveTransactions, createdAt, currentBalance, dashboardLink, id, kind, legalBusinessName, name, nickname, routingNumber, status, type. Max 1000 per page.
list_all_mercury_transaction
List transactions across Mercury accounts. Returns transaction records with account, amount, status, timing, counterparty, category, and attachment metadata.
get_single_mercury_transaction_by_id
Get a Mercury transaction by id. Returns the full transaction details including account, amount, status, counterparty, notes, category, and attachments.
create_a_mercury_transaction
Send money from a Mercury account to a recipient. Returns the created transaction request and processing status. Required: account_id.
update_a_mercury_transaction_by_id
Update Mercury transaction metadata by id. Returns the updated transaction including notes and category metadata. Required: id.
list_all_mercury_card
List Mercury cards across your organization. Returns cards with id, lastFour, status, type, kind, nameOnCard, createdAt, and updatedAt. Supports filtering by accountId, status, type, kind, and userId.
create_a_mercury_card
Create a virtual Mercury card for an existing user. Returns the issued card with id, lastFour, status, kind, nameOnCard, expiration, and spendLimit. Required: kind, type, userId.
get_single_mercury_card_by_id
Get a single Mercury card by id. Returns the card object with id, lastFour, status, kind, nameOnCard, expiration, spendLimit, createdAt, and updatedAt. Required: id.
update_a_mercury_card_by_id
Update a Mercury card's nickname or spending controls. Returns the updated card including id, accountId, status, lastFour, nickname, kind, type, and expiration. Required: id. At least one of nickname or spendLimit must be supplied.
delete_a_mercury_card_by_id
Cancel a Mercury card by id. Returns the cancelled card object including id, status, kind, lastFour, accountId, and userId. Required: id. Cancellation cannot be undone and the card number cannot be reactivated.
list_all_mercury_customer
List Mercury Accounts Receivable customers. Returns: id, name, email, deletedAt, address. Max 1000 per page.
create_a_mercury_customer
Create a Mercury Accounts Receivable customer. Returns: id, name, email, deletedAt, address. Required: name, email.
get_single_mercury_customer_by_id
Get a single Mercury Accounts Receivable customer by id. Returns: id, name, email, deletedAt, address. Required: id.
update_a_mercury_customer_by_id
Update a Mercury Accounts Receivable customer by id. Returns the updated customer object including id, name, email, address, and deletedAt. Required: id, email, name, and resendOpenInvoices. Returns an error if the customer has pending invoice payments.
delete_a_mercury_customer_by_id
Soft-delete a Mercury customer by id. Returns the soft-deleted customer object including id, name, email, deletedAt, and address. Required: id.
list_all_mercury_invoice
List Mercury AR invoices. Returns: id, achDebitEnabled, amount, canceledAt, ccEmails, createdAt, creditCardEnabled, currencyCode, customerId, destinationAccountId, dueDate, internalNote, invoiceDate, invoiceNumber, lineItems, payerMemo, poNumber, servicePeriodEndDate, servicePeriodStartDate, slug, status, updatedAt, useRealAccountNumber. Max 1000 per page.
create_a_mercury_invoice
Create a Mercury AR invoice. Returns the created invoice with id, amount, status, dueDate, customerId, invoiceNumber, slug, lineItems, and payment flags. Required: achDebitEnabled, ccEmails, creditCardEnabled, customerId, destinationAccountId, dueDate, invoiceDate, lineItems, useRealAccountNumber. creditCardEnabled requires a connected Stripe account.
get_single_mercury_invoice_by_id
Get a Mercury AR invoice by id. Returns: id, achDebitEnabled, amount, canceledAt, ccEmails, createdAt, creditCardEnabled, currencyCode, customerId, destinationAccountId, dueDate, internalNote, invoiceDate, invoiceNumber, lineItems, payerMemo, poNumber, servicePeriodEndDate, servicePeriodStartDate, slug, status, updatedAt, useRealAccountNumber. Required: id.
update_a_mercury_invoice_by_id
Update a Mercury invoice by id. Returns the updated invoice including id, status, amount, dueDate, lineItems, and customerId. Required: id, achDebitEnabled, ccEmails, creditCardEnabled, dueDate, invoiceDate, invoiceNumber, lineItems, useRealAccountNumber. You must send all fields in full, including optional fields, or existing values will be deleted.
delete_a_mercury_invoice_by_id
Delete a Mercury invoice by id. Only unpaid invoices can be canceled. Returns an empty 204 response on success. Required: id.
list_all_mercury_recipient
List Mercury recipients. Returns recipients available for payments, including ids, names, payment method details, and status metadata.
create_a_mercury_recipient
Create a Mercury recipient for payments. Returns the created recipient including id, name, status, and payment details.
get_single_mercury_recipient_by_id
Get a Mercury recipient by id. Returns recipient details including payment method metadata and status. Required: id.
update_a_mercury_recipient_by_id
Update a Mercury recipient by id. Returns the updated recipient. Required: id.
delete_a_mercury_recipient_by_id
Delete a Mercury recipient by id. Returns an empty success response when deletion succeeds. Required: id.
create_a_mercury_recipient_invite
Create a recipient invite in Mercury. Returns: contactEmail, createdAt, expiresAt, id, name, notes, onboardingUrl, paymentMethods, recipientId, requireTaxDocument, status. Required: contactEmail, paymentMethods, requireTaxDocument, sendEmail. Name is required when recipientId is absent.
list_all_mercury_recipient_invite
List recipient invites in Mercury. Returns: contactEmail, createdAt, expiresAt, id, name, notes, onboardingUrl, paymentMethods, recipientId, requireTaxDocument, status.
get_single_mercury_recipient_invite_by_id
Get a single Mercury recipient invite by id. Returns: contactEmail, createdAt, expiresAt, id, name, notes, onboardingUrl, paymentMethods, recipientId, requireTaxDocument, status. Required: id.
delete_a_mercury_recipient_invite_by_id
Delete a Mercury recipient invite by id. Returns an empty 204 response on success. Required: id.
create_a_mercury_internal_transfer
Create an internal transfer between two Mercury accounts in the same organization. Returns: creditTransaction, debitTransaction, amount, destinationAccountId, idempotencyKey, note, sourceAccountId. Required: amount, destinationAccountId, idempotencyKey, and sourceAccountId. Amount must be at least $0.01.
create_a_mercury_send_money_request
Create a Mercury send money request requiring approval. Returns the created request with accountId, amount, paymentMethod, recipientId, requestId, status, reviews, and more. Required: account_id, amount, idempotencyKey, paymentMethod, recipientId.
get_single_mercury_send_money_approval_by_id
Get a single Mercury send money approval request by id. Returns: accountId, amount, createdAt, memo, numberOfApproversRequired, paymentMethod, recipientId, requestId, requestedByUserId, reviews, scheduledSendDate, status. Required: id.
list_all_mercury_send_money_approval
List Mercury send money approval requests. Returns: accountId, amount, createdAt, memo, numberOfApproversRequired, paymentMethod, recipientId, requestId, requestedByUserId, reviews, scheduledSendDate, status.
list_all_mercury_category
List expense categories in Mercury. Returns: id, name, visibleForCardSpend, visibleForOther, visibleForReimbursements. Max 1000 per page.
create_a_mercury_category
Create a new expense category in Mercury. Returns: id, name, visibleForCardSpend, visibleForOther, visibleForReimbursements. Required: name, visibleForCardSpend, visibleForOther, visibleForReimbursements.
update_a_mercury_category_by_id
Update an existing expense category in Mercury by id. All body fields are optional. Returns: id, name, visibleForCardSpend, visibleForOther, visibleForReimbursements. Required: id.
delete_a_mercury_category_by_id
Delete a Mercury category by id. Returns an empty 204 response on success. Required: id.
list_all_mercury_credit_account
List credit accounts in Mercury. Returns: availableBalance, createdAt, currentBalance, id, status, amount, externalMemo, idempotencyKey, note, paymentMethod, purpose, recipientId.
list_all_mercury_event
List Mercury API events. Returns: changedPaths, id, mergePatch, occurredAt, operationType, previousValues, resourceId, resourceType, resourceVersion. Optional filters: resourceType, resourceId.
get_single_mercury_event_by_id
Get a single Mercury API event by id. Returns: changedPaths, id, mergePatch, occurredAt, operationType, previousValues, resourceId, resourceType, resourceVersion. Required: id.
create_a_mercury_onboarding
Create a Mercury onboarding application. Returns: onboardingDataId, signupLink. Required: partner, beneficialOwners (at least one item).
list_all_mercury_organization
Get the Mercury organization for the authenticated account. Returns the organization object including billing_cadence, dbas, id, kind, legal_business_name, subscription_tier, and ein.
list_all_mercury_safe
List Mercury SAFE requests. Returns SAFE request records for the organization.
get_single_mercury_safe_by_id
Get a Mercury SAFE request by id. Returns the SAFE request details. Required: id.
list_all_mercury_treasury
List Mercury treasury accounts. Returns treasury accounts associated with the authenticated organization.
list_all_mercury_user
List organization users in Mercury. Returns: email, firstName, lastName, organizationRole, userId.
get_single_mercury_user_by_id
Get a single Mercury organization user by id. Returns: email, firstName, lastName, organizationRole, userId. Required: id.
list_all_mercury_webhook
List Mercury webhook endpoints. Returns configured webhook endpoints with status, URL, event subscriptions, and delivery metadata.
create_a_mercury_webhook
Create a Mercury webhook endpoint. Returns the created webhook endpoint including id, URL, status, and subscribed event types.
get_single_mercury_webhook_by_id
Get a Mercury webhook endpoint by id. Returns webhook configuration and status. Required: id.
update_a_mercury_webhook_by_id
Update a Mercury webhook endpoint by id. Returns the updated webhook configuration. Required: id.
delete_a_mercury_webhook_by_id
Delete a Mercury webhook endpoint by id. Returns an empty success response when deletion succeeds. Required: id.
mercury_webhook_verify
Send a test event to verify a Mercury webhook endpoint. Returns the verification result. Required: webhook_id.
create_a_mercury_oauth_token
Obtain an OAuth 2.0 access token from Mercury. Returns: access_token, expires_in, refresh_token, scope, token_type. Required: code, code_verifier, grant_type, redirect_uri, refresh_token, scope.
list_all_mercury_oauth_authorize
Start the Mercury OAuth2 authorization flow. Redirects the user to Mercury consent for the requested application access.
get_single_mercury_attachment_by_id
Get a Mercury attachment by id. Returns attachment details including the download URL. Required: id.
list_all_mercury_account_cards
List cards for a Mercury account. Returns: cardId, createdAt, lastFourDigits, nameOnCard, network, physicalCardStatus, spendLimit, status, type, updatedAt, userId. Required: account_id. Deprecated representation.
list_all_mercury_account_statements
List statements for a Mercury account. Returns: accountNumber, companyLegalAddress, companyLegalName, downloadUrl, ein, endDate, endingBalance, id, routingNumber, startDate, transactions. Required: account_id. Treasury and credit accounts are not supported. Max date range 3 months.
list_all_mercury_account_transactions
List transactions for a Mercury account. Returns: accountId, amount, attachments, bankDescription, categoryData, checkNumber, compliantWithReceiptPolicy, counterpartyId, counterpartyName, counterpartyNickname, createdAt, creditAccountPeriodId, currencyExchangeInfo, dashboardLink, details, estimatedDeliveryDate, externalMemo, failedAt, feeId, generalLedgerCodeName, glAllocations,…
list_all_mercury_invoice_attachments
List attachments for a Mercury AR invoice. Returns: fileName, id, url. Required: invoice_id.
list_all_mercury_recipient_attachments
List recipient tax-form attachments in Mercury. Returns: fileName, formType, id, recipientId, uploadedAt, url.
create_a_mercury_recipient_attachment
Upload a tax-form attachment to a Mercury recipient. Returns the created attachment with id, fileName, and url. Required: recipient_id, file. Max file size 32MB.
create_a_mercury_transaction_attachment
Upload a file attachment to a Mercury transaction. Returns: categoryId, note. Required: transaction_id, file. Max file size 32MB.
list_all_mercury_treasury_statements
List treasury account statements in Mercury. Returns statement records including id, documentType, downloadUrl, description, periodStart, periodEnd, createdAt, and updatedAt. Required: treasury_id. Max 1000 per page.
list_all_mercury_treasury_transactions
List treasury transactions for a Mercury treasury account. Returns: accountId, additionalDetails, amount, balance, canonicalDay, description, details, id, security, type. Required: treasury_id.
list_all_mercury_invoice_pdf
Download a Mercury invoice PDF by invoice id. Returns binary PDF content. Required: invoice_id.
list_all_mercury_safe_document
Download a Mercury SAFE document by SAFE id. Returns binary PDF content. Required: safe_id.
list_all_mercury_statement_pdf
Download a Mercury account statement PDF by statement id. Returns binary PDF content. Required: statement_id.
create_a_mercury_card_freeze
Freeze a Mercury card to temporarily pause authorizations. Returns the frozen card including id, accountId, status, lastFour, nickname, kind, type, and expiration. Required: card_id.
create_a_mercury_card_unfreeze
Unfreeze a frozen Mercury card by card id. Returns the card object including id, status, kind, lastFour, accountId, and userId. Required: card_id.
Why Truto
Why use Truto’s MCP server for Mercury
Other MCP servers give you a static tool list for one app. Truto gives you a managed, multi-tenant MCP infrastructure across 550+ integrations.
Auto-generated, always up to date
Tools are dynamically generated from curated documentation — not hand-coded. As integrations evolve, tools stay current without manual maintenance.
Fine-grained access control
Scope each MCP server to read-only, write-only, specific methods, or tagged tool groups. Expose only what your AI agent needs — nothing more.
Multi-tenant by design
Each MCP server is scoped to a single connected account with its own credentials. The URL itself is the auth token — no shared secrets, no credential leaking across tenants.
Works with every MCP client
Standard JSON-RPC 2.0 protocol. Paste the URL into Claude, ChatGPT, Cursor, or any MCP-compatible agent framework — tools are discovered automatically.
Built-in auth, rate limits, and error handling
Tool calls execute through Truto’s proxy layer with automatic OAuth refresh, rate-limit handling, and normalized error responses. No raw API plumbing in your agent.
Expiring and auditable servers
Create time-limited MCP servers for contractors or automated workflows. Optional dual-auth requires both the URL and a Truto API token for high-security environments.
How It Works
From zero to integrated
Go live with Mercury in under an hour. No boilerplate, no maintenance burden.
Link your customer’s Mercury account
Use Truto’s frontend SDK to connect your customer’s Mercury account. We handle all OAuth and API key flows — you don’t need to create the OAuth app.
We handle authentication
Don’t spend time refreshing access tokens or figuring out secure storage. We handle it and inject credentials into every API request.
Call our API, we call Mercury
Truto’s Proxy API is a 1-to-1 mapping of the Mercury API. You call us, we call Mercury, and pass the response back in the same cycle.
Unified response format
Every response follows a single format across all integrations. We translate Mercury’s pagination into unified cursor-based pagination. Data is always in the result attribute.
FAQs
Common questions about Mercury on Truto
Authentication, rate limits, data freshness, and everything else you need to know before you integrate.
How do end users authenticate their Mercury account?
Truto supports Mercury's OAuth flow, so your end users connect their Mercury account through a standard authorize-and-token exchange. Truto handles token storage, refresh, and per-tenant credential isolation.
Which Mercury resources can I read and write through Truto?
You can work with accounts, transactions, cards, customers, invoices, recipients, categories, treasuries, credit accounts, safes, users, organizations, webhooks, and attachments. Money movement is supported via internal transfers and send-money requests, and cards support create, update, freeze, and unfreeze.
Does Truto support Mercury webhooks for real-time updates?
Yes. You can create, list, retrieve, update, and delete Mercury webhooks through Truto, and use the webhook verification tool to validate incoming payloads before processing them.
Can my platform initiate payments directly, or does Mercury require approval?
Both patterns are supported. Use create_a_mercury_internal_transfer for movement between the customer's own Mercury accounts, or create_a_mercury_send_money_request to stage vendor payments that route through the customer's normal approval workflow inside Mercury.
How do I attach receipts or supporting documents to transactions?
Use create_a_mercury_transaction_attachment to upload receipts against a specific transaction, and create_a_mercury_recipient_attachment for recipient-level documents. Invoice PDFs and statement PDFs can also be retrieved for archival.
Is a Unified API available for banking, or is this a native Mercury integration?
Truto currently exposes Mercury as a native integration with 1:1 access to its endpoints — there is no banking Unified API yet, though one can be built on request. This gives you full access to Mercury-specific features like invoices, safes, treasuries, and onboarding without abstraction loss.
Mercury
Get Mercury integrated into your app
Our team understands what it takes to make a Mercury integration successful. A short, crisp 30 minute call with folks who understand the problem.