Finanzas

Factura

La factura, tal como la devuelve la API.

Esquemas: InvoiceDto, InvoiceDetailDto

Ejemplo

{
  "id": "id_8f2a1c",
  "invoiceNumber": "string",
  "status": "draft",
  "isRectification": true,
  "invoiceDate": "2026-09-01T08:00:00Z",
  "dueDate": "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",
  "paymentStatus": "unpaid",
  "paymentMethod": "string",
  "tags": [
    {
      "id": "id_8f2a1c",
      "name": "Example"
    }
  ],
  "createdAt": "2026-09-01T08:00:00Z",
  "updatedAt": "2026-09-01T08:00:00Z",
  "projectName": "Example",
  "taxBreakdown": [
    {
      "taxType": "1234.50",
      "label": "Example",
      "rate": 1,
      "baseAmount": "1234.50",
      "amount": "1234.50"
    }
  ],
  "productDiscountTotal": "1234.50",
  "globalDiscountTotal": "1234.50",
  "insuranceTotal": "1234.50",
  "depositTotal": "1234.50",
  "exchangeRate": 1,
  "billingAddress": {
    "label": "Example",
    "addressLine1": "string",
    "addressLine2": "string",
    "city": "string",
    "province": "string",
    "postcode": "string",
    "country": "ES"
  },
  "sourceQuoteIds": [
    "string"
  ],
  "sourceProformaIds": [
    "string"
  ]
}

Generado a partir del esquema

Una factura emitida. status es el ciclo de vida del documento (borrador, validada o anulada) y paymentStatus indica cuánto se ha cobrado. Apunta a su contacto, pedido y proyecto, y la lista devuelve solo documentos de tipo factura. Las facturas están acotadas a la suscripción que posee la clave. Las facturas no tienen campo de serie. Solo la lectura de detalle, GET /api/v1/invoices/{invoiceId}, incluye el desglose de impuestos (taxBreakdown: tipo de impuesto, etiqueta, tasa, base e importe). También añade los totales de descuentos, seguro y fianza, el tipo de cambio, la dirección de facturación, el nombre del proyecto y los presupuestos y proformas de los que procede la factura.

Atributos

idstring

Identificador único de la factura.

invoiceNumberstring | null

Número de factura; null mientras es un borrador (el número se asigna al validarla).

statusstring

Estado del ciclo de vida del documento: draft, validated (validado y numerado) o voided.

Opciones disponibles: draft, validated, voided

isRectificationboolean

Si la factura rectifica una anterior. Las facturas creadas en Filmo nunca son rectificativas, y las notas de crédito se sirven en /api/v1/credit-notes; pero /api/v1/invoices aún puede devolver documentos rectificativos importados (por ejemplo, de una importación de Rentman) con este campo en true, así que deduplícalos con las notas de crédito por número.

invoiceDatestring<date-time> | null

Fecha de emisión en ISO 8601 con desfase; null mientras es un borrador.

dueDatestring<date-time> | null

Fecha de vencimiento en ISO 8601 con desplazamiento; null si no está definida.

currencystring

Moneda de la factura como código ISO 4217 (por ejemplo "EUR").

contactobject | null

Referencia compacta al contacto facturado; null si no hay.

Mostrar atributos hijos
contact.idstring

Identificador único del contacto.

contact.namestring

Nombre del contacto.

orderIdstring | null

Identificador del pedido de origen; null si la factura no procede de un pedido.

orderNumberstring | null

Número del pedido de origen; null si la factura no procede de un pedido.

projectIdstring | null

Identificador del proyecto vinculado; null si no está vinculado.

subTotalstring

Subtotal antes de descuentos e impuestos, como cadena decimal "1234.50" (ROUND_HALF_UP).

Límites: patrón ^-?\d+\.\d{2}$

discountTotalstring

Total de descuentos como cadena decimal "1234.50" (ROUND_HALF_UP).

Límites: patrón ^-?\d+\.\d{2}$

taxesPricestring

Total de impuestos como cadena decimal "1234.50" (ROUND_HALF_UP).

Límites: patrón ^-?\d+\.\d{2}$

netPricestring

Base imponible (neto antes de impuestos) como cadena decimal "1234.50" (ROUND_HALF_UP).

Límites: patrón ^-?\d+\.\d{2}$

grossPricestring

Total con impuestos, como cadena decimal "1234.50" (ROUND_HALF_UP).

