Skip to content

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 us
Mercury

Use Cases

Why integrate with Mercury

Common scenarios for SaaS companies building Mercury integrations for their customers.

01

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.

02

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.

03

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.

04

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.

05

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.

01

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.

02

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.

03

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.

04

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.

05

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.

06

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.

01

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.

02

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.

03

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.

04

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.

05

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.

06

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.

01

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.

02

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.

03

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.

04

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.