*REST API › Objects › Finance*

# Proforma

> Proforma: the advance invoice that is not yet an invoice.

A proforma: the advance invoice that is not yet an invoice. It has a document status and an operative status (`pending`, `confirmed` or `cancelled`), which is the answer of the customer, and you change the operative one with [`PATCH /api/v1/proformas/{proformaId}/status`](https://docs.filmo.io/rest-api/endpoint-reference/proformas/change-the-commercial-status-of-a-proforma). It shares the scope of invoices.

Schemas: `ProformaDto`

## Attributes

| Name | Type | Description |
| --- | --- | --- |
| `id` | string | Proforma identifier. |
| `proformaNumber` | string | Proforma number; null while it is a draft. |
| `status` | string | Document lifecycle status. |
| `operativeStatus` | string | Commercial status: pending (awaiting an answer), confirmed (accepted by the customer) or cancelled; null if not recorded. |
| `issueDate` | string<date-time> | Issue date in ISO 8601 UTC; null while it has none. |
| `currency` | string | Currency of the amounts, as an ISO 4217 code. |
| `contact` | object | Contact the proforma is issued to; null if not recorded. |
| `contact.id` | string | Contact identifier. |
| `contact.name` | string | Contact name. |
| `orderId` | string | Source order of the proforma; null if it does not come from one. |
| `orderNumber` | string | Number of that order; null if it does not come from one. |
| `projectId` | string | Project linked to the proforma; null if none. |
| `subTotal` | string | Subtotal before discounts and taxes, as a decimal string. |
| `discountTotal` | string | Total discounts, as a decimal string. |
| `taxesPrice` | string | Tax total, as a decimal string. |
| `netPrice` | string | Taxable base, as a decimal string. |
| `grossPrice` | string | Total including taxes, as a decimal string. |
| `totalPaid` | string | Advance payments received against the proforma, as a decimal string; null if none recorded. |
| `createdAt` | string<date-time> | Creation date in ISO 8601 UTC. |
| `updatedAt` | string<date-time> | Last modification date in ISO 8601 UTC. |

## Example

*Proforma · Generated from the schema*

```json
{
  "id": "id_8f2a1c",
  "proformaNumber": "string",
  "status": "string",
  "operativeStatus": "string",
  "issueDate": "2026-09-01T08:00:00Z",
  "currency": "EUR",
  "contact": {
    "id": "id_8f2a1c",
    "name": "Example"
  },
  "orderId": "string",
  "orderNumber": "string",
  "projectId": "string",
  "subTotal": "1234.50",
  "discountTotal": "1234.50",
  "taxesPrice": "1234.50",
  "netPrice": "1234.50",
  "grossPrice": "1234.50",
  "totalPaid": "1234.50",
  "createdAt": "2026-09-01T08:00:00Z",
  "updatedAt": "2026-09-01T08:00:00Z"
}
```

## Returned by

- [`GET /api/v1/proformas`](https://docs.filmo.io/rest-api/endpoint-reference/proformas/list-proformas) — List proformas
- [`GET /api/v1/proformas/{proformaId}`](https://docs.filmo.io/rest-api/endpoint-reference/proformas/get-a-proforma) — Get a proforma

## Modified by

- [`PATCH /api/v1/proformas/{proformaId}/status`](https://docs.filmo.io/rest-api/endpoint-reference/proformas/change-the-commercial-status-of-a-proforma) — Change the commercial status of a proforma

---

Canonical URL: https://docs.filmo.io/rest-api/objects/proforma  
Last updated: 2026-10-25