Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Listing payments API docs

To view your payment history you can list all the sent and received payments made.

Rust
let payments = sdk.list_payments(&ListPaymentsRequest::default()).await?;
Swift
let payments = try? sdk.listPayments(req: ListPaymentsRequest())
Kotlin
try {
    val payments = sdk.listPayments(ListPaymentsRequest())
} catch (e: Exception) {
    // handle error
}
Javascript
const payments = await sdk.listPayments({})
React Native
const payments = await listPayments({})
Dart
ListPaymentsRequest req = ListPaymentsRequest();
List<Payment> paymentsList = await breezSDKLiquid.instance!.listPayments(req: req);
Python
sdk.list_payments(ListPaymentsRequest())
Go
if payments, err := sdk.ListPayments(breez_sdk_liquid.ListPaymentsRequest{}); err == nil {
    log.Printf("%#v", payments)
}
C#
try
{
    var payments = sdk.ListPayments(new ListPaymentsRequest());
}
catch (Exception)
{
    // Handle error
}

Filtering Payments

When listing payment you can also filter and page the list results, by:

Type and timestamp

Rust
let payments = sdk
    .list_payments(&ListPaymentsRequest {
        filters: Some(vec![PaymentType::Send]),
        states: None,
        from_timestamp: Some(1696880000),
        to_timestamp: Some(1696959200),
        offset: Some(0),
        limit: Some(50),
        details: None,
        sort_ascending: None,
    })
    .await?;
Swift
let payments = try? sdk.listPayments(
    req: ListPaymentsRequest(
        filters: [.send],
        fromTimestamp: 1696880000,
        toTimestamp: 1696959200,
        offset: 0,
        limit: 50
    ))
Kotlin
try {
    val payments = sdk.listPayments(
        ListPaymentsRequest(
            listOf(PaymentType.SEND),
            fromTimestamp = 1696880000,
            toTimestamp = 1696959200,
            offset = 0u,
            limit = 50u
        ))
} catch (e: Exception) {
    // handle error
}
Javascript
try {
  const payments = await sdk.listPayments({
    filters: ['send'],
    fromTimestamp: 1696880000,
    toTimestamp: 1696959200,
    offset: 0,
    limit: 50
  })
} catch (err) {
  console.error(err)
}
React Native
try {
  const payments = await listPayments({
    filters: [PaymentType.SEND],
    fromTimestamp: 1696880000,
    toTimestamp: 1696959200,
    offset: 0,
    limit: 50
  })
} catch (err) {
  console.error(err)
}
Dart
ListPaymentsRequest req = ListPaymentsRequest(
  filters: [PaymentType.send],
  fromTimestamp: 1696880000,
  toTimestamp: 1696959200,
  offset: 0,
  limit: 50,
);
List<Payment> paymentsList = await breezSDKLiquid.instance!.listPayments(req: req);
Python
req = ListPaymentsRequest(
    filters = [PaymentType.SEND],
    from_timestamp = 1696880000, 
    to_timestamp = 1696959200, 
    offset = 0,
    limit = 50)
sdk.list_payments(req)
Go
filters := []breez_sdk_liquid.PaymentType{breez_sdk_liquid.PaymentTypeSend}
fromTimestamp := int64(1696880000)
toTimestamp := int64(1696959200)
limit := uint32(50)
offset := uint32(0)
listPaymentsRequest := breez_sdk_liquid.ListPaymentsRequest{
    Filters:       &filters,
    FromTimestamp: &fromTimestamp,
    ToTimestamp:   &toTimestamp,
    Offset:        &offset,
    Limit:         &limit,
}
if payments, err := sdk.ListPayments(listPaymentsRequest); err == nil {
    log.Printf("%#v", payments)
}
C#
try
{
    var payments = sdk.ListPayments(
        new ListPaymentsRequest(
            new() { PaymentType.Send },
            fromTimestamp: 1696880000,
            toTimestamp: 1696959200,
            offset: 0,
            limit: 50
        ));
}
catch (Exception)
{
    // Handle error
}

Bitcoin address

