NYC

mercury

SKILL.md

Mercury Banking API

Manage business bank accounts, transactions, transfers, and financial operations via Mercury's REST API.

Official docs: https://docs.mercury.com/reference/getaccount


When to Use

Use this skill when you need to:

  • View account balances and details
  • List and search transactions
  • Create internal transfers between accounts
  • Manage recipients for external transfers
  • Download account statements
  • Access treasury account information

Prerequisites

  1. Sign up for a Mercury business bank account at https://mercury.com
  2. Go to Settings > Developers > API Tokens
  3. Create a new API token with appropriate permissions

Set environment variable:

export MERCURY_API_TOKEN="your-api-token"

Important: When using $VAR in a command that pipes to another command, wrap the command containing $VAR in bash -c '...'. Due to a Claude Code bug, environment variables are silently cleared when pipes are used directly.

bash -c 'curl -s "https://api.example.com" --header "Authorization: Bearer $API_KEY"'

Accounts

List All Accounts

bash -c 'curl -s "https://api.mercury.com/api/v1/accounts" --header "Authorization: Bearer $MERCURY_API_TOKEN"'

Get Account by ID

Replace <your-account-id> with the actual account ID:

bash -c 'curl -s "https://api.mercury.com/api/v1/account/<your-account-id>" --header "Authorization: Bearer $MERCURY_API_TOKEN"'

Get Account Cards

Replace <your-account-id> with the actual account ID:

bash -c 'curl -s "https://api.mercury.com/api/v1/account/<your-account-id>/cards" --header "Authorization: Bearer $MERCURY_API_TOKEN"'

Transactions

List Account Transactions

Replace <your-account-id> with the actual account ID:

bash -c 'curl -s "https://api.mercury.com/api/v1/account/<your-account-id>/transactions" --header "Authorization: Bearer $MERCURY_API_TOKEN"'

List Transactions with Filters

Filter by date range, status, or limit. Replace <your-account-id> with the actual account ID:

bash -c 'curl -s "https://api.mercury.com/api/v1/account/<your-account-id>/transactions?limit=50&start=2024-01-01&end=2024-12-31" --header "Authorization: Bearer $MERCURY_API_TOKEN"'

Get Transaction by ID

Replace <your-account-id> and <your-transaction-id> with the actual IDs:

bash -c 'curl -s "https://api.mercury.com/api/v1/account/<your-account-id>/transaction/<your-transaction-id>" --header "Authorization: Bearer $MERCURY_API_TOKEN"'

Transfers

Create Internal Transfer

Transfer funds between your Mercury accounts.

Write to /tmp/mercury_request.json:

{
  "toAccountId": "target-account-id",
  "amount": 100.00,
  "note": "Internal transfer"
}

Then run. Replace <your-account-id> with the actual account ID:

bash -c 'curl -s -X POST "https://api.mercury.com/api/v1/account/<your-account-id>/internal-transfer" --header "Authorization: Bearer $MERCURY_API_TOKEN" --header "Content-Type: application/json" -d @/tmp/mercury_request.json'

Send Money Request

Initiate a money transfer request.

Write to /tmp/mercury_request.json:

{
  "recipientId": "recipient-id",
  "amount": 100.00,
  "paymentMethod": "ach",
  "idempotencyKey": "unique-key-123"
}

Then run. Replace <your-account-id> with the actual account ID:

bash -c 'curl -s -X POST "https://api.mercury.com/api/v1/account/<your-account-id>/send-money" --header "Authorization: Bearer $MERCURY_API_TOKEN" --header "Content-Type: application/json" -d @/tmp/mercury_request.json'

Get Send Money Request Status

Replace <your-request-id> with the actual request ID:

bash -c 'curl -s "https://api.mercury.com/api/v1/request-send-money/<your-request-id>" --header "Authorization: Bearer $MERCURY_API_TOKEN"'

Recipients

List All Recipients

bash -c 'curl -s "https://api.mercury.com/api/v1/recipients" --header "Authorization: Bearer $MERCURY_API_TOKEN"'

Get Recipient by ID

Replace <your-recipient-id> with the actual recipient ID:

bash -c 'curl -s "https://api.mercury.com/api/v1/recipient/<your-recipient-id>" --header "Authorization: Bearer $MERCURY_API_TOKEN"'

Create Recipient

Write to /tmp/mercury_request.json:

