# Create a Checkout Deposit Link This method allows you to create a new Deposit link. **Notes:** * Enables multiple payments and can serve as a static deposit link for your platform. **Method:** `GET` **Path:** ``` https://api.blockbee.io/deposit/request/ ``` --- ## Parameters ### Query Parameters - **`apikey`** (`string`) (required): API Key provided by BlockBee's [Dashboard](https://dash.blockbee.io/). Unsure how to get yours? [Check this tutorial](/kb/tutorials/dashboard/how-to-generate-a-new-api-key). **Note:** The API key can also be sent as a header named `apikey`. - **`notify_url`** (`string`) (required) - Example: `https://example.com/callback/?user_id=1124`: URL where our system will send a payment notification (IPN), when a deposit is made. **Notes:** * URL-encode the notify URL, otherwise query parameters may be dropped * `GET` parameters you add to the notify URL will be sent as `GET`, even if you enable the `post` parameter * For a complete list of fields sent by our system, See the [webhook documentation](/webhooks/checkout-deposits-webhook) * To prevent repeated IPNs to your systems, the response to the IPN request should be `*ok*` in plain text * **Harden your webhook with a secret.** Add an unguessable value unique to each request (for example `?nonce=a1b2c3...`) and store it on your side. BlockBee returns it unchanged in every notification, so verify it in your webhook and reject any notification whose value you don't recognize. Use this together with [webhook signature verification](/webhooks/verify-webhook-signature). - **`currency`** (`string`) - Example: `eur`: Set the FIAT currency used in the `value` parameter. **Note:** Will override the FIAT currency set in your Payment Settings at BlockBee's [Dashboard](https://dash.blockbee.io/). **Supported FIAT currencies:** * (USD) United States Dollar * (EUR) Euro * (GBP) Great Britain Pound * (CAD) Canadian Dollar * (JPY) Japanese Yen * (AED) UAE Dollar * (MYR) Malaysian Ringgit * (IDR) Indonesian Rupiah * (THB) Thai Baht * (CHF) Swiss Franc * (SGD) Singapore Dollar * (RUB) Russian Ruble * (ZAR) South African Rand * (TRY) Turkish Lira * (LKR) Sri Lankan Rupee * (RON) Romanian Leu * (BGN) Bulgarian Lev * (HUF) Hungarian Forint * (CZK) Czech Koruna * (PHP) Philippine Peso * (PLN) Poland Zloti * (UGX) Uganda Shillings * (MXN) Mexican Peso * (INR) Indian Rupee * (HKD) Hong Kong Dollar * (CNY) Chinese Yuan * (BRL) Brazilian Real * (DKK) Danish Krone * (TWD) New Taiwan Dollar * (AUD) Australian Dollar * (NGN) Nigerian Naira * (SEK) Swedish Krona * (NOK) Norwegian Krone * (UAH) Ukrainian Hryvnia * (VND) Vietnamese Dong **Supported cryptocurrencies (for conversion):** * (BTC) Bitcoin * (ETH) Ethereum * (USDT) Tether USDt * (USDC) USD Coin * (SOL) Solana ...and many more listed on our [cryptocurrencies](https://blockbee.io/cryptocurrencies/) page (eg: `currency=btc`). - **`item_description`** (`string`) - Example: `Deposit #123`: Description of the product or service being paid. This information will appear on the Checkout page. - **`customer_name`** (`string`) - Example: `John Doe`: Your customer's name. Will be returned in the payment notification (webhook). - **`customer_email`** (`string`) - Example: `email@example.com`: Your customer's email. Will be returned in the payment notification (webhook). - **`post`** (`number`) - Example: `1`: Set this to `1` if you wish to receive the IPN as a `POST` request. If set to `0`, API will default to `GET`. **Notes:** * `GET` parameters you added to the `notify_url` URL will still be sent as `GET` - **`suggested_value`** (`number`) - Example: `10`: Set this field if you'd like to suggest a specific amount in the deposit link. Must be a number higher than 0. **Notes:** * If disabled, the deposit link will display the minimum transaction amount instead * This is a suggested value only. Transactions will still be processed if the customer sends less (or more) than the suggested amount, provided it meets our [minimum transaction](https://blockbee.io/cryptocurrencies/) requirements --- ## Returns Returns the deposit link response. Returns an error if there's there's a missing required parameter of if you didn't configure the payment settings correctly. - **`status`** (`string`): Status of the request. Should be `success` if the request didn't fail. - **`payment_url`** (`string`): Payment URL where your customer should be redirected to initiate the transaction. Note: It's possible to pre-select a cryptocurrency for the checkout page by using the `coin` GET parameter. * All of our supported tickers can be found at our [cryptocurrencies page](https://blockbee.io/cryptocurrencies/). Replace `/` with `_` in ticker paths (e.g. `trc20_usdt`). * Example: In order to pre-select Bitcoin for the payment, append `?coin=trc20_usdt` to the payment_url as the following example: `https://pay.blockbee.io/deposit/fG78jtx96ugjtu0eIbeLmFB9z0feJf9N?coin=trc20_usdt`. - **`payment_id`** (`string`): ID of the deposit. May be used with the [logs endpoint](/api/get-deposit-logs). ## Example Response ```json { "status": "success", "payment_url": "https://pay.blockbee.io/deposit/Zz87cpYde6cKszIwn0A6oOxea2i1eGoJ/", "payment_id": "Zz87cpYde6cKszIwn0A6oOxea2i1eGoJ" } ```