# POST /invoices/:invoice_id/line-items

**Resource:** [Invoices](./invoices.md)  
**MCP tool:** `add_invoice_line_item`  
**Scopes:** `invoices:write`  
**Write operation:** yes

Add one line item to a native invoice. Requires description; line_total and invoice totals are computed.

## Parameters

| Name | In | Type | Required | Description |
|------|----|------|----------|-------------|
| `invoice_id` | path | string | yes |  |
| `product_id` | body | string | no |  |
| `description` | body | string | yes |  |
| `quantity` | body | number | no |  |
| `unit_price` | body | number | no |  |
| `discount_percent` | body | number | no |  |
| `tax_amount` | body | number | no |  |
| `external_line_id` | body | string | no |  |
| `require_approval` | body | boolean | no | Optional. Set true to route this write into the approval queue for human review instead of executing it immediately (returns 202 + an approval_id). Works even when your key/token has permission to execute directly. |

## Request example

```bash
curl -X POST   "https://api.trustpager.com/functions/v1/api/v1/invoices/:invoice_id/line-items"   -H "Authorization: Bearer YOUR_API_KEY"   -H "Content-Type: application/json"   -d '{"product_id":"...","description":"...","quantity":"..."}'
```

---
Base URL: `https://api.trustpager.com/functions/v1/api/v1` — Auth: `Authorization: Bearer YOUR_API_KEY`