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
}
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
}
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(
    [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
}
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
}
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
}
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
}