<!-- ZenPays documentation · https://docs.zenpayz.com/docs/api-reference/invoices -->

# Invoices

Create, manage, and send invoices to customers. Access via `zenpays.invoices`.

## Methods

### create

<Tabs groupId="language">
  <TabItem value="javascript" label="JavaScript" default>

```typescript
const invoice = await zenpays.invoices.create({
  customerId: 'cust_xxx',
  items: [
    { description: 'Premium Plan', amount: 999, quantity: 1 },
  ],
  currency: 'INR',
  dueDate: '2024-12-31',
})
```

  </TabItem>
  <TabItem value="python" label="Python">

```python
invoice = zenpays.invoices.create({
    "customerId": "cust_xxx",
    "items": [
        {"description": "Premium Plan", "amount": 999, "quantity": 1},
    ],
    "currency": "INR",
    "dueDate": "2024-12-31",
})
```

  </TabItem>
</Tabs>

---

### list

<Tabs groupId="language">
  <TabItem value="javascript" label="JavaScript" default>

```typescript
const { data } = await zenpays.invoices.list({
  status: 'pending',
  page: 1,
  limit: 20,
})
```

  </TabItem>
  <TabItem value="python" label="Python">

```python
result = zenpays.invoices.list({"status": "pending", "limit": 20})
```

  </TabItem>
</Tabs>

---

### getAnalytics

```typescript
const analytics = await zenpays.invoices.getAnalytics()
```

---

### get

```typescript
const invoice = await zenpays.invoices.get('inv_xxx')
```

---

### update

```typescript
const updated = await zenpays.invoices.update('inv_xxx', {
  dueDate: '2025-01-31',
})
```

---

### send

Send an invoice to the customer via email.

```typescript
const result = await zenpays.invoices.send('inv_xxx')
```

---

### cancel

```typescript
const cancelled = await zenpays.invoices.cancel('inv_xxx')
```

---

### generateLink

Generate a shareable payment link for an invoice.

```typescript
const { url } = await zenpays.invoices.generateLink('inv_xxx')
// Returns: { url: 'https://pay.zenpayz.com/invoice/inv_xxx' }
```
