"description":"\nReturns a JSON list with the current status of all **installed** apps\n```\n[\n {\n id: 'specter',\n name: 'Specter Desktop',\n status: 'online'\n },\n {\n id: 'sphinx',\n name: 'Sphinx Chat',\n status: 'online'\n },\n ...\n]\n```\n",
"content":{
"application/json":{
"schema":{}
}
}
}
},
"security":[
{
"JWTBearer":[]
}
]
}
},
"/apps/status/{id}":{
"get":{
"tags":[
"Apps"
],
"summary":"Get the status of a single app by id.",
"operationId":"apps_status_apps_status__id__get",
"parameters":[
{
"required":true,
"schema":{
"title":"Id"
},
"name":"id",
"in":"path"
}
],
"responses":{
"200":{
"description":"Successful Response",
"content":{
"application/json":{
"schema":{}
}
}
},
"422":{
"description":"Validation Error",
"content":{
"application/json":{
"schema":{
"$ref":"#/components/schemas/HTTPValidationError"
}
}
}
}
},
"security":[
{
"JWTBearer":[]
}
]
}
},
"/apps/status-sub":{
"get":{
"tags":[
"Apps"
],
"summary":"Subscribe to status changes of currently installed apps.",
"description":"\nSends a JSON object with the status of an app if it changes.\n```\n{\n id: 'specter',\n name: 'Specter Desktop',\n status: 'online'\n},\n```\n",
"description":"Estimates the fee for the given parameters.\n See documentation on [bitcoin.org](https://developer.bitcoin.org/reference/rpc/estimatesmartfee.html)",
"description":"Whether to return a more conservative estimate which also satisfies a longer history. A conservative estimate potentially returns a higher feerate and is more likely to be sufficient for the desired target, but is not as responsive to short term drops in the prevailing fee market.",
"required":false,
"schema":{
"allOf":[
{
"$ref":"#/components/schemas/FeeEstimationMode"
}
],
"description":"Whether to return a more conservative estimate which also satisfies a longer history. A conservative estimate potentially returns a higher feerate and is more likely to be sufficient for the desired target, but is not as responsive to short term drops in the prevailing fee market.",
"description":"Similar to Bitcoin Core getblock\n\nSSE endpoint to receive new block information as soon as it is appended to chain.\n\nIf verbosity is 0, returns a string that is serialized, hex-encoded data for block 'hash'.<br>\nIf verbosity is 1, returns an Object with information about block <hash>.<br>\nIf verbosity is 2, returns an Object with information about block <hash> and information about each transaction.<br>",
"description":"\nA JSON String with on chain wallet balances with on-chain balances in\n**sat** and channel balances in **msat**. Detailed description is in\nthe schema",
"content":{
"application/json":{
"schema":{
"$ref":"#/components/schemas/WalletBalance"
}
}
}
},
"423":{
"description":"LND only: Wallet is locked. Unlock via /lightning/unlock-wallet."
}
},
"security":[
{
"JWTBearer":[]
}
]
}
},
"/lightning/get-fee-revenue":{
"get":{
"tags":[
"Lightning"
],
"summary":"Returns the daily, weekly and monthly fee revenue earned.",
"description":"Currently, year and total fees are always null. Backends don't return these values by default.\nImplementation in BlitzAPI is a [to-do](https://github.com/fusion44/blitz_api/issues/64).",
"description":"Returns a list with all on-chain transaction, payments and invoices combined into one list.\n The index of each tx is only valid for each identical set of parameters.",
"description":"If set, only successful transaction will be returned in the response.",
"required":false,
"schema":{
"title":"Successful Only",
"type":"boolean",
"description":"If set, only successful transaction will be returned in the response.",
"default":false
},
"name":"successful_only",
"in":"query"
},
{
"description":"The index of an transaction that will be used as either the start or end of a query to determine which invoices should be returned in the response.",
"required":false,
"schema":{
"title":"Index Offset",
"type":"integer",
"description":"The index of an transaction that will be used as either the start or end of a query to determine which invoices should be returned in the response.",
"default":0
},
"name":"index_offset",
"in":"query"
},
{
"description":"The max number of transaction to return in the response to this query. Will return all transactions when set to 0 or null.",
"required":false,
"schema":{
"title":"Max Tx",
"type":"integer",
"description":"The max number of transaction to return in the response to this query. Will return all transactions when set to 0 or null.",
"default":0
},
"name":"max_tx",
"in":"query"
},
{
"description":"If set, the transactions returned will result from seeking backwards from the specified index offset. This can be used to paginate backwards.",
"required":false,
"schema":{
"title":"Reversed",
"type":"boolean",
"description":"If set, the transactions returned will result from seeking backwards from the specified index offset. This can be used to paginate backwards.",
"default":false
},
"name":"reversed",
"in":"query"
}
],
"responses":{
"200":{
"description":"Successful Response",
"content":{
"application/json":{
"schema":{
"title":"Response Lightning List All Tx Lightning List All Tx Get",
"type":"array",
"items":{
"$ref":"#/components/schemas/GenericTx"
}
}
}
}
},
"423":{
"description":"LND only: Wallet is locked. Unlock via /lightning/unlock-wallet."
},
"422":{
"description":"Validation Error",
"content":{
"application/json":{
"schema":{
"$ref":"#/components/schemas/HTTPValidationError"
}
}
}
}
},
"security":[
{
"JWTBearer":[]
}
]
}
},
"/lightning/list-invoices":{
"get":{
"tags":[
"Lightning"
],
"summary":"Lists all invoices from the wallet. Modeled after LND implementation.",
"description":"If set, only invoices that are not settled and not canceled will be returned in the response.",
"required":false,
"schema":{
"title":"Pending Only",
"type":"boolean",
"description":"If set, only invoices that are not settled and not canceled will be returned in the response.",
"default":false
},
"name":"pending_only",
"in":"query"
},
{
"description":"The index of an invoice that will be used as either the start or end of a query to determine which invoices should be returned in the response.",
"required":false,
"schema":{
"title":"Index Offset",
"type":"integer",
"description":"The index of an invoice that will be used as either the start or end of a query to determine which invoices should be returned in the response.",
"default":0
},
"name":"index_offset",
"in":"query"
},
{
"description":"The max number of invoices to return in the response to this query. Will return all invoices when set to 0 or null.",
"required":false,
"schema":{
"title":"Num Max Invoices",
"type":"integer",
"description":"The max number of invoices to return in the response to this query. Will return all invoices when set to 0 or null.",
"default":0
},
"name":"num_max_invoices",
"in":"query"
},
{
"description":"If set, the invoices returned will result from seeking backwards from the specified index offset. This can be used to paginate backwards.",
"required":false,
"schema":{
"title":"Reversed",
"type":"boolean",
"description":"If set, the invoices returned will result from seeking backwards from the specified index offset. This can be used to paginate backwards.",
"default":false
},
"name":"reversed",
"in":"query"
}
],
"responses":{
"200":{
"description":"A list of all invoices created.",
"content":{
"application/json":{
"schema":{
"title":"Response Lightning List Invoices Lightning List Invoices Get",
"type":"array",
"items":{
"$ref":"#/components/schemas/Invoice"
}
}
}
}
},
"423":{
"description":"LND only: Wallet is locked. Unlock via /lightning/unlock-wallet."
},
"422":{
"description":"Validation Error",
"content":{
"application/json":{
"schema":{
"$ref":"#/components/schemas/HTTPValidationError"
}
}
}
}
},
"security":[
{
"JWTBearer":[]
}
]
}
},
"/lightning/list-onchain-tx":{
"get":{
"tags":[
"Lightning"
],
"summary":"Lists all onchain transactions from the wallet",
"description":"If true, then return payments that have not yet fully completed. This means that pending payments, as well as failed payments will show up if this field is set to true. This flag doesn't change the meaning of the indices, which are tied to individual payments.",
"required":false,
"schema":{
"title":"Include Incomplete",
"type":"boolean",
"description":"If true, then return payments that have not yet fully completed. This means that pending payments, as well as failed payments will show up if this field is set to true. This flag doesn't change the meaning of the indices, which are tied to individual payments.",
"default":true
},
"name":"include_incomplete",
"in":"query"
},
{
"description":"The index of a payment that will be used as either the start or end of a query to determine which payments should be returned in the response. The index_offset is exclusive. In the case of a zero index_offset, the query will start with the oldest payment when paginating forwards, or will end with the most recent payment when paginating backwards.",
"required":false,
"schema":{
"title":"Index Offset",
"type":"integer",
"description":"The index of a payment that will be used as either the start or end of a query to determine which payments should be returned in the response. The index_offset is exclusive. In the case of a zero index_offset, the query will start with the oldest payment when paginating forwards, or will end with the most recent payment when paginating backwards.",
"default":0
},
"name":"index_offset",
"in":"query"
},
{
"description":"The maximal number of payments returned in the response to this query.",
"required":false,
"schema":{
"title":"Max Payments",
"type":"integer",
"description":"The maximal number of payments returned in the response to this query.",
"default":0
},
"name":"max_payments",
"in":"query"
},
{
"description":"If set, the payments returned will result from seeking backwards from the specified index offset. This can be used to paginate backwards. The order of the returned payments is always oldest first (ascending index order).",
"required":false,
"schema":{
"title":"Reversed",
"type":"boolean",
"description":"If set, the payments returned will result from seeking backwards from the specified index offset. This can be used to paginate backwards. The order of the returned payments is always oldest first (ascending index order).",
"default":false
},
"name":"reversed",
"in":"query"
}
],
"responses":{
"200":{
"description":"A list of all payments made.",
"content":{
"application/json":{
"schema":{
"title":"Response Lightning List Payments Lightning List Payments Get",
"type":"array",
"items":{
"$ref":"#/components/schemas/Payment"
}
}
}
}
},
"423":{
"description":"LND only: Wallet is locked. Unlock via /lightning/unlock-wallet."
"description":"Generate a wallet new address. Address-types has to be one of:\n* **p2wkh**: Pay to witness key hash (bech32)\n* **np2wkh**: Pay to nested witness key hash",
"description":"__send-coins__ executes a request to send coins to a particular address.\n\n### LND:\nIf neither __target_conf__, or __sat_per_vbyte__ are set, then the internal wallet will consult its fee model to determine a fee for the default confirmation target.\n\n> \ud83d\udc49 See [https://api.lightning.community/?shell#sendcoins](https://api.lightning.community/?shell#sendcoins)\n\n### c-lightning:\n* Set __target_conf__ ==1: interpreted as urgent (aim for next block)\n* Set __target_conf__ >=2: interpreted as normal (next 4 blocks or so, **default**)\n* Set __target_cont__ >=10: interpreted as slow (next 100 blocks or so)\n* If __sat_per_vbyte__ is set then __target_conf__ is ignored and vbytes (sipabytes) will be used.\n\n> \ud83d\udc49 See [https://lightning.readthedocs.io/lightning-txprepare.7.html](https://lightning.readthedocs.io/lightning-txprepare.7.html)\n\n### Sending all onchain funds\n> \u2139\ufe0f Keep the following points in mind when sending all onchain funds:\n\n* If __send_all__ is set to __true__, the __amount__ field must be set to __0__.\n* If the __amount__ field is greater than __0__, the __send_all__ field must be __false__.\n * The API will return an error if neither or both conditions are met at the same time.\n* If __send_all__ is set to __true__ the amount of satoshis to send will be calculated by subtracting the fee from the wallet balance.\n* If the wallet balance is not sufficient to cover the fee, the call will fail.\n* The call will __not__ close any channels.\n* The implementation may keep a reserve of funds if there are still open channels.",
"description":"__open-channel__ attempts to open a channel with a peer.\n\n### LND:\n_target_conf_: The target number of blocks that the funding transaction should be confirmed by.\n\n### c-lightning:\n* Set _target_conf_ ==1: interpreted as urgent (aim for next block)\n* Set _target_conf_ >=2: interpreted as normal (next 4 blocks or so, **default**)\n* Set _target_cont_ >=10: interpreted as slow (next 100 blocks or so)\n\n> \ud83d\udc49 See [https://lightning.readthedocs.io/lightning-txprepare.7.html](https://lightning.readthedocs.io/lightning-txprepare.7.html)",
"description":"This endpoints attempts to pay a payment request.\n\nIntermediate status updates will be sent via the SSE channel. This endpoint returns the last success or error message from the node.",
"description":"Either an error or a Payment object on success",
"content":{
"application/json":{
"schema":{
"$ref":"#/components/schemas/Payment"
}
}
}
},
"400":{
"description":"\nPossible error messages:\n* invalid bech32 string\n* amount must be specified when paying a zero amount invoice\n* amount must not be specified when paying a non-zero amount invoice\n"
},
"409":{
"description":"[LND only] When attempting to pay an already paid invoice. CLN will return the payment object of the previously paid invoice. Info: [GitHub](https://github.com/fusion44/blitz_api/issues/131)"
},
"423":{
"description":"LND only: Wallet is locked. Unlock via /lightning/unlock-wallet."
},
"422":{
"description":"Validation Error",
"content":{
"application/json":{
"schema":{
"$ref":"#/components/schemas/HTTPValidationError"
}
}
}
}
},
"security":[
{
"JWTBearer":[]
}
]
}
},
"/lightning/get-info":{
"get":{
"tags":[
"Lightning"
],
"summary":"Request information about the currently running lightning node.",
"description":"LND only: Wallet is locked. Unlock via /lightning/unlock-wallet."
}
},
"security":[
{
"JWTBearer":[]
}
]
}
},
"/lightning/decode-pay-req":{
"get":{
"tags":[
"Lightning"
],
"summary":"DecodePayReq takes an encoded payment request string and attempts to decode it, returning a full description of the conditions encoded within the payment request.",
"description":"\n`True` if ok, `False` otherwise\n\n### LND:\nThis call will wait until the LND daemon is fully ready to accept calls. Internally it'll call GetInfo every\n0.1 seconds and returns True for the first successful call.\n\n> \u2139\ufe0f _After the unlock the LND-gRPC server takes a bit of time to boot up._\n\n### Core Lightning:\n\n> \u2139\ufe0f _Platform: Native_ CLN doesn't support wallet locking and will return True immediately.\n\n> \u2139\ufe0f _Platform: RaspiBlitz_ RaspiBlitz has its own locking implementation on top of CLN. Will unlock and return True if successful. Might take a few seconds. If it takes longer than 60 seconds it'll return an error.\n",
"description":"This endpoint will gather latest system logs and return it in a\nraw string. This endpoint will **not** return immediately because\nit gathers all data on time of the request.",
"description":"True if successful. False on failure.\n A failure will also send an error message with id `system_reboot_error`\n to all connected clients.\n ",
"description":"True if successful. False on failure.\n A failure will also send an error message with id system_shutdown_error\n to all connected clients.\n ",
"description":"Fee revenue earned in the last 24 hours"
},
"week":{
"title":"Week",
"type":"integer",
"description":"Fee revenue earned in the last 7days"
},
"month":{
"title":"Month",
"type":"integer",
"description":"Fee revenue earned in the last month"
},
"year":{
"title":"Year",
"type":"integer",
"description":"Fee revenue earned in the last year. Might be null if not implemented by backend."
},
"total":{
"title":"Total",
"type":"integer",
"description":"Fee revenue earned in the last year. Might be null if not implemented by backend"
}
}
},
"GenericTx":{
"title":"GenericTx",
"required":[
"id",
"category",
"type",
"amount",
"time_stamp",
"status"
],
"type":"object",
"properties":{
"index":{
"title":"Index",
"type":"integer",
"description":"The index of the transaction.",
"default":0
},
"id":{
"title":"Id",
"type":"string",
"description":"\nUnique identifier for this transaction.\n\nDepending on the type of the transaction it will be different:\n#### On-chain\nThe transaction hash\n\n#### Lightning Invoice and Payment\nThe payment request\n"
},
"category":{
"allOf":[
{
"$ref":"#/components/schemas/TxCategory"
}
],
"description":"Whether this is an onchain (**onchain**) or lightning (**ln**) transaction."
},
"type":{
"allOf":[
{
"$ref":"#/components/schemas/TxType"
}
],
"description":"Whether this is an outgoing (**send**) transaction or an incoming (**receive**) transaction."
},
"amount":{
"title":"Amount",
"type":"integer",
"description":"\nThe value of the transaction, depending on the category in satoshis or millisatoshis.\n\n#### On-chain\nTransaction amount in satoshis\n\n#### Lightning Invoice\n* value in millisatoshis of the invoice if *unsettled*\n* amount in millisatoshis paid if invoice is *settled*\n\n#### Lightning Payment\n* amount sent in millisatoshis\n\n"
},
"time_stamp":{
"title":"Time Stamp",
"type":"integer",
"description":"\nThe unix timestamp in seconds for the transaction.\n\nThe timestamp can mean different things in different situations:\n\n#### Lightning Invoice\n* Creation date for in-flight or failed invoices\n* Settle date for succeeded invoices\n\n#### On-chain\n* Creation date for transaction waiting in the mempool\n* Timestamp of the block where this transaction is included\n\n#### Lightning Payment\n\n"
},
"comment":{
"title":"Comment",
"type":"string",
"description":"Optional comment for this transaction",
"default":""
},
"status":{
"allOf":[
{
"$ref":"#/components/schemas/TxStatus"
}
],
"description":"\nThe status of the transaction. Depending on the transaction category this can be different values:\n\nMay have different meanings in different situations:\n#### unknown\nAn unknown state was found.\n\n#### in_flight\n* A lightning payment is being sent\n* An invoice is waiting for the incoming payment\n* An on-chain transaction is waiting in the mempool\n\n#### succeeded\n* A lighting payment was successfully sent\n* An incoming payment was received for an invoice\n* An on-chain transaction was included in a block\n\n#### failed\n* A lightning payment attempt which could not be completed (no route found, insufficient funds, ...)\n* An invoice is expired or some other error happened\n"
},
"block_height":{
"title":"Block Height",
"type":"integer",
"description":"Block height, if included in a block. Only applicable for category **onchain**."
},
"num_confs":{
"title":"Num Confs",
"minimum":0.0,
"type":"integer",
"description":"Number of confirmations. Only applicable for category **onchain**."
},
"total_fees":{
"title":"Total Fees",
"type":"integer",
"description":"Total fees paid for this transaction"
}
}
},
"HTLCAttempt":{
"title":"HTLCAttempt",
"required":[
"attempt_id",
"status",
"route",
"attempt_time_ns",
"resolve_time_ns",
"failure",
"preimage"
],
"type":"object",
"properties":{
"attempt_id":{
"title":"Attempt Id",
"type":"integer"
},
"status":{
"$ref":"#/components/schemas/HTLCStatus"
},
"route":{
"$ref":"#/components/schemas/Route"
},
"attempt_time_ns":{
"title":"Attempt Time Ns",
"type":"integer"
},
"resolve_time_ns":{
"title":"Resolve Time Ns",
"type":"integer"
},
"failure":{
"$ref":"#/components/schemas/HTLCAttemptFailure"
},
"preimage":{
"title":"Preimage",
"type":"string"
}
}
},
"HTLCAttemptFailure":{
"title":"HTLCAttemptFailure",
"required":[
"code",
"channel_update",
"htlc_msat",
"onion_sha_256",
"cltv_expiry",
"flags",
"failure_source_index",
"height"
],
"type":"object",
"properties":{
"code":{
"title":"Code",
"type":"integer"
},
"channel_update":{
"$ref":"#/components/schemas/ChannelUpdate"
},
"htlc_msat":{
"title":"Htlc Msat",
"type":"integer"
},
"onion_sha_256":{
"title":"Onion Sha 256",
"type":"string"
},
"cltv_expiry":{
"title":"Cltv Expiry",
"type":"integer"
},
"flags":{
"title":"Flags",
"type":"integer"
},
"failure_source_index":{
"title":"Failure Source Index",
"type":"integer"
},
"height":{
"title":"Height",
"type":"integer"
}
}
},
"HTLCStatus":{
"title":"HTLCStatus",
"enum":[
"in_flight",
"succeeded",
"failed"
],
"type":"string",
"description":"An enumeration."
},
"HTTPValidationError":{
"title":"HTTPValidationError",
"type":"object",
"properties":{
"detail":{
"title":"Detail",
"type":"array",
"items":{
"$ref":"#/components/schemas/ValidationError"
}
}
}
},
"Hop":{
"title":"Hop",
"required":[
"chan_id",
"chan_capacity",
"amt_to_forward",
"fee",
"expiry",
"amt_to_forward_msat",
"fee_msat",
"pub_key",
"tlv_payload"
],
"type":"object",
"properties":{
"chan_id":{
"title":"Chan Id",
"type":"integer"
},
"chan_capacity":{
"title":"Chan Capacity",
"type":"integer"
},
"amt_to_forward":{
"title":"Amt To Forward",
"type":"integer"
},
"fee":{
"title":"Fee",
"type":"integer"
},
"expiry":{
"title":"Expiry",
"type":"integer"
},
"amt_to_forward_msat":{
"title":"Amt To Forward Msat",
"type":"integer"
},
"fee_msat":{
"title":"Fee Msat",
"type":"integer"
},
"pub_key":{
"title":"Pub Key",
"type":"string"
},
"tlv_payload":{
"title":"Tlv Payload",
"type":"boolean"
}
}
},
"HopHint":{
"title":"HopHint",
"required":[
"node_id",
"chan_id",
"fee_base_msat",
"fee_proportional_millionths",
"cltv_expiry_delta"
],
"type":"object",
"properties":{
"node_id":{
"title":"Node Id",
"type":"string",
"description":"The public key of the node at the start of the channel."
},
"chan_id":{
"title":"Chan Id",
"type":"string",
"description":"The unique identifier of the channel."
},
"fee_base_msat":{
"title":"Fee Base Msat",
"type":"integer",
"description":"The base fee of the channel denominated in msat."
},
"fee_proportional_millionths":{
"title":"Fee Proportional Millionths",
"type":"integer",
"description":"The fee rate of the channel for sending one satoshi across it denominated in msat"
},
"cltv_expiry_delta":{
"title":"Cltv Expiry Delta",
"type":"integer",
"description":"The time-lock delta of the channel."
}
}
},
"Invoice":{
"title":"Invoice",
"required":[
"value_msat",
"add_index",
"state"
],
"type":"object",
"properties":{
"memo":{
"title":"Memo",
"type":"string",
"description":"Optional memo to attach along with the invoice. Used for record keeping purposes for the invoice's creator,\n and will also be set in the description field of the encoded payment request if the description_hash field is not being used."
},
"r_preimage":{
"title":"R Preimage",
"type":"string",
"description":"The hex-encoded preimage(32 byte) which will allow settling an incoming HTLC payable to this preimage."
},
"r_hash":{
"title":"R Hash",
"type":"string",
"description":"The hash of the preimage."
},
"value_msat":{
"title":"Value Msat",
"type":"integer",
"description":"The value of this invoice in milli satoshis."
},
"settled":{
"title":"Settled",
"type":"boolean",
"description":"Whether this invoice has been fulfilled",
"default":false
},
"creation_date":{
"title":"Creation Date",
"type":"integer",
"description":"When this invoice was created. Not available with CLN."
},
"settle_date":{
"title":"Settle Date",
"type":"integer",
"description":"When this invoice was settled. Not available with pending invoices."
},
"expiry_date":{
"title":"Expiry Date",
"type":"integer",
"description":"The time at which this invoice expires"
},
"payment_request":{
"title":"Payment Request",
"type":"string",
"description":"A bare-bones invoice for a payment within the\n Lightning Network. With the details of the invoice, the sender has all the data necessary to\n send a payment to the recipient.\n "
},
"description_hash":{
"title":"Description Hash",
"type":"string",
"description":"\n Hash(SHA-256) of a description of the payment. Used if the description of payment(memo) is too\n long to naturally fit within the description field of an encoded payment request.\n "
},
"expiry":{
"title":"Expiry",
"type":"integer",
"description":"Payment request expiry time in seconds. Default is 3600 (1 hour)."
},
"fallback_addr":{
"title":"Fallback Addr",
"type":"string",
"description":"Fallback on-chain address."
},
"cltv_expiry":{
"title":"Cltv Expiry",
"type":"integer",
"description":"Delta to use for the time-lock of the CLTV extended to the final hop."
},
"route_hints":{
"title":"Route Hints",
"type":"array",
"items":{
"$ref":"#/components/schemas/RouteHint"
},
"description":"\n Route hints that can each be individually used to assist in reaching the invoice's destination.\n "
},
"private":{
"title":"Private",
"type":"boolean",
"description":"Whether this invoice should include routing hints for private channels."
},
"add_index":{
"title":"Add Index",
"type":"string",
"description":"\nThe index of this invoice. Each newly created invoice will increment this index making it monotonically increasing.\nCLN and LND handle ids differently. LND will generate an auto incremented integer id, while CLN will use a user supplied string id.\nTo unify both, we auto generate an id for CLN and use the add_index for LND.\n\nFor `LND` this will be an `integer` in string form. This is auto generated by LND.\n\nFor `CLN` this will be a `string`. If the invoice was generated by BlitzAPI, this will be a\n[Firebase-like PushID](https://firebase.blog/posts/2015/02/the-2120-ways-to-ensure-unique_68).\nIf generated by some other method, it'll be the string supplied by the user at the time of creation of the invoice.\n"
},
"settle_index":{
"title":"Settle Index",
"type":"integer",
"description":"\n The \"settle\" index of this invoice. Each newly settled invoice will increment this index making it monotonically increasing.\n "
},
"amt_paid_sat":{
"title":"Amt Paid Sat",
"type":"integer",
"description":"\n The amount that was accepted for this invoice, in satoshis. This\n will ONLY be set if this invoice has been settled. We provide\n this field as if the invoice was created with a zero value,\n then we need to record what amount was ultimately accepted.\n Additionally, it's possible that the sender paid MORE that\n was specified in the original invoice. So we'll record that here as well.\n "
},
"amt_paid_msat":{
"title":"Amt Paid Msat",
"type":"integer",
"description":"\n The amount that was accepted for this invoice, in millisatoshis.\n This will ONLY be set if this invoice has been settled. We\n provide this field as if the invoice was created with a zero value,\n then we need to record what amount was ultimately accepted. Additionally,\n it's possible that the sender paid MORE that was specified in the\n original invoice. So we'll record that here as well.\n "
},
"state":{
"allOf":[
{
"$ref":"#/components/schemas/InvoiceState"
}
],
"description":"The state the invoice is in."
},
"htlcs":{
"title":"Htlcs",
"type":"array",
"items":{
"$ref":"#/components/schemas/InvoiceHTLC"
},
"description":"List of HTLCs paying to this invoice[EXPERIMENTAL]."
},
"features":{
"title":"Features",
"type":"array",
"items":{
"$ref":"#/components/schemas/FeaturesEntry"
},
"description":"List of features advertised on the invoice."
},
"is_keysend":{
"title":"Is Keysend",
"type":"boolean",
"description":"[LND only] Indicates if this invoice was a spontaneous payment that arrived via keysend[EXPERIMENTAL]."
},
"payment_addr":{
"title":"Payment Addr",
"type":"string",
"description":" The payment address of this invoice. This value will be used in MPP payments,\n and also for newer invoices that always require the MPP payload for added end-to-end security."
},
"is_amp":{
"title":"Is Amp",
"type":"boolean",
"description":"Signals whether or not this is an AMP invoice."
}
}
},
"InvoiceHTLC":{
"title":"InvoiceHTLC",
"required":[
"chan_id",
"htlc_index",
"amt_msat",
"accept_height",
"accept_time",
"resolve_time",
"expiry_height",
"state",
"mpp_total_amt_msat"
],
"type":"object",
"properties":{
"chan_id":{
"title":"Chan Id",
"type":"integer",
"description":"The channel ID over which the HTLC was received."
},
"htlc_index":{
"title":"Htlc Index",
"type":"integer",
"description":"The index of the HTLC on the channel."
},
"amt_msat":{
"title":"Amt Msat",
"type":"integer",
"description":"The amount of the HTLC in msat."
},
"accept_height":{
"title":"Accept Height",
"type":"integer",
"description":"The block height at which this HTLC was accepted."
},
"accept_time":{
"title":"Accept Time",
"type":"integer",
"description":"The time at which this HTLC was accepted."
},
"resolve_time":{
"title":"Resolve Time",
"type":"integer",
"description":"The time at which this HTLC was resolved."
},
"expiry_height":{
"title":"Expiry Height",
"type":"integer",
"description":"The block height at which this HTLC expires."
},
"state":{
"allOf":[
{
"$ref":"#/components/schemas/InvoiceHTLCState"
}
],
"description":"The state of the HTLC."
},
"custom_records":{
"title":"Custom Records",
"type":"array",
"items":{
"$ref":"#/components/schemas/CustomRecordsEntry"
},
"description":"Custom tlv records.",
"default":[]
},
"mpp_total_amt_msat":{
"title":"Mpp Total Amt Msat",
"type":"integer",
"description":"The total amount of the mpp payment in msat."