Create New Payment Address

View as Markdown

This method is used to generate a new address to give your clients, where they can send payments.

Notices:

  • The length of this request should not exceed 8192 characters.
  • Please keep in mind that before making any transaction, you should check the minimum transfer limit for the specific cryptocurrency or token you want to use. If you transfer an amount that's less than the minimum limit set by BlockBee, your transaction will be rejected.

Method: GET

Path: https://api.blockbee.io/{ticker}/create/

Parameters

Path Parameters

tickerstringRequired

The ticker parameter in this API request refers to the unique identifier of the cryptocurrency to which you are making the request. It is included in the URL of the request and helps to specify the exact cryptocurrency that you want to retrieve data for. The ticker is typically a short code that uniquely identifies the cryptocurrency, or the token and it's network/blockchain.

For example, btc is the ticker for Bitcoin, and trc20/usdt is the ticker for USDT over TRC-20. Having this in mind, a request for USDT over TRC-20 will look like this: https://api.blockbee.io/trc20/usdt/create/.

Notes:

Example:btc

Query Parameters

apikeystringRequired

API Key provided by BlockBee's Dashboard. Unsure how to get yours? Check this tutorial.

Note: The API key can also be sent as a header named apikey.

Example:your_api_key_here

callbackstringRequired

The URL where the callbacks will be sent to. Must be a valid URL.

Notes:

  • The callback URL should be unique. The same callback URL will return the same address_in, meaning it works similarly to an ID. You can make your callback URL unique by adding GET parameters, like: ?user_id=1234. These will also be returned in the callbacks.
  • You may reuse callback URLs if for example you wish to create a deposit address_in. Note though that, once an address_in is created, if for any reason you wish to change the address, either in the parameter or at BlockBee's Dashboard, BlockBee systems will not change the address_out, meaning you will need to change your callback URL to generate a new address_in.
  • We advise you to URL Encode the callback URL, otherwise the GET parameters you add may be lost.
  • GET parameters you add to the callback URL will be sent as GET, even if you enable the post parameter.
  • It's advised to store the callback URL when making creating a new payment address if you wish to use the logs endpoint later.
  • For the complete documentation on callbacks, please refer to our callback documentation.
Example:https://example.com/your_callback?invoice_id=123

addressstring

By default, addresses are set in BlockBee's Dashboard, and to be able to set them in this parameter you need to enable the option "Address Override" when creating the API Key. If you wish to use the addresses set in the Dashboard, you can ignore this parameter and leave it empty.

The address parameter is where you specify where BlockBee will forward your payment. You can enter a single address or multiple addresses if you want to split the payment to multiple addresses.

If you're using multiple addresses, you will need to format them like this: percentage_1@address_1|percentage_2@address_2 and so on (you may add up to 20 addresses to split the payment). Percentages can range from 0.0001 (0.01%) to 1.0 (100%) and must add up to 1.00 (100%).

Addresses must be valid for the ticker you're using, otherwise the API will reject the payment. For example, if you try using a Bitcoin address while requesting a USDT TRC-20 address, API will throw an error.

Notes:

  • For multiple addresses, the minimum value per transaction (see cryptocurrencies page) is multiplied by the following formula: 1 + (N - 1) / 3, where N is the number of output addresses.
  • For more information about multi-address minimums, check our knowledge base.
Example:1H6ZZpRmMnrw8ytepV3BYwMjYYnEkWDqVP

pendinginteger

Set to pending=1 to enable. If enabled you will be notified of pending transactions (transactions that were sent by the customer, but yet to be confirmed by the blockchain).

Notes:

  • To prevent repeated callbacks to your systems, the response to the callback request should be *ok* in plain text.
  • For a complete list of fields sent by our system, please refer to our pending callback documentation.
Example:1

confirmationsinteger

Number of blockchain confirmations you want before receiving the confirmed callback.

Min: 1

Example:3

postinteger

Set this to post=1 to enable. If enabled callback will be sent as POST.

If disabled, will default to GET.

Notes:

  • GET parameters you added to the callback URL will still be sent as GET.
  • Not compatible with the json parameter.
Example:1

jsoninteger

Set this to json=1 to enable. If enabled the callback body will be sent as JSON.

If disabled, will default to GET.

Notes:

  • GET parameters you added to the callback URL will still be sent as GET.
  • Not compatible with the post parameter.
Example:1

prioritystring

Allows you to set the priority with which funds should be forwarded to the provided address. It reflects the amount of fees paid to the blockchain network and can affect the speed of transaction confirmation.

Notes:

  • Only supported when using Bitcoin, Ethereum/ERC-20 and Litecoin. Priorities are different per each supported blockchain.
  • You can find the priorities to use with this endpoint, per blockchain, in our knowledge base.
Example:default

multi_tokeninteger

Allows customers to pay with any token supported by BlockBee API, even if the token is different from what the user initially specified.

However, you should ensure that your Wallet supports the tokens you expect customers to pay with and that your system can handle price conversions. For example, if a customer wishes to receive 1000 USDT (or equivalent) and a client sends 1000 TRX, the system should be able to handle that scenario.

Notes:

  • Make sure the wallet you're using supports all the tokens supported by BlockBee before enabling this parameter.
  • If you are using your favorite exchange's deposit address to receive the funds, it's advised to leave this parameter disabled, since sometimes the deposit addresses may differ between blockchains and tokens.
  • Disabled by default, use multi_token=1 to enable it.
  • Available only for TRC20 and all supported EVM-based blockchains (eg. ERC20, BEP20, POLYGON).
  • If disabled and the customer send a different token from the initially specified, BlockBee API will ignore these funds.
  • If enabled on unsupported blockchains, API won't throw an error. Instead it just ignores it.
  • For more information about this parameter, check our knowledge base.
Example:1

convertinteger

If enabled, returns the converted value converted to FIAT in the callback, with the parameters value_coin_convert and value_forwared_coin_convert.

Notes:

  • Disabled by default, use convert=1 to enable it.
  • The value of the fields are json-encoded.
Example:1

Returns

Returns the newly created payment address details.

address_instring

Address generated by our API. You must provide it to your customer in order to receive payments.

address_outstring

Your address(es), where the payment will be forwarded to, should be the same address(es) you provided.

callback_urlstring

The callback URL you provided.

prioritystring

The confirmation priority you requested.

minimum_transaction_coinnumber

The minimum transaction value coin. All the minimums can be found at our cryptocurrencies page.

statusstring

Status of the request. Should be success if the request didn't fail.