The withdraw object

You must create a withdraw for a customer to send a defined amount to their wallet. While creating a withdraw, specify the currency, amount and ttl (expiration time). Upon success, you will receive a withdraw request. This is an alphanumeric code (LNURL), that your customer can use to receive funds. Your customer only needs to copy and paste the LNURL into their supported wallets.

If your Speed account’s balance is less than the withdraw request amount, then it will show an error. Otherwise, it will process the withdraw. Once paid, this withdraw request cannot be used again.


The transaction will not be processed if the fee is more than 100 SATS as of now.

    "id": "wi_xxxxxxxxxxxxxxxxxx",
    "object": "withdraw",
    "account_id": "acct_xxxxxxxxxxxxxxxxx",
    "livemode": false,
    "status": "unpaid",
    "amount": 100,
    "fees": null,
    "currency": "SATS",
    "target_currency": "SATS",
    "exchange_rate": 1,
    "target_amount": 100,
    "target_amount_paid": 0,
    "ttl": 600,
    "expires_at": 1668675662059,
    "withdraw_methods": [
    "withdraw_methods_options": {
        "onchain": {
            "id": "wioc_xxxxxxxxxxxxxxxx",
            "address": null
        "lnurl": {
            "id": "wiln_xxxxxxxxxxxxxx",
            "withdraw_request": null,
            "receiver_ln_invoice": null
    "paid_withdraw_request": null,
    "target_amount_paid_by": null,
    "target_amount_paid_at": null,
    "statement_descriptor": null,
    "created": 1668675062059,
    "modified": 1668675062059


id string
Unique identifier for the object.

object string
The type of the object indicates to which entity this response belongs.

account_id string
Unique identifier for the object account.

livemode boolean
If the object is in live mode, it has the value true; otherwise, it has the value false.

status enum
A withdraw object can have 4 statuses as mentioned below.

    The withdraw object has unpaid status after its generation until it is paid, cancelled, or expired.
    The withdraw object is marked paid once your customer receives the withdraw amount within the timeframe (ttl).
    If the withdraw is not paid within the stipulated time frame (ttl) then it will be marked as expired.
    When you cancel the withdraw, the status changes accordingly.

amount BigDecimal
This is the total amount you intend to send to your customer via withdraw. Please add a positive value. Values up to 32 digits can be handled by the amount param, which can have a decimal precision of up to 16 digits.

fees BigDecimal
Specifies the aggregated fee applied during this transaction.

currency string
The base currency in which you prefer to work.

target_currency string
The cryptocurrency in which you want to send funds to your customer. As of now, Speed only supports SATS.

exchange_rate BigDecimal
The exchange rate is used to convert the currency(base currency) into target_currency.

target_amount BigDecimal
The converted amount (from base currency to target_currency) for which the withdraw request is generated.

target_amount_paid BigDecimal
Once the withdraw is paid, this returns the exact amount transferred in the target_currency.

ttl integer
Represents the time duration until which the withdraw does not expire. (Specified in seconds). You can manually add the withdraw expiration time in seconds. The minimum time limit is 3 minute, and maximum is 1 year. The default is set at 600 seconds.

expires_at timestamp
Time at which the withdraw expires.

withdraw_methods enum
This indicates which withdraw method (inurl or on-chain) is used to send funds through withdraw.

withdraw_methods_options integer
This object contains two objects, lnurl, and on-chain, both specifying all the data required to process the withdraw.

    onchain object
    This object has all the data associated with the withdraw if the withdraw method is on-chain. This happens only in the case a payout is requested.

         id string
         Unique identifier for the on-chain object.

         address string
         It specifies the BTC wallet address from which the withdraw is processed.

    lnurl object
    This object has all the data associated with the withdraw if the withdraw method is lnurl.

         id string
         Unique identifier for the lnurl object.

         withdraw_request string
         This is an LNURL that your customer can use to receive funds.

         receiver_ln_invoice string
         Once the funds are transferred through LNURL, this returns the id of the receiver’s invoice.

paid_withdraw_request string
This specifies the LNURL used to pay this withdraw.

target_amount_paid_by string
This specifies the id of the withdraw method object through which the withdraw was processed.

target_amount_paid_at timestamp
Time at which the withdraw was paid.

statement_descriptor string
Additional information about the withdraw made to an account.

created timestamp
Time at which the withdraw object was created.

modified timestamp
Time at which the last modification was made.