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

# Generate Customer Invoice PDF

> Generate a customer-facing invoice PDF (S3 URL, 48h expiry)

<Note>
  **V2 Preview** — This endpoint is part of the V2 API preview. Breaking changes may occur.
</Note>

## Overview

Generate a customer-facing invoice PDF. Returns an S3 URL that expires in **48 hours**. Vendor tokens are scoped automatically. Merchants may omit vendor scope for a shop-level invoice, or pass `vendorId` via query param and/or body to scope to a vendor. The query parameter takes precedence when both are supplied.

## Query Parameters

<ParamField query="vendorId" type="string">
  Optional vendor ObjectId (merchants). Takes precedence over body `vendorId`.
</ParamField>

## Request Body

<ParamField body="orderId" type="string" required>
  Order ObjectId.
</ParamField>

<ParamField body="vendorId" type="string">
  Optional vendor ObjectId (merchants).
</ParamField>

## Response

```json 200 theme={null}
{
  "success": true,
  "data": {
    "url": "https://puppetvendors-pdfs.s3.amazonaws.com/customer-invoices/...",
    "expiresAt": "2026-04-17T14:22:31Z"
  }
}
```

## Example

```bash theme={null}
curl -X POST "https://staging-api.puppetvendors.com/documents/customer-invoice" \
  -H "x-access-token: YOUR_VENDOR_JWT" \
  -H "Content-Type: application/json" \
  -d '{ "orderId": "507f1f77bcf86cd799439014" }'
```