Límites: patrón ^-?\d+\.\d{2}$

totalPaidstring | null

Importe cobrado hasta la fecha como cadena decimal "1234.50" (ROUND_HALF_UP); null si no consta.

Límites: patrón ^-?\d+\.\d{2}$

paymentStatusstring

Estado del pago: unpaid (nada cobrado todavía, también para facturas sin cobro registrado), partially_paid, paid, overpaid (cobrado por encima del total), overdue (vencido y sin pagar) o voided (el documento está anulado, sea cual sea lo cobrado antes). El filtro paymentStatus usa los mismos valores.

Opciones disponibles: unpaid, partially_paid, paid, overpaid, overdue, voided

paymentMethodstring | null

Método de pago de la factura; null si no se ha registrado.

tagsobject[]

Etiquetas adjuntas a la factura, con su identificador y nombre.

Mostrar atributos hijos
tags.idstring

Identificador único de la etiqueta.

tags.namestring

Nombre de la etiqueta.

createdAtstring<date-time>

Fecha de creación en ISO 8601 con desplazamiento.

updatedAtstring<date-time>

Fecha de la última actualización en ISO 8601 con desplazamiento.

projectNamestring | nullsolo en el detalle

Nombre del proyecto vinculado; null si no está vinculado.

taxBreakdownobject[] | nullsolo en el detalle

Desglose de impuestos por tipo; null si no se ha calculado.

Mostrar atributos hijos
taxBreakdown.taxTypestring

Clave del tipo de impuesto (por ejemplo "IVA_21").

taxBreakdown.labelstring

Etiqueta de impuesto legible.

taxBreakdown.ratenumber

Tipo impositivo aplicado, como porcentaje (por ejemplo 21 para el 21%).

taxBreakdown.baseAmountstring

Base imponible sobre la que se aplica el impuesto, como cadena decimal "1234.50" (ROUND_HALF_UP).

Límites: patrón ^-?\d+\.\d{2}$

taxBreakdown.amountstring

Importe del impuesto como cadena decimal "1234.50" (ROUND_HALF_UP).

Límites: patrón ^-?\d+\.\d{2}$

productDiscountTotalstringsolo en el detalle

Total de descuentos aplicados a nivel de producto, como cadena decimal "1234.50" (ROUND_HALF_UP). productDiscountTotal + globalDiscountTotal = discountTotal.

Límites: patrón ^-?\d+\.\d{2}$

globalDiscountTotalstringsolo en el detalle

Total de descuento global del documento, como cadena decimal "1234.50" (ROUND_HALF_UP). productDiscountTotal + globalDiscountTotal = discountTotal.

Límites: patrón ^-?\d+\.\d{2}$

insuranceTotalstringsolo en el detalle

Total del seguro como cadena decimal "1234.50" (ROUND_HALF_UP).

Límites: patrón ^-?\d+\.\d{2}$

depositTotalstringsolo en el detalle

Total de fianzas como cadena decimal "1234.50" (ROUND_HALF_UP).

Límites: patrón ^-?\d+\.\d{2}$

exchangeRatenumber | nullsolo en el detalle

Tipo de cambio aplicado cuando la moneda difiere de la moneda base; null si no aplica.

billingAddressobject | nullsolo en el detalle

Dirección de facturación; null si no consta.

Mostrar atributos hijos
billingAddress.labelstring | null

Etiqueta descriptiva de la dirección; null si no consta.

billingAddress.addressLine1string | null

Primera línea de la dirección; null si no consta.

billingAddress.addressLine2string | null

Segunda línea de la dirección; null si no consta.

billingAddress.citystring | null

Ciudad; null si no consta.

billingAddress.provincestring | null

Provincia o región; null si no se ha registrado.

billingAddress.postcodestring | null

Código postal; null si no se ha registrado.

billingAddress.countrystring | null

País; null si no consta.

sourceQuoteIdsstring[] | nullsolo en el detalle

Identificadores de los presupuestos de origen; null si la factura no procede de presupuestos.

sourceProformaIdsstring[] | nullsolo en el detalle

Identificadores de las proformas de origen; null si la factura no procede de proformas.

Valores

status
draft, validated, voided
paymentStatus
unpaid, partially_paid, paid, overpaid, overdue, voided

Lo devuelven

Lo modifican

¿Te ha resultado útil esta página?