Saltar al contenido principal
En esta página

Conectar un proceso de pago rico en productos con la orquestación de pagos sin perder los datos necesarios para el cumplimiento y el soporte. DEUNA mantiene el catálogo, las promociones, la entrega y el contexto del cliente en el mismo pedido utilizado a lo largo del ciclo de vida del pago.

Payload completo del pedido al por menor#

Este ejemplo incluye una variante de producto, una referencia de descuento a nivel de artículo, el descuento correspondiente al pedido, una dirección de entrega y un método de envío seleccionado.

Payload completo de la orden

Retail

Variantes de producto, promociones, dirección, método de envío y contexto de fulfillment para comercio.

itemsdiscountsshipping_addressshipping_method
Cuerpo de la solicitudJSON
{
  "order_type": "DEUNA_CHECKOUT",
  "order": {
    "order_id": "retail-93418",
    "store_code": "es-online",
    "currency": "EUR",
    "items_total_amount": 10900,
    "sub_total": 11400,
    "shipping_amount": 500,
    "total_tax_amount": 2152,
    "total_discount": 1000,
    "total_amount": 13552,
    "items": [
      {
        "id": "shoe-runner-42-blue",
        "sku": "RUNNER-BLU-42",
        "upc": "8437012345678",
        "name": "Runner trainers",
        "description": "Everyday lightweight trainers",
        "quantity": 1,
        "brand": "Northline",
        "category": "footwear",
        "sub_category": "trainers",
        "color": "navy",
        "size": "42",
        "taxable": true,
        "image_url": "https://merchant.example.com/products/runner-blue.jpg",
        "details_url": "https://merchant.example.com/products/runner-blue",
        "unit_price": {
          "amount": 11900,
          "currency": "EUR",
          "currency_symbol": "€"
        },
        "total_amount": {
          "amount": 10900,
          "original_amount": 11900,
          "currency": "EUR",
          "currency_symbol": "€",
          "total_discount": 1000
        },
        "tax_amount": {
          "amount": 2052,
          "currency": "EUR",
          "currency_symbol": "€"
        },
        "weight": {
          "weight": 850,
          "unit": "g"
        },
        "discounts": [
          {
            "amount": 1000,
            "ref_idx": 0
          }
        ]
      }
    ],
    "discounts": [
      {
        "amount": 1000,
        "code": "WELCOME10",
        "reference": "campaign-2026-welcome",
        "description": "Welcome discount",
        "details_url": "https://merchant.example.com/promotions/welcome10",
        "free_shipping": {
          "is_free_shipping": false,
          "maximum_cost_allowed": 0
        },
        "discount_category": "coupon",
        "target_type": "items",
        "type": "fixed_amount"
      }
    ],
    "shipping_address": {
      "first_name": "Alex",
      "last_name": "Morgan",
      "email": "alex@example.com",
      "phone": "+34600000000",
      "address1": "Calle de Alcalá 125",
      "address2": "3B",
      "city": "Madrid",
      "zipcode": "28009",
      "state_name": "Madrid",
      "state_code": "MD",
      "country_code": "ES",
      "address_type": "home",
      "is_default": true
    },
    "shipping_method": {
      "code": "standard-48h",
      "name": "Standard delivery",
      "min_delivery_date": "2026-10-05",
      "max_delivery_date": "2026-10-06",
      "cost": 500,
      "display_cost": "€5.00",
      "tax_amount": 100,
      "display_tax_amount": "€1.00",
      "scheduler": []
    },
    "shipping_options": {
      "type": "delivery",
      "method": "standard-48h",
      "carrier": "Merchant Logistics",
      "price": {
        "amount": 500,
        "currency": "EUR"
      },
      "requires_shipping": true,
      "details": {
        "store_id": "es-online",
        "store_name": "Online store",
        "address": "Calle de Alcalá 125, Madrid",
        "address_coordinates": {
          "lat": 40.4217,
          "lng": -3.6772
        },
        "contact": {
          "name": "Customer care",
          "phone": "+34910000000"
        },
        "additional_details": {
          "address_notes": "Leave with the concierge."
        }
      }
    },
    "payer_info": {
      "email": "alex@example.com"
    },
    "channel_type": "desktop_web",
    "metadata": {
      "vertical": "retail",
      "fulfillment_node": "warehouse-mad-02"
    },
    "callback_urls": {
      "on_success": "https://merchant.example.com/payments/success",
      "on_pending": "https://merchant.example.com/payments/pending",
      "on_reject": "https://merchant.example.com/payments/rejected",
      "on_canceled": "https://merchant.example.com/payments/canceled",
      "on_failed": "https://merchant.example.com/payments/failed"
    }
  }
}

Modela el contexto de negocio#

RequisitoCampos de orden
Identidad del productoitems[].id, sku, upc, brand, category, sub_category
Variante y presentacióncolor, size, image_url, details_url, weight
Promocióndiscounts[] y artículo discounts[].ref_idx
Entregashipping_address, shipping_method, shipping_options
Operaciones de cumplimientoTienda, almacén, transportista, fechas de entrega y metadatos del comerciante

Lista de verificación de producción#

  • Utilizar identificadores de producto y variante inmutables en lugar de nombres de visualización como claves.
  • Mantener las referencias de descuento alineadas entre artículos y el nivel del pedido discounts array.
  • Validar la dirección postal, el transportista, las fechas de envío y el costo de envío antes del pago.
  • Conservar el token de pedido original para los flujos de captura, reembolso, cancelación y soporte.
  • Probar cambios en las promociones, artículos agotados, cumplimiento dividido, reembolso parcial y escenarios de reintento.

Continuar con Módulos de pago, Captura y reembolsosy Procesar el pago de un pedido.