Stablecoin payments are becoming a mainstream way for businesses across Africa and global markets to collect funds. USDT and USDC now account for a significant share of cryptocurrency transaction volume because they offer fast settlement, lower transaction costs, and predictable value compared to traditional cross-border payment methods.
For many businesses, however, accepting stablecoins introduces a new challenge: managing wallets, handling conversions, and moving funds into a usable currency.
The Afriex crypto wallet endpoint simplifies this process. You generate a wallet address for USDT or USDC, your customer sends funds to that address, and Afriex automatically converts the deposit into its USD equivalent in your business balance.
There is no manual conversion step, no separate swap operation, and no need to hold cryptocurrency after the payment is received.
Generate a USDT or USDC wallet address
Getting started requires a single API call and one required parameter:
const wallet = await afriex.paymentMethods.getCryptoWallet({
asset: "USDT", // or "USDC"
customerId: "optional-customer-id",
});
If you omit customerId, the wallet belongs directly to your business account. This is useful when you want a single shared collection address for all incoming crypto payments.
If you provide a customerId, the wallet is associated with that specific customer. This approach is ideal when you need automatic payment attribution and want to know exactly which customer made a deposit without requiring payment references or manual reconciliation.
The endpoint is idempotent. Requesting a wallet for the same asset and customer multiple times returns the same wallet address each time.
{
"data": {
"id": "695271a3ba52c13b669fad2b",
"addresses": [
{ "address": "0x1234567890123456789012345678901234567890", "network": "ETHEREUM_MAINNET" },
{ "address": "TYASr5UV6HEcXatwdFQfmLVUqQQQMUxHLS", "network": "TRON_MAINNET" }
]
}
}
For USDT wallets, Afriex returns addresses on both Ethereum and Tron networks. You can share whichever network your customer prefers. In most cases, Tron offers lower transaction fees and is often the more economical option for senders.
How crypto deposits are converted to USD
Once USDT or USDC arrives at the generated wallet address, Afriex automatically converts the funds into their USD equivalent and records the transaction as a DEPOSIT in your account.
No additional API calls are required.
The balance that appears in your business wallet is already denominated in USD, making it easier to manage accounting, payouts, and reporting without handling cryptocurrency directly.
This workflow is especially useful for businesses that want to accept stablecoin payments while operating entirely in USD.
Detecting successful crypto payments
One important operational detail is that there is currently no dedicated webhook event for crypto-to-USD conversion deposits.
If your application relies on real-time payment notifications, you should monitor incoming deposits by polling the transactions endpoint and looking for new DEPOSIT records associated with the wallet's payment method.
const transactions = await afriex.transactions.list({
type: "DEPOSIT",
// filter or sort by createdAt to catch new ones
});
A common production approach is to poll periodically, track the latest processed transaction, and reconcile new deposits as they appear.
This ensures your system can reliably identify successful payments and update customer records automatically.
Production requirements and limitations
Like Afriex virtual accounts and pool accounts, crypto wallet collection is available only in the production environment.
The endpoint is not available in staging or sandbox environments.
During development, you should test your payment processing logic using mocked responses and validate the end-to-end deposit flow after going live.
If you provide a customerId, the associated customer must be verified. Requests made with an unverified customer return a 400 validation error instead of a wallet address.
Crypto wallet vs virtual account
Both crypto wallets and virtual accounts ultimately create attributable deposits in your Afriex account, but they solve different payment collection problems.
Use a virtual account when:
- Customers pay via local bank transfer
- Customers prefer traditional banking rails
- You are collecting fiat currency payments
Use a crypto wallet when:
- Customers already hold USDT or USDC
- You want to accept stablecoin payments
- You serve freelancers, remote workers, diaspora customers, or crypto-native businesses
- Customers prefer blockchain-based payment methods
Virtual accounts are covered in the virtual accounts guide.
The Afriex crypto wallet endpoint is designed for businesses that want the speed and accessibility of stablecoin payments while keeping settlement and accounting simple through automatic USD conversion.
Frequently Asked Questions
Does Afriex support USDT on Tron?
Yes. When you create a USDT wallet, Afriex returns wallet addresses for both the Ethereum and Tron networks.
const wallet = await afriex.paymentMethods.getCryptoWallet({
asset: "USDT",
});
You can provide either address to your customer depending on the network they intend to use. In many cases, Tron is preferred because transaction fees are typically lower than Ethereum.
Does Afriex support USDC payments?
Yes. The crypto wallet endpoint supports both USDT and USDC.
const wallet = await afriex.paymentMethods.getCryptoWallet({
asset: "USDC",
});
Once funds are received, Afriex automatically converts the deposit into its USD equivalent and credits your business balance.
How are crypto deposits settled?
Crypto deposits are settled automatically in USD.
When a customer sends USDT or USDC to a generated wallet address:
- The blockchain confirms the transaction.
- Afriex receives the stablecoin deposit.
- The deposit is automatically converted into USD.
- A
DEPOSITtransaction is created in your account. - Your USD balance is updated.
No separate conversion request or manual swap operation is required.
Can I receive payment notifications through webhooks?
Currently, Afriex does not emit a dedicated webhook event when a crypto deposit is converted into USD.
To detect new crypto payments, periodically query the Transactions API and look for newly created DEPOSIT transactions.
const transactions = await afriex.transactions.list({
type: "DEPOSIT",
});
Many production systems poll this endpoint at regular intervals and reconcile newly discovered deposits automatically.
Can I create separate wallets for different customers?
Yes.
Pass a customerId when creating a wallet to generate a customer-scoped payment destination.
const wallet = await afriex.paymentMethods.getCryptoWallet({
asset: "USDT",
customerId: customer.id,
});
This makes payment attribution significantly easier because deposits can be associated directly with the customer who owns the wallet.
Is the crypto wallet endpoint available in sandbox mode?
No.
The crypto wallet endpoint is currently available only in production environments. During development, use mocked responses and test payment reconciliation workflows before validating against live deposits.
Depending on how your customers prefer to pay, you may need a combination of crypto payment collection, bank transfers, and payout infrastructure.
Afriex Virtual Accounts
Use virtual accounts when customers need to pay via local bank transfer rather than cryptocurrency.
Virtual accounts provide dedicated account details that make payment collection and reconciliation easier for fiat transactions.
Recommended for:
- Local bank transfers
- Customer deposits
- Marketplace payments
- Subscription collections
Read next: Afriex Virtual Accounts: A Developer's Guide to Dedicated and Pool Accounts
Afriex Pool Accounts
Pool accounts are useful when you want to collect payments into a shared account and attribute funds programmatically after receipt.
Recommended for:
- High-volume payment collection
- Marketplaces
- Platforms with many users
- Automated reconciliation workflows
Transactions API
The Transactions API is particularly important when working with crypto deposits because it allows you to:
- Detect successful deposits
- Reconcile incoming payments
- Build internal payment ledgers
- Trigger business workflows after settlement
If you plan to accept USDT or USDC payments in production, this endpoint will likely become a core part of your integration.
Customer Verification
When creating customer-scoped wallets, ensure the associated customer has completed verification requirements.
Unverified customers will receive validation errors when attempting to create crypto wallets tied to their account.
Customer verification is therefore an important prerequisite for customer-specific payment collection workflows.
Conclusion
The Afriex crypto wallet endpoint makes it easy to accept USDT and USDC payments without managing conversions yourself. Generate a wallet address, receive stablecoin payments, and have deposits automatically settled in USD.
If you're ready to start accepting stablecoin payments, create an Afriex account, complete your business setup, and begin collecting USDT and USDC with automatic USD settlement.





