Skip to main content
You can receive crypto deposits from your customers with and without exchange. At your request, AlphaPo generates a crypto address that you can share with your customers. Once a customer makes a deposit, AlphaPo sends you a callback to notify you. You can then top up the customer’s balance on your site with the same amount.

Generate a crypto address

The most common scenario is to automatically generate a crypto address for every new customer. To do that, you can use /v2/addresses/take API endpoint. You need to include the customer’s foreign_id, which can be any data about the user or the transaction you need to process the deposit on your side. To boost conversion rates from cryptocurrency payments, design a user-friendly payment form. For tips on how to improve the form, see Design a crypto payment form. For XRP, you also need to display the customer’s personal tag alongside their address. XRP deposits sent without a tag may be lost. You can create multiple addresses for the same customer.
Warning: If the customer makes the deposit in the wrong cryptocurrency (for example, they send ETH or USDC ERC-20 to a SOL address), the deposit may be lost. When sharing an address with your customers, always display the currency’s name and network next to it.

Receive deposits with exchange

For deposits with exchange, all received deposits will be automatically converted to the currency you specified. For example, a customer can top up their EUR balance on your site with BTC, which will be automatically converted to EUR by AlphaPo. To specify which currency you want the deposit to be converted to, include the convert_to parameter when making a request to /v2/addresses/take. Once your customer makes a deposit, you will receive a callback with all the relevant data, including the amount of the deposit and the amount of fees charged by AlphaPo. For more details, see Callbacks. Deposits Alphapo
For USDC and USDG tokens, the exchange rate is always 1:1. For example, 1 USDC on ERC-20 is always equivalent to 1 USDC on SOL.

Receive deposits without exchange

For deposits without exchange, you will receive the currency the customer deposited. Once your customer makes a deposit, you will receive a callback with all the relevant data, including the amount of the deposit and the amount of fees charged by AlphaPo. For more details, see Callbacks.

Handle deposits sent in the wrong currency, on the wrong network or without a tag

Some deposits may not show on your balance automatically or might be lost. Most common cases include:
  • Deposits sent in the wrong currency on the same network.
  • Deposits sent in an unsupported currencies on the same network.
  • XRP and TON deposits sent without a tag or with the wrong tag.
  • Deposits sent on the wrong network.
For the list of supported currencies and the networks they are on, see Supported currencies.

Deposits that are on the same network

Deposits in these currencies will be credited to your balance automatically, but you will not receive a callback. For deposit addresses with exchange, deposits in the wrong currency will also not be exchanged.
NetworkCurrencies that share this network
Ethereum, Polygon and BNB Smart Chain (EVM-compatible chains)ETH, POL, USDC (ERC‐20), USDC (POL), USDT (ERC‐20), USDT (POL), BXBT (ERC‐20), DAI (ERC‐20), EURS (ERC‐20), XED (ERC‐20), BNB‐BSC, SNACK (BEP‐20), USDT (BEP‐20)
SolanaSOL, USDC (SOL)
TronTRX, USDT (TRX)
These deposits sent without a tag will not be credited to your balance automatically. To recover your deposit, contact our support team at [email protected] or using the widget in your merchant dashboard.
NetworkCurrencies that share this network
TONTON, USDT (TON)
If the address is meant for deposits with exchange, deposits in the wrong currency will not be exchanged. For example, if you created an ETH address with conversion to EUR, a USDC ERC-20 deposit sent to this address will not be automatically converted to any currency. You will receive the currency that you or your customer deposited, without conversion.

Deposits within the same network

All deposits sent to your EVM-compatible addresses (starting with 0x) will be bridged to the correct chain and credited to your balance automatically. However, you will not receive a callback and they will not be automatically exchanged. This applies to Ethereum and Binance Smart Chain.
If you received a deposit in the wrong currency on the same network that is supported by AlphaPo, it will still appear on your balance, but you will not receive a callback. For example, if you generate an Ethereum address for ETH and your customer sends USDC ERC-20 to it, you will still see the USDC deposit on your balance, but AlphaPo will not notify you with a callback. You can manually convert the customer’s deposit to your currency of choice (see Exchanges) and credit their balance on your site. To see transactions that were sent in the wrong currency, go to Transactions in your merchant dashboard. Click Filters to expand the filter section and select Only cross-currency from the Cross-currency dropdown list. To find a specific transaction, enter its TXID (the transaction’s hash on the blockchain). All cross-currency transactions will have Cross currency deposit in the Note field.

Deposits in unsupported currencies

You will not see deposits in unsupported currencies in your merchant dashboard. For example, this applies to all unsupported ERC-20 tokens sent to your Ethereum address, unsupported SPL tokens sent to your Solana address and other similar cases. The deposits will be credited to the address on the blockchain, but you will not see them on your balance in your AlphaPo merchant dashboard. To see if your deposit can be recovered, contact our support team at [email protected] or using the widget in your merchant dashboard.

XRP or TON deposits sent without a tag or with the wrong tag

XRP or TON deposits sent without a tag or with the wrong tag will not be credited to you automatically. To see if your XRP or TON deposit can be recovered, contact our support team at [email protected] or using the widget in your merchant dashboard.

Deposits across different networks

