webUPI.requestLightningInvoice()

Request a Lightning Network invoice from the UPI provider. The web app provides the payment amount either in satoshis or in INR, and the function returns a BOLT-11 invoice. The function could also optionally provide a price quote in INR.

Method


async function requestLightningInvoice(args: RequestLightningInvoiceArgs): RequestLightningInvoiceResponse;

Parameters


interface RequestLightningInvoiceArgs {
  amountSats?: number; // Optional: The amount to be paid in satoshis
  amountInr?: number; // Optional: The amount to be paid in INR
  requestQuote?: boolean; // Optional: Whether to request a price quote in INR
}

Response


interface RequestLightningInvoiceResponse {
  invoice: string; // The BOLT-11 invoice for the Lightning Network payment
  quote?: number; // Optional: The price quote in INR, if requested
}

Code Example


try {
    const requestArgs = {
        amountSats: 100000, // Amount in satoshis to be paid
        // Alternatively, specify amount in INR:
        // amountInr: 1000,
        requestQuote: true // Request a price quote in INR
    };
    const response = await webUPI.requestLightningInvoice(requestArgs);
    console.log(response.invoice); // BOLT-11 invoice
    if (response.quote) {
        console.log(response.quote); // Price quote in INR, if requested
    }
} catch (error) {
    // Request failed
    console.log(error);
}

In this version of the function, the amount to be paid can be specified either in satoshis or in INR, but not both. The UPI provider will then generate a Lightning Network invoice for that amount. The specifics of the implementation would again depend on the particular UPI app and the exchange rate used.

Last updated