"title":"Command for send an invoice for an offer",
"warning":"experimental-offers only",
"description":[
"The **sendinvoice** RPC command creates and sends an invoice to the issuer of an *invoice_request* for it to pay: lightning-invoicerequest(7).",
"",
"If **fetchinvoice-noconnect** is not specified in the configuation, it will connect to the destination in the (currently common!) case where it cannot find a route which supports `option_onion_messages`."
],
"request":{
"required":[
"invreq",
"label"
],
"properties":{
"invreq":{
"type":"string",
"description":[
"The bolt12 invoice_request string beginning with `lnr1`."
"Required if the *offer* does not specify an amount at all, or specifies it in a different currency. Otherwise you may set it (e.g. to provide a tip)."
],
"default":"the amount contained in the offer (multiplied by *quantity* if any)"
},
"timeout":{
"type":"u32",
"description":[
"Seconds to wait for the offering node to pay the invoice or return an error. This will also be the timeout on the invoice that is sent."
],
"default":"90 seconds"
},
"quantity":{
"type":"u64",
"description":[
"Quantity is is required if the offer specifies quantity_max, otherwise it is not allowed."
]
}
}
},
"response":{
"required":[
"label",
"description",
"payment_hash",
"status",
"created_index",
"expires_at"
],
"properties":{
"label":{
"type":"string",
"description":[
"Unique label supplied at invoice creation."
]
},
"description":{
"type":"string",
"description":[
"Description used in the invoice."
]
},
"payment_hash":{
"type":"hash",
"description":[
"The hash of the *payment_preimage* which will prove payment."
]
},
"status":{
"type":"string",
"enum":[
"unpaid",
"paid",
"expired"
],
"description":[
"Whether it's paid, unpaid or unpayable."
]
},
"expires_at":{
"type":"u64",
"description":[
"UNIX timestamp of when it will become / became unpayable."
]
},
"amount_msat":{
"type":"msat",
"description":[
"The amount required to pay this invoice."
]
},
"bolt12":{
"type":"string",
"description":[
"The BOLT12 string."
]
},
"created_index":{
"type":"u64",
"added":"v23.08",
"description":[
"1-based index indicating order this invoice was created in."
]
},
"updated_index":{
"type":"u64",
"added":"v23.08",
"description":[
"1-based index indicating order this invoice was changed (only present if it has changed since creation)."
]
}
},
"allOf":[
{
"if":{
"properties":{
"status":{
"type":"string",
"enum":[
"paid"
]
}
}
},
"then":{
"additionalProperties":false,
"required":[
"pay_index",
"amount_received_msat",
"paid_at",
"payment_preimage"
],
"properties":{
"label":{},
"description":{},
"payment_hash":{},
"status":{},
"msatoshi":{},
"amount_msat":{},
"bolt12":{},
"expires_at":{},
"created_index":{},
"updated_index":{},
"pay_index":{
"type":"u64",
"description":[
"Unique incrementing index for this payment."
]
},
"amount_received_msat":{
"type":"msat",
"description":[
"The amount actually received (could be slightly greater than *amount_msat*, since clients may overpay)."
]
},
"paid_at":{
"type":"u64",
"description":[
"UNIX timestamp of when it was paid."
]
},
"payment_preimage":{
"type":"secret",
"description":[
"Proof of payment."
]
}
}
}
}
]
},
"errors":[
"The following error codes may occur:",
"",
"- -1: Catchall nonspecific error.",
"- 1002: Offer has expired.",
"- 1003: Cannot find a route to the node making the offer.",
"- 1004: The node making the offer returned an error message.",
"- 1005: We timed out waiting for the invoice to be paid"