En este artículo encontrarás una descripción clara de cada propiedad del JSON de datos de factura, su propósito dentro del proceso de facturación y las consideraciones que debes tener en cuenta para validar la información.
Conocer estas propiedades te permitirá realizar integraciones avanzadas y garantizar que las facturas generadas cumplan con los estándares fiscales y operativos definidos en Comply.
Introducción
Comply puede guardar automáticamente los datos de las facturas como metaobjetos dentro de Shopify. Esta funcionalidad permite integraciones posteriores (por ejemplo, con automatizaciones o apps externas) utilizando el webhook metaobjects/create.
Descubre en ESTE ARTÍCULO como configurar los metaobjetos de facturas.
Data del JSON
Objeto Principal: Invoice
Propiedad | Tipo | Descripción |
invoiceNumber | String | Número único de la factura (formato: año-locationid-caja-tipo-secuencia) |
issuedAt | String (ISO 8601) | Fecha y hora de emisión de la factura con zona horaria |
invoiceType | String | Tipo de factura FULL = "F1" SIMPLIFIED = "F2" RECTIFIED_OTHERS = "R4", RECTIFIED_SIMPLIFIED = "R5", |
seriesId | String | Identificador de la serie de facturación |
lineItems | Array<LineItem> / Null | Array de líneas de productos (usado en facturas y devoluciones, null en exchanges) |
lineItemsAdded | Array<LineItem> / Null | Artículos añadidos (solo en exchanges, null en otros casos) |
lineItemsRemoved | Array<LineItem> / Null | Artículos eliminados (solo en exchanges, null en otros casos) |
paymentMethods | Array<PaymentMethod> | Métodos de pago utilizados |
taxBreakdown | Array<TaxBreakdown> | Desglose de impuestos por tasa |
grandTotalAmount | Number | Monto total de la factura (negativo en devoluciones de dinero) |
currency | String | Moneda de la factura |
shopifyOrderId | Number | ID del pedido en Shopify |
rectifiedInvoice | RectifiedInvoice / Null | Información de la factura rectificada (presente en facturas rectificativas) |
shopifyReturnId | Number / Null | ID de la devolución en Shopify (presente en devoluciones y exchanges) |
shopifyExchangeId | Number / Null | ID del exchange en Shopify (presente solo en exchanges) |
Objeto: LineItem
Propiedad | Tipo | Descripción |
uuid | String (UUID) | Identificador único del artículo de línea. En transacciones de venta shopify notifica el UUID del carrito. En devoluciones y cambios el lineitem id. |
quantity | Number | Cantidad de unidades del producto |
title | String | Nombre o descripción del producto |
price | Number | Precio unitario del producto |
taxable | Boolean | Indica si el producto está sujeto a impuestos |
taxLines | Array<TaxLine> | Líneas de impuestos aplicados al producto |
variantId | Number | ID de la variante del producto en Shopify |
isGiftCard | Boolean | Indica si el producto es una tarjeta regalo |
discountAllocations | Array<DiscountAllocation> | Asignaciones de descuentos distribuidos |
properties | Object | Propiedades personalizadas del producto |
attributeUserId | String / Null | ID del usuario atribuido (null si no aplica) |
productId | Number | ID del producto en Shopify |
requiresSellingPlan | Boolean | Indica si requiere plan de venta/suscripción |
hasSellingPlanGroups | Boolean | Indica si tiene grupos de planes de venta |
components | Array | Componentes del producto en caso de bundles |
Objeto: TaxLine
Propiedad | Tipo | Descripción |
price | Price | Objeto con el monto y moneda del impuesto |
title | String | Nombre del impuesto (ej: "ES IVA") |
uuid | String (UUID) | Identificador único de la línea de impuesto |
rate | Number | Tasa del impuesto en formato decimal (ej: 0.1 = 10%) |
enabled | Boolean | Indica si el impuesto está habilitado |
Objeto: Price
Propiedad | Tipo | Descripción |
amount | Number | Cantidad del precio o impuesto |
currency | String | Moneda (ej: "EUR") |
Objeto: DiscountAllocation
Propiedad | Tipo | Descripción |
allocatedAmount | AllocatedAmount | Monto asignado del descuento |
Objeto: AllocatedAmount
Propiedad | Tipo | Descripción |
amount | String | Cantidad del descuento asignado |
currencyCode | String | Código de moneda del descuento |
Objeto: PaymentMethod
Propiedad | Tipo | Descripción |
type | String | Tipo de método de pago (ej: "Cash") |
amount | Number | Cantidad pagada con este método (puede ser negativa en devoluciones) |
currency | String | Moneda del pago |
Objeto: TaxBreakdown
Propiedad | Tipo | Descripción |
taxRate | Number | Tasa del impuesto en formato decimal |
taxAmountCharged | Number | Cantidad total de impuesto cobrado |
taxableBaseAmount | Number | Base imponible para este impuesto |
Notas importantes
En facturas normales: lineItems contiene los productos, lineItemsAdded y lineItemsRemoved son null.
En devoluciones: shopifyReturnId está presente, lineItems contiene los productos devueltos.
En exchanges: shopifyReturnId y shopifyExchangeId están presentes, lineItems es null, lineItemsAdded contiene productos nuevos y lineItemsRemoved contiene productos devueltos.
Las facturas rectificativas incluyen el objeto rectifiedInvoice con datos de la factura original.
