> ## Documentation Index
> Fetch the complete documentation index at: https://docs.alphapo.net/llms.txt
> Use this file to discover all available pages before exploring further.

# Crypto deposits

Deposits are a way for your customers to send you arbitrary amounts of cryptocurrency. Whenever they do so, funds will be added to your balance in AlphaPo. Typically, at this point you may want to add the received amount to the customer's balance on your site.

To start receiving deposits, create a [deposit address](#reusing-addresses) and give it to your customer. AlphaPo constantly monitors the blockchain for new transactions to all deposit addresses ever created. Your balance is updated as soon as the transaction gets the required number of [confirmations](/confirmations-and-limits). Optionally, AlphaPo can perform [automatic conversion](#deposits-with-conversion) of the received funds to another currency.

[Fees](/deposits/fees) and [minimal deposit amounts](/confirmations-and-limits) apply.

## Types of deposit addresses

AlphaPo processes crypto deposits in different ways, based on the way the deposit address was created.

<AccordionGroup>
  <Accordion icon="code" id="system-deposit-addresses" title="System deposit addresses — created for your customers via the API">
    System deposit addresses are created and intended to be used as part of an [automated integration](/deposits/integration-guide) with your site. Typically, your site may generate and show an address to each customer, so that they top up their balance on your site.

    To create such an address, use the [API endpoint](/api-reference/endpoints/addresses-take). Enable [automatic conversion](#deposits-with-conversion) if necessary. Each incoming transaction to the address will trigger an [API callback](/api-reference/callbacks/deposit-callbacks).

    In the merchant dashboard, these addresses can be found at **Addresses → System Addresses**.
  </Accordion>

  <Accordion icon="user" id="customer-deposit-addresses" title="Customer deposit addresses — created for your customers via the dashboard">
    Customer deposit addresses are created and managed by you in **Addresses → My Addresses**. You manually provide such address to your customer, so that they top up their balance on your site. Each address can have a name for easier search, e.g., "Deposits from John Doe".

    To create such an address, go to the **Addresses → My Addresses** tab and click **Create address**. Alternatively, select a cryptocurrency on the **Balances** tab, click **Receive**, then click **Create new address**. Enable [automatic conversion](#deposits-with-conversion) if necessary.

    AlphaPo does not send API callbacks for the transactions to customer deposit addresses.
  </Accordion>

  <Accordion icon="lock" id="merchant-top-up-addresses" title="Merchant top-up addresses — created automatically for your team">
    Merchant top-up addresses are generated automatically when you enable a new cryptocurrency in your merchant dashboard. You can use these addresses to top up your balance.

    These addresses can be found at **Addresses → My Addresses** under the names "BTC deposit address", "ETH deposit address", etc. Alternatively, select a cryptocurrency on the **Balances** tab, click **Receive** and see the default address.

    Transactions to these addresses may have different [fees](/deposits/fees) than to the other addresses. These addresses are intended for usage by the merchant team only. You must not share the merchant top-up addresses with your customers.

    AlphaPo does not send API callbacks for the transactions to merchant top-up addresses.
  </Accordion>
</AccordionGroup>

## Deposits with conversion

When creating a deposit address in one currency, you can enable automatic conversion of all incoming funds. If enabled, the amount of each deposit to this address will be instantly converted to the specified target currency.

Enabling conversion is possible for system addresses and customer deposit addresses (see [Types of deposit addresses](#reusing-addresses)). The target currency can be crypto or fiat.

Each conversion is made using the current currency rates at the time of processing the transaction.

## Reusing addresses

In cryptocurrencies, an address cannot be "deleted" or "closed": once you created it, your customer can send funds to the address at any time. AlphaPo constantly monitors the blockchain for new transactions to all deposit addresses ever created.

It is good practice to have only one deposit address for one currency per user. This way, the customer can save the address in their wallet app's address book to create new transactions in a more convenient way.

However, you can create more than one deposit address per customer. This is useful if you need to use different [conversion](#deposits-with-conversion) configurations or if your customer has two different balances on your site.

## Off-chain deposits

If the funds come from an address that happens to be controlled by AlphaPo, too, the transaction is being processed *off-chain*. This means that AlphaPo registers the transaction internally, even though it was never sent to the blockchain.

Just like a standard deposit, an off-chain deposit can be found on the **Transactions** tab. However, an off-chain deposit has an internal **TXID** instead of a public one. You can use this **TXID** to find the transaction in the merchant dashboard, but not in a blockchain explorer.

In the [API callback](/api-reference/callbacks/deposit-callbacks), an off-chain deposit has the `transaction.transaction_type` property set to `"internal"` instead of `"blockchain"`.

The [fee](/deposits/fees) for an off-chain deposit may differ from the standard one.

## Further reading

<Card horizontal icon="hammer" title="Integration guide for deposits" href="/deposits/integration-guide">
  Learn how to integrate the deposit flow into your site
</Card>

<Card horizontal icon="list-check" title="Test cases for deposits" href="/deposits/test-cases">
  Walk through all scenarios to make sure your integration works correctly
</Card>

<Card horizontal icon="code" title="/addresses/take" href="/api-reference/endpoints/addresses-take">
  API endpoint
</Card>

<Card horizontal icon="tower-broadcast" title="deposit, deposit_exchange" href="/api-reference/callbacks/deposit-callbacks">
  API callbacks
</Card>