Rust
let address = Some("<Bitcoin address>".to_string());
let payments = sdk
    .list_payments(&ListPaymentsRequest {
        filters: None,
        states: None,
        from_timestamp: None,
        to_timestamp: None,
        offset: None,
        limit: None,
        details: Some(ListPaymentDetails::Bitcoin { address }),
        sort_ascending: None,
    })
    .await?;
Swift
let address = "<Bitcoin address>"
let payments = try? sdk.listPayments(
    req: ListPaymentsRequest(
        details: ListPaymentDetails.bitcoin(address: address)
    ))
Kotlin
try {
    val address = "<Bitcoin address>"
    val payments = sdk.listPayments(
        ListPaymentsRequest(
            details = ListPaymentDetails.Bitcoin(address)
        ))
} catch (e: Exception) {
    // handle error
}
Javascript
try {
  const payments = await sdk.listPayments({
    details: {
      type: 'bitcoin',
      address: '<Bitcoin address>'
    }
  })
} catch (err) {
  console.error(err)
}
React Native
try {
  const payments = await listPayments({
    details: {
      type: ListPaymentDetailsVariant.BITCOIN,
      address: '<Bitcoin address>'
    }
  })
} catch (err) {
  console.error(err)
}
Dart
String address = "<Bitcoin address>";
ListPaymentsRequest req = ListPaymentsRequest(
  details: ListPaymentDetails_Bitcoin(address: address),
);
List<Payment> paymentsList = await breezSDKLiquid.instance!.listPayments(req: req);
Python
address = "<Bitcoin address>"
req = ListPaymentsRequest(
    details = ListPaymentDetails.BITCOIN(address))
sdk.list_payments(req)
Go
address := "<Bitcoin address>"
var details breez_sdk_liquid.ListPaymentDetails = breez_sdk_liquid.ListPaymentDetailsBitcoin{
    Address: &address,
}
listPaymentsRequest := breez_sdk_liquid.ListPaymentsRequest{
    Details: &details,
}
if payments, err := sdk.ListPayments(listPaymentsRequest); err == nil {
    log.Printf("%#v", payments)
}
C#
try
{
    var address = "<Bitcoin address>";
    var payments = sdk.ListPayments(
        new ListPaymentsRequest(
            details: new ListPaymentDetails.Bitcoin(address)
        ));
}
catch (Exception)
{
    // Handle error
}

Liquid destination

Rust
    let destination = Some("<Liquid BIP21 or address>".to_string());
    let payments = sdk
        .list_payments(&ListPaymentsRequest {
            filters: None,
            states: None,
            from_timestamp: None,
            to_timestamp: None,
            offset: None,
            limit: None,
            details: Some(ListPaymentDetails::Liquid {
                asset_id: None,
                destination,
            }),
            sort_ascending: None,
        })
        .await?;

    Ok(payments)
}
Swift
let destination = "<Liquid BIP21 or address>"
let payments = try? sdk.listPayments(
    req: ListPaymentsRequest(
        details: ListPaymentDetails.liquid(assetId: nil, destination: destination)
    ))
Kotlin
try {
    val destination = "<Liquid BIP21 or address>"
    val payments = sdk.listPayments(
        ListPaymentsRequest(
            details = ListPaymentDetails.Liquid(assetId = null, destination = destination)
        ))
} catch (e: Exception) {
    // handle error
}
Javascript
try {
  const payments = await sdk.listPayments({
    details: {
      type: 'liquid',
      destination: '<Liquid BIP21 or address>'
    }
  })
} catch (err) {
  console.error(err)
}
React Native
try {
  const payments = await listPayments({
    details: {
      type: ListPaymentDetailsVariant.LIQUID,
      destination: '<Liquid BIP21 or address>'
    }
  })
} catch (err) {
  console.error(err)
}
Dart
String destination = "<Liquid BIP21 or address>";
ListPaymentsRequest req = ListPaymentsRequest(
  details: ListPaymentDetails_Liquid(destination: destination),
);
List<Payment> paymentsList = await breezSDKLiquid.instance!.listPayments(req: req);
Python
destination = "<Liquid BIP21 or address>"
req = ListPaymentsRequest(
    details = ListPaymentDetails.LIQUID(destination=destination))
