Wallet Management
Wallets are central to your Voltage Payments integration, allowing you to manage funds, track balances, and orchestrate transactions. This guide covers the complete lifecycle of wallet management through the API.
The Voltage API uses x-api-key authentication methods for API calls:
- API Key Authentication (via x-api-key header):
Your API key can be generated from the "API Keys" page in the dashboard. For all examples in this guide, we'll show Bearer Token authentication, but you can use either method based on your preference and security requirements.

A wallet in Voltage Payments:
- Stores funds for Lightning Network and on-chain transactions
- Maintains balance history and transaction ledger
- Can be assigned limits and credit allocations
- Supports custom metadata for your application needs
The full API spec is HERE
Method | Endpoint | Description |
---|---|---|
GET | /organizations/{organization_id}/wallets | List all wallets in an organization |
POST | /organizations/{organization_id}/wallets | Create a new wallet |
GET | /organizations/{organization_id}/wallets/{wallet_id} | Get a single wallet's details |
DELETE | /organizations/{organization_id}/wallets/{wallet_id} | Delete a wallet |
GET | /organizations/{organization_id}/wallets/{wallet_id}/ledger | Get a wallet's transaction history |
Before creating wallets through the API, you must first create your initial wallet through the UI. This process automatically generates a line of credit ID needed for API wallet creation.
- Create your first wallet through the UI
- Generate an API key with Read, Write, and Billing permissions
- Retrieve your line of credit ID from the API keys page (Click on your API key and the Sidebar will pop out with Line of Credit ID)

Parameter | Type | Description |
---|---|---|
id | string (UUID) | Unique identifier you generate for the wallet |
environment_id | string (UUID) | Environment ID to create the wallet in |
line_of_credit_id | string (UUID) | Your line of credit ID obtained from UI |
name | string | Display name for the wallet |
network | string | Network to use: "mainnet", "testnet3", or "mutinynet" |
limit | integer | Maximum balance in msats (100,000,000 = 0.001 BTC) |
Parameter | Type | Description |
---|---|---|
metadata | object | Custom application data linked to this wallet |
The API will return a 202 status code indicating the wallet creation request was accepted. To verify the wallet was created successfully, you need to query the wallet list or get the wallet by ID.
Retrieve all wallets in your organization:
Retrieve details for a specific wallet:
The response format is the same as a single wallet object from the list endpoint.
The wallet details endpoint also returns the current balance information in the balances array. You can regularly poll this endpoint to monitor available funds.
Key balance fields:
- available: Currently available balance in msats
- total: Total balance including funds on hold
- currency: The currency of the balance (e.g., "btc")
To view all transactions for a wallet:
Parameter | Type | Description |
---|---|---|
offset | integer | Starting point for pagination |
limit | integer | Maximum number of records to return |
payment_id | string (UUID) | Filter by payment ID |
start_date | string (date-time) | Filter transactions after this date |
end_date | string (date-time) | Filter transactions before this date |
sort_key | string | Field to sort by: "effective_time", "message_time", or "time_and_effective_time" |
sort_order | string | Order: "ASC" or "DESC" |
To delete a wallet:
A successful deletion returns a 200 status code.
Wallet metadata allows you to store custom information with your wallets for internal tracking. This field accepts any valid JSON object:
Metadata is returned with wallet objects and can be used for filtering and organization in your application.
- Monitor wallet balances regularly to ensure sufficient funds for outgoing payments.
- Use meaningful wallet names and metadata to organize wallets by purpose or customer.
- Set appropriate wallet limits based on expected transaction volumes.
- Check the ledger periodically to reconcile transactions with your internal systems.
- Consider creating separate wallets for different business functions or customers.
Issue | Resolution |
---|---|
Wallet creation fails | Verify your line of credit ID and ensure you have sufficient credit allocation |
Can't retrieve wallet | Check if the wallet ID exists and your API key has appropriate permissions |
Balance discrepancies | Check the ledger for recent transactions and any holds on funds |
"403 Forbidden" errors | Verify your API key has the correct permissions for the operation |