n8n-nodes-moonpay
v1.0.0
Published
A comprehensive n8n community node for MoonPay crypto payment infrastructure providing 8 resources and 20+ operations for fiat-to-crypto on-ramps, crypto-to-fiat off-ramps, quotes, transactions, and customer management.
Maintainers
Readme
n8n-nodes-moonpay
[Velocity BPA Licensing Notice]
This n8n node is licensed under the Business Source License 1.1 (BSL 1.1).
Use of this node by for-profit organizations in production environments requires a commercial license from Velocity BPA.
For licensing information, visit https://velobpa.com/licensing or contact [email protected].
A comprehensive n8n community node for MoonPay crypto payment infrastructure, enabling fiat-to-crypto (on-ramp) and crypto-to-fiat (off-ramp) transactions. This node provides seamless integration with MoonPay's API for managing currencies, quotes, transactions, customers, and more.
Features
- Multi-Currency Support: Access 100+ cryptocurrencies and multiple fiat currencies
- Quote Management: Get real-time quotes for buy, sell, and swap transactions
- Transaction Tracking: Monitor buy, sell, and swap transactions with full details
- Customer Management: Manage customer records and KYC verification status
- Virtual Accounts: Handle automated on-ramp transactions with RSA-SHA256 signing
- Widget Integration: Generate signed widget URLs for embedded payment flows
- Webhook Triggers: React to transaction events in real-time
- Environment Support: Seamlessly switch between sandbox and production environments
Installation
Community Nodes (Recommended)
- Open n8n
- Go to Settings > Community Nodes
- Click Install
- Enter
n8n-nodes-moonpay - Accept the risks and click Install
Manual Installation
npm install n8n-nodes-moonpayDevelopment Installation
# Clone the repository
git clone https://github.com/Velocity-BPA/n8n-nodes-moonpay.git
cd n8n-nodes-moonpay
# Install dependencies
npm install
# Build the project
npm run build
# Link to n8n
mkdir -p ~/.n8n/custom
ln -s $(pwd) ~/.n8n/custom/n8n-nodes-moonpay
# Restart n8n
n8n startCredentials Setup
To use this node, you need to configure MoonPay API credentials:
| Field | Description | Required | |-------|-------------|----------| | Environment | Select Sandbox or Production | Yes | | Publishable API Key | Public key for client-side operations | Yes | | Secret API Key | Secret key for server-side operations | Yes | | Private Key (PEM) | RSA private key for Virtual Accounts API | No |
Getting Your API Keys:
- Log in to your MoonPay Dashboard
- Navigate to Developers > API Keys
- Copy your Publishable and Secret keys
- For Virtual Accounts, generate an RSA key pair and register the public key
Resources & Operations
Currency
| Operation | Description | |-----------|-------------| | List Cryptocurrencies | Get all supported cryptocurrencies | | Get Cryptocurrency | Get details for a specific cryptocurrency | | List Fiat Currencies | Get all supported fiat currencies | | Get Currency Limits | Get transaction limits for a currency |
Quote
| Operation | Description | |-----------|-------------| | Get Buy Quote | Get price quote for buying crypto | | Get Sell Quote | Get price quote for selling crypto | | Get Swap Quote | Get price quote for swapping crypto |
Transaction
| Operation | Description | |-----------|-------------| | List Buy Transactions | List all buy transactions | | Get Buy Transaction | Get details of a buy transaction | | List Sell Transactions | List all sell transactions | | Get Sell Transaction | Get details of a sell transaction | | List Swap Transactions | List all swap transactions | | Get Swap Transaction | Get details of a swap transaction |
Customer
| Operation | Description | |-----------|-------------| | List Customers | List all customers | | Get Customer | Get customer details | | Get Customer Limits | Get transaction limits for a customer | | Check KYC Status | Check KYC verification for a wallet |
Virtual Account
| Operation | Description | |-----------|-------------| | Get Virtual Account | Get virtual account details | | List Transactions | List virtual account transactions |
Country
| Operation | Description | |-----------|-------------| | List Countries | List all supported countries | | Get Country | Get country details and payment methods | | Get IP Address Info | Get country based on IP address |
Network
| Operation | Description | |-----------|-------------| | List Networks | List all blockchain networks | | Get Network Fee | Get current network fee estimates |
Widget URL
| Operation | Description | |-----------|-------------| | Generate Buy Widget URL | Create signed URL for buy widget | | Generate Sell Widget URL | Create signed URL for sell widget |
Trigger Node
The MoonPay Trigger node listens for webhook events:
| Event | Description | |-------|-------------| | transaction.created | New buy transaction initiated | | transaction.pending | Buy transaction awaiting payment | | transaction.completed | Buy transaction completed | | transaction.failed | Buy transaction failed | | sell_transaction.created | Sell transaction initiated | | sell_transaction.waiting_for_deposit | Awaiting crypto deposit | | sell_transaction.completed | Sell transaction completed | | sell_transaction.failed | Sell transaction failed | | swap.created | Swap initiated | | swap.completed | Swap completed | | swap.failed | Swap failed |
Webhook Setup:
- Deploy your n8n workflow and copy the webhook URL
- Go to MoonPay Dashboard > Developers > Webhooks
- Add the webhook URL and select events
Usage Examples
Get a Buy Quote
// Input parameters
{
"resource": "quote",
"operation": "getBuyQuote",
"currencyCode": "btc",
"baseCurrencyCode": "usd",
"baseCurrencyAmount": 100
}
// Returns quote with rates, fees, and totalsGenerate Buy Widget URL
// Input parameters
{
"resource": "widget",
"operation": "generateBuyUrl",
"options": {
"currencyCode": "eth",
"baseCurrencyCode": "usd",
"baseCurrencyAmount": 500,
"walletAddress": "0x...",
"externalCustomerId": "user_123"
}
}
// Returns signed widget URLCheck Customer KYC
// Input parameters
{
"resource": "customer",
"operation": "checkKyc",
"walletAddress": "0x..."
}
// Returns KYC status and verification detailsMoonPay Concepts
On-Ramp (Buy)
The process of converting fiat currency (USD, EUR, etc.) to cryptocurrency. Users pay with credit cards, bank transfers, or other payment methods to receive crypto in their wallet.
Off-Ramp (Sell)
The process of converting cryptocurrency back to fiat currency. Users send crypto to MoonPay and receive fiat in their bank account.
Swap
Exchange one cryptocurrency for another without going through fiat currency.
KYC (Know Your Customer)
Verification process required for transactions. MoonPay handles identity verification to comply with regulations.
Virtual Accounts
Automated on-ramp solution where customers receive dedicated bank accounts for recurring crypto purchases.
Supported Networks
| Network | Code | Description | |---------|------|-------------| | Ethereum | ethereum | Ethereum mainnet | | Bitcoin | bitcoin | Bitcoin network | | Polygon | polygon | Polygon/Matic network | | Solana | solana | Solana network | | Arbitrum | arbitrum | Arbitrum L2 | | Optimism | optimism | Optimism L2 | | Base | base | Base L2 | | And many more... | | |
Error Handling
The node handles common MoonPay API errors:
| Status | Error | Description | |--------|-------|-------------| | 400 | BadRequestError | Invalid parameters | | 401 | Unauthorized | Invalid API key | | 403 | Forbidden | IP not whitelisted | | 404 | NotFound | Resource doesn't exist | | 429 | RateLimited | Too many requests |
Security Best Practices
- Keep Secret Keys Secure: Never expose your secret API key in client-side code
- Use Environment Switching: Test in sandbox before production
- Verify Webhooks: Always verify webhook signatures
- IP Whitelisting: Configure allowed IPs in MoonPay Dashboard
- Rotate Keys: Regularly rotate API keys for security
Development
# Install dependencies
npm install
# Build
npm run build
# Run tests
npm test
# Run tests with coverage
npm run test:coverage
# Lint
npm run lint
# Fix linting issues
npm run lint:fix
# Watch mode for development
npm run devAuthor
Velocity BPA
- Website: velobpa.com
- GitHub: Velocity-BPA
Licensing
This n8n community node is licensed under the Business Source License 1.1.
Free Use
Permitted for personal, educational, research, and internal business use.
Commercial Use
Use of this node within any SaaS, PaaS, hosted platform, managed service, or paid automation offering requires a commercial license.
For licensing inquiries: [email protected]
See LICENSE, COMMERCIAL_LICENSE.md, and LICENSING_FAQ.md for details.
Contributing
Contributions are welcome! Please read our contributing guidelines and submit pull requests to the repository.
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
Support
- Documentation: MoonPay Developer Docs
- Issues: GitHub Issues
- Commercial Support: [email protected]
