Create Wallet
Wallets & Users
Create Wallet
Create a new digital wallet for a user to store funds, manage balances, and process transactions
POST
Create Wallet
Overview
Create a new digital wallet for storing and managing user funds. Each wallet is tied to a specific user and currency, supporting both fiat currencies (USD, EUR, GBP) and cryptocurrencies (BTC, ETH, SOL, USDC). Use Cases:- Onboarding new users with their first wallet
- Creating multi-currency wallets for international users
- Setting up merchant settlement wallets
- Establishing escrow or custody wallets
Authentication
Request Body
The unique identifier of the user who will own this wallet. Must be a valid user ID from your system.Example:
"user_1a2b3c4d5e"The currency code for this wallet. Supports ISO 4217 codes for fiat currencies and standard crypto ticker symbols.Supported Fiat: USD, EUR, GBP, CAD, AUD, JPY, CHF, CNY, INR, BRL, MXNSupported Crypto: BTC, ETH, SOL, USDC, USDT, MATIC, AVAX, NEARExample:
"USD" or "USDC"A human-readable label for the wallet to help users identify it. Maximum 50 characters.Examples:
"Primary Wallet""Savings Account""Business Operations"
Optional initial balance to credit to the wallet in the smallest currency unit (cents for USD, wei for ETH, etc.). Only available for sandbox environments or with special permissions.Example:
10000 (represents $100.00 for USD)Request Examples
Response
Unique identifier for the wallet
The user who owns this wallet
The wallet’s currency code
Current balance information
Current wallet status:
pending_verification, active, suspended, frozen, or closedHuman-readable wallet label
Transaction limits for this wallet
ISO 8601 timestamp of wallet creation
ISO 8601 timestamp of last update
Response Examples
Code Examples
Error Handling
| Error Code | HTTP Status | Description | Resolution |
|---|---|---|---|
INVALID_CURRENCY | 400 | Unsupported currency code | Use a supported currency from the list |
INVALID_USER_ID | 400 | User ID not found | Verify the user exists in your system |
WALLET_EXISTS | 409 | User already has wallet in this currency | Retrieve the existing wallet instead |
INVALID_API_KEY | 401 | Authentication failed | Check your API key is valid |
RATE_LIMIT_EXCEEDED | 429 | Too many requests | Implement exponential backoff |
INSUFFICIENT_PERMISSIONS | 403 | API key lacks permissions | Use a key with wallet creation permissions |
Best Practices
1. One Wallet Per Currency Per User
Users should have only one wallet per currency. Always check for existing wallets before creating new ones:2. Use Descriptive Labels
Help users identify their wallets with clear labels:3. Handle Errors Gracefully
Always implement proper error handling:4. Implement Idempotency
Use idempotency keys for safe retries:Webhooks
When a wallet is created, the following webhook event is triggered:Rate Limits
- 100 requests per minute per API key
- 1000 wallet creations per day per merchant
Related Endpoints
- List Wallets - Retrieve all wallets for a user
- Get Wallet - Get details of a specific wallet
- Update Wallet - Modify wallet settings
- Get Balance - Check current wallet balance
Support
Need help? Contact us:- Email: support@hedgepayments.com
- Discord: discord.gg/hedgepayments
- Docs: docs.hedgepayments.com