sdk.list_payments(req)
Go
destination := "<Liquid BIP21 or address>"
var details breez_sdk_liquid.ListPaymentDetails = breez_sdk_liquid.ListPaymentDetailsLiquid{
    Destination: &destination,
}
listPaymentsRequest := breez_sdk_liquid.ListPaymentsRequest{
    Details: &details,
}
if payments, err := sdk.ListPayments(listPaymentsRequest); err == nil {
    log.Printf("%#v", payments)
}
C#
try
{
    var destination = "<Liquid BIP21 or address>";
    var payments = sdk.ListPayments(
        new ListPaymentsRequest(
            details: new ListPaymentDetails.Liquid(assetId: null, destination: destination)
        ));
}
catch (Exception)
{
    // Handle error
}

Get Payment API docs

You can also retrieve a single Lightning payment using one of the following identifier kinds:

  • Lightning payment hash
  • Swap ID or its SHA256 hash
Rust
let payment_hash = "<payment hash>".to_string();
let payment = sdk
    .get_payment(&GetPaymentRequest::PaymentHash { payment_hash })
    .await?;

let swap_id = "<swap id>".to_string();
let payment = sdk
    .get_payment(&GetPaymentRequest::SwapId { swap_id })
    .await?;
Swift
let paymentHash = "<payment hash>"
let paymentByHash = try? sdk.getPayment(
    req: GetPaymentRequest.paymentHash(paymentHash: paymentHash)
)

let swapId = "<swap id>"
let paymentBySwapId = try? sdk.getPayment(
    req: GetPaymentRequest.swapId(swapId: swapId)
)
Kotlin
try {
    val paymentHash = "<payment hash>";
    val paymentByHash = sdk.getPayment(GetPaymentRequest.PaymentHash(paymentHash))

    val swapId = "<swap id>";
    val paymentBySwapId = sdk.getPayment(GetPaymentRequest.SwapId(swapId))
} catch (e: Exception) {
    // handle error
}
Javascript
const paymentHash = '<payment hash>'
const paymentByHash = await sdk.getPayment({
  type: 'paymentHash',
  paymentHash
})

const swapId = '<swap id>'
const paymentBySwapId = await sdk.getPayment({
  type: 'swapId',
  swapId
})
React Native
const paymentHash = '<payment hash>'
const paymentByHash = await getPayment({
  type: GetPaymentRequestVariant.PAYMENT_HASH,
  paymentHash
})

const swapId = '<swap id>'
const paymentBySwapId = await getPayment({
  type: GetPaymentRequestVariant.SWAP_ID,
  swapId
})
Dart
String paymentHash = "<payment hash>";
GetPaymentRequest reqByHash = GetPaymentRequest.paymentHash(paymentHash: paymentHash);
Payment? paymentByHash = await breezSDKLiquid.instance!.getPayment(req: reqByHash);

String swapId = "<swap id>";
GetPaymentRequest reqBySwapId = GetPaymentRequest.swapId(swapId: swapId);
Payment? paymentBySwapId = await breezSDKLiquid.instance!.getPayment(req: reqBySwapId);
Python
payment_hash = "<payment hash>"
sdk.get_payment(GetPaymentRequest.PAYMENT_HASH(payment_hash))

swap_id = "<swap id>"
sdk.get_payment(GetPaymentRequest.SWAP_ID(swap_id))
Go
paymentHash := "<payment hash>"
reqByPaymentHash := breez_sdk_liquid.GetPaymentRequestPaymentHash{
    PaymentHash: paymentHash,
}
if payment, err := sdk.GetPayment(reqByPaymentHash); err == nil {
    log.Printf("%#v", payment)
}

swapId := "<swap id>"
reqBySwapId := breez_sdk_liquid.GetPaymentRequestSwapId{
    SwapId: swapId,
}
if payment, err := sdk.GetPayment(reqBySwapId); err == nil {
    log.Printf("%#v", payment)
}
C#
try
{
    var paymentHash = "<payment hash>";
    var paymentByHash = sdk.GetPayment(
        new GetPaymentRequest.PaymentHash(paymentHash)
    );

    var swapId = "<swap id>";
    var paymentBySwapId = sdk.GetPayment(
        new GetPaymentRequest.SwapId(swapId)
    );
}
catch (Exception)
{
    // Handle error
}