---
title: Mercury API Integration on Truto
slug: mercury
category: Banking
canonical: "https://truto.one/integrations/detail/mercury/"
---

# Mercury API Integration on Truto



**Category:** Banking  
**Status:** Beta

## MCP-ready AI tools

Truto exposes 70 tools for Mercury that AI agents can call directly.

- **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.

## How it works

1. **Link your customer's Mercury account.** Use Truto's frontend SDK; we handle every OAuth and API key flow so you don't need to create the OAuth app.
2. **Authentication is automatic.** Truto refreshes tokens, stores credentials securely, and injects them into every API request.
3. **Call Truto's API to reach Mercury.** The Proxy API is a 1-to-1 mapping of the Mercury API.
4. **Get a unified response format.** Every response uses a single shape, with cursor-based pagination and data in the `result` field.

## Use cases

- **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

- **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.

## FAQs

### 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.