{
  "name": "Vendor Name",
  "emails": ["vendor@example.com"],
  "paymentMethod": "ach",
  "electronicRoutingInfo": {
    "accountNumber": "123456789",
    "routingNumber": "021000021",
    "bankName": "Example Bank",
    "electronicAccountType": "businessChecking"
  }
}

Then run:

bash -c 'curl -s -X POST "https://api.mercury.com/api/v1/recipients" --header "Authorization: Bearer $MERCURY_API_TOKEN" --header "Content-Type: application/json" -d @/tmp/mercury_request.json'

Statements

List Account Statements

Replace <your-account-id> with the actual account ID:

bash -c 'curl -s "https://api.mercury.com/api/v1/account/<your-account-id>/statements" --header "Authorization: Bearer $MERCURY_API_TOKEN"'

Download Statement PDF

Replace <your-account-id> and <your-statement-id> with the actual IDs:

bash -c 'curl -s "https://api.mercury.com/api/v1/account/<your-account-id>/statement/<your-statement-id>/pdf" --header "Authorization: Bearer $MERCURY_API_TOKEN"' > statement.pdf

Organization

Get Organization Info

bash -c 'curl -s "https://api.mercury.com/api/v1/organization" --header "Authorization: Bearer $MERCURY_API_TOKEN"'

Treasury

List Treasury Accounts

bash -c 'curl -s "https://api.mercury.com/api/v1/treasury" --header "Authorization: Bearer $MERCURY_API_TOKEN"'

Get Treasury Account by ID

Replace <your-treasury-id> with the actual treasury ID:

bash -c 'curl -s "https://api.mercury.com/api/v1/treasury/<your-treasury-id>" --header "Authorization: Bearer $MERCURY_API_TOKEN"'

List Treasury Transactions

Replace <your-treasury-id> with the actual treasury ID:

bash -c 'curl -s "https://api.mercury.com/api/v1/treasury/<your-treasury-id>/transactions" --header "Authorization: Bearer $MERCURY_API_TOKEN"'

Users

List Users

bash -c 'curl -s "https://api.mercury.com/api/v1/users" --header "Authorization: Bearer $MERCURY_API_TOKEN"'

Credit

List Credit Accounts

bash -c 'curl -s "https://api.mercury.com/api/v1/credit" --header "Authorization: Bearer $MERCURY_API_TOKEN"'

Accounts Receivable

List Customers

bash -c 'curl -s "https://api.mercury.com/api/v1/accounts-receivable/customers" --header "Authorization: Bearer $MERCURY_API_TOKEN"'

Create Customer

Write to /tmp/mercury_request.json:

{
  "name": "Customer Name",
  "email": "customer@example.com"
}

Then run:

bash -c 'curl -s -X POST "https://api.mercury.com/api/v1/accounts-receivable/customers" --header "Authorization: Bearer $MERCURY_API_TOKEN" --header "Content-Type: application/json" -d @/tmp/mercury_request.json'

List Invoices

bash -c 'curl -s "https://api.mercury.com/api/v1/accounts-receivable/invoices" --header "Authorization: Bearer $MERCURY_API_TOKEN"'

Create Invoice

Write to /tmp/mercury_request.json:

{
  "customerId": "customer-id",
  "lineItems": [{"description": "Service", "amount": 500.00}],
  "dueDate": "2024-12-31"
}

Then run:

bash -c 'curl -s -X POST "https://api.mercury.com/api/v1/accounts-receivable/invoices" --header "Authorization: Bearer $MERCURY_API_TOKEN" --header "Content-Type: application/json" -d @/tmp/mercury_request.json'

Download Invoice PDF

Replace <your-invoice-id> with the actual invoice ID:

bash -c 'curl -s "https://api.mercury.com/api/v1/accounts-receivable/invoice/<your-invoice-id>/pdf" --header "Authorization: Bearer $MERCURY_API_TOKEN"' > invoice.pdf

Guidelines

  1. Rate Limits: Mercury may enforce rate limits; implement appropriate backoff strategies for high-volume operations
  2. Idempotency: Use idempotencyKey for transfer operations to prevent duplicate transactions
  3. Security: Never expose API tokens in logs or client-side code
  4. Amounts: All monetary amounts are typically in USD and represented as decimal numbers
  5. Pagination: For large result sets, use limit and offset parameters where supported

API Reference

Weekly Installs
15
First Seen
Jan 24, 2026
Installed on
claude-code10
opencode9
gemini-cli9
antigravity8
codex8
windsurf7