Wallet Payments (Per-User Wallets)

Wallet Payments

Wallet payments are designed for account-based payment flows where each end user is assigned a dedicated wallet and maintains a persistent balance over time.

This model is ideal for platforms, brokers, and applications where users deposit funds multiple times and interact with an ongoing balance.


How wallet payments work

Wallet payments follow a per-user wallet model:

  1. A user is created in 3PAY
  2. A dedicated wallet is assigned to that user
  3. Funds deposited to the wallet are credited to the user balance
  4. The balance persists across transactions
  5. Funds can be withdrawn or transferred according to permissions

Each wallet belongs to one user only.


User creation (required)

Before a wallet can be used, a user must be created in 3PAY.

Required user fields

The following fields are required when creating a user:

FieldTypeRequiredDescription
userIdstringUnique identifier for the user in your system
emailstringUser email address
phonestringUser phone number
firstNamestringUser first name
lastNamestringUser last name
descriptionstringOptional internal description
ℹ️

userId must be unique and consistent across your system and 3PAY.


Wallet assignment

Once a user is created:

  • A wallet is automatically associated with the user
  • The wallet is used for all deposits and balance tracking
  • Wallets are network-specific (e.g. ERC20, TRC20)

Wallet addresses are persistent and do not change between deposits.


Accepting payments into user wallets

To accept funds:

  1. Retrieve the user’s wallet details (address + network)
  2. Share the wallet address with the user
  3. User sends funds to the wallet
  4. 3PAY detects and confirms the on-chain transaction
  5. User balance is updated once settlement is complete

This flow does not require invoices.


Wallet balance & visibility

3PAY provides APIs to retrieve wallet information for a specific user.

Merchants can:

  • Retrieve the current wallet balance for a user
  • Retrieve wallet details, including wallet address and network

These APIs allow you to:

  • Display balances inside your application
  • Reconcile deposits per user
  • Trigger downstream logic (trading, access, payouts)

Sandbox testing

Wallet payments can be tested in the sandbox environment.

Network TypeAssetStandardTest Network
EthereumUSDTERC20Sepolia
TronUSDTTRC20Nile

If you need a testnet wallet or testnet funds, contact the 3PAY support team.


Integrating wallet payments

Wallet payments are typically used when:

  • Users have accounts in your system
  • Multiple deposits per user are expected
  • Balances must persist over time
  • Invoices are not required per transaction

If you only need one-time payments, consider Invoice Payments instead.


API reference links

Use the API Reference for implementation details.

Place the following links here using ReadMe’s API Reference linking feature:

  • 🔗 Create User → link to POST /users
  • 🔗 Get User Wallet Details → link to GET /users/{userId}/wallet
  • 🔗 Get User Wallet Balance → link to GET /users/{userId}/balance
  • 🔗 Wallet Deposit Webhooks → link to relevant webhook events

This keeps wallet logic cleanly separated between Guides and API Reference.


Important notes

  • Each user has one wallet per supported network
  • Sending funds on the wrong network may result in failed or delayed deposits
  • Wallet balances are updated only after required confirmations
  • Wallet addresses should be treated as sensitive information