> ## Documentation Index
> Fetch the complete documentation index at: https://docs.spark.money/llms.txt
> Use this file to discover all available pages before exploring further.

# createSatsInvoice

> Create a Spark invoice to receive sats from another Spark wallet.

Creates a Spark invoice for receiving a sats payment on Spark.

## Method Signature

```typescript theme={null}
async createSatsInvoice({
  amount,
  memo,
  senderSparkAddress,
  expiryTime,
  receiverIdentityPubkey,
}: {
  amount?: number;
  memo?: string;
  senderSparkAddress?: SparkAddressFormat;
  expiryTime?: Date;
  receiverIdentityPubkey?: string;
}): Promise<SparkAddressFormat>
```

## Parameters

<ResponseField name="amount" type="number">
  The amount of sats to receive (optional for open invoices). Max: 2,100,000,000,000,000 sats (21M BTC).
</ResponseField>

<ResponseField name="memo" type="string">
  Optional memo/description for the payment
</ResponseField>

<ResponseField name="senderSparkAddress" type="SparkAddressFormat">
  Optional Spark address of the expected sender
</ResponseField>

<ResponseField name="expiryTime" type="Date">
  Optional expiry time for the invoice
</ResponseField>

<ResponseField name="receiverIdentityPubkey" type="string">
  Optional public key of the wallet receiving the invoice. If provided and different from the creator's identity public key, the created invoice will be unsigned.
</ResponseField>

## Returns

<ResponseField name="invoice" type="SparkAddressFormat" required>
  A Spark address/invoice that can be paid by another Spark wallet
</ResponseField>

## Example

```typescript theme={null}
// Create an invoice for 1000 sats
const invoice = await wallet.createSatsInvoice({
  amount: 1000,
  memo: "Payment for coffee"
});
console.log("Spark invoice:", invoice);

// Create an open invoice (no amount specified)
const openInvoice = await wallet.createSatsInvoice({
  memo: "Tip jar"
});
```
