Browse Source
Not the low-level ones, just enough that people can play with the APIs. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>ppa
8 changed files with 668 additions and 0 deletions
@ -0,0 +1,129 @@ |
|||||
|
.TH "LIGHTNING-FETCHINVOICE" "7" "" "" "lightning-fetchinvoice" |
||||
|
.SH NAME |
||||
|
lightning-fetchinvoice - Command for fetch an invoice for an offer |
||||
|
.SH SYNOPSIS |
||||
|
|
||||
|
\fIEXPERIMENTAL_FEATURES only\fR |
||||
|
|
||||
|
|
||||
|
\fBfetchinvoice\fR \fIoffer\fR [\fImsatoshi\fR] [\fIquantity\fR] [\fIrecurrence_counter\fR] [\fIrecurrence_start\fR] [\fIrecurrence_label\fR] [\fItimeout\fR] |
||||
|
|
||||
|
.SH DESCRIPTION |
||||
|
|
||||
|
The \fBfetchinvoice\fR RPC command contacts the issuer of an \fIoffer\fR to get |
||||
|
an actual invoice that can be paid\. It highlights any changes between the |
||||
|
offer and the returned invoice\. |
||||
|
|
||||
|
|
||||
|
The offer must not contain \fIsend_invoice\fR; see \fBlightning-sendinvoice\fR(7)\. |
||||
|
|
||||
|
|
||||
|
\fImsatoshi\fR is required if the \fIoffer\fR does not specify |
||||
|
an amount at all, otherwise it is not allowed\. |
||||
|
|
||||
|
|
||||
|
\fIquantity\fR is is required if the \fIoffer\fR specifies |
||||
|
\fIquantity_min\fR or \fIquantity_max\fR, otherwise it is not allowed\. |
||||
|
|
||||
|
|
||||
|
\fIrecurrence_counter\fR is required if the \fIoffer\fR |
||||
|
specifies \fIrecurrence\fR, otherwise it is not allowed\. |
||||
|
\fIrecurrence_counter\fR should first be set to 0, and incremented for |
||||
|
each successive invoice in a given series\. |
||||
|
|
||||
|
|
||||
|
\fIrecurrence_start\fR is required if the \fIoffer\fR |
||||
|
specifies \fIrecurrence_base\fR with \fIstart_any_period\fR set, otherwise it |
||||
|
is not allowed\. It indicates what period number to start at\. |
||||
|
|
||||
|
|
||||
|
\fIrecurrence_label\fR is required if \fIrecurrence_counter\fR is set, and |
||||
|
otherwise is not allowed\. It must be the same as prior fetchinvoice |
||||
|
calls for the same recurrence, as it is used to link them together\. |
||||
|
|
||||
|
|
||||
|
\fItimeout\fR is an optional timeout; if we don't get a reply before this |
||||
|
we fail (default, 60 seconds)\. |
||||
|
|
||||
|
.SH RETURN VALUE |
||||
|
|
||||
|
On success, an object as follows is returned: |
||||
|
|
||||
|
.RS |
||||
|
.IP \[bu] |
||||
|
\fIinvoice\fR: the bolt12-encoded invoice string, starting with "lni1"\. |
||||
|
.IP \[bu] |
||||
|
\fIchanges\fR: an object detailing changes between the offer and invoice\. |
||||
|
|
||||
|
.RE |
||||
|
|
||||
|
Optionally: |
||||
|
|
||||
|
.RS |
||||
|
.IP \[bu] |
||||
|
\fInext_period\fR: an object returned for recurring invoices if the next |
||||
|
period is under the recurrence_limit (if any)\. |
||||
|
|
||||
|
.RE |
||||
|
|
||||
|
The \fIchanges\fR object can have and of the following members: |
||||
|
|
||||
|
.RS |
||||
|
.IP \[bu] |
||||
|
\fIdescription_appended\fR: extra characters appended to the \fIdescription\fR field\. |
||||
|
.IP \[bu] |
||||
|
\fIdescription\fR: a completely replaced \fIdescription\fR field\. |
||||
|
.IP \[bu] |
||||
|
\fIvendor_removed\fR": the offer vendor field, which has been omitted from the invoice\. |
||||
|
.IP \[bu] |
||||
|
\fIvendor\fR": the offer vendor field, which has changed from the invoice\. |
||||
|
.IP \[bu] |
||||
|
\fImsat\fR": the amount, if different from the offer amount multiplied |
||||
|
by any \fIquantity\fR (or the offer had no amount, or was not in BTC)\. |
||||
|
|
||||
|
.RE |
||||
|
|
||||
|
The \fInext_period\fR object has at least the following members: |
||||
|
|
||||
|
.RS |
||||
|
.IP \[bu] |
||||
|
\fIcounter\fR: the index of the next period to be fetchinvoice\. |
||||
|
.IP \[bu] |
||||
|
\fIstarttime\fR: the time that the next period starts (seconds since 1970) |
||||
|
.IP \[bu] |
||||
|
\fIendtime\fR: the time that the next period ends (seconds since 1970) |
||||
|
.IP \[bu] |
||||
|
\fIpaywindow_start\fR: the earliest time that the next invoice can be fetched (seconds since 1970) |
||||
|
.IP \[bu] |
||||
|
\fIpaywindow_end\fR: the latest time that the next invoice can be fetched (seconds since 1970) |
||||
|
|
||||
|
.RE |
||||
|
|
||||
|
The following error codes may occur: |
||||
|
|
||||
|
.RS |
||||
|
.IP \[bu] |
||||
|
-1: Catchall nonspecific error\. |
||||
|
.IP \[bu] |
||||
|
1002: Offer has expired\. |
||||
|
.IP \[bu] |
||||
|
1003: Cannot find a route to the node making the offer\. |
||||
|
.IP \[bu] |
||||
|
1004: The node making the offer returned an error message\. |
||||
|
.IP \[bu] |
||||
|
1005: We timed out trying to fetch an invoice\. |
||||
|
|
||||
|
.RE |
||||
|
.SH AUTHOR |
||||
|
|
||||
|
Rusty Russell \fI<rusty@rustcorp.com.au\fR> is mainly responsible\. |
||||
|
|
||||
|
.SH SEE ALSO |
||||
|
|
||||
|
\fBlightning-sendinvoice\fR(7), \fBlightning-pay\fR(7)\. |
||||
|
|
||||
|
.SH RESOURCES |
||||
|
|
||||
|
Main web site: \fIhttps://github.com/ElementsProject/lightning\fR |
||||
|
|
||||
|
\" SHA256STAMP:d891c6471a81b3b73109b19d1bc6a393bc60b5df804d6b14d330e2d8dca47f4e |
@ -0,0 +1,90 @@ |
|||||
|
lightning-fetchinvoice -- Command for fetch an invoice for an offer |
||||
|
=================================================================== |
||||
|
|
||||
|
SYNOPSIS |
||||
|
-------- |
||||
|
|
||||
|
*EXPERIMENTAL_FEATURES only* |
||||
|
|
||||
|
**fetchinvoice** *offer* \[*msatoshi*\] \[*quantity*\] \[*recurrence_counter*\] \[*recurrence_start*\] \[*recurrence_label*\] \[*timeout*\] |
||||
|
|
||||
|
DESCRIPTION |
||||
|
----------- |
||||
|
|
||||
|
The **fetchinvoice** RPC command contacts the issuer of an *offer* to get |
||||
|
an actual invoice that can be paid. It highlights any changes between the |
||||
|
offer and the returned invoice. |
||||
|
|
||||
|
The offer must not contain *send_invoice*; see lightning-sendinvoice(7). |
||||
|
|
||||
|
*msatoshi* is required if the *offer* does not specify |
||||
|
an amount at all, otherwise it is not allowed. |
||||
|
|
||||
|
*quantity* is is required if the *offer* specifies |
||||
|
*quantity_min* or *quantity_max*, otherwise it is not allowed. |
||||
|
|
||||
|
*recurrence_counter* is required if the *offer* |
||||
|
specifies *recurrence*, otherwise it is not allowed. |
||||
|
*recurrence_counter* should first be set to 0, and incremented for |
||||
|
each successive invoice in a given series. |
||||
|
|
||||
|
*recurrence_start* is required if the *offer* |
||||
|
specifies *recurrence_base* with *start_any_period* set, otherwise it |
||||
|
is not allowed. It indicates what period number to start at. |
||||
|
|
||||
|
*recurrence_label* is required if *recurrence_counter* is set, and |
||||
|
otherwise is not allowed. It must be the same as prior fetchinvoice |
||||
|
calls for the same recurrence, as it is used to link them together. |
||||
|
|
||||
|
*timeout* is an optional timeout; if we don't get a reply before this |
||||
|
we fail (default, 60 seconds). |
||||
|
|
||||
|
RETURN VALUE |
||||
|
------------ |
||||
|
|
||||
|
On success, an object as follows is returned: |
||||
|
|
||||
|
* *invoice*: the bolt12-encoded invoice string, starting with "lni1". |
||||
|
* *changes*: an object detailing changes between the offer and invoice. |
||||
|
|
||||
|
Optionally: |
||||
|
* *next_period*: an object returned for recurring invoices if the next |
||||
|
period is under the recurrence_limit (if any). |
||||
|
|
||||
|
The *changes* object can have and of the following members: |
||||
|
* *description_appended*: extra characters appended to the *description* field. |
||||
|
* *description*: a completely replaced *description* field. |
||||
|
* *vendor_removed*": the offer vendor field, which has been omitted from the invoice. |
||||
|
* *vendor*": the offer vendor field, which has changed from the invoice. |
||||
|
* *msat*": the amount, if different from the offer amount multiplied |
||||
|
by any *quantity* (or the offer had no amount, or was not in BTC). |
||||
|
|
||||
|
The *next_period* object has at least the following members: |
||||
|
* *counter*: the index of the next period to be fetchinvoice. |
||||
|
* *starttime*: the time that the next period starts (seconds since 1970) |
||||
|
* *endtime*: the time that the next period ends (seconds since 1970) |
||||
|
* *paywindow_start*: the earliest time that the next invoice can be fetched (seconds since 1970) |
||||
|
* *paywindow_end*: the latest time that the next invoice can be fetched (seconds since 1970) |
||||
|
|
||||
|
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 trying to fetch an invoice. |
||||
|
|
||||
|
AUTHOR |
||||
|
------ |
||||
|
|
||||
|
Rusty Russell <<rusty@rustcorp.com.au>> is mainly responsible. |
||||
|
|
||||
|
SEE ALSO |
||||
|
-------- |
||||
|
|
||||
|
lightning-sendinvoice(7), lightning-pay(7). |
||||
|
|
||||
|
RESOURCES |
||||
|
--------- |
||||
|
|
||||
|
Main web site: <https://github.com/ElementsProject/lightning> |
||||
|
|
@ -0,0 +1,162 @@ |
|||||
|
.TH "LIGHTNING-OFFER" "7" "" "" "lightning-offer" |
||||
|
.SH NAME |
||||
|
lightning-offer - Command for accepting payments |
||||
|
.SH SYNOPSIS |
||||
|
|
||||
|
\fIEXPERIMENTAL_FEATURES only\fR |
||||
|
|
||||
|
|
||||
|
\fBoffer\fR \fIamount\fR \fIdescription\fR [\fIsend_invoice\fR] [\fIlabel\fR] [\fIvendor\fR] [\fIquantity_min\fR] [\fIquantity_max\fR] [\fIabsolute_expiry\fR] [\fIrecurrence\fR] [\fIrecurrence_base\fR] [\fIrecurrence_paywindow\fR] [\fIrecurrence_limit\fR] [\fIrefund_for\fR] [\fIsingle_use\fR] |
||||
|
|
||||
|
.SH DESCRIPTION |
||||
|
|
||||
|
The \fBoffer\fR RPC command creates an offer, which is a precursor to |
||||
|
one or more invoices\. It automatically enables the accepting of |
||||
|
corresponding invoice_request or invoice messages (depending on |
||||
|
\fIsend_invoice\fR)\. |
||||
|
|
||||
|
|
||||
|
The \fIamount\fR parameter can be the string "any", which creates an offer |
||||
|
that can be paid with any amount (e\.g\. a donation)\. Otherwise it can |
||||
|
be a positive value in millisatoshi precision; it can be a whole |
||||
|
number, or a whole number ending in \fImsat\fR or \fIsat\fR, or a number with |
||||
|
three decimal places ending in \fIsat\fR, or a number with 1 to 11 decimal |
||||
|
places ending in \fIbtc\fR\. |
||||
|
|
||||
|
|
||||
|
\fIamount\fR can also have an ISO 4217 postfix (i\.e\. USD), in which case |
||||
|
currency conversion will need to be done for the invoice itself\. |
||||
|
|
||||
|
|
||||
|
The \fIdescription\fR is a short description of purpose of the offer, |
||||
|
e\.g\. \fIcoffee\fR\. This value is encoded into the resulting offer and is |
||||
|
viewable by anyone you expose this offer to\. It must be UTF-8, and |
||||
|
cannot use \fI\u\fR JSON escape codes\. |
||||
|
|
||||
|
|
||||
|
The \fIvendor\fR is another (optional) field exposed in the offer, and |
||||
|
reflects who is issuing this offer (i\.e\. you) if appropriate\. |
||||
|
|
||||
|
|
||||
|
The \fIsend_invoice\fR boolean (default false unless \fIsingle_use\fR) creates |
||||
|
an offer to send money: the user of the offer will send an invoice, |
||||
|
rather than an invoice_request\. This is encoded in the offer\. Note |
||||
|
that \fIrecurrence\fR and ISO 4217 currencies are not currently |
||||
|
well-supported for this case! |
||||
|
|
||||
|
|
||||
|
The \fIlabel\fR field is an internal-use name for the offer, which can |
||||
|
be any UTF-8 string\. |
||||
|
|
||||
|
|
||||
|
The present of \fIquantity_min\fR or \fIquantity_max\fR indicates that the |
||||
|
invoice can specify more than one of the items within this (inclusive) |
||||
|
range\. The \fIamount\fR for the invoice will need to be multiplied |
||||
|
accordingly\. These are encoded in the offer\. |
||||
|
|
||||
|
|
||||
|
The \fIabsolute_expiry\fR is optionally the time the offer is valid until, |
||||
|
in seconds since the first day of 1970 UTC\. If not set, the offer |
||||
|
remains valid (though it can be deactivated by the issuer of course)\. |
||||
|
This is encoded in the offer\. |
||||
|
|
||||
|
|
||||
|
\fIrecurrence\fR means that an invoice is expected at regular intervals\. |
||||
|
The argument is a positive number followed by one of "seconds", |
||||
|
"minutes", "hours", "days", "weeks", "months" or "years" (variants |
||||
|
without the trailing "s" are also permitted)\. This is encoded in the |
||||
|
offer\. The semantics of recurrence is fairly predictable, but fully |
||||
|
documented in BOLT 12\. e\.g\. "4weeks"\. |
||||
|
|
||||
|
|
||||
|
\fIrecurrence_base\fR is an optional time in seconds since the first day |
||||
|
of 1970 UTC, optionally with a "@" prefix\. This indicates when the |
||||
|
first period begins; without this, the recurrence periods start from |
||||
|
the first invoice\. The "@" prefix means that the invoice must start |
||||
|
by paying the first period; otherwise it is permitted to start at any |
||||
|
period\. This is encoded in the offer\. e\.g\. "@1609459200" indicates |
||||
|
you must start paying on the 1st January 2021\. |
||||
|
|
||||
|
|
||||
|
\fIrecurrence_paywindow\fR is an optional argument of form |
||||
|
'-time+time[%]'\. The first time is the number of seconds before the |
||||
|
start of a period in which an invoice and payment is valid, the second |
||||
|
time is the number of seconds after the start of the period\. For |
||||
|
example \fI-604800+86400\fR means you can fetch an pay the invoice 4 weeks |
||||
|
before the given period starts, and up to 1 day afterwards\. The |
||||
|
optional \fI%\fR indicates that the amount of the invoice will be scaled |
||||
|
by the time remaining in the period\. If this is not specified, the |
||||
|
default is that payment is allowed during the current and previous |
||||
|
periods\. This is encoded in the offer\. |
||||
|
|
||||
|
|
||||
|
\fIrecurrence_limit\fR is an optional argument to indicate the maximum |
||||
|
period which exists\. eg\. "12" means there are 13 periods, from 0 to |
||||
|
12 inclusive\. This is encoded in the offer\. |
||||
|
|
||||
|
|
||||
|
\fIrefund_for\fR is the payment_preimage of a previous (paid) invoice\. |
||||
|
This implies \fIsend_invoice\fR and \fIsingle_use\fR\. This is encoded in the |
||||
|
offer\. |
||||
|
|
||||
|
|
||||
|
\fIsingle_use\fR (default false, unless \fIrefund_for\fR) indicates that the |
||||
|
invoice associated with the offer is only valid once; for a |
||||
|
\fIsend_invoice\fR offer many invoices can be accepted until one is |
||||
|
successfully paid (and we will only attempt to pay one at any time)\. |
||||
|
For a non-\fIsingle-use\fR offer, we will issue any number of invoices as |
||||
|
requested, until one is paid, at which time we will expire all the |
||||
|
other invoices for this offer and issue no more\. |
||||
|
|
||||
|
.SH RETURN VALUE |
||||
|
|
||||
|
On success, an object as follows is returned: |
||||
|
|
||||
|
.RS |
||||
|
.IP \[bu] |
||||
|
\fIoffer_id\fR: the hash of the offer\. |
||||
|
.IP \[bu] |
||||
|
\fIactive\fR: true |
||||
|
.IP \[bu] |
||||
|
\fIsingle_use\fR: true if \fIsingle_use\fR was specified or implied\. |
||||
|
.IP \[bu] |
||||
|
\fIbolt12\fR: the bolt12 offer, starting with "lno1" |
||||
|
|
||||
|
.RE |
||||
|
|
||||
|
Optionally: |
||||
|
|
||||
|
.RS |
||||
|
.IP \[bu] |
||||
|
\fIlabel\fR: the user-specified label\. |
||||
|
|
||||
|
.RE |
||||
|
|
||||
|
On failure, an error is returned and no offer is created\. If the |
||||
|
lightning process fails before responding, the caller should use |
||||
|
\fBlightning-listoffers\fR(7) to query whether this offer was created or |
||||
|
not\. |
||||
|
|
||||
|
|
||||
|
The following error codes may occur: |
||||
|
|
||||
|
.RS |
||||
|
.IP \[bu] |
||||
|
-1: Catchall nonspecific error\. |
||||
|
.IP \[bu] |
||||
|
1000: Offer with this offer_id already exists\. |
||||
|
|
||||
|
.RE |
||||
|
.SH AUTHOR |
||||
|
|
||||
|
Rusty Russell \fI<rusty@rustcorp.com.au\fR> is mainly responsible\. |
||||
|
|
||||
|
.SH SEE ALSO |
||||
|
|
||||
|
\fBlightning-listoffers\fR(7), \fBlightning-deloffer\fR(7)\. |
||||
|
|
||||
|
.SH RESOURCES |
||||
|
|
||||
|
Main web site: \fIhttps://github.com/ElementsProject/lightning\fR |
||||
|
|
||||
|
\" SHA256STAMP:88a1e0515adae79cdeef661b6462879d7fb0d666a7731ffdb131053c15c1b9de |
@ -0,0 +1,134 @@ |
|||||
|
lightning-offer -- Command for accepting payments |
||||
|
================================================= |
||||
|
|
||||
|
SYNOPSIS |
||||
|
-------- |
||||
|
|
||||
|
*EXPERIMENTAL_FEATURES only* |
||||
|
|
||||
|
**offer** *amount* *description* \[*send_invoice*\] \[*label*\] \[*vendor*\] \[*quantity_min*\] \[*quantity_max*\] \[*absolute_expiry*\] \[*recurrence*\] \[*recurrence_base*\] \[*recurrence_paywindow*\] \[*recurrence_limit*\] \[*refund_for*\] \[*single_use*\] |
||||
|
|
||||
|
DESCRIPTION |
||||
|
----------- |
||||
|
|
||||
|
The **offer** RPC command creates an offer, which is a precursor to |
||||
|
one or more invoices. It automatically enables the accepting of |
||||
|
corresponding invoice_request or invoice messages (depending on |
||||
|
*send_invoice*). |
||||
|
|
||||
|
The *amount* parameter can be the string "any", which creates an offer |
||||
|
that can be paid with any amount (e.g. a donation). Otherwise it can |
||||
|
be a positive value in millisatoshi precision; it can be a whole |
||||
|
number, or a whole number ending in *msat* or *sat*, or a number with |
||||
|
three decimal places ending in *sat*, or a number with 1 to 11 decimal |
||||
|
places ending in *btc*. |
||||
|
|
||||
|
*amount* can also have an ISO 4217 postfix (i.e. USD), in which case |
||||
|
currency conversion will need to be done for the invoice itself. |
||||
|
|
||||
|
The *description* is a short description of purpose of the offer, |
||||
|
e.g. *coffee*. This value is encoded into the resulting offer and is |
||||
|
viewable by anyone you expose this offer to. It must be UTF-8, and |
||||
|
cannot use *\\u* JSON escape codes. |
||||
|
|
||||
|
The *vendor* is another (optional) field exposed in the offer, and |
||||
|
reflects who is issuing this offer (i.e. you) if appropriate. |
||||
|
|
||||
|
The *send_invoice* boolean (default false unless *single_use*) creates |
||||
|
an offer to send money: the user of the offer will send an invoice, |
||||
|
rather than an invoice_request. This is encoded in the offer. Note |
||||
|
that *recurrence* and ISO 4217 currencies are not currently |
||||
|
well-supported for this case! |
||||
|
|
||||
|
The *label* field is an internal-use name for the offer, which can |
||||
|
be any UTF-8 string. |
||||
|
|
||||
|
The present of *quantity_min* or *quantity_max* indicates that the |
||||
|
invoice can specify more than one of the items within this (inclusive) |
||||
|
range. The *amount* for the invoice will need to be multiplied |
||||
|
accordingly. These are encoded in the offer. |
||||
|
|
||||
|
The *absolute_expiry* is optionally the time the offer is valid until, |
||||
|
in seconds since the first day of 1970 UTC. If not set, the offer |
||||
|
remains valid (though it can be deactivated by the issuer of course). |
||||
|
This is encoded in the offer. |
||||
|
|
||||
|
*recurrence* means that an invoice is expected at regular intervals. |
||||
|
The argument is a positive number followed by one of "seconds", |
||||
|
"minutes", "hours", "days", "weeks", "months" or "years" (variants |
||||
|
without the trailing "s" are also permitted). This is encoded in the |
||||
|
offer. The semantics of recurrence is fairly predictable, but fully |
||||
|
documented in BOLT 12. e.g. "4weeks". |
||||
|
|
||||
|
*recurrence_base* is an optional time in seconds since the first day |
||||
|
of 1970 UTC, optionally with a "@" prefix. This indicates when the |
||||
|
first period begins; without this, the recurrence periods start from |
||||
|
the first invoice. The "@" prefix means that the invoice must start |
||||
|
by paying the first period; otherwise it is permitted to start at any |
||||
|
period. This is encoded in the offer. e.g. "@1609459200" indicates |
||||
|
you must start paying on the 1st January 2021. |
||||
|
|
||||
|
*recurrence_paywindow* is an optional argument of form |
||||
|
'-time+time\[%\]'. The first time is the number of seconds before the |
||||
|
start of a period in which an invoice and payment is valid, the second |
||||
|
time is the number of seconds after the start of the period. For |
||||
|
example *-604800+86400* means you can fetch an pay the invoice 4 weeks |
||||
|
before the given period starts, and up to 1 day afterwards. The |
||||
|
optional *%* indicates that the amount of the invoice will be scaled |
||||
|
by the time remaining in the period. If this is not specified, the |
||||
|
default is that payment is allowed during the current and previous |
||||
|
periods. This is encoded in the offer. |
||||
|
|
||||
|
*recurrence_limit* is an optional argument to indicate the maximum |
||||
|
period which exists. eg. "12" means there are 13 periods, from 0 to |
||||
|
12 inclusive. This is encoded in the offer. |
||||
|
|
||||
|
*refund_for* is the payment_preimage of a previous (paid) invoice. |
||||
|
This implies *send_invoice* and *single_use*. This is encoded in the |
||||
|
offer. |
||||
|
|
||||
|
*single_use* (default false, unless *refund_for*) indicates that the |
||||
|
invoice associated with the offer is only valid once; for a |
||||
|
*send_invoice* offer many invoices can be accepted until one is |
||||
|
successfully paid (and we will only attempt to pay one at any time). |
||||
|
For a non-*single-use* offer, we will issue any number of invoices as |
||||
|
requested, until one is paid, at which time we will expire all the |
||||
|
other invoices for this offer and issue no more. |
||||
|
|
||||
|
RETURN VALUE |
||||
|
------------ |
||||
|
|
||||
|
On success, an object as follows is returned: |
||||
|
|
||||
|
* *offer_id*: the hash of the offer. |
||||
|
* *active*: true |
||||
|
* *single_use*: true if *single_use* was specified or implied. |
||||
|
* *bolt12*: the bolt12 offer, starting with "lno1" |
||||
|
|
||||
|
Optionally: |
||||
|
* *label*: the user-specified label. |
||||
|
|
||||
|
On failure, an error is returned and no offer is created. If the |
||||
|
lightning process fails before responding, the caller should use |
||||
|
lightning-listoffers(7) to query whether this offer was created or |
||||
|
not. |
||||
|
|
||||
|
The following error codes may occur: |
||||
|
- -1: Catchall nonspecific error. |
||||
|
- 1000: Offer with this offer_id already exists. |
||||
|
|
||||
|
AUTHOR |
||||
|
------ |
||||
|
|
||||
|
Rusty Russell <<rusty@rustcorp.com.au>> is mainly responsible. |
||||
|
|
||||
|
SEE ALSO |
||||
|
-------- |
||||
|
|
||||
|
lightning-listoffers(7), lightning-deloffer(7). |
||||
|
|
||||
|
RESOURCES |
||||
|
--------- |
||||
|
|
||||
|
Main web site: <https://github.com/ElementsProject/lightning> |
||||
|
|
@ -0,0 +1,81 @@ |
|||||
|
.TH "LIGHTNING-SENDINVOICE" "7" "" "" "lightning-sendinvoice" |
||||
|
.SH NAME |
||||
|
lightning-sendinvoice - Command for send an invoice for an offer |
||||
|
.SH SYNOPSIS |
||||
|
|
||||
|
\fIEXPERIMENTAL_FEATURES only\fR |
||||
|
|
||||
|
|
||||
|
\fBsendinvoice\fR \fIoffer\fR [\fIlabel\fR] [\fImsatoshi\fR] [\fItimeout\fR] [\fIinvoice_timeout\fR] [\fIquantity\fR] |
||||
|
|
||||
|
.SH DESCRIPTION |
||||
|
|
||||
|
The \fBsendinvoice\fR RPC command creates and sends an invoice to the |
||||
|
issuer of an \fIoffer\fR for it to pay: the offer must contain |
||||
|
\fIsend_invoice\fR; see \fBlightning-fetchinvoice\fR(7)\. |
||||
|
|
||||
|
|
||||
|
\fIoffer\fR is the bolt12 offer string beginning with "lno1"\. |
||||
|
|
||||
|
|
||||
|
\fIlabel\fR is the unique label to use for this invoice\. |
||||
|
|
||||
|
|
||||
|
\fImsatoshi\fR is optional: it is required if the \fIoffer\fR 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), and if not it defaults to the |
||||
|
amount contained in the offer (multiplied by \fIquantity\fR if any)\. |
||||
|
|
||||
|
|
||||
|
\fItimeout\fR is how many seconds to wait for the offering node to pay the |
||||
|
invoice or return an error, default 90 seconds\. |
||||
|
|
||||
|
|
||||
|
\fIinvoice_timeout\fR can be set to greater than \fItimeout\fR, to give the |
||||
|
offering node longer to pay; in this case \fIsendinvoice\fR will time out |
||||
|
but the invoice will still be valid, and the caller should monitor it\. |
||||
|
|
||||
|
|
||||
|
\fIquantity\fR is optional: it is required if the \fIoffer\fR specifies |
||||
|
\fIquantity_min\fR or \fIquantity_max\fR, otherwise it is not allowed\. |
||||
|
|
||||
|
.SH RETURN VALUE |
||||
|
|
||||
|
On success, an object as follows is returned: |
||||
|
|
||||
|
.RS |
||||
|
.IP \[bu] |
||||
|
\fIinvstring\fR: the bolt12-encoded invoice string we sent (now paid), starting with "lni1"\. |
||||
|
.IP \[bu] |
||||
|
\fImsat\fR: the amount they paid\. |
||||
|
|
||||
|
.RE |
||||
|
|
||||
|
The following error codes may occur: |
||||
|
|
||||
|
.RS |
||||
|
.IP \[bu] |
||||
|
-1: Catchall nonspecific error\. |
||||
|
.IP \[bu] |
||||
|
1002: Offer has expired\. |
||||
|
.IP \[bu] |
||||
|
1003: Cannot find a route to the node making the offer\. |
||||
|
.IP \[bu] |
||||
|
1004: The node making the offer returned an error message\. |
||||
|
.IP \[bu] |
||||
|
1005: We timed out waiting for the invoice to be paid |
||||
|
|
||||
|
.RE |
||||
|
.SH AUTHOR |
||||
|
|
||||
|
Rusty Russell \fI<rusty@rustcorp.com.au\fR> is mainly responsible\. |
||||
|
|
||||
|
.SH SEE ALSO |
||||
|
|
||||
|
\fBlightning-fetchinvoice\fR(7)\. |
||||
|
|
||||
|
.SH RESOURCES |
||||
|
|
||||
|
Main web site: \fIhttps://github.com/ElementsProject/lightning\fR |
||||
|
|
||||
|
\" SHA256STAMP:0ffd4c0967f4aa7ffb2f14ed4658dbe4ef79926a08acf0534db47fdd8bd1b6bc |
@ -0,0 +1,66 @@ |
|||||
|
lightning-sendinvoice -- Command for send an invoice for an offer |
||||
|
================================================================= |
||||
|
|
||||
|
SYNOPSIS |
||||
|
-------- |
||||
|
|
||||
|
*EXPERIMENTAL_FEATURES only* |
||||
|
|
||||
|
**sendinvoice** *offer* \[*label*\] \[*msatoshi*\] \[*timeout*\] \[*invoice_timeout*\] \[*quantity*\] |
||||
|
|
||||
|
DESCRIPTION |
||||
|
----------- |
||||
|
|
||||
|
The **sendinvoice** RPC command creates and sends an invoice to the |
||||
|
issuer of an *offer* for it to pay: the offer must contain |
||||
|
*send_invoice*; see lightning-fetchinvoice(7). |
||||
|
|
||||
|
*offer* is the bolt12 offer string beginning with "lno1". |
||||
|
|
||||
|
*label* is the unique label to use for this invoice. |
||||
|
|
||||
|
*msatoshi* is optional: it is 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), and if not it defaults to the |
||||
|
amount contained in the offer (multiplied by *quantity* if any). |
||||
|
|
||||
|
*timeout* is how many seconds to wait for the offering node to pay the |
||||
|
invoice or return an error, default 90 seconds. |
||||
|
|
||||
|
*invoice_timeout* can be set to greater than *timeout*, to give the |
||||
|
offering node longer to pay; in this case *sendinvoice* will time out |
||||
|
but the invoice will still be valid, and the caller should monitor it. |
||||
|
|
||||
|
*quantity* is optional: it is required if the *offer* specifies |
||||
|
*quantity_min* or *quantity_max*, otherwise it is not allowed. |
||||
|
|
||||
|
RETURN VALUE |
||||
|
------------ |
||||
|
|
||||
|
On success, an object as follows is returned: |
||||
|
|
||||
|
* *invstring*: the bolt12-encoded invoice string we sent (now paid), starting with "lni1". |
||||
|
* *msat*: the amount they paid. |
||||
|
|
||||
|
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 |
||||
|
|
||||
|
AUTHOR |
||||
|
------ |
||||
|
|
||||
|
Rusty Russell <<rusty@rustcorp.com.au>> is mainly responsible. |
||||
|
|
||||
|
SEE ALSO |
||||
|
-------- |
||||
|
|
||||
|
lightning-fetchinvoice(7). |
||||
|
|
||||
|
RESOURCES |
||||
|
--------- |
||||
|
|
||||
|
Main web site: <https://github.com/ElementsProject/lightning> |
||||
|
|
Loading…
Reference in new issue