Overview
Wallet Management APIs allow you to register and verify cryptocurrency wallet addresses for secure payouts. These verified addresses serve as pre-approved withdrawal destinations, ensuring funds are only sent to wallets you control.
🔗 Related APIs: Verified wallet addresses are required for Payout APIs. You cannot create a payout without first creating and verifying a wallet address.
Why Address Verification?
Before you can withdraw funds via payout, you must verify ownership of the destination wallet address. This critical security measure prevents costly mistakes:
| Without Verification | With Verification |
|---|---|
| ❌ Risk of typos in address | ✅ Address accuracy confirmed |
| ❌ Cannot confirm address ownership | ✅ Ownership verified via micro-payment |
| ❌ Funds lost if address is wrong | ✅ Funds protected from address errors |
| ❌ No recovery for mistakes | ✅ Mistakes caught before large transfers |
How Verification Works
The Verification Flow:
| Step | What Happens | You Do |
|---|---|---|
| 1️⃣ Create Wallet | Register address via API | Call Create Wallet API |
| 2️⃣ Micro-Payment Sent | System sends small amount (e.g., 0.003621 USDC) | Wait for payment (1-5 minutes) |
| 3️⃣ Check Wallet | View exact amount received | Check your wallet balance |
| 4️⃣ Confirm Amount | Verify ownership | Submit last 4 digits (e.g., "3621") |
| 5️⃣ Verified | Address status = success | Use for unlimited payouts |
Key Benefits:
- ✅ One-Time Process: Verify once, use forever
- ✅ Multiple Addresses: Verify different addresses for different purposes
- ✅ Multiple Networks: Support for Ethereum, Solana, BSC, Tron, etc.
- ✅ Required for Payouts: All payout destinations must be verified
- ✅ Risk Prevention: Eliminates address errors before large withdrawals
Use Cases
Common Scenarios:
- Company Wallets: Verify your business treasury wallets for fund withdrawals
- Exchange Deposits: Verify exchange deposit addresses for transferring funds
- Cold Storage: Verify cold wallet addresses for secure long-term storage
- Multiple Purposes: Create and verify multiple addresses for different use cases
API Reference
1. List Assets
Before creating a wallet, you need to know which blockchain networks are supported. The List Assets API returns all available cryptocurrencies and their network information.
Purpose: Get asset IDs and network names required for wallet creation
For detailed API reference, see: List Assets API
Request:
curl --location --request GET 'https://api.martianpay.com/v1/assets' \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic {BASE64_ENCODE(api_key + ":")}'
Response:
{
"error_code": "success",
"msg": "success",
"data": {
"assets": [
{
"id": "USDC-Solana-TEST",
"display_name": "USD Coin(Solana Devnet)",
"coin": "USDC",
"is_fiat": false,
"decimals": 6,
"payable": true,
"network": "Solana Devnet",
"is_mainnet": false,
"contract_address": "4zMMC9srt5Ri5X14GAgXhaHii3GnPAEERYPJgZJDncDU",
"address_url_template": "https://explorer.solana.com/address/%s?cluster=devnet",
"tx_url_template": "https://explorer.solana.com/tx/%s?cluster=devnet",
"token": "USDC",
"chain_id": 0
},
{
"id": "USDC-Ethereum-TEST",
"display_name": "USDC",
"coin": "USDC",
"is_fiat": false,
"decimals": 6,
"payable": true,
"network": "Ethereum Sepolia",
"is_mainnet": false,
"contract_address": "0x1c7D4B196Cb0C7B01d743Fbc6116a902379C7238",
"address_url_template": "https://sepolia.etherscan.io/address/%s",
"tx_url_template": "https://sepolia.etherscan.io/tx/%s",
"token": "USDC",
"chain_id": 11155111
},
{
"id": "USD",
"display_name": "US Dollar",
"coin": "USD",
"is_fiat": true,
"decimals": 2,
"payable": false,
"symbol": "$"
}
]
}
}
Understanding the Response
How to Check if the Request Was Successful:
| Field | Value | Meaning |
|---|---|---|
error_code | "success" | ✅ Assets retrieved successfully |
error_code | Other value | ❌ Error occurred |
Key Fields:
| Field | Description |
|---|---|
assets | Array of all available cryptocurrencies and networks |
id | Asset ID to use when creating wallets (e.g., "USDC-Ethereum-TEST") |
display_name | Human-readable name for display |
network | Blockchain network name (use this in Create Wallet API) |
is_mainnet | true = production network, false = test network |
payable | Whether this asset can be used for payments |
decimals | Number of decimal places for this token |
Asset Types:
| is_fiat | What It Means | Example |
|---|---|---|
false | Cryptocurrency | USDC, USDT (blockchain-based) |
true | Fiat currency | USD (not blockchain-based) |
Important Fields for Wallet Creation:
- network: Use this exact value when calling Create Wallet API (e.g., "Ethereum Sepolia", "Solana Devnet")
- id: The asset identifier (e.g., "USDC-Ethereum-TEST")
- contract_address: Smart contract address for tokens
Blockchain Explorer Links:
- address_url_template: View wallet addresses on blockchain explorer
- tx_url_template: View transactions on blockchain explorer
- Replace %s with actual address or transaction hash
Next Steps:
- Choose a network from the list (e.g., "Ethereum Sepolia")
- Use that network name when creating a new wallet
- Note the
idfor the asset you want to use (e.g., "USDC-Ethereum-TEST") - Check
is_mainnetto ensure you're using the correct environment
2. Create Wallet
Create a new wallet address for receiving payments. This allows you to add new addresses to your account. The network parameter should match one of the networks returned by the List Assets API (e.g., "Ethereum Sepolia", "Solana Devnet").
For detailed API reference, see: Create Wallet API
Request:
curl --location --request POST 'https://api.martianpay.com/v1/addresses' \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic {BASE64_ENCODE(api_key + ":")}' \
--data-raw '{
"network": "Ethereum Sepolia",
"address": "0xEe7f27Dfa8928F1A8F5fd5EBCe7aF8654c013124",
"alias": ""
}'
Response:
{
"error_code": "success",
"msg": "success",
"data": {
"id": "ma_HAmAJF5dIcLa7YE8YjQuf5lt",
"merchant_id": "accu_M7PTgveSgMtTtPHbjFgEtAlD",
"network": "Ethereum Sepolia",
"address": "0xEe7f27Dfa8928F1A8F5fd5EBCe7aF8654c013124",
"verification_id": null,
"status": "created",
"alias": "",
"created_at": 1750081721,
"updated_at": 1750081721,
"verification": null
}
}
Understanding the Response
How to Check if the Request Was Successful:
| Field | Value | Meaning |
|---|---|---|
error_code | "success" | ✅ Wallet created successfully |
error_code | "address_already_exists" | ❌ This address is already registered |
error_code | "invalid_address" | ❌ Address format is invalid for this network |
error_code | Other value | ❌ Other error occurred |
Key Fields:
| Field | Description |
|---|---|
id | Unique wallet identifier (use for Get/Update/Delete operations) |
status | Wallet status: created (new), verifying (pending), success (verified) |
network | Blockchain network (matches your request) |
address | Your wallet address (matches your request) |
verification_id | Verification process ID (null initially, set when verification starts) |
alias | Optional nickname for this wallet |
Wallet Status Lifecycle:
| Status | Meaning | Next Step |
|---|---|---|
created | ✅ Wallet created, micro-payment being sent | Wait for micro-payment (1-5 minutes) |
verifying | ⏳ Micro-payment sent, awaiting confirmation | Check wallet balance, submit last 4 digits |
success | ✅ Verified - Ready for payouts | Use in Payout API as receive_account_id |
failed | ❌ Verification failed | Contact support or retry |
What Happens Next:
- ✅ Wallet created with status
created - 🔄 System automatically sends micro-payment (e.g., 0.003621 USDC)
- ⏳ Status changes to
verifyingwhen payment is sent - 💰 Check your wallet balance for the exact amount
- ✅ Call Confirm Verification API with last 4 digits
Verification Payment:
- System sends a small amount (typically 0.00XXXX USDC/USDT, e.g., 0.003621)
- This confirms you control the wallet address
- You'll need to submit the last 4 digits to verify ownership
- One-time process per address
Next Steps:
- Save the wallet
idfor future operations - Wait 1-5 minutes for micro-payment to arrive
- Use Get Wallet API to check when payment is sent
- Check your wallet balance for the exact amount received
- Submit verification using Confirm Verification API
The system will automatically send a small verification payment to this address (typically 0.00**** USDC/USDT, e.g., 0.003621) to confirm ownership.
3. Get Wallet
Retrieve details of a specific wallet address, including its verification status, network, and associated metadata.
For detailed API reference, see: Get Wallet API
Request:
curl --location --request GET 'https://api.martianpay.com/v1/addresses/ma_HAmAJF5dIcLa7YE8YjQuf5lt' \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic {BASE64_ENCODE(api_key + ":")}'
Response:
{
"error_code": "success",
"msg": "success",
"data": {
"id": "ma_HAmAJF5dIcLa7YE8YjQuf5lt",
"merchant_id": "accu_M7PTgveSgMtTtPHbjFgEtAlD",
"network": "Ethereum Sepolia",
"address": "0xEe7f27Dfa8928F1A8F5fd5EBCe7aF8654c013124",
"verification_id": "av_OwHsFRITwl8Q23LaECVzPGwj",
"status": "verifying",
"alias": "",
"created_at": 1750081721,
"updated_at": 1750081721,
"verification": {
"id": "av_OwHsFRITwl8Q23LaECVzPGwj",
"status": "transferring",
"merchant_address_id": "ma_HAmAJF5dIcLa7YE8YjQuf5lt",
"asset_id": "USDC-Ethereum-TEST",
"verified_at": null,
"tried_times": 0,
"aml_status": "approved"
}
}
}
After some time, the status changes from "transferring" to "awaiting_amount", indicating the system is now waiting for the verification amount to be sent back.
{
"error_code": "success",
"msg": "success",
"data": {
"id": "ma_HAmAJF5dIcLa7YE8YjQuf5lt",
"merchant_id": "accu_M7PTgveSgMtTtPHbjFgEtAlD",
"network": "Ethereum Sepolia",
"address": "0xEe7f27Dfa8928F1A8F5fd5EBCe7aF8654c013124",
"verification_id": "av_OwHsFRITwl8Q23LaECVzPGwj",
"status": "verifying",
"alias": "",
"created_at": 1750081721,
"updated_at": 1750081721,
"verification": {
"id": "av_OwHsFRITwl8Q23LaECVzPGwj",
"status": "awaiting_amount",
"merchant_address_id": "ma_HAmAJF5dIcLa7YE8YjQuf5lt",
"asset_id": "USDC-Ethereum-TEST",
"verified_at": null,
"tried_times": 0,
"aml_status": "approved"
}
}
}
Understanding the Response
How to Check if the Request Was Successful:
| Field | Value | Meaning |
|---|---|---|
error_code | "success" | ✅ Wallet details retrieved successfully |
error_code | "wallet_not_found" | ❌ No wallet exists with this ID |
error_code | Other value | ❌ Other error occurred |
Key Wallet Status Fields:
| Wallet Status | Meaning | What to Do |
|---|---|---|
created | ✅ Created, payment pending | Wait for micro-payment (1-5 minutes) |
verifying | ⏳ Awaiting verification | Check verification.status for details |
success | ✅ Verified & Ready | Use for payouts |
failed | ❌ Verification failed | Retry or contact support |
Verification Status Breakdown:
When status: verifying, check the verification object:
| verification.status | Meaning | Next Step |
|---|---|---|
transferring | 🔄 Sending micro-payment | Wait for payment (1-5 minutes) |
awaiting_amount | ⏳ Ready for confirmation | Check wallet, submit last 4 digits |
success | ✅ Verified | Wallet ready for use |
failed | ❌ Failed | Check tried_times, retry if needed |
Verification Object Fields:
| Field | Description |
|---|---|
id | Verification process ID |
status | Current verification step |
asset_id | Cryptocurrency used for verification (e.g., "USDC-Ethereum-TEST") |
verified_at | Timestamp when verification completed (null if pending) |
tried_times | Number of verification attempts |
aml_status | AML check result: approved, pending, rejected |
How to Complete Verification:
- Status is
transferring: Wait 1-5 minutes for micro-payment - Status is
awaiting_amount:- Check your wallet balance
- Find the exact amount received (e.g., 0.003621)
- Submit last 4 digits using Confirm Verification API
- Status is
success: Wallet is verified and ready
AML Status:
- approved: Passed AML checks, can proceed
- pending: Under review
- rejected: Failed AML checks, cannot verify
Next Steps:
- If
verification.statusistransferring: Wait for micro-payment - If
verification.statusisawaiting_amount: Check wallet and submit confirmation - If
statusissuccess: Wallet is ready for use in Payout API - Save the wallet
idfor future payout operations
4. Confirm Verification
Confirm the ownership of a wallet address by sending the verification amount back to the address. Only four digits are required.
For detailed API reference, see: Verify Wallet API
Request:
curl --location --request POST 'https://api.martianpay.com/v1/addresses/ma_HAmAJF5dIcLa7YE8YjQuf5lt/verify' \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic {BASE64_ENCODE(api_key + ":")}' \
--data-raw '{
"amount": "3621"
}'
Response:
{
"error_code": "success",
"msg": "success",
"data": {
"id": "ma_HAmAJF5dIcLa7YE8YjQuf5lt",
"merchant_id": "accu_M7PTgveSgMtTtPHbjFgEtAlD",
"network": "Ethereum Sepolia",
"address": "0xEe7f27Dfa8928F1A8F5fd5EBCe7aF8654c013124",
"verification_id": "av_OwHsFRITwl8Q23LaECVzPGwj",
"status": "success",
"alias": "",
"created_at": 1750081721,
"updated_at": 1750082171,
"verification": {
"id": "av_OwHsFRITwl8Q23LaECVzPGwj",
"status": "success",
"merchant_address_id": "ma_HAmAJF5dIcLa7YE8YjQuf5lt",
"asset_id": "USDC-Ethereum-TEST",
"verified_at": 1750082171,
"tried_times": 1,
"aml_status": "approved"
}
}
}
Understanding the Response
How to Check if the Request Was Successful:
| Field | Value | Meaning |
|---|---|---|
error_code | "success" | ✅ Verification completed successfully |
error_code | "invalid_amount" | ❌ Incorrect amount submitted |
error_code | "verification_expired" | ❌ Verification period expired, create new wallet |
error_code | "max_attempts_exceeded" | ❌ Too many failed attempts |
error_code | Other value | ❌ Other error occurred |
Key Success Indicators:
| Field | Value | Meaning |
|---|---|---|
status | "success" | ✅ Wallet verified & ready |
verification.status | "success" | ✅ Verification process completed |
verification.verified_at | Timestamp | When verification was completed |
Verification Fields:
| Field | Description |
|---|---|
status | Changed from verifying to success |
verification.status | Changed to success |
verification.verified_at | Timestamp of successful verification |
verification.tried_times | Number of attempts (should be ≤ allowed limit) |
verification.aml_status | AML check result (should be approved) |
What This Means:
- ✅ Wallet Verified: Address ownership confirmed
- ✅ Ready for Payouts: Can now use this wallet as
receive_account_idin Payout API - ✅ Permanent: Verification lasts forever, no need to re-verify
- ✅ Unlimited Use: Use for unlimited payout transactions
Failed Verification: If verification fails:
- Check
tried_timesto see how many attempts used - Maximum attempts typically 3-5
- If max exceeded, create a new wallet
- Ensure you're entering last 4 digits correctly
Next Steps:
- Save the wallet
idasreceive_account_idfor payouts - Use this verified wallet in Create Payout API
- No further action needed - wallet is ready for immediate use
- You can now withdraw funds to this address
After the verification is completed, the status changes to "success".
5. List Wallets
Retrieve a list of all registered wallet addresses in your account. This allows you to view and manage your existing wallet addresses.
For detailed API reference, see: List Wallets API
Request:
curl --location --request GET 'https://api.martianpay.com/v1/addresses?page=0&page_size=20&network=Ethereum%20Sepolia' \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic {BASE64_ENCODE(api_key + ":")}'
Response:
{
"error_code": "success",
"msg": "success",
"data": {
"merchant_addresses": [
{
"id": "ma_HAmAJF5dIcLa7YE8YjQuf5lt",
"merchant_id": "accu_M7PTgveSgMtTtPHbjFgEtAlD",
"network": "Ethereum Sepolia",
"address": "0xEe7f27Dfa8928F1A8F5fd5EBCe7aF8654c013124",
"verification_id": "av_OwHsFRITwl8Q23LaECVzPGwj",
"status": "success",
"alias": "",
"created_at": 1750081721,
"updated_at": 1750082171,
"verification": {
"id": "av_OwHsFRITwl8Q23LaECVzPGwj",
"status": "success",
"merchant_address_id": "ma_HAmAJF5dIcLa7YE8YjQuf5lt",
"asset_id": "USDC-Ethereum-TEST",
"verified_at": 1750082171,
"tried_times": 1,
"aml_status": "approved"
}
},
{
"id": "ma_HDbjWWxLdS764gK37jbMpvsF",
"merchant_id": "accu_M7PTgveSgMtTtPHbjFgEtAlD",
"network": "Ethereum Sepolia",
"address": "0x36279Ac046498bF0cb742622cCe22F3cE3c2AfD9",
"verification_id": "av_4OCclVdmIOI5474We4GnS2Qp",
"status": "success",
"alias": "",
"created_at": 1749729086,
"updated_at": 1749729282,
"verification": {
"id": "av_4OCclVdmIOI5474We4GnS2Qp",
"status": "success",
"merchant_address_id": "ma_HDbjWWxLdS764gK37jbMpvsF",
"asset_id": "USDC-Ethereum-TEST",
"verified_at": 1749729282,
"tried_times": 1,
"aml_status": "approved"
}
},
{
"id": "ma_mCNNhGuywcFHYdn92zYjnetg",
"merchant_id": "accu_M7PTgveSgMtTtPHbjFgEtAlD",
"network": "Ethereum Sepolia",
"address": "0x4D70EF843195868Ac626FEb9548203d03b336Fc3",
"verification_id": "av_Qph59LEI3MozKrMvJbC5yfAW",
"status": "success",
"alias": "",
"created_at": 1744186032,
"updated_at": 1744186282,
"verification": {
"id": "av_Qph59LEI3MozKrMvJbC5yfAW",
"status": "success",
"merchant_address_id": "ma_mCNNhGuywcFHYdn92zYjnetg",
"asset_id": "USDC-Ethereum-TEST",
"verified_at": 1744186282,
"tried_times": 3,
"aml_status": "approved"
}
},
{
"id": "ma_9JTpHOul5yMdRDn8mRNIgZ9z",
"merchant_id": "accu_M7PTgveSgMtTtPHbjFgEtAlD",
"network": "Ethereum Sepolia",
"address": "0x314fE2598Beb47bc323B5010f0f981B9de951DF9",
"verification_id": "av_yEhWG0IJW7AGGxHbryd9QNCz",
"status": "success",
"alias": "",
"created_at": 1743993800,
"updated_at": 1743998103,
"verification": {
"id": "av_yEhWG0IJW7AGGxHbryd9QNCz",
"status": "success",
"merchant_address_id": "ma_9JTpHOul5yMdRDn8mRNIgZ9z",
"asset_id": "USDC-Ethereum-TEST",
"verified_at": 1743998103,
"tried_times": 1,
"aml_status": "approved"
}
}
],
"total": 4,
"page": 0,
"page_size": 20
}
}
Understanding the Response
How to Check if the Request Was Successful:
| Field | Value | Meaning |
|---|---|---|
error_code | "success" | ✅ Wallets retrieved successfully |
error_code | Other value | ❌ Error occurred |
Key Fields:
- merchant_addresses: Array of all your wallet addresses
- total: Total number of wallets matching the query
- page: Current page number (0-based)
- page_size: Number of items per page
Wallet Status Summary:
| Status | Meaning | Can Use for Payouts? |
|---|---|---|
success | ✅ Verified and ready | Yes - ready to use |
verifying | ⏳ Awaiting verification | No - complete verification first |
created | ⏳ Created, payment pending | No - wait for micro-payment |
failed | ❌ Verification failed | No - retry or contact support |
Verification Information:
For each wallet, the verification object shows:
- status: Verification step status
- verified_at: When verification completed (null if pending)
- tried_times: Number of verification attempts
- aml_status: AML check result (approved, pending, rejected)
- asset_id: Cryptocurrency used for verification
Pagination:
- Use
pageandpage_sizeto navigate through results - If
total>page_size, there are more pages available - Next page: increase
pageby 1
Filtering:
- Use
networkparameter to filter by blockchain (e.g., "Ethereum Sepolia") - Use
statusparameter to filter by verification status - Combine filters to narrow results
Use Cases:
- Find all verified wallets ready for payouts
- Check verification status of pending wallets
- View all wallets for a specific network
- Manage and organize multiple withdrawal addresses
Next Steps:
- Use wallets with
status: successfor payouts - Complete verification for wallets with
status: verifying - Check
verification.tried_timesfor failed attempts - Filter by network to find wallets for specific blockchains
6. Update Wallet
Update the alias of an existing wallet address. This is the only property that can be modified, allowing you to better organize and identify your wallet addresses.
For detailed API reference, see: Update Wallet API
Request:
curl --location --request POST 'https://api.martianpay.com/v1/addresses/ma_HAmAJF5dIcLa7YE8YjQuf5lt' \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic {BASE64_ENCODE(api_key + ":")}' \
--data-raw '{"alias":"New Alias"}'
Response:
{
"error_code": "success",
"msg": "success",
"data": {
"id": "ma_HAmAJF5dIcLa7YE8YjQuf5lt",
"merchant_id": "accu_M7PTgveSgMtTtPHbjFgEtAlD",
"network": "Ethereum Sepolia",
"address": "0xEe7f27Dfa8928F1A8F5fd5EBCe7aF8654c013124",
"verification_id": "av_OwHsFRITwl8Q23LaECVzPGwj",
"status": "success",
"alias": "New Alias",
"created_at": 1750081721,
"updated_at": 1750082749,
"verification": {
"id": "av_OwHsFRITwl8Q23LaECVzPGwj",
"status": "success",
"merchant_address_id": "ma_HAmAJF5dIcLa7YE8YjQuf5lt",
"asset_id": "USDC-Ethereum-TEST",
"verified_at": 1750082171,
"tried_times": 1,
"aml_status": "approved"
}
}
}
Understanding the Response
How to Check if the Request Was Successful:
| Field | Value | Meaning |
|---|---|---|
error_code | "success" | ✅ Wallet alias updated successfully |
error_code | "wallet_not_found" | ❌ No wallet exists with this ID |
error_code | Other value | ❌ Other error occurred |
What Changed:
| Field | Before | After |
|---|---|---|
alias | Old alias or empty | New alias value |
updated_at | Old timestamp | New timestamp |
Key Points:
- Only Field Modifiable:
aliasis the ONLY field you can update - Cannot Change: Address, network, status, verification - these are immutable
- Updated Timestamp:
updated_atreflects the modification time - All Other Fields: Remain unchanged (address, network, status, etc.)
Use Cases for Alias:
- Organization: Label wallets by purpose (e.g., "Main Withdrawal", "Partner Payouts")
- Identification: Add meaningful names to distinguish between multiple wallets
- Team Collaboration: Help team members understand wallet purposes
- Record Keeping: Track which wallet is used for what purpose
Examples of Good Aliases:
- "Company Treasury Wallet"
- "Exchange Deposit - Binance"
- "Cold Storage Backup"
- "Partner Revenue Share"
- "Employee Payroll - Monthly"
Next Steps:
- Use updated alias to identify wallet in admin dashboards
- Update internal documentation with new alias
- The wallet
idremains the same for payout operations - Verification status and other fields are unaffected
7. Delete Wallet
Delete a wallet address from your account. This is useful when you no longer need a particular address or want to clean up unused addresses.
For detailed API reference, see: Delete Wallet API
Request:
curl --location --request DELETE 'https://api.martianpay.com/v1/addresses/ma_HAmAJF5dIcLa7YE8YjQuf5lt' \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic {BASE64_ENCODE(api_key + ":")}'
Response:
{
"error_code": "success",
"msg": "success"
}
Understanding the Response
How to Check if the Request Was Successful:
| Field | Value | Meaning |
|---|---|---|
error_code | "success" | ✅ Wallet deleted successfully |
error_code | "wallet_not_found" | ❌ No wallet exists with this ID |
error_code | "wallet_in_use" | ❌ Wallet is being used in active payouts |
error_code | Other value | ❌ Other error occurred |
What Happens:
- ✅ Wallet is permanently removed from your account
- ✅ Can no longer be used for payouts
- ❌ Cannot be undone - deletion is permanent
- ⚠️ Historical payout records referencing this wallet remain intact
When to Delete Wallets:
| Scenario | Safe to Delete? |
|---|---|
| Test wallet, no longer needed | ✅ Yes |
| Wallet verification failed | ✅ Yes |
| Wallet not used in any payouts | ✅ Yes |
| Wallet is in active/pending payouts | ❌ No - complete payouts first |
| Need to re-verify same address | ✅ Yes - delete and create new |
Important Warnings:
- No Undo: Once deleted, wallet cannot be recovered
- Active Payouts: Cannot delete wallets used in pending/processing payouts
- Re-Verification: If you delete and re-add same address, must verify again
- Historical Data: Past payout records remain but show wallet as deleted
Alternative to Deletion:
- Instead of deleting, consider updating the
aliasto mark as "Deprecated" or "Not Used" - This preserves historical reference while indicating it shouldn't be used
Next Steps:
- Ensure no active payouts are using this wallet before deletion
- If you need to use this address again, create a new wallet and verify
- Update any internal systems that referenced this wallet ID
- Use List Wallets API to confirm deletion