{
"orderId": "AGG-SIMPLE-001",
"source": "App",
"platform": "Android",
"channel": { "uid": "CH-IFOOD-001", "code": "Aggregator", "metadata": {} },
"service": { "uid": "3", "code": "DELIVERY", "metadata": {} },
"selectedShippingMethod": "delivery",
"client": { "name": "Jane", "lastName": "Doe", "phone": "+1555000111" },
"store": { "id": 10, "name": "Gran Santa Fe", "code": "T001", "vendorId": 8 },
"order": {
"products": [
{
"productId": "991117",
"product": "Classic Burger",
"type": "PRODUCT",
"quantity": 1,
"price": {
"unitPrice": {
"currencyCode": "USD",
"subtotalWithoutTaxes": "7.7826",
"discountPercentage": "0.0000",
"discountsValue": "0.0000",
"subtotalIncludeDiscounts": "7.7826",
"taxesPercentage": "15.0000",
"taxValue": "1.1739",
"total": "8.9900"
},
"totalPrice": {
"currencyCode": "USD",
"subtotalWithoutTaxes": "7.7826",
"discountPercentage": "0.0000",
"discountsValue": "0.0000",
"subtotalIncludeDiscounts": "7.7826",
"taxesPercentage": "15.0000",
"taxValue": "1.1739",
"total": "8.9900"
}
}
}
]
},
"shippingMethod": {
"delivery": {
"city": "Guayaquil",
"mainStreet": "Av. Principal 123",
"zipCode": "090101",
"additionalInfo": {
"deliveryConfirmationCode": "4821"
}
}
},
"payments": {
"totals": [
{
"currencyCode": "USD",
"subtotalWithoutTaxes": "7.7826",
"discountPercentage": "0.0000",
"discountsValue": "0.0000",
"subtotalIncludeDiscounts": "7.7826",
"taxesPercentage": "15.0000",
"taxValue": "1.1739",
"total": "8.9900"
}
],
"shippingCost": [
{
"currencyCode": "USD",
"subtotalWithoutTaxes": "1.5000",
"discountPercentage": "0.0000",
"discountsValue": "0.0000",
"subtotalIncludeDiscounts": "1.5000",
"taxesPercentage": "15.0000",
"taxValue": "0.2250",
"total": "1.7250"
}
],
"discounts": [],
"paymentMethods": [
{
"processor": "Kushki",
"currencyCode": "USD",
"transactionStatus": "APPROVED",
"totalBill": "10.7150"
}
]
}
}
{
"data": {
"uid": "92eb4720-dbee-4786-ad76-b0b01aa47f36",
"order_code": "99-2c6970fd-a164-48bd-9f45-d5098a679a8f",
"account_uid": "100",
"vendor_uid": "100.6.1350",
"store_uid": "100.6.1350.1",
"catalog_uid": "200a6bf1-55dd-4c9b-af2b-07a62cb0d6f2",
"channel": {
"uid": "200a6bf1-55dd-4c9b-af2b-07a62cb0d6f2",
"code": "KEETA",
"metadata": {
"partner": "99"
}
},
"service": {
"uid": "91c2c168-5a4b-4944-977e-75a1ea7a77e7",
"code": "DELIVERY",
"metadata": {}
},
"device": {
"uid": "99-aggregator-device",
"name": "99 Aggregator",
"metadata": {
"ip": "0.0.0.0"
}
},
"operator": {
"uid": "99-operator",
"name": "99",
"session": {
"uid": "sess-99-aggregator"
}
},
"store": {
"uid": "100.6.1350.1",
"code": "K000",
"name": "Laboratorio Brasil",
"latitude": "-23.5632",
"longitude": "-46.6543",
"vendor_uid": "100.6.1350",
"vendor_name": "Sandbox Brasil"
},
"anonymous_customer_uid": "99-client-e24b0c40-43ff-4d0e-b384-b1f3e1173193",
"customer_uid": null,
"customer": {
"uid": "99-client-e24b0c40-43ff-4d0e-b384-b1f3e1173193",
"name": "João",
"email": "joao.silva@email.com",
"phone": "11987654321",
"last_name": "Silva",
"gov_id_type": "CPF",
"gov_id_number": "123.456.789-09"
},
"billing_uid": null,
"billing": null,
"fulfillment": {
"method": "DELIVERY",
"details": {
"uid": "99-client-e24b0c40-43ff-4d0e-b384-b1f3e1173193",
"city": "São Paulo",
"country": "Brasil",
"latitude": "-23.5632",
"zip_code": "01310-100",
"longitude": "-46.6543",
"reference": "Apto 42",
"main_street": "Av. Paulista 1000",
"delivery_date": "2026-05-11T14:38:16.360Z"
},
"catalog_uid": "200a6bf1-55dd-4c9b-af2b-07a62cb0d6f2"
},
"status": "COMPLETED",
"payment_status": "SUCCEEDED",
"payment_methods": [
{
"uid": "6781726c-4dbb-4cb9-a8e6-a76a7283b102",
"total": "347800",
"method": "99",
"details": {
"mid": null,
"tid": null,
"card": {
"bin": "",
"mask": "",
"brand": "",
"holder": "",
"card_country": "",
"last_four_digits": "",
"external_card_brand_id": "CASH"
},
"voucher": null,
"acquirer": {
"code": "",
"name": ""
},
"metadata": {},
"processor": "99",
"total_bill": "347800",
"currency_code": "BRL",
"exact_payment": false,
"transaction_id": "99-txn-5d7faa7d-f1aa-4af2-9f57-614cf5346eb4",
"reference_number": null,
"transaction_date": {
"date": "2026-05-11T14:38:17.482Z",
"time_zone_name": "UTC",
"time_zone_type": "0"
},
"transaction_type": "cash",
"authorization_code": "",
"transaction_status": "APPROVED",
"customer_cash_amount": "0"
},
"metadata": {},
"currency_code": "BRL"
}
],
"metadata": {
"pos": {
"discount": false,
"order_id": "99-2c6970fd-a164-48bd-9f45-d5098a679a8f",
"account_id": "100",
"created_at": "2026-05-11T14:38:16.360Z",
"order_comment": ""
},
"additional_info": {}
},
"created_at": "2026-05-11 14:38:18.767989",
"updated_at": "2026-05-11 14:38:18.767989",
"deleted_at": null,
"order_lines": [
{
"uid": "2fe6b60a-50e0-40f3-8040-91a26f1888b5",
"hash": "001224591808cb3551c9d0c248b739ef07dd8dd3f958d3eb1251ca5f022bad48",
"price": {
"unit_price": [
{
"taxes": [
{
"name": "IVA",
"percentage": "0"
}
],
"metadata": {},
"discounts": [],
"net_price": "17.39",
"gross_price": "17.39",
"taxes_value": "0",
"currency_code": "BRL",
"discount_value": "0",
"subtotal_before_taxes": "17.39"
}
],
"total_price": [
{
"taxes": [
{
"name": "IVA",
"percentage": "0"
}
],
"metadata": {},
"discounts": [],
"net_price": "34.78",
"gross_price": "34.78",
"taxes_value": "0",
"currency_code": "BRL",
"discount_value": "0",
"subtotal_before_taxes": "34.78"
}
]
},
"item_id": "001224591808cb3551c9d0c248b739ef07dd8dd3f958d3eb1251ca5f022bad48",
"quantity": "2",
"item_type": "PRODUCT",
"store_uid": "100.6.1350.1",
"updated_at": "2026-05-11T14:38:17.481Z",
"vendor_uid": "100.6.1350",
"fulfillment": {
"method": "DELIVERY",
"catalog_uid": "200a6bf1-55dd-4c9b-af2b-07a62cb0d6f2"
},
"line_totals": [
{
"taxes": [
{
"name": "IVA",
"percentage": "0"
}
],
"total": "34.78",
"subtotal": "34.78",
"discounts": [],
"taxes_value": "0",
"currency_code": "BRL",
"discount_value": "0",
"subtotal_before_taxes": "34.78"
}
],
"modifier_groups": [],
"item_description": "X-Burguer",
"selected_currency": "BRL"
}
],
"totals": [
{
"taxes": [
{
"name": "IVA",
"percentage": "0"
}
],
"total": "34.78",
"subtotal": "34.78",
"discounts": [],
"taxes_value": "0",
"currency_code": "BRL",
"discount_value": "0",
"subtotal_before_taxes": "34.78"
}
]
},
"isArray": false,
"status": 200,
"method": "POST",
"pathname": "/stage/api/v4/aggregator/orders",
"duration": 4900,
"traceId": "1-6a01e9d9-7c9577787de4d07a2c14686b;Parent"
}
API
Inyectar orden
Inyecta una orden en Fire. Fire gestiona el ciclo de vida de la orden y envía actualizaciones de estado de vuelta vía webhooks.
POST
/
api
/
v4
/
integrations
/
sales
/
aggregator
/
orders
{
"orderId": "AGG-SIMPLE-001",
"source": "App",
"platform": "Android",
"channel": { "uid": "CH-IFOOD-001", "code": "Aggregator", "metadata": {} },
"service": { "uid": "3", "code": "DELIVERY", "metadata": {} },
"selectedShippingMethod": "delivery",
"client": { "name": "Jane", "lastName": "Doe", "phone": "+1555000111" },
"store": { "id": 10, "name": "Gran Santa Fe", "code": "T001", "vendorId": 8 },
"order": {
"products": [
{
"productId": "991117",
"product": "Classic Burger",
"type": "PRODUCT",
"quantity": 1,
"price": {
"unitPrice": {
"currencyCode": "USD",
"subtotalWithoutTaxes": "7.7826",
"discountPercentage": "0.0000",
"discountsValue": "0.0000",
"subtotalIncludeDiscounts": "7.7826",
"taxesPercentage": "15.0000",
"taxValue": "1.1739",
"total": "8.9900"
},
"totalPrice": {
"currencyCode": "USD",
"subtotalWithoutTaxes": "7.7826",
"discountPercentage": "0.0000",
"discountsValue": "0.0000",
"subtotalIncludeDiscounts": "7.7826",
"taxesPercentage": "15.0000",
"taxValue": "1.1739",
"total": "8.9900"
}
}
}
]
},
"shippingMethod": {
"delivery": {
"city": "Guayaquil",
"mainStreet": "Av. Principal 123",
"zipCode": "090101",
"additionalInfo": {
"deliveryConfirmationCode": "4821"
}
}
},
"payments": {
"totals": [
{
"currencyCode": "USD",
"subtotalWithoutTaxes": "7.7826",
"discountPercentage": "0.0000",
"discountsValue": "0.0000",
"subtotalIncludeDiscounts": "7.7826",
"taxesPercentage": "15.0000",
"taxValue": "1.1739",
"total": "8.9900"
}
],
"shippingCost": [
{
"currencyCode": "USD",
"subtotalWithoutTaxes": "1.5000",
"discountPercentage": "0.0000",
"discountsValue": "0.0000",
"subtotalIncludeDiscounts": "1.5000",
"taxesPercentage": "15.0000",
"taxValue": "0.2250",
"total": "1.7250"
}
],
"discounts": [],
"paymentMethods": [
{
"processor": "Kushki",
"currencyCode": "USD",
"transactionStatus": "APPROVED",
"totalBill": "10.7150"
}
]
}
}
{
"data": {
"uid": "92eb4720-dbee-4786-ad76-b0b01aa47f36",
"order_code": "99-2c6970fd-a164-48bd-9f45-d5098a679a8f",
"account_uid": "100",
"vendor_uid": "100.6.1350",
"store_uid": "100.6.1350.1",
"catalog_uid": "200a6bf1-55dd-4c9b-af2b-07a62cb0d6f2",
"channel": {
"uid": "200a6bf1-55dd-4c9b-af2b-07a62cb0d6f2",
"code": "KEETA",
"metadata": {
"partner": "99"
}
},
"service": {
"uid": "91c2c168-5a4b-4944-977e-75a1ea7a77e7",
"code": "DELIVERY",
"metadata": {}
},
"device": {
"uid": "99-aggregator-device",
"name": "99 Aggregator",
"metadata": {
"ip": "0.0.0.0"
}
},
"operator": {
"uid": "99-operator",
"name": "99",
"session": {
"uid": "sess-99-aggregator"
}
},
"store": {
"uid": "100.6.1350.1",
"code": "K000",
"name": "Laboratorio Brasil",
"latitude": "-23.5632",
"longitude": "-46.6543",
"vendor_uid": "100.6.1350",
"vendor_name": "Sandbox Brasil"
},
"anonymous_customer_uid": "99-client-e24b0c40-43ff-4d0e-b384-b1f3e1173193",
"customer_uid": null,
"customer": {
"uid": "99-client-e24b0c40-43ff-4d0e-b384-b1f3e1173193",
"name": "João",
"email": "joao.silva@email.com",
"phone": "11987654321",
"last_name": "Silva",
"gov_id_type": "CPF",
"gov_id_number": "123.456.789-09"
},
"billing_uid": null,
"billing": null,
"fulfillment": {
"method": "DELIVERY",
"details": {
"uid": "99-client-e24b0c40-43ff-4d0e-b384-b1f3e1173193",
"city": "São Paulo",
"country": "Brasil",
"latitude": "-23.5632",
"zip_code": "01310-100",
"longitude": "-46.6543",
"reference": "Apto 42",
"main_street": "Av. Paulista 1000",
"delivery_date": "2026-05-11T14:38:16.360Z"
},
"catalog_uid": "200a6bf1-55dd-4c9b-af2b-07a62cb0d6f2"
},
"status": "COMPLETED",
"payment_status": "SUCCEEDED",
"payment_methods": [
{
"uid": "6781726c-4dbb-4cb9-a8e6-a76a7283b102",
"total": "347800",
"method": "99",
"details": {
"mid": null,
"tid": null,
"card": {
"bin": "",
"mask": "",
"brand": "",
"holder": "",
"card_country": "",
"last_four_digits": "",
"external_card_brand_id": "CASH"
},
"voucher": null,
"acquirer": {
"code": "",
"name": ""
},
"metadata": {},
"processor": "99",
"total_bill": "347800",
"currency_code": "BRL",
"exact_payment": false,
"transaction_id": "99-txn-5d7faa7d-f1aa-4af2-9f57-614cf5346eb4",
"reference_number": null,
"transaction_date": {
"date": "2026-05-11T14:38:17.482Z",
"time_zone_name": "UTC",
"time_zone_type": "0"
},
"transaction_type": "cash",
"authorization_code": "",
"transaction_status": "APPROVED",
"customer_cash_amount": "0"
},
"metadata": {},
"currency_code": "BRL"
}
],
"metadata": {
"pos": {
"discount": false,
"order_id": "99-2c6970fd-a164-48bd-9f45-d5098a679a8f",
"account_id": "100",
"created_at": "2026-05-11T14:38:16.360Z",
"order_comment": ""
},
"additional_info": {}
},
"created_at": "2026-05-11 14:38:18.767989",
"updated_at": "2026-05-11 14:38:18.767989",
"deleted_at": null,
"order_lines": [
{
"uid": "2fe6b60a-50e0-40f3-8040-91a26f1888b5",
"hash": "001224591808cb3551c9d0c248b739ef07dd8dd3f958d3eb1251ca5f022bad48",
"price": {
"unit_price": [
{
"taxes": [
{
"name": "IVA",
"percentage": "0"
}
],
"metadata": {},
"discounts": [],
"net_price": "17.39",
"gross_price": "17.39",
"taxes_value": "0",
"currency_code": "BRL",
"discount_value": "0",
"subtotal_before_taxes": "17.39"
}
],
"total_price": [
{
"taxes": [
{
"name": "IVA",
"percentage": "0"
}
],
"metadata": {},
"discounts": [],
"net_price": "34.78",
"gross_price": "34.78",
"taxes_value": "0",
"currency_code": "BRL",
"discount_value": "0",
"subtotal_before_taxes": "34.78"
}
]
},
"item_id": "001224591808cb3551c9d0c248b739ef07dd8dd3f958d3eb1251ca5f022bad48",
"quantity": "2",
"item_type": "PRODUCT",
"store_uid": "100.6.1350.1",
"updated_at": "2026-05-11T14:38:17.481Z",
"vendor_uid": "100.6.1350",
"fulfillment": {
"method": "DELIVERY",
"catalog_uid": "200a6bf1-55dd-4c9b-af2b-07a62cb0d6f2"
},
"line_totals": [
{
"taxes": [
{
"name": "IVA",
"percentage": "0"
}
],
"total": "34.78",
"subtotal": "34.78",
"discounts": [],
"taxes_value": "0",
"currency_code": "BRL",
"discount_value": "0",
"subtotal_before_taxes": "34.78"
}
],
"modifier_groups": [],
"item_description": "X-Burguer",
"selected_currency": "BRL"
}
],
"totals": [
{
"taxes": [
{
"name": "IVA",
"percentage": "0"
}
],
"total": "34.78",
"subtotal": "34.78",
"discounts": [],
"taxes_value": "0",
"currency_code": "BRL",
"discount_value": "0",
"subtotal_before_taxes": "34.78"
}
]
},
"isArray": false,
"status": 200,
"method": "POST",
"pathname": "/stage/api/v4/aggregator/orders",
"duration": 4900,
"traceId": "1-6a01e9d9-7c9577787de4d07a2c14686b;Parent"
}
Token Bearer obtenido desde POST /login. Formato:
Bearer <accessToken>.Tu API key de Fire.
Debe ser
integration. Identifica la petición como proveniente de una integración externa.Identificador de la cuenta a la que pertenece la petición.
Identificador único de la orden en tu sistema.
Origen de la orden. Ejemplos:
App, Kiosco.Plataforma del cliente. Ejemplos:
Android, iOS, Web.Detalles del canal de venta. Usa valores
uid de los webhooks de publicación (por ejemplo channel.updated) o de la configuración de canales en el panel (Integraciones de agregadores).Detalles del servicio de fulfillment. Usa valores
uid del array services en esos payloads de canal o las mismas fuentes que channel.Método de envío seleccionado por el cliente. Valores:
delivery, pickup.Indica si el cliente acumula puntos de fidelidad en esta orden.
Indica si el cliente canjea puntos de fidelidad en esta orden.
Indica si se aplican descuentos en esta orden.
Comentario general del cliente para toda la orden.
Información del cliente.
Mostrar client
Mostrar client
Identificador único del cliente desde el proveedor de autenticación.
Nombre.
Apellido.
Número de teléfono.
Correo electrónico.
Tipo de documento. Ejemplo:
DNI, CI.Número de documento.
ID del cliente en un sistema externo.
ID del cliente en Fire.
Datos de facturación.
Mostrar billingInformation
Mostrar billingInformation
Razón social o nombre de la persona para la factura.
Tipo de documento para facturación.
Número de documento para facturación.
Teléfono de facturación.
Email de facturación.
Dirección de facturación.
ID de facturación en un sistema externo.
ID de facturación en Fire.
Datos adicionales del cliente (p. ej. fecha de nacimiento, género).
Tienda donde se realiza la orden.
Contenido de la orden.
Mostrar order
Mostrar order
Productos pedidos.
Mostrar products[n]
Mostrar products[n]
Identificador del producto.
Nombre para mostrar del producto.
Tipo de ítem. Valores aceptados:
COMBO (producto con grupos de modificadores no vacíos), PRODUCT (producto simple vendible), MODIFIER (opción de modificador puro — usar en selectedModifiers[]), PACKAGING (ítem de empaque). Sin valor por defecto — omitirlo hace el payload inválido.Cantidad pedida.
Opcional. Comentario del cliente para esta línea de producto.
Recompensa o cupón aplicado a este producto.
Desglose de precio de esta línea. Los modificadores usan la misma forma en
modifierGroups[n].selectedModifiers[n].price.Mostrar price
Mostrar price
Importes por una unidad (antes de multiplicar por
quantity).Mostrar unitPrice
Mostrar unitPrice
Código de moneda ISO 4217 (p. ej.
BRL, USD).Opcional. Precio antes de precios promocionales.
Subtotal sin impuestos. En JSON puede venir como número o como cadena.
Porcentaje de descuento aplicado.
Importe del descuento.
Subtotal tras descuentos, antes de impuestos.
Porcentaje global de impuesto del tramo.
Importe de impuesto del tramo.
Total final del tramo.
Precio de lista sugerido.
Desglose por impuesto (p. ej.
IVA, o ICMS, PIS, COFINS en Brasil). Las entradas pueden omitir metadata si no aplica.Mismas claves que
unitPrice. Representa la línea completa (habitualmente valores unitarios escalados por quantity). Incluye la misma forma de taxes[] cuando la API devuelve detalle fiscal por línea.Grupos de modificadores seleccionados.
Mostrar modifierGroups[n]
Mostrar modifierGroups[n]
ID del grupo de modificadores.
Descripción del grupo de modificadores.
Opciones de modificador elegidas.
Mostrar selectedModifiers[n]
Mostrar selectedModifiers[n]
ID de la respuesta/opción.
Producto usado como esta opción de modificador.
Nombre de la opción de modificador.
Tipo de ítem. Valores aceptados:
COMBO (producto con grupos de modificadores no vacíos), PRODUCT (producto vendible usado como opción de modificador), MODIFIER (opción de modificador puro), PACKAGING (ítem de empaque). Sin valor por defecto — omitirlo hace el payload inválido.Cantidad agregada.
Cantidad removida (para quitar ingredientes).
Recompensa aplicada a este modificador.
Precio del modificador. Misma estructura que el precio del producto.
Grupos de modificadores anidados (hasta 3 niveles).
Metadata extra del producto.
Detalles del envío según
selectedShippingMethod.Mostrar shippingMethod
Mostrar shippingMethod
Detalles de delivery. Presente cuando
selectedShippingMethod es delivery.Mostrar delivery
Mostrar delivery
Fecha/hora estimada de entrega.
Latitud de la dirección de entrega.
Longitud de la dirección de entrega.
País.
Ciudad.
Calle principal.
Número de la calle.
Calle secundaria o transversal.
Referencia o punto de referencia para la entrega.
ID del tipo de inmueble.
Instrucciones de entrega.
Número de contacto en la dirección de entrega.
Código postal.
Alias de la dirección (p. ej. “casa”, “oficina”).
ID de la dirección en un sistema externo.
ID de la dirección en Fire.
Timestamp ISO 8601 de la llegada del conductor a la tienda.
Detalles de pickup. Presente cuando
selectedShippingMethod es pickup.Mostrar pickup
Mostrar pickup
Fecha/hora programada del pickup.
Fecha/hora de inicio de preparación.
Unidad del tiempo de preparación. Ejemplo:
minute.Valor del tiempo de preparación.
ID del tipo de inmueble.
Etiqueta de la opción de retiro.
Desglose de pagos.
Mostrar payments
Mostrar payments
Totales de la orden con desglose de impuestos y descuentos. Cada entrada es un objeto price con
currencyCode, subtotalWithoutTaxes, discountPercentage, discountsValue, subtotalIncludeDiscounts, taxesPercentage, taxValue, total y opcionalmente rewardId.Líneas de costo de envío. Cada entrada usa la misma forma de tramo de precio que
totals[]—envía el costo ya calculado (base, impuesto y total). Fire almacena los valores tal cual. Consulta Envío y descuentos.Mostrar shippingCost[n]
Mostrar shippingCost[n]
Código de moneda ISO 4217.
Monto antes de impuestos.
Porcentaje de descuento aplicado a esta línea.
Importe del descuento.
Subtotal tras descuentos, antes de impuestos.
Porcentaje de impuesto aplicado.
Importe del impuesto.
Total de la línea con impuestos.
Cargos adicionales como propinas o costos de empaque.
Mostrar extraCharges[n]
Mostrar extraCharges[n]
Tipo de ítem. Valores aceptados:
COMBO (producto con grupos de modificadores no vacíos), PRODUCT (producto simple vendible), MODIFIER (opción de modificador puro), PACKAGING (ítem de empaque). Habitualmente PACKAGING para ítems en este array. Sin valor por defecto — omitirlo hace el payload inválido.Cantidad.
ID de producto asociado, si aplica.
Descripción del cargo (p. ej.
tip, packing cost).Código de moneda.
Monto antes de impuestos.
Monto del impuesto.
Total con impuestos incluidos.
Filas de descuento a nivel de orden para promos o cupones que absorbe el local (el costo corre por cuenta del restaurante). Cada entrada usa los mismos campos de tramo que
totals[] y shippingCost[]. discountsValue es el importe descontado. Deja este array vacío para descuentos del agregador — esos se modelan como una entrada en paymentMethods[]. Consulta Descuentos del agregador.Mostrar discounts[n]
Mostrar discounts[n]
Código de moneda ISO 4217.
Base imponible antes del descuento.
Porcentaje de descuento en esta línea.
Importe descontado.
Subtotal tras el descuento, antes de impuestos.
Porcentaje de impuesto aplicado tras el descuento.
Importe del impuesto.
Total de la línea con impuestos.
Métodos de pago utilizados.
Mostrar paymentMethods[n]
Mostrar paymentMethods[n]
Nombre del procesador de pagos (p. ej.
Kushki, Efectivo).Código de moneda.
Código del método de pago. Usa
AGGREGATOR_DISCOUNT cuando el agregador cubre un descuento promocional y reembolsa al local — siempre va acompañado de transactionType: "BENEFIT". Consulta Descuentos del agregador.Tipo de transacción. Valores habituales:
ONLINE, CREDIT, CASH. Usa BENEFIT cuando paymentMethodCode es AGGREGATOR_DISCOUNT.Identificador de la transacción.
Estado de la transacción (p. ej.
APPROVED).Indica si se entregó el monto exacto.
Monto cobrado con este método.
Número de autorización NFCE (código SiTef 952 / IdAuth). Opcional.
Vía del cliente: texto del comprobante impreso para el portador (código SiTef 121 / ReceiptCustomer). Opcional.
Vía del comercio: texto del comprobante impreso para el establecimiento (código SiTef 122 / ReceiptMerchant). Opcional.
Datos de la tarjeta. Envía
null para métodos sin tarjeta (p. ej. AGGREGATOR_DISCOUNT).Mostrar card
Mostrar card
Marca de la tarjeta (p. ej.
VISA, MASTERCARD, AMEX).Primeros 6 dígitos del número de tarjeta (BIN).
Número de tarjeta enmascarado.
Últimos 4 dígitos del número de tarjeta.
Nombre del titular.
País de emisión de la tarjeta.
Identificador de marca de tarjeta específico del procesador.
Tipo de lectura de la tarjeta (código SiTef 2090 / Media). Valores aceptados:
CHIP, MAGNETIC, NFC, MANUAL. Opcional.Fecha de la transacción con info de zona horaria.
Metadata específica del procesador.
Información de fidelidad y cupones.
Mostrar marketing
Mostrar marketing
Metadata extra a nivel de orden (p. ej. dirección IP del kiosko).
Montos y tramos de precio
Fire no escala ni recalcula precios. Envía los montos en la unidad final de la moneda (por ejemplo
"8.99" para USD 8.99, no centavos). Tu POS o agregador debe enviar valores ya calculados.payments.totals[], payments.shippingCost[] y payments.discounts[] usan las mismas claves de tramo de precio: currencyCode, subtotalWithoutTaxes, discountPercentage, discountsValue, subtotalIncludeDiscounts, taxesPercentage, taxValue, total.
| Campo del tramo | Significado habitual |
|---|---|
subtotalWithoutTaxes | Base imponible antes del descuento de la línea |
discountsValue | Importe del descuento en esta línea |
subtotalIncludeDiscounts | Base tras el descuento, antes de impuestos |
taxValue | Impuesto sobre la base con descuento |
total | Total de la línea tal como se almacena |
Envío y descuentos
Descuentos por producto
Aplica descuentos enorder.products[n].price.unitPrice y totalPrice (mismos valores cuando quantity es 1). Ejemplo: 10% de descuento sobre base 15.00 con IVA 12% → discountsValue 1.50, subtotalIncludeDiscounts 13.50, taxValue 1.62, total de línea 15.12.
payments.shippingCost[]
Costos de envío como una o más filas con tramo de precio. En los ejemplos, el impuesto del envío se calcula sobre la base de envío igual que en los productos.
payments.discounts[]
Descuentos a nivel de orden (promos, cupones) como filas de tramo de precio. Úsalo cuando el descuento no esté ya reflejado en el discountsValue de cada producto y el costo lo asume el local. Puedes combinar descuentos de producto y payments.discounts[]; concilia con paymentMethods[].totalBill.
payments.totals[]
Resumen de la parte de productos de la orden. Al conciliar: productos (totals) + envío − descuentos de orden ≈ monto pagado.
Fire no rechaza la petición si
paymentMethods[].totalBill difiere levemente de la suma de tramos; aun así envía valores coherentes desde tu sistema origen.Descuentos del agregador
Cuando la plataforma del agregador (iFood, Rappi, UberEats, etc.) aplica un descuento promocional al cliente, el agregador reembolsa al local ese monto — el local siempre recibe el precio completo. Por eso el descuento no resta de los ingresos del local y no debe aparecer enpayments.discounts[].
Modélalo como una entrada adicional en payments.paymentMethods[]:
| Quién paga | Qué | Cómo modelarlo |
|---|---|---|
| Cliente | Productos + envío + cargos extra − descuento del agregador | paymentMethods[n] con el código de pago real (CREDIT, CASH, etc.) |
| Agregador | Monto del descuento (reembolso al local) | paymentMethods[n] con paymentMethodCode: "AGGREGATOR_DISCOUNT" |
| Local recibe | Productos + envío + cargos extra completos | — |
Campos requeridos en la entrada AGGREGATOR_DISCOUNT
| Campo | Valor |
|---|---|
paymentMethodCode | "AGGREGATOR_DISCOUNT" — el mismo código para todos los agregadores |
processor | Nombre del agregador: "IFOOD", "RAPPI", "UBEREATS", … |
transactionType | "BENEFIT" |
transactionStatus | "APPROVED" |
card | null |
totalBill | Monto del descuento |
Regla de balance
La suma de todos lospaymentMethods[].totalBill — incluida la entrada AGGREGATOR_DISCOUNT — debe ser igual al total bruto de la orden:
SUM(paymentMethods[].totalBill)
= SUM(order.products[].price.totalPrice.total)
+ SUM(payments.extraCharges[].total)
+ SUM(payments.shippingCost[].total)
payments.discounts[] queda vacío.
{
"orderId": "AGG-SIMPLE-001",
"source": "App",
"platform": "Android",
"channel": { "uid": "CH-IFOOD-001", "code": "Aggregator", "metadata": {} },
"service": { "uid": "3", "code": "DELIVERY", "metadata": {} },
"selectedShippingMethod": "delivery",
"client": { "name": "Jane", "lastName": "Doe", "phone": "+1555000111" },
"store": { "id": 10, "name": "Gran Santa Fe", "code": "T001", "vendorId": 8 },
"order": {
"products": [
{
"productId": "991117",
"product": "Classic Burger",
"type": "PRODUCT",
"quantity": 1,
"price": {
"unitPrice": {
"currencyCode": "USD",
"subtotalWithoutTaxes": "7.7826",
"discountPercentage": "0.0000",
"discountsValue": "0.0000",
"subtotalIncludeDiscounts": "7.7826",
"taxesPercentage": "15.0000",
"taxValue": "1.1739",
"total": "8.9900"
},
"totalPrice": {
"currencyCode": "USD",
"subtotalWithoutTaxes": "7.7826",
"discountPercentage": "0.0000",
"discountsValue": "0.0000",
"subtotalIncludeDiscounts": "7.7826",
"taxesPercentage": "15.0000",
"taxValue": "1.1739",
"total": "8.9900"
}
}
}
]
},
"shippingMethod": {
"delivery": {
"city": "Guayaquil",
"mainStreet": "Av. Principal 123",
"zipCode": "090101",
"additionalInfo": {
"deliveryConfirmationCode": "4821"
}
}
},
"payments": {
"totals": [
{
"currencyCode": "USD",
"subtotalWithoutTaxes": "7.7826",
"discountPercentage": "0.0000",
"discountsValue": "0.0000",
"subtotalIncludeDiscounts": "7.7826",
"taxesPercentage": "15.0000",
"taxValue": "1.1739",
"total": "8.9900"
}
],
"shippingCost": [
{
"currencyCode": "USD",
"subtotalWithoutTaxes": "1.5000",
"discountPercentage": "0.0000",
"discountsValue": "0.0000",
"subtotalIncludeDiscounts": "1.5000",
"taxesPercentage": "15.0000",
"taxValue": "0.2250",
"total": "1.7250"
}
],
"discounts": [],
"paymentMethods": [
{
"processor": "Kushki",
"currencyCode": "USD",
"transactionStatus": "APPROVED",
"totalBill": "10.7150"
}
]
}
}
Conciliación de los ejemplos
| Ejemplo | Productos (totals[].total) | Envío (shippingCost[].total) | Descuento de orden (discounts[].discountsValue) | Pagado (totalBill) |
|---|---|---|---|---|
| Entrega simple | 8.99 | 1.73 | — | 10.72 |
| Descuento en línea + envío | 15.12 | 3.92 | — | 19.04 |
| Varios productos + promo | 30.80 | 3.50 | 2.00 | 32.30 |
| Descuento del agregador | 29.80 | 8.90 | — | 39.69 (CREDIT 38.69 + AGGREGATOR_DISCOUNT 1.00) |
- Entrega simple: 8.99 + 1.73 = 10.72.
- Descuento en línea: 10% sobre 15.00 → IVA sobre 13.50 → producto 15.12; envío 3.50 + IVA 12% = 3.92; 15.12 + 3.92 = 19.04.
- Varios productos + promo: hamburguesas 25.80 + bebida 5.00 = 30.80; + envío 3.50 = 34.30; − promo 2.00 = 32.30 pagado.
- Descuento del agregador: productos 29.80 + embalaje 0.99 + envío 8.90 = 39.69 bruto; el cliente paga 38.69 (CREDIT) + el agregador reembolsa 1.00 (AGGREGATOR_DISCOUNT) = 39.69 ✓.
payments.discountsqueda vacío.
{
"data": {
"uid": "92eb4720-dbee-4786-ad76-b0b01aa47f36",
"order_code": "99-2c6970fd-a164-48bd-9f45-d5098a679a8f",
"account_uid": "100",
"vendor_uid": "100.6.1350",
"store_uid": "100.6.1350.1",
"catalog_uid": "200a6bf1-55dd-4c9b-af2b-07a62cb0d6f2",
"channel": {
"uid": "200a6bf1-55dd-4c9b-af2b-07a62cb0d6f2",
"code": "KEETA",
"metadata": {
"partner": "99"
}
},
"service": {
"uid": "91c2c168-5a4b-4944-977e-75a1ea7a77e7",
"code": "DELIVERY",
"metadata": {}
},
"device": {
"uid": "99-aggregator-device",
"name": "99 Aggregator",
"metadata": {
"ip": "0.0.0.0"
}
},
"operator": {
"uid": "99-operator",
"name": "99",
"session": {
"uid": "sess-99-aggregator"
}
},
"store": {
"uid": "100.6.1350.1",
"code": "K000",
"name": "Laboratorio Brasil",
"latitude": "-23.5632",
"longitude": "-46.6543",
"vendor_uid": "100.6.1350",
"vendor_name": "Sandbox Brasil"
},
"anonymous_customer_uid": "99-client-e24b0c40-43ff-4d0e-b384-b1f3e1173193",
"customer_uid": null,
"customer": {
"uid": "99-client-e24b0c40-43ff-4d0e-b384-b1f3e1173193",
"name": "João",
"email": "joao.silva@email.com",
"phone": "11987654321",
"last_name": "Silva",
"gov_id_type": "CPF",
"gov_id_number": "123.456.789-09"
},
"billing_uid": null,
"billing": null,
"fulfillment": {
"method": "DELIVERY",
"details": {
"uid": "99-client-e24b0c40-43ff-4d0e-b384-b1f3e1173193",
"city": "São Paulo",
"country": "Brasil",
"latitude": "-23.5632",
"zip_code": "01310-100",
"longitude": "-46.6543",
"reference": "Apto 42",
"main_street": "Av. Paulista 1000",
"delivery_date": "2026-05-11T14:38:16.360Z"
},
"catalog_uid": "200a6bf1-55dd-4c9b-af2b-07a62cb0d6f2"
},
"status": "COMPLETED",
"payment_status": "SUCCEEDED",
"payment_methods": [
{
"uid": "6781726c-4dbb-4cb9-a8e6-a76a7283b102",
"total": "347800",
"method": "99",
"details": {
"mid": null,
"tid": null,
"card": {
"bin": "",
"mask": "",
"brand": "",
"holder": "",
"card_country": "",
"last_four_digits": "",
"external_card_brand_id": "CASH"
},
"voucher": null,
"acquirer": {
"code": "",
"name": ""
},
"metadata": {},
"processor": "99",
"total_bill": "347800",
"currency_code": "BRL",
"exact_payment": false,
"transaction_id": "99-txn-5d7faa7d-f1aa-4af2-9f57-614cf5346eb4",
"reference_number": null,
"transaction_date": {
"date": "2026-05-11T14:38:17.482Z",
"time_zone_name": "UTC",
"time_zone_type": "0"
},
"transaction_type": "cash",
"authorization_code": "",
"transaction_status": "APPROVED",
"customer_cash_amount": "0"
},
"metadata": {},
"currency_code": "BRL"
}
],
"metadata": {
"pos": {
"discount": false,
"order_id": "99-2c6970fd-a164-48bd-9f45-d5098a679a8f",
"account_id": "100",
"created_at": "2026-05-11T14:38:16.360Z",
"order_comment": ""
},
"additional_info": {}
},
"created_at": "2026-05-11 14:38:18.767989",
"updated_at": "2026-05-11 14:38:18.767989",
"deleted_at": null,
"order_lines": [
{
"uid": "2fe6b60a-50e0-40f3-8040-91a26f1888b5",
"hash": "001224591808cb3551c9d0c248b739ef07dd8dd3f958d3eb1251ca5f022bad48",
"price": {
"unit_price": [
{
"taxes": [
{
"name": "IVA",
"percentage": "0"
}
],
"metadata": {},
"discounts": [],
"net_price": "17.39",
"gross_price": "17.39",
"taxes_value": "0",
"currency_code": "BRL",
"discount_value": "0",
"subtotal_before_taxes": "17.39"
}
],
"total_price": [
{
"taxes": [
{
"name": "IVA",
"percentage": "0"
}
],
"metadata": {},
"discounts": [],
"net_price": "34.78",
"gross_price": "34.78",
"taxes_value": "0",
"currency_code": "BRL",
"discount_value": "0",
"subtotal_before_taxes": "34.78"
}
]
},
"item_id": "001224591808cb3551c9d0c248b739ef07dd8dd3f958d3eb1251ca5f022bad48",
"quantity": "2",
"item_type": "PRODUCT",
"store_uid": "100.6.1350.1",
"updated_at": "2026-05-11T14:38:17.481Z",
"vendor_uid": "100.6.1350",
"fulfillment": {
"method": "DELIVERY",
"catalog_uid": "200a6bf1-55dd-4c9b-af2b-07a62cb0d6f2"
},
"line_totals": [
{
"taxes": [
{
"name": "IVA",
"percentage": "0"
}
],
"total": "34.78",
"subtotal": "34.78",
"discounts": [],
"taxes_value": "0",
"currency_code": "BRL",
"discount_value": "0",
"subtotal_before_taxes": "34.78"
}
],
"modifier_groups": [],
"item_description": "X-Burguer",
"selected_currency": "BRL"
}
],
"totals": [
{
"taxes": [
{
"name": "IVA",
"percentage": "0"
}
],
"total": "34.78",
"subtotal": "34.78",
"discounts": [],
"taxes_value": "0",
"currency_code": "BRL",
"discount_value": "0",
"subtotal_before_taxes": "34.78"
}
]
},
"isArray": false,
"status": 200,
"method": "POST",
"pathname": "/stage/api/v4/aggregator/orders",
"duration": 4900,
"traceId": "1-6a01e9d9-7c9577787de4d07a2c14686b;Parent"
}
⌘I

