'\" t
. \" Title: lightning-pay
. \" Author: [see the "AUTHOR" section]
. \" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/>
. \" Date: 02/11/2018
. \" Manual: \ \&
. \" Source: \ \&
. \" Language: English
. \"
.TH "LIGHTNING\-PAY" "7" "02/11/2018" "\ \&" "\ \&"
. \" -----------------------------------------------------------------
. \" * Define some portability stuff
. \" -----------------------------------------------------------------
. \" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
. \" http://bugs.debian.org/507673
. \" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
. \" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.ie \n (.g .ds Aq \(aq
.el .ds Aq '
. \" -----------------------------------------------------------------
. \" * set default formatting
. \" -----------------------------------------------------------------
. \" disable hyphenation
.nh
. \" disable justification (adjust text to left margin only)
.ad l
. \" -----------------------------------------------------------------
. \" * MAIN CONTENT STARTS HERE *
. \" -----------------------------------------------------------------
.SH "NAME"
lightning-pay \- Protocol for sending a payment to a BOLT11 invoice
.SH "SYNOPSIS"
.sp
\fB pay\fR \fI bolt11\fR [\fI msatoshi\fR ] [\fI description\fR ] [\fI riskfactor\fR ] [\fI maxfeepercent\fR ]
.SH "DESCRIPTION"
.sp
The \fB pay\fR RPC command attempts to find a route to the given destination, and send the funds it asks for\& . If the \fI bolt11\fR does not contain an amount, \fI msatoshi\fR is required, otherwise if it is specified it must be \fI null\fR \& . If \fI bolt11\fR contains a description hash (\fI h\fR field) \fI description\fR is required, otherwise it is unused\& . The \fI riskfactor\fR is described in detail in lightning\- getroute(7), and defaults to 1\& .0\& . The \fI maxfeepercent\fR limits the money paid in fees, and defaults to 0\& .5\& . The \(oq maxfeepercent\(cq is a percentage of the amount that is to be paid\& .
.sp
The response will occur when the payment fails or succeeds\& . Once a payment has succeeded, calls to \fB pay\fR with the same \fI bolt11\fR will succeed immediately\& .
.sp
When using \fI lightning\- cli\fR , you may skip optional parameters by using \fI null\fR \& . Alternatively, use \fB \- k\fR option to provide parameters by name\& .
.SH "RETURN VALUE"
.sp
On success, this returns the payment \fI preimage\fR which hashes to the \fI payment_hash\fR to prove that the payment was successful\& .
.sp
On error, if the error occurred from a node other than the final destination, the route table will be updated so that getroute(7) should return an alternate route (if any)\& . An error from the final destination implies the payment should not be retried\& .
.sp
The following error codes may occur:
.sp
.RS 4
.ie n \{ \
\h '-04'\(bu \h '+03'\c
. \}
.el \{ \
.sp -1
.IP \(bu 2 .3
. \}
\- 1\& . Catchall nonspecific error\& .
.RE
.sp
.RS 4
.ie n \{ \
\h '-04'\(bu \h '+03'\c
. \}
.el \{ \
.sp -1
.IP \(bu 2 .3
. \}
200\& . A previous
\fB sendpay\fR
or
\fB pay\fR
is in progress\& .
.RE
.sp
.RS 4
.ie n \{ \
\h '-04'\(bu \h '+03'\c
. \}
.el \{ \
.sp -1
.IP \(bu 2 .3
. \}
201\& . Already paid with this
\fI hash\fR
using different amount or destination\& .
.RE
.sp
.RS 4
.ie n \{ \
\h '-04'\(bu \h '+03'\c
. \}
.el \{ \
.sp -1
.IP \(bu 2 .3
. \}
202\& . Unparseable onion reply\& . The
\fI data\fR
field of the error will have an
\fI onionreply\fR
field, a hex string representation of the raw onion reply\& .
.RE
.sp
.RS 4
.ie n \{ \
\h '-04'\(bu \h '+03'\c
. \}
.el \{ \
.sp -1
.IP \(bu 2 .3
. \}
203\& . Permanent failure at destination\& . The
\fI data\fR
field of the error will be routing failure object\& .
.RE
.sp
.RS 4
.ie n \{ \
\h '-04'\(bu \h '+03'\c
. \}
.el \{ \
.sp -1
.IP \(bu 2 .3
. \}
204\& . Failure along route; retry a different route\& . The
\fI data\fR
field of the error will be routing failure object\& .
.RE
.sp
.RS 4
.ie n \{ \
\h '-04'\(bu \h '+03'\c
. \}
.el \{ \
.sp -1
.IP \(bu 2 .3
. \}
205\& . Unable to find a route\& .
.RE
.sp
.RS 4
.ie n \{ \
\h '-04'\(bu \h '+03'\c
. \}
.el \{ \
.sp -1
.IP \(bu 2 .3
. \}
206\& . Route too expensive\& . The
\fI data\fR
field of the error will indicate the actual
\fI fee\fR
as well as the
\fI feepercent\fR
percentage that the fee has of the destination payment amount\& .
.RE
.sp
A routing failure object has the fields below:
.sp
.RS 4
.ie n \{ \
\h '-04'\(bu \h '+03'\c
. \}
.el \{ \
.sp -1
.IP \(bu 2 .3
. \}
\fI erring_index\fR \& . The index of the node along the route that reported the error\& . 0 for the local node, 1 for the first hop, and so on\& .
.RE
.sp
.RS 4
.ie n \{ \
\h '-04'\(bu \h '+03'\c
. \}
.el \{ \
.sp -1
.IP \(bu 2 .3
. \}
\fI erring_node\fR \& . The hex string of the pubkey id of the node that reported the error\& .
.RE
.sp
.RS 4
.ie n \{ \
\h '-04'\(bu \h '+03'\c
. \}
.el \{ \
.sp -1
.IP \(bu 2 .3
. \}
\fI erring_channel\fR \& . The short channel ID of the channel that has the error, or
\fI 0:0:0\fR
if the destination node raised the error\& .
.RE
.sp
.RS 4
.ie n \{ \
\h '-04'\(bu \h '+03'\c
. \}
.el \{ \
.sp -1
.IP \(bu 2 .3
. \}
\fI failcode\fR \& . The failure code, as per BOLT #4\& .
.RE
.sp
.RS 4
.ie n \{ \
\h '-04'\(bu \h '+03'\c
. \}
.el \{ \
.sp -1
.IP \(bu 2 .3
. \}
\fI channel_update\fR \& . The hex string of the
\fI channel_update\fR
message received from the remote node\& . Only present if error is from the remote node and the
\fI failcode\fR
has the UPDATE bit set, as per BOLT #4\& .
.RE
.SH "AUTHOR"
.sp
Rusty Russell <rusty@rustcorp\& .com\& .au> is mainly responsible\& .
.SH "SEE ALSO"
.sp
lightning\- listpayments(7), lightning\- decodepay(7), lightning\- listinvoice(7), lightning\- delinvoice(7), lightning\- getroute(7), lightning\- invoice(7)\& .
.SH "RESOURCES"
.sp
Main web site: https://github\& .com/ElementsProject/lightning