*Workflows › Reference › Actions › Sales*

# Sync an invoice issued elsewhere

> Creates or updates in Filmo the copy of an invoice issued in another system (for example, an ERP). Filmo does not issue it: it is locked and marked with its origin.

## At a glance

| Property | Value |
| --- | --- |
| Domain | `invoices` |
| Group in the editor | Sales › Invoices |
| Runs as | The owner of the workflow, with their permissions |
| Permission | Edit access to Sales. Administrators always pass; a module outside the plan blocks everyone. |
| Add-on | Sales documents |
| Destructive | No: the public MCP catalogue does not mark it as destructive |
| Also available in | REST API, MCP (`filmo_invoices_upsert_external`) |

ACTION `invoices.upsertExternal`

## Inputs

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `originSystem` | string | Yes |  |
| `originExternalId` | string | Yes |  |
| `invoiceNumber` | string | Yes |  |
| `invoiceDate` | string | Yes |  |
| `lines` | object[] | Yes | Invoice lines. |
| `lines.description` | string | Yes |  |
| `lines.quantity` | string | Yes |  |
| `lines.unitPrice` | string | Yes |  |
| `lines.discountPercent` | string | No |  |
| `lines.taxType` | string | No |  |
| `lines.taxRate` | string | No |  |
| `dueDate` | string | No |  |
| `currency` | string | No |  |
| `contactId` | string | No |  |
| `contactTaxId` | string | No |  |
| `contactName` | string | No |  |
| `subTotal` | string | No |  |
| `taxTotal` | string | No |  |
| `total` | string | No |  |
| `externalStatus` | enum<string> | No |  `issued`, `voided` |
| `voidReason` | string | No |  |
| `paymentStatus` | enum<string> | No |  `unpaid`, `partially_paid`, `paid`, `overpaid` |
| `totalPaid` | string | No |  |
| `originUrl` | string | No |  |
| `originFileUrl` | string | No |  |
| `notes` | string | No |  |

## Outputs

| Name | Type | Description |
| --- | --- | --- |
| `invoiceId` | string |  |
| `invoiceNumber` | string |  |
| `status` | enum<string> |  `validated`, `voided` |
| `isExternallyIssued` | boolean |  |
| `created` | boolean |  |
| `changed` | boolean |  |

---

Canonical URL: https://docs.filmo.io/workflows/reference/actions/invoices-upsertexternal  
Last updated: 2026-10-25