If your customer sent a deposit on the wrong network (for example, BTC to an Ethereum address), you will not be able to access it. The only exceptions are Ethereum and Binance Smart Chain. As these are EVM-compatible networks, deposits can be seamlessly bridged between them. To prevent this in future, always clearly specify the currency name and network when you share the address with your customers. You should also notify customers that deposits sent to the wrong address cannot be recovered, so they should always double-check the currency and the network before they send a transaction. To see if your deposit can be recovered, contact our support team at [email protected] or using the widget in your merchant dashboard.

Delete an address

Once a crypto address is created, it cannot be deleted and remains on the blockchain forever. If you want to generate a new address for a customer, notify them about the change and ask them to stop making deposits to the old address.

Should I use deposits or invoices?

In some cases, you can use invoices instead of deposits (for more details, see Create invoices). Like deposits, invoices let you generate a crypto address and accept payments to your balance. There are several key differences between invoices and deposits:
  • Once the deposit address is created, you cannot change its currency. With invoices, you have the option to let the user choose their preferred currency. In this case, the receiving address only will be generated once the user chooses their currency.
  • With invoices, you can lock the exchange rate for 15 minutes from the moment the invoice is created. This may be useful, for example, when your ultimate goal is to receive a certain amount of fiat currency at the current exchange rate, regardless of the exchange rate at the moment of payment.
  • Once a deposit address is created, it can be used for an unlimited period of time. Invoices can expire for a number of reasons, including timer expiration or acceptance of sufficient funds from the user. Once an invoice expires, the user will not be able to top up the balance using the same invoice again.
Note that with deposits, you usually give the user the crypto address itself and the user simply sends funds to it using their software wallet, With invoices, you can just pass the URL and the user interacts with AlphaPo using the web interface.

Reusing addresses vs generating new addresses

If you need to differentiate between two or more payment categories for the same user of your site, you can create multiple deposit addresses. You will always see which address has been used for every specific transaction both on the Transactions tab and in the callback that you receive after each transaction. However, AlphaPo always continues to monitor payments to old deposit addresses, even after you have created a new one for the same balance and user. The reason is that with cryptocurrencies, it is impossible to “delete” or “close” an existing address, so there is always the possibility that the user has saved the previous address in their software wallet and will make a payment to this address later. It is good practice to have only one deposit address for one currency per user and reuse it instead of generating new ones each time.

Create deposit addresses using the API

To generate deposit addresses via the API, use the addresses/take API endpoint. When calling it, you need to specify the currency of the deposit and, optionally, the target currency (for a deposit with the exchange function). In the response, you will get a newly created address that you can provide to your user. On each transaction to this address, AlphaPo then notifies you with a callback, see Callbacks. A request to the endpoint needs to include an additional identifier, foreign_id. The foreign_id value may be an identifier of the end user or the operation or any additional information needed for your flow. It will be included in the response and in all the callbacks for the deposits to this address. For deposits in BTC, BCH and ETH, the callback will contain the riskscore value that is used for coin compliance analysis and to detect and track malicious behavior. All the addresses generated in this way can be found in the System Addresses section of the Addresses tab.

Create and manage deposit addresses in the back-office

There are two places in the AlphaPo interface where you can create and manage deposit addreses: the Addresses tab and the Balances tab.
  • The Addresses tab shows the list of all your deposit addresses, divided between two sections: My Addresses and System Addresses. The System Addresses section displays all the addresses created using the API and deposit exchange addresses created using the back-office, while the My Addresses section contains those created using the back-office, either on this tab (using the Create address button) or on the Balances tab.
  • The Balances tab gives you access to various balances-related operations, and getting the deposit addresses is one of them. The Receive and Top up dialogs that you can reach from this tab allow you to view the existing addresses for the selected cryptocurrency or create new ones.
Note that AlphaPo does not send callbacks for the deposits to the addresses created on the Balances tab.

Fees

AlphaPo charges a fee when processing deposits. Full details on the fees applied to a given transaction are always available on the Transaction tab and in the callback that you receive after the transaction. It is up to you to decide whether you want to account for the fee when topping up the user’s balance on your site. The exact fee rates depend on your agreement and are listed on the Fees tab in the back-office. If you have any questions, please contact our sales manager.

Exchange rates

The exchange rates for supported pairs depend on the external services that we use and are calculated at the time of the exchange. If you need more control over the exchange process, consider using Exchanges or Invoices. For exchanges between USDT and USDC tokens, the exchange rate is always 1:1. For example, 1 USDT on TRC-20 is always equivalent to 1 USDT on ERC-20. Standard fees for deposits with exchange still apply.

Tag field

For most cryptocurrencies, the only field a user needs to specify the recipient is an address. This address can be displayed in your interface directly or encoded as a QR code. But sometimes the address is not enough for a successful payment. For example, Ripple has a concept of “multiuser addresses” which require a Tag field to distinguish between recipients. Sometimes this concept is also known as the “memo” field. AlphaPo provides the Tag field for Ripple addresses both in the back-office and in the API. In other cryptocurrencies, this field may also be known as “Memo”, “Comment”, “Label”, or “DigitalID”. When using deposits for such a currency, make sure you provide the user with both the address and the Tag field. The absence of the Tag field may result in the loss of the funds sent by the user. In the Receive dialog, no QR code is displayed for the cryptocurrencies with Tag fields.