YOM Docs

Untitled

Untitled

Untitled

Transacciones

Para tener el historial comercial que han concretado los Comercios a lo largo de su relación con el cliente, se manejan sus Transacciones.

¿Qué es una transacción? Una Transacción en YOM representa un evento comercial asociado a un Comercio: puede corresponder a un pedido, una factura, una boleta, una nota de crédito o una nota de débito. Cada fila del archivo representa una línea de producto dentro de un documento.

Granulidad de una transacción

El grano de una transacción es una fila por combinación de documentCode + orderId + documentType + productId. Un mismo producto no puede repetirse dentro de una misma orden (orderId).

Sí permitido: un mismo producto en la misma factura (documentCode) pero en órdenes distintas (orderId distinto). Es el caso de una factura consolidada: cada orden se registra por separado y las cantidades se conservan.

No soportado: el mismo producto en dos o más líneas bajo el mismo orderId. En ese caso YOM conserva una sola línea por producto (la última procesada) y descarta las demás, perdiendo cantidad y venta.

Acción requerida: si en el origen un producto aparece en varias líneas de la misma orden (por ejemplo, picking o despacho parcial), deben consolidarse en una sola línea antes de enviar el archivo, sumando la quantity y dejando un único precio unitario.

Endpoint

El endpoint de Transacciones permite a YOM acceder a información detallada sobre cada pedido completado.

GET /api/transactions

El endpoint debe soportan filtro sobre el campo date, fecha del pedido o factura.

Campos

Campo Tipo Carácter Descripción Ejemplos
orderId 📝 Texto 🟢 Requerido Identificador único del pedido (independiente del tipo de documento). "TR12345"
internalOrderId 📝 Texto ⚪ Opcional Identificador del pedido hecho en YOM. (El que enviamos en la inyección hacia el ERP) "YOM12345"
productId 📝 Texto 🟢 Requerido Identificador externo del producto "PROD5678"
commerceId 📝 Texto 🟢 Requerido Identificador externo del comercio "COM987"
sellerId 📝 Texto 🟢 Requerido Identificador externo del vendedor "SEL987"
sellerRouteId 📝 Texto ⚪ Opcional Identificador externo de la ruta del vendedor "ROUSEL987"
date 📅 Fecha 🟢 Requerido Fecha del pedido o factura. La fecha debe estar en formato ISO 8601. "2018-10-22T00:00:00.000Z"
documentType 📝 Texto 🟢 Requerido Tipo de documento.
"order" → pedido
"invoice" → factura
"bill" → boleta
"credit note" → nota de crédito
”debit note” → nota de débito

T**odos los valores deben ser valor absoluto (positivo)** | "order" "invoice" "credit note" "debit note" | | documentCode | 📝 Texto | ⚪ Opcional | Código del documento, en caso de ser un pedido se repite orderId en este campo. | "12345" | | quantity | #️⃣ Número | 🟢 Requerido | Cantidad de unidades pedidas del producto. | 10 | | netPricePerUnit | #️⃣ Número flotante | 🟢 Requerido | Precio unitario sin descuento y sin impuesto del Producto. | 900 | | discountedNetPricePerUnit | #️⃣ Número flotante | 🟢 Requerido | Precio sin impuesto y con descuento del producto | 850 | | taxPerUnit | #️⃣ Número flotante | 🟢 Requerido | Monto del impuesto aplicado a cada unidad del Producto. | 190 | | discountedTaxPerUnit | #️⃣ Número flotante | ⚪ Opcional | Monto del impuesto con descuento aplicado a cada unidad del Producto. | 170 | | discountPerUnit | #️⃣ Número flotante | 🟢 Requerido | Descuento unitario sin impuesto aplicado al Producto. | 50 | | grossPricePerUnit | #️⃣ Número flotante | ⚪ Opcional | Precio con impuesto y sin descuento del producto | 1100 | | discountedGrossPricePerUnit | #️⃣ Número flotante | ⚪ Opcional | Precio con impuesto y con descuento del producto | 950 | | currency | 📝 Texto | 🟢 Requerido | Moneda en la que se realiza la venta. "clp" | "clp" | | origin | 📝 Texto | 🟢 Requerido | Origen de la Transacción. Esta es una definición propia del cliente | "carga inicial", ”ventas_yom” | | sourceChannel | 📝 Texto | 🟢 Requerido | Canal de venta contacto | "app movil”, ”ecommerce | | deliveryDate | 📅 Fecha | ⚪ Opcional | Fecha en que se entregó el pedido. La fecha debe estar en formato ISO 8601. | "2018-10-22T00:00:00.000Z" | | referenceCode | 📝 Texto | ⚪ Opcional | Código del documento de referencia en caso de que documentType sea "credit note" o ”debit note”. Normalmente el código hace referencia a una “invoice”. | "REF123" | | couponCode | 📝 Texto | ⚪ Opcional | Código de cupón | "CUPON123" | | isDeleted | 🔘 Bool | ⚪ Opcional | ¿Fue eliminada la Transacción? | true | | dispatchPricePerUnit | #️⃣ Número flotante | ⚪ Opcional | Precio del despacho por unidad | 1100 |

Respuesta

La respuesta del endpoint de Transacciones devuelve un JSON que contiene la información detallada de cada orden registrado en el cliente (son las ordenes de YOM más los pedidos que puede crear el cliente desde algún sistema propio de ellos), incluyendo datos del cliente, productos, precios, y más.

Ejemplo de Respuesta

{
    "orderId": "TR12345",
    "internalOrderId": "YOM12345",
    "productId": "PROD5678",
    "commerceId": "COM987",
    "customerId": "CUS987",
    "sellerId": "SEL987",
    "sellerRouteId": "ROUSEL987",
    "date": "2018-10-22T00:00:00.000Z",
    "documentType": "order",
    "documentCode": "12345",
    "quantity": 10,
    "netPricePerUnit": 900,
    "discountedNetPricePerUnit": 850,
    "taxPerUnit": 190,
    "discountedTaxPerUnit": 170,
    "discountPerUnit": 50,
    "grossPricePerUnit": 1100,
    "discountedGrossPricePerUnit": 950,
    "currency": "clp",
    "origin": "carga inicial",
    "sourceChannel": "app movil",
    "deliveryDate": "2018-10-22T00:00:00.000Z",
    "referenceCode": "REF123",
    "couponCode": "CUPON123",
    "isDeleted": true,
    "dispatchPricePerUnit": 1500
}

Pasos anteriores

<aside> <img src="/icons/arrow-left_gray.svg" alt="/icons/arrow-left_gray.svg" width="40px" /> Promociones

</aside>

Siguientes pasos

<aside> <img src="/icons/arrow-right_gray.svg" alt="/icons/arrow-right_gray.svg" width="40px" />

</aside>

Tabla de contenidos