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

# Crypto deposits integration guide

You can receive crypto deposits from your customers with and without automatic conversion. Deposits with conversion are automatically converted to your preferred currency.

![Deposit flow: the merchant requests a deposit address, the customer sends funds to it, and the balance is credited once the required confirmations are reached](https://mintcdn.com/cr-can/mbcsyiIu96I71U7S/images/deposits/deposit-flow.jpg?fit=max\&auto=format\&n=mbcsyiIu96I71U7S\&q=85\&s=549017eae610ef0e9697aa0808387dd3)

## Set up crypto deposits

**1. Complete your onboarding**

Configure your account and get an API key, see [Initial setup](https://docs.ca.cryptoprocessing.com/initial-setup.md).

**2. Request and receive a unique deposit address**

Send a request to [/v2/addresses/take](https://docs.ca.cryptoprocessing.com/api-reference/endpoints/addresses-take.md) and get a crypto deposit address. You can reuse an address if the same customer is making another deposit in the same currency. We recommend using one address for each user.

**request body example**

```json theme={null}
{
  "currency": "BTC",
  "convert_to": "USD",
  "foreign_id": "user_12345",
  "end_user_reference": "user_12345",
  "sender_type": "legal",
  "sender_data": {
    "legal_name": "Example Customer",
    "country_of_registration": "CAN"
  }
}
```

**response body example**

```json theme={null}
{
  "data": {
    "id": 240407212,
    "currency": "BTC",
    "convert_to": "USD",
    "address": "bc1qt34xxkuq6q4myvhnxflj5tquvrdqqqsqk7vyfy",
    "tag": null,
    "foreign_id": "user_12345",
    "end_user_reference": "user_12345"
  }
}
```

**3. Display the address to the customer**

Your customer will see their deposit address in your [payment form](https://docs.ca.cryptoprocessing.com/deposits/design-payment-form.md).

**4. Process the deposit**

Once your customer makes the deposit, CryptoProcessing will send you a [deposit callback](https://docs.ca.cryptoprocessing.com/api-reference/callbacks/deposit-callbacks.md). Find the customer by the callback's `crypto_address.foreign_id`, the `foreign_id` you sent to [/v2/addresses/take](https://docs.ca.cryptoprocessing.com/api-reference/endpoints/addresses-take.md), and update their balance on your site.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.