@moneygraph/sdk
v3.1.0
Published
MoneyGraph cross-border payment SDK — send payouts to 82+ countries via bank, mobile money, SWIFT, SEPA, ACH. Built for AI agents (Claude, ChatGPT, Cursor, Copilot, LangChain, CrewAI, Vercel AI SDK). Powered by StratosPay. Sandbox included.
Keywords
Readme
@moneygraph/sdk
Cross-border payment SDK for AI agents and developers. Send payouts to 82+ countries via bank transfer, mobile money, SWIFT, SEPA, ACH, and cash pickup. Virtual cards, crypto wallets, fiat virtual accounts. 328 FX pairs. Full sandbox. Native integration with 20+ AI agent platforms.
Powered by StratosPay. Built by MoneyGraph.
Get API keys: https://stratospay.com/dashboard/api-keys Full docs: https://docs.moneygraph.ai MCP Server:
@moneygraph/mcp-server— 45 tools for AI agents Sandbox (no key needed):import { MoneyGraphSandbox } from '@moneygraph/sdk'
Install
npm install @moneygraph/sdkEnvironment Setup
The SDK uses two separate key systems. Copy .env.example to .env and fill in your keys:
# MoneyGraph MCP Server (AI agent integration)
MONEYGRAPH_API_KEY=sk_sandbox_demo
# StratosPay Direct API — Secret Keys (server-side ONLY)
STRATOSPAY_LIVE_SECRET_KEY=sk_live_...
STRATOSPAY_TEST_SECRET_KEY=sk_test_...
# StratosPay Direct API — Public Keys (client-side safe)
STRATOSPAY_LIVE_PUBLIC_KEY=pk_live_...
STRATOSPAY_TEST_PUBLIC_KEY=pk_test_...
# Environment mode: "live" or "test"
STRATOSPAY_MODE=test
# Webhook verification
STRATOSPAY_WEBHOOK_SECRET=whsec_...
# IP Whitelisting (reference only — configure at stratospay.com/dashboard)
STRATOSPAY_IPV4_WHITELIST=203.0.113.50
STRATOSPAY_IPV6_WHITELIST=2001:db8::1Get your keys at stratospay.com/dashboard/api-keys.
Quick Start
Production (from environment variables)
import { MoneyGraphClient } from '@moneygraph/sdk';
const mg = MoneyGraphClient.fromEnv(); // reads STRATOSPAY_* from process.env
const result = await mg.sendBankPayout({
customerId: '0605399',
walletId: 'wallet-uuid',
corridorId: 'corridor-uuid',
deliveryWindowId: 'window-uuid',
amount: 50000, // minor units: 50000 = $500.00
recipientFirstName: 'Friday', recipientLastName: 'Okoro',
routingType: 'SWIFT', routingCode: 'GTBINGLA',
acctNo: '0123456789', acctName: 'Friday Okoro'
});Production (explicit config)
const mg = new MoneyGraphClient({
secretKey: 'sk_live_...',
publicKey: 'pk_live_...', // optional
webhookSecret: 'whsec_...', // optional
mode: 'live', // auto-detected from key prefix
});Sandbox (No API Key)
import { MoneyGraphSandbox } from '@moneygraph/sdk';
const mg = new MoneyGraphSandbox();
// Identical API — all 79 methods, real FX rates (328 pairs), zero configWebhook Verification
const isValid = mg.verifyWebhookSignature(rawBody, req.headers['x-stratospay-signature']);Native AI Agent Integration — 20 Platforms
MoneyGraph provides dedicated, native integration for 20 AI agent platforms across 12 deliverables. Every integration uses the same StratosPay backend.
Get live API keys: https://moneygraph.ai
OpenClaw (Clawdbot / Moltbot)
Platforms reached: WhatsApp, Telegram, Discord, Slack, Signal, iMessage, Microsoft Teams, Google Chat, Matrix, WebChat
OpenClaw is the #1 consumer AI agent of 2026 (100K+ GitHub stars, created by Peter Steinberger). MoneyGraph ships as a native OpenClaw managed skill registered on ClawHub. Users send money by texting their OpenClaw agent in any messaging app.
Install:
openclaw skill add moneygraphPackage: @moneygraph/openclaw-skill
Technical coverage:
- 5 consumer-safe tools:
send_money,check_rates,track_payout,list_wallets,swap_currency send_moneyhandles the entire flow internally (corridor lookup → customer creation → KYC → recipient → payout) — the user says "send $500 to Friday in Nigeria" and the skill does everything- Amounts in human dollars (500 = $500), not minor units — conversion happens inside the tool
- Country name resolver with typo tolerance ("nigera" → NG, "phillipines" → PH, "uk" → GB)
- Mandatory confirmation step before any payout execution (financial safety for messaging apps)
- Persistent memory: stores customer_id and recipient details across sessions so "send $200 to Amara again" works without re-entering bank details
- Sandbox mode when no API key is configured (zero-config demo)
- Published on ClawHub skill registry
Claude (Anthropic API) — Tool Use
Package: @moneygraph/sdk/claude (subpath export, ships with core SDK)
Status: Shipped
import { MONEYGRAPH_SYSTEM_PROMPT, MONEYGRAPH_TOOLS } from '@moneygraph/sdk/claude';
const response = await anthropic.messages.create({
model: 'claude-sonnet-4-20250514',
max_tokens: 4096,
system: MONEYGRAPH_SYSTEM_PROMPT,
tools: MONEYGRAPH_TOOLS,
messages: [{ role: 'user', content: 'Send $500 to Nigeria' }]
});Technical coverage:
MONEYGRAPH_SYSTEM_PROMPT— complete instruction text teaching Claude the two-step payout flow, amount handling (minor units), UUID requirements, KYC rules, and all available operationsMONEYGRAPH_TOOLS— 18 tool definitions with JSON Schemainput_schemamatching Anthropic's tool use format exactly- Tools:
create_customer,create_business_customer,get_customer,list_customers,update_customer,submit_kyc,get_customer_wallets,get_currencies,list_countries,list_wallets,list_transfer_purposes,create_recipient,list_recipients,create_payout,swap_funds,initiate_payment,verify_payment,simulate_payout_success - Claude calls tools via
tool_usecontent blocks; developer executes againstMoneyGraphClientorMoneyGraphSandboxand returnstool_result
Claude Desktop / Claude Code / Cursor / VS Code Copilot / Windsurf / Cline / Continue — MCP Server
Package: @moneygraph/mcp-server
Agents covered: 7 (Claude Desktop, Claude Code, Cursor, VS Code Copilot, Windsurf, Cline, Continue)
One MCP server package natively covers 7 AI agents via the Model Context Protocol.
Install (all platforms):
{
"mcpServers": {
"moneygraph": {
"command": "npx",
"args": ["-y", "@moneygraph/mcp-server"],
"env": { "MONEYGRAPH_API_KEY": "sk_sandbox_demo" }
}
}
}Config locations:
- Claude Desktop:
claude_desktop_config.json - Claude Code:
claude mcp add moneygraph -- npx -y @moneygraph/mcp-server - Cursor:
.cursor/mcp.json - VS Code Copilot:
.vscode/settings.json→mcp.servers - Windsurf / Cline / Continue: respective MCP config files
Technical coverage:
- 45 tools — full API surface: customers, directors, recipients, payouts, wallets, FX swaps, payment collection, recurring plans, transactions, reference data, blockchain ledger
- 6 resources — live data: FX rates by corridor, wallet balances, delivery windows, server status
- 4 prompts — conversation starters: send-money, onboard-customer, check-rates, track-payout
- Server instructions — teaches every LLM the two-step flow, minor units, UUID dependencies, recommended tool sequence
- Dual mode: sandbox (no key or
sk_sandbox_*) / production (sk_live_*) - stdio transport, zero external dependencies beyond MCP SDK + MoneyGraph SDK
- Listed on MCP Registry, Smithery, LobeHub, mcp.so, Composio, Glama, PulseMCP
ChatGPT / OpenAI — Function Calling + GPT Actions
Package: @moneygraph/openai
Agents covered: ChatGPT API, GPT Actions, OpenAI Operator
import { tools, systemPrompt } from '@moneygraph/openai';
import OpenAI from 'openai';
const response = await openai.chat.completions.create({
model: 'gpt-4o',
tools: tools,
messages: [
{ role: 'system', content: systemPrompt },
{ role: 'user', content: 'Send $200 to Kenya via M-Pesa' }
]
});Technical coverage:
tools— 18 function definitions pre-formatted for OpenAI'stoolsparameter (no manual transformation from Anthropic format)systemPrompt— instruction text adapted for GPT-4o/GPT-4 turbo- GPT Actions: OpenAPI 3.0 spec hosted at
moneygraph.ai/openapi.jsonfor ChatGPT plugin/action integration - OpenAI Operator: payment flow page at
moneygraph.ai/paythat Operator can navigate as a browser agent
LangChain
Package: @moneygraph/langchain
import { MoneyGraphToolkit } from '@moneygraph/langchain';
const toolkit = new MoneyGraphToolkit({ apiKey: 'sk_live_...' });
const tools = toolkit.getTools(); // DynamicStructuredTool[] for all operationsTechnical coverage:
- Pre-built
DynamicStructuredToolinstances with Zod schemas for every SDK method - System prompt as
SystemMessageready for agent injection - Works with
createToolCallingAgent,createOpenAIToolsAgent,createReactAgent - LangChain JS native; Python via subprocess bridge or HTTP wrapper
CrewAI
Package: moneygraph-crewai (PyPI)
from moneygraph_crewai import MoneyGraphTools
tools = MoneyGraphTools(api_key="sk_live_...")
# Returns @tool decorated functions for all payment operationsTechnical coverage:
- Python package with
@tooldecorated functions wrapping MoneyGraph SDK via HTTP - Each tool has full docstring + type annotations for CrewAI's tool discovery
- Tools:
send_bank_payout,send_mobile_money_payout,check_rates,create_customer,list_wallets,swap_funds,track_transaction
Vercel AI SDK
Package: @moneygraph/ai
import { moneyGraphTools } from '@moneygraph/ai';
import { generateText } from 'ai';
import { openai } from '@ai-sdk/openai';
const result = await generateText({
model: openai('gpt-4o'),
tools: moneyGraphTools({ apiKey: 'sk_live_...' }),
prompt: 'Send $300 to Ghana'
});Technical coverage:
- Pre-built
tool()definitions with Zod schemas andexecutefunctions wired to MoneyGraph SDK - Compatible with any Vercel AI SDK provider (OpenAI, Anthropic, Google, Mistral)
- Includes all 45 operations as individual tools
Autogen (Microsoft)
Package: moneygraph (PyPI)
from moneygraph import MoneyGraph
mg = MoneyGraph(api_key="sk_live_...")
# Register tools with Autogen agents via function specsTechnical coverage:
- Thin Python HTTP wrapper around StratosPay REST API
- Function specs compatible with Autogen's
register_functionpattern - Full type hints and docstrings for LLM function calling
Semantic Kernel (Microsoft)
Package: MoneyGraph.SemanticKernel (NuGet)
using MoneyGraph.SemanticKernel;
var plugin = new MoneyGraphPlugin("sk_live_...");
kernel.Plugins.Add(plugin);Technical coverage:
- C# / .NET plugin implementing Semantic Kernel's
KernelFunctionpattern - HTTP calls to StratosPay REST API (https://stratospay.com/api/v1)
- Full XML documentation for all methods
Manus AI (Meta) / Amazon Nova Act / Google Mariner
Integration: OpenAPI spec at moneygraph.ai/openapi.json
These browser-based and API-consuming agents discover MoneyGraph via the published OpenAPI 3.0 specification. Manus (acquired by Meta in December 2025) uses its Browser Operator to interact with web APIs. Nova Act and Mariner consume REST endpoints directly.
Technical coverage:
- OpenAPI 3.0 spec with all 55 endpoints, request/response schemas, authentication, and error codes
- Hosted at
moneygraph.ai/openapi.json(auto-discoverable) - Payment flow web UI at
moneygraph.ai/payfor browser agent interaction (Operator, Mariner)
Replit Agent / Devin / Bolt / Lovable / v0
Integration: Direct SDK import + project templates
import { MoneyGraphSandbox } from '@moneygraph/sdk';
const mg = new MoneyGraphSandbox();
// Full IntelliSense via TypeScript definitions
const rates = await mg.getCurrencies('NG');Technical coverage:
- All AI coding agents that run Node.js use
@moneygraph/sdkdirectly - Complete TypeScript definitions (
src/index.d.ts) provide autocomplete, parameter docs, and type checking for AI code generation - Replit template: pre-wired project with SDK, sandbox customer, and example payout flow
- Devin task template: documented in MoneyGraph docs with step-by-step instructions
Agent Coverage Matrix
| # | Agent | Package | Integration Type | Native |
|---|-------|---------|-----------------|--------|
| 1 | OpenClaw (WhatsApp/Telegram/Discord/Slack/Signal/iMessage/Teams) | @moneygraph/openclaw-skill | OpenClaw Skill (ClawHub) | Yes |
| 2 | Claude API | @moneygraph/sdk/claude | Anthropic Tool Use | Yes |
| 3 | Claude Desktop | @moneygraph/mcp-server | MCP Server (stdio) | Yes |
| 4 | Claude Code | @moneygraph/mcp-server | MCP Server (stdio) | Yes |
| 5 | Cursor | @moneygraph/mcp-server | MCP Server (stdio) | Yes |
| 6 | VS Code Copilot | @moneygraph/mcp-server | MCP Server (stdio) | Yes |
| 7 | Windsurf | @moneygraph/mcp-server | MCP Server (stdio) | Yes |
| 8 | Cline | @moneygraph/mcp-server | MCP Server (stdio) | Yes |
| 9 | Continue | @moneygraph/mcp-server | MCP Server (stdio) | Yes |
| 10 | ChatGPT / OpenAI API | @moneygraph/openai | OpenAI Function Calling | Yes |
| 11 | GPT Actions | openapi.json | OpenAPI 3.0 | Yes |
| 12 | OpenAI Operator | moneygraph.ai/pay | Web UI (browser agent) | Yes |
| 13 | LangChain | @moneygraph/langchain | DynamicStructuredTool | Yes |
| 14 | CrewAI | moneygraph-crewai (PyPI) | @tool decorator | Yes |
| 15 | Vercel AI SDK | @moneygraph/ai | Vercel tool() | Yes |
| 16 | Autogen | moneygraph (PyPI) | Python wrapper | Yes |
| 17 | Semantic Kernel | MoneyGraph.SemanticKernel (NuGet) | KernelFunction plugin | Yes |
| 18 | Manus AI / Meta | openapi.json | OpenAPI / REST | Yes |
| 19 | Replit Agent | @moneygraph/sdk + template | npm + TypeScript | Yes |
| 20 | Devin | @moneygraph/sdk + template | npm + TypeScript | Yes |
All 20 integrations use the same StratosPay backend. Get API keys at https://moneygraph.ai.
API Coverage — 79 Endpoints
| Category | Count | Key Methods |
|----------|-------|-------------|
| Customers | 9 | createCustomer, createBusinessCustomer, updateCustomer, listCustomers, getCustomer, submitKyc, uploadKycDocument, getCustomerWallets, getCustomerTransactions |
| Directors (KYB) | 5 | listDirectors, getDirector, createDirector, updateDirector, deleteDirector |
| Virtual Cards | 11 | createCardholder, getCardholder, createVirtualCard, getVirtualCard, listVirtualCards, fundVirtualCard, withdrawFromVirtualCard, activateVirtualCard, deactivateVirtualCard, getCardTransactions, decryptCard |
| Crypto Wallets | 2 | listCustomerCryptoWallets, createCustomerCryptoWallet |
| Fiat Virtual Accounts | 3 | createVirtualAccount, listVirtualAccounts, getVirtualAccount |
| Crypto Address | 3 | createCryptoAddress, listCryptoAddresses, getCryptoAddress |
| Reference Data | 11 | listCountries, getCurrencies, listSourceOfFunds, listMccCodes, listBusinessRegistrationTypes, listAccountFiatCurrencies, listAccountCryptoCurrencies, listWallets, listCryptoWallets, getCryptoCurrencies, swapFunds |
| Local Transfers | 2 | transferToCustomer, transferFromCustomer |
| Payment Collection | 4 | initiatePayment, chargeCard, verifyPayment, cashPayment |
| Recurring Plans | 5 | createPlan, getPlan, listPlans, updatePlan, deletePlan |
| Transactions | 4 | listTransactions, getTransaction, getRecipientTransactions, getWalletTransactions |
| Recipients | 5 | createRecipient, getRecipient, listRecipients, updateRecipient, deleteRecipient |
| Payouts | 8 | createPayout, verifyBank, listTransferPurposes, listBanks, listMobileNetworks, getCryptoPayout, listCashPickupAgents |
| Sandbox Simulation | 2 | simulatePayoutSuccess, simulatePayoutDecline |
| Blockchain Ledger | 11 | createLedgerEntity, getLedgerEntity, listLedgerEntities, ledgerCredit, ledgerDebit, ledgerTransfer, getLedgerTransaction, getLedgerTransactions, ledgerFetchBalances, ledgerValidateBulk, ledgerBulkTransaction |
| Convenience | 2 | sendBankPayout, sendMobileMoneyPayout |
Bold = New in v3.1.0
Key Concepts
Two-Step Payout Flow: Create a Recipient first, then a Payout. The sendBankPayout() and sendMobileMoneyPayout() convenience methods handle both steps in one call. getCurrencies() provides all required UUIDs.
Amounts in Minor Units: All amounts are integers. 50000 = $500.00. Multiply by 100.
Customer IDs: Numeric strings like "0605399".
UUID References: wallet_id, recipient_id, corridor_id, delivery_window_id are UUIDs from the API.
Base Currencies & Payment Rails
| Currency | Rails | Corridors | |----------|-------|-----------| | USD | ACH, Wire, SWIFT | 82 countries | | GBP | Faster Payments, SWIFT | 82 countries | | EUR | SEPA, BACS, SWIFT | 82 countries | | CAD | SWIFT | 82 countries |
Delivery Methods
| Method | Speed | |--------|-------| | Bank Transfer (SWIFT) | 1-3 business days | | Mobile Money (M-Pesa, MTN, Airtel) | Minutes | | Cash Pickup | Same day | | SEPA | 1 business day | | Faster Payments | Minutes | | ACH | 1-2 business days |
Rate Data (Sandbox)
import { SWAP_RATES, PAYOUT_RATES, REMITTANCE_CORRIDORS } from '@moneygraph/sdk/rates';
PAYOUT_RATES.USD.NG // { c: 'NGN', r: 1602.34 }
PAYOUT_RATES.GBP.KE // { c: 'KES', r: 172.21 }
SWAP_RATES.USD.rates.GBP // 0.7455Configuration
From Environment Variables (Recommended)
import { MoneyGraphClient } from '@moneygraph/sdk';
const mg = MoneyGraphClient.fromEnv(); // reads STRATOSPAY_* from process.envExplicit Config
const mg = new MoneyGraphClient({
secretKey: 'sk_live_...', // required — from stratospay.com/dashboard
publicKey: 'pk_live_...', // optional — for client-side operations
webhookSecret: 'whsec_...', // optional — for webhook signature verification
mode: 'live', // auto-detected from key prefix if omitted
baseUrl: 'https://stratospay.com/api/v1', // default
timeout: 30000, // ms
onRateLimit: ({ remaining }) => console.warn(`${remaining} left`)
});Rate limit: 30 req/min. Sandbox: no config, no key, no rate limits.
MCP Server (AI Agents)
npx @moneygraph/mcp-serverUses MONEYGRAPH_API_KEY env var (separate from STRATOSPAY_* keys). See @moneygraph/mcp-server for setup with Claude, Cursor, VS Code, etc.
TypeScript
import type {
MoneyGraphClient, MoneyGraphSandbox,
Customer, Recipient, Transaction, Wallet,
CurrencyConfig, RemittanceCorridor, DeliveryWindow,
LedgerEntity, Plan
} from '@moneygraph/sdk';Links
| Resource | URL | |----------|-----| | Homepage & API Keys | https://moneygraph.ai | | Documentation | https://moneygraph.ai/docs | | Pricing | https://moneygraph.ai/pricing | | REST API Reference | https://moneygraph.ai/docs/rest-api | | OpenAPI Spec | https://moneygraph.ai/openapi.json | | GitHub | https://github.com/moneygraph/sdk | | npm | https://www.npmjs.com/package/@moneygraph/sdk | | OpenClaw Skill | https://clawd.bot/clawhub/moneygraph | | Status | https://status.moneygraph.ai | | Support | [email protected] |
License
MIT
