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

# Create a fiscal document of the type pro forma invoice

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

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

- ProFormaInvoiceRequest
  - `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
  - `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
  - `emails` string[], nullable — Optional list of email addresses to send the document to once it is ready

## Response `200`

OK

- FiscalDocumentSummaryResponse
  - `id` string
  - `kind` 'INVOICE' | 'CREDIT_NOTE' | 'RECEIPT' | 'RECTIFY_INVOICE' | 'PRO_FORMA_INVOICE' | 'REFUND_RECEIPT' | 'INVOICE_RECEIPT' | 'ADVANCE_INVOICE' | 'SETTLEMENT_INVOICE' | 'TAX_WITHHOLDING' — Kind of fiscal document
  - `status` 'COMPLETED' | 'VOIDED' | 'PAID' | 'PENDING_INTEGRATION' | 'PARTIALLY_PAID' | 'COMPLETED_INTEGRATION' | 'FAILED_INTEGRATION' | 'CORRECTION_NEEDED' | 'CANCELED' | 'CANCEL_REQUESTED' | 'OPEN' | 'REQUESTED' | 'VOID_REQUESTED' | 'FAILED' | 'MANUALLY_RECONCILED' | 'REJECTED' | 'ACCEPTED' | 'PENDING_TRANSACTION' | 'ALLOCATED' | 'APPLIED' — Status of the fiscal document
  - `governmentIntegration` GovernmentIntegration
    - `number` string
    - `series` string
    - `status` string
    - `qr` object
      - `url` string, uri
      - `string` string
    - `url` string, uri
    - `officialId` string
    - `externalId` string
    - `rectifyingInvoiceType` string
    - `cancellationFailedFallbackStatus` 'COMPLETED' | 'VOIDED' | 'PAID' | 'PENDING_INTEGRATION' | 'PARTIALLY_PAID' | 'COMPLETED_INTEGRATION' | 'FAILED_INTEGRATION' | 'CORRECTION_NEEDED' | 'CANCELED' | 'CANCEL_REQUESTED' | 'OPEN' | 'REQUESTED' | 'VOID_REQUESTED' | 'FAILED' | 'MANUALLY_RECONCILED' | 'REJECTED' | 'ACCEPTED' | 'PENDING_TRANSACTION' | 'ALLOCATED' | 'APPLIED' — Status of the fiscal document
    - `pdfFileBase64` string, byte — Base64-encoded PDF file content. Only allowed when status is COMPLETED_INTEGRATION.
    - `handwritten` boolean — Indicates this is a handwritten receipt created during POS unavailability.
    - `signatures` IntegrationSignature[] — Array of semantic signatures/response data from the government integration.
      - `type` string — Semantic type (JWT_TOKEN, QR_CODE_DATA, TRANSACTION_ID, COMPLIANCE_CHECK, etc.)
      - `label` string — Human-readable display label.
      - `value` string — The actual signature data/value.
      - `format` 'TEXT' | 'BASE64' | 'HEX' | 'URL' | 'UNKNOWN' — Format of the value.
      - `source` string — Source integration (FISKALTRUST_FR, FISKALTRUST_IT, etc.)
      - `rawMetadata` object — Original integration-specific codes for debugging/auditing.
    - `folioFiscal` string — MX SAT UUID (Folio Fiscal) — populated after CFDI acceptance by Fonoa.
    - `satQrCode` string — MX SAT validation URL used to verify a CFDI at verificacfdi.facturaelectronica.sat.gob.mx.
  - `linkedTo` string

---

[API](https://skmtc.net/cloudbeds/apis/cloudbeds-api.md) · [All operations](https://skmtc.net/cloudbeds/apis/cloudbeds-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/cloudbeds/cloudbeds-api/revisions/2faa857793e8/schema)
