Skip to main content

ListInvoices

ListInvoices returns a list of all the invoices currently stored within the database. Any active debug invoices are ignored. It has full support for paginated responses, allowing users to query for specific invoices through their add_index. This can be done by using either the first_index_offset or last_index_offset fields included in the response as the index_offset of the next request. By default, the first 100 invoices created will be returned. Backwards pagination is also supported through the Reversed flag.

Source: lightning.proto

gRPC

rpc ListInvoices (ListInvoiceRequest) returns (ListInvoiceResponse);

REST

HTTP MethodPath
GET /v1/invoices

Code Samples

const fs = require('fs');
const grpc = require('@grpc/grpc-js');
const protoLoader = require('@grpc/proto-loader');

const GRPC_HOST = 'localhost:10009'
const MACAROON_PATH = 'LND_DIR/data/chain/bitcoin/regtest/admin.macaroon'
const TLS_PATH = 'LND_DIR/tls.cert'

const loaderOptions = {
keepCase: true,
longs: String,
enums: String,
defaults: true,
oneofs: true,
};
const packageDefinition = protoLoader.loadSync('lightning.proto', loaderOptions);
const lnrpc = grpc.loadPackageDefinition(packageDefinition).lnrpc;
process.env.GRPC_SSL_CIPHER_SUITES = 'HIGH+ECDSA';
const tlsCert = fs.readFileSync(TLS_PATH);
const sslCreds = grpc.credentials.createSsl(tlsCert);
const macaroon = fs.readFileSync(MACAROON_PATH).toString('hex');
const macaroonCreds = grpc.credentials.createFromMetadataGenerator(function(args, callback) {
let metadata = new grpc.Metadata();
metadata.add('macaroon', macaroon);
callback(null, metadata);
});
let creds = grpc.credentials.combineChannelCredentials(sslCreds, macaroonCreds);
let client = new lnrpc.Lightning(GRPC_HOST, creds);
let request = {
pending_only: <bool>,
index_offset: <uint64>,
num_max_invoices: <uint64>,
reversed: <bool>,
creation_date_start: <uint64>,
creation_date_end: <uint64>,
};
client.listInvoices(request, function(err, response) {
console.log(response);
});
// Console output:
// {
// "invoices": <Invoice>,
// "last_index_offset": <uint64>,
// "first_index_offset": <uint64>,
// }

Messages

lnrpc.ListInvoiceRequest

Source: lightning.proto

FieldgRPC TypeREST TypeREST Placement
pending_only
boolbooleanquery
index_offset
uint64stringquery
num_max_invoices
uint64stringquery
reversed
boolbooleanquery
creation_date_start
uint64stringquery
creation_date_end
uint64stringquery

lnrpc.ListInvoiceResponse

Source: lightning.proto

FieldgRPC TypeREST Type
invoices
Invoice[]array
last_index_offset
uint64string
first_index_offset
uint64string

Nested Messages

lnrpc.AMP

FieldgRPC TypeREST Type
root_share
bytesstring
set_id
bytesstring
child_index
uint32integer
hash
bytesstring
preimage
bytesstring

lnrpc.AMPInvoiceState

FieldgRPC TypeREST Type
state
InvoiceHTLCStatestring
settle_index
uint64string
settle_time
int64string
amt_paid_msat
int64string

lnrpc.BlindedPathConfig

FieldgRPC TypeREST Type
min_num_real_hops
uint32integer
num_hops
uint32integer
max_num_paths
uint32integer
node_omission_list
bytes[]array

lnrpc.Feature

FieldgRPC TypeREST Type
name
stringstring
is_required
boolboolean
is_known
boolboolean

lnrpc.HopHint

FieldgRPC TypeREST Type
node_id
stringstring
chan_id
uint64string
fee_base_msat
uint32integer
fee_proportional_millionths
uint32integer
cltv_expiry_delta
uint32integer

lnrpc.Invoice

FieldgRPC TypeREST Type
memo
stringstring
r_preimage
bytesstring
r_hash
bytesstring
value
int64string
value_msat
int64string
settleddeprecated
boolboolean
creation_date
int64string
settle_date
int64string
payment_request
stringstring
description_hash
bytesstring
expiry
int64string
fallback_addr
stringstring
cltv_expiry
uint64string
route_hints
RouteHint[]array
private
boolboolean
add_index
uint64string
settle_index
uint64string
amt_paiddeprecated
int64string
amt_paid_sat
int64string
amt_paid_msat
int64string
state
InvoiceStatestring
htlcs
InvoiceHTLC[]array
features
FeaturesEntry[]object
is_keysend
boolboolean
payment_addr
bytesstring
is_amp
boolboolean
amp_invoice_state
AmpInvoiceStateEntry[]object
is_blinded
boolboolean
blinded_path_config
BlindedPathConfigobject

lnrpc.Invoice.AmpInvoiceStateEntry

FieldgRPC TypeREST Type
key
stringunknown
value
AMPInvoiceStateunknown

lnrpc.Invoice.FeaturesEntry

FieldgRPC TypeREST Type
key
uint32unknown
value
Featureunknown

lnrpc.InvoiceHTLC

FieldgRPC TypeREST Type
chan_id
uint64string
htlc_index
uint64string
amt_msat
uint64string
accept_height
int32integer
accept_time
int64string
resolve_time
int64string
expiry_height
int32integer
state
InvoiceHTLCStatestring
custom_records
CustomRecordsEntry[]object
mpp_total_amt_msat
uint64string
amp
AMPobject
custom_channel_data
bytesstring

lnrpc.InvoiceHTLC.CustomRecordsEntry

FieldgRPC TypeREST Type
key
uint64unknown
value
bytesunknown

lnrpc.RouteHint

FieldgRPC TypeREST Type
hop_hints
HopHint[]array

Enums

lnrpc.Invoice.InvoiceState

NameNumber
OPEN
0
SETTLED
1
CANCELED
2
ACCEPTED
3

lnrpc.InvoiceHTLCState

NameNumber
ACCEPTED
0
SETTLED
1
CANCELED
2