Overview

Payment receivers generate a Lightning invoice. You can pay a valid invoice by providing the invoice string and optional parameters such as fee limits and additional metadata. Payments route over the Lightning Network and typically settle (or fail) immediately.

Note

Currently, BitGo limits individual Lightning transactions to a value of $500 USD or less.

Prerequisites

  • Get Started.
  • Set Up Go Account.
  • Sign a Lightning license (custodyLightningWallet for custody wallets and custodyGoLightning for Go Lighting) for your enterprise by contacting support@bitgo.com.
  • Fund Go Account (ofcbtc / ofctbtc), is using Go Lightning.

Cookbook

Need just the steps? Expand the cookbook below to get started:

Pay Lightning Invoice - CustodyOpen Cookbook Pay Lightning Invoice - Go Lightning (Manual)Open Cookbook Pay Lightning Invoice (Go Lightning Simple)Open Cookbook

1. Pay Invoice

Endpoint: Lightning - Pay a Lightning Invoice

export BITGO_EXPRESS_HOST="<YOUR_LOCALHOST>"
export COIN="tlnbtc"
export WALLET_ID="<YOUR_WALLET_ID>"
export ACCESS_TOKEN="<YOUR_ACCESS_TOKEN>"
export ADDRESS="<DESTINATION_ADDRESS>"
export AMOUNT="<AMOUNT_IN_BASE_UNITS>"
export WALLET_PASSPHRASE="<YOUR_WALLET_PASSPHRASE>"

curl -X POST \
  http://$BITGO_EXPRESS_HOST/api/v2/$COIN/wallet/$WALLET_ID/lightning/payment \
  -H 'Content-Type: application/json' \
  -H "Authorization: Bearer $ACCESS_TOKEN" \
  -d '{
    "invoice": string,                       # Encoded payment request (required)
    "passphrase": "'"$WALLET_PASSPHRASE"'",  # Wallet passphrase (required)
    "amountMsat": string,     # Amount to pay in millisatoshis (optional, required for zero-amount invoices)
    "feeLimitMsat": string,   # Maximum fee to pay in millisatoshis
    "feeLimitRatio": number,  # Maximum fee expressed as a ratio of the payment amount
    "sequenceId": string,     # Custom identifier for tracking the payment
    "comment": string         # Additional note or comment for internal reference
}'

Step Result

{
    "txRequestId": string,
    "txRequestState": delivered,
    "paymentStatus": {
      "status": pending,
      "paymentHash": string,
      "paymentPreimage": string,
      "amountMsat": string,
      "feeMsat": string,
      "failureReason": string
    },
    "transfer": {
      "id": string,
      "coin": string,
      "wallet": string,
      "walletType": string,
      "enterprise": string,
      "organization": string,
      "txid": string,
      "state": string,
      "type": string,
      "value": number,
      "valueString": string,
      "coinSpecific": {
        "isOffchain": boolean,
        "invoice": string
      }
    }
}

See Also

Blockchain Reference: Bitcoin Lightning Network