# Create a Checkout Payment Link This method allows you to request a new Payment link. **Notes:** * Supports partial payments and prompts the customer to complete the remaining balance if the full amount isn't paid. **Method:** `GET` **Path:** ``` https://api.blockbee.io/checkout/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](https://support.blockbee.io/support/solutions/articles/204000013926-how-to-generate-a-new-api-key). **Note:** The API key can also be sent as a header named `apikey`. - **`redirect_url`** (`string`) (required) - Example: `https://example.com/success/?order_id=12345`: URL where your customers will be redirected to after successfully completing the payment. The `success_token` token will be added as GET parameter to this URL, together with any GET parameter you might have provided in your `redirect_url`, which can be used to validate the payment. **Notes:** * Even though it's possible to use this page to validate the payment, we recommend using the `notify_url` - **`value`** (`string`) (required) - Example: `10`: Value of the order in the FIAT currency set in your Payment Settings at BlockBee's [Dashboard](https://dash.blockbee.io/). - **`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: `Order #1234`: Description of the product or service being paid. This information will appear on the Checkout page. - **`expire_at`** (`number`) - Example: `1673438907`: Epoch time in seconds at which the Checkout payment will expire. **Notes:** * Minimum is 1h * If not set, the Payment link will never expire * **Timestamp must be in seconds** - **`notify_url`** (`string`) - Example: `https://example.com/callback/?order_id=12345`: URL where our system will send a payment notification (IPN), when a deposit is made. **Notes:** * We advise you to URL Encode the notify URL, otherwise the `GET` parameters you add may be lost * `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, please refer to our [webhook documentation](/webhooks/checkout-payments-webhook) * To prevent repeated IPNs to your systems, the response to the IPN request should be `*ok*` in plain text - **`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` --- ## Returns Returns the payment 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`) (required): Status of the request. Should be `success` if the request didn't fail. - **`payment_id`** (`string`) (required): ID of the checkout payment. May be used with the [logs](/api/checkoutlogs) endpoint. - **`success_token`** (`string`) (required): A unique token that is passed to your `redirect_url` to verify the payment's authenticity on your end. - **`payment_url`** (`string`) (required): The URL for the hosted checkout page where the user can complete the payment. ## Example Response ```json { "status": "success", "payment_id": "fG78jtx96ugjtu0eIbeLmFB9z0feJf9N", "success_token": "fG78jtx96ugjtu0eIbeLmFB9z0feJf9NfG78jtx96ugjtu0eIbeLmFB9z0feJf9N", "payment_url": "https://pay.blockbee.io/payment/fG78jtx96ugjtu0eIbeLmFB9z0feJf9N" } ```