---
title: "Create a fiscal document of the type pro forma invoice"
method: POST
path: "/fiscal-document/v1/fiscal-documents/pro-forma-invoice/preview"
tags: ["Fiscal Documents"]
---

# Create a fiscal document of the type pro forma invoice

`POST /fiscal-document/v1/fiscal-documents/pro-forma-invoice/preview`

## Request

- Base URL: `https://api.cloudbeds.com`
- URL: `https://api.cloudbeds.com/fiscal-document/v1/fiscal-documents/pro-forma-invoice/preview`
- Auth: one of:
  - HTTP bearer
  - OAuth 2
    - Authorization code: `https://api.cloudbeds.com/auth/oauth/authorize`
    - Token URL: `https://api.cloudbeds.com/auth/oauth/token` scopes: `read:reservation`

Create a fiscal document of the type pro forma invoice.

**Pro Forma Invoice Characteristics:**
- Contains pending transactions that are subject to change
- Includes payment information
- Transactions are NOT locked (unlike regular invoices)
- Can be converted to regular invoices later when transactions are posted
- Has its own sequence numbering and settings

## Headers

- `X-Property-ID` integer, required

## Request body

- ProFormaInvoicePreviewRequest
  - `transactionIds` integer[], required: List of pending transaction IDs to include in the pro forma invoice (deprecated, use `includeTransactionIds` instead)
  - `transactionIdToAmount` object, nullable: Map of transaction ID to amount (in major currency units, e.g., 10.50 for $10.50) for partial transaction inclusion
  - `paymentIds` integer[]: List of payment IDs associated with the pending transactions
  - `sourceId` integer, required
  - `sequenceId` integer, nullable
  - `sourceKind` 'GROUP_PROFILE' | 'RESERVATION' | 'HOUSE_ACCOUNT' | 'ACCOUNTS_RECEIVABLE_LEDGER', required: Kind of the source entity
  - `userId` integer, nullable: Ignored. The document is attributed to the authenticated user.
  - `recipient` RecipientRequest, required
    - `type` 'GUEST' | 'CONTACT' | 'GROUP' | 'COMPANY' | 'GROUP_PROFILE' | 'GROUP_PROFILE_CONTACT', required: Type of the recipient.
    - `id` integer, required: ID of the recipient, references guestId, contactId, groupId, etc. depending on type.
    - `taxDocumentSource` 'GUEST_TAX_ID' | 'GUEST_DOCUMENT_NUMBER': Source of the tax document number.
  - `invoiceDate` string, date: Date for the pro forma invoice (defaults to current date if not provided)
  - `folioIds` integer[]: Include all transactions from the specified folio IDs
  - `excludeTransactionIds` integer[]: Exclude transactions with the specified IDs
  - `includeTransactionIds` integer[]: Include transactions with the specified IDs
  - `packageBreakdown` boolean, nullable: Per-document override for package breakdown. Null means use property default.
  - `lineGroupingSelection` LineGroupingSelectionRequest: Per-document grouping chosen in the create modal. Each omitted field keeps the property default. lineGrouping and posGrouping must be inside the property allowed set; otherwise the request is rejected. groupByRoom and groupByBusinessDate are free per-document modifiers: the property has no allowed set for them, only a default. Locked on the document once created.
    - `lineGrouping` 'NONE' | 'TRANSACTION' | 'RATE_PLAN_SHOW_ADDONS' | 'RATE_PLAN_HIDE_ADDONS'
    - `posGrouping` 'NONE' | 'CHECK_NUMBER'
    - `groupByRoom` boolean, nullable
    - `groupByBusinessDate` boolean, nullable

## Response `200`

Successful file download

## Other responses

- `400`: The property reports to a fiscal journal that admits no unissued document, so nothing may be rendered before it is issued. No document was created or submitted.

---

[API](https://skmtc.dev/cloudbeds/apis/fiscal-document-service-api.md) - [All operations](https://skmtc.dev/cloudbeds/apis/fiscal-document-service-api/llms.txt) - [OpenAPI document](https://skmtc.dev/cloudbeds/apis/fiscal-document-service-api/revisions/9c2a47775e5e?raw)
