Resources · API and orders

Ventas en formato JSONLead: especificación

Especificación JSONLead de ventas: campos, tres métodos de entrega y tabla de referencia completa.

Este formato sigue en uso para las integraciones existentes. Para integraciones nuevas, el formato recomendado es el esquema versionado ph.order/1.0.

Automatizar el flujo de ventas y conectarlo con tu sistema de gestión o ERP nunca ha sido tan fácil. Con nuestro sistema, cada venta que se realiza en el portal se envía de manera estructurada para que puedas procesarla automáticamente sin complicaciones. Aquí te explicamos cómo funciona y cómo puedes implementar esta integración.

Formato de envío: JSONLead como estándar de mercado

Para garantizar compatibilidad y facilidad de integración, utilizamos el formato JSONLead. Este formato es ampliamente reconocido en el mercado y facilita el procesamiento automático de las ventas en sistemas de terceros.

Métodos de envío disponibles

Tienes tres opciones para recibir las ventas. En cualquier caso el contenido de la venta en formato json será el mismo.

  • Webhook: La opción más rápida y directa. Las ventas se envían inmediatamente a la URL de tu sistema configurada para recibirlas (petición POST). Si por cuestiones de seguridad necesitas cualquier tipo de cabecera personalizada la podemos añadir sin problema.
  • SFTP/FTP: Puedes utilizar nuestro servidor SFTP o uno propio (SFTP/FTP) para recibir los datos. Se creará un archivo json por cada venta.
  • Email: Si lo prefieres, podemos enviarte las ventas en formato JSONLead como cuerpo en correos electrónicos.

Ejemplo de JSONLead enviado

{
  "client": {
      "foreign_id": "1df807f0ba96f8be5529308f6667a144",
      "first_name": "John",
      "province": "Haute-Normandie",
      "postal_code": "76119",
      "phone": "600000000",
      "email": "user@mail.com",
      "custom": {
          "address": "4534 route de la mar",
          "city": "76119 - STE MARGUERITE SUR MER",
          "country": "FR"
      }
  },
  "sales_lead": {
      "origin": {
          "source": "portal_hero",
          "medium": "Ebay"
      },
      "related_urls": [
          "https://portal.com/item/1234"
      ],
      "status": "confirmed",
      "custom": {
          "account": "some_email@mail.com",
          "external_id": "1243948",
          "title": "Some pretty product",
          "created_at": "2025-01-17 10:25:22.145432",
          "update_at": "2025-01-17 18:21:11.145432",
          "amount": 1400.0,
          "shipping_amount": 0.0,
          "payment_method": "EBAY",
          "shipping": {
              "delivery_purchase_confirmed": true,
              "delivery_purchase_confirmed_ts": "2025-01-17 10:25:22.145432",
              "shipping_label_url": "https://portal-xxxx.com/tracking.pdf",
              "tracking_code": "XXXXXXXX"
          }
      },
      "foreign_id": "17-12583-30383",
      "inquiry": "[{\"created_at\": \"2022-10-31T20:03:21.360000\",\"text\": \"Te dejo mi numero de telefono 6XXXXXXXXX\"}, {\"created_at\":\"2022-10-31T19:50:55.194000\", \"text\": \"Hola!\"}]"
  },
  "version": "1.0.0"
}

* En el caso de portales que permiten multiples artículos en el mismo pedido los elementos del JSON: "sales_lead.custom.external_id", "sales_lead.custom.amount" and "sales_lead.custom.title" sera una lista en vez de un solo elemento. El orden de las listas será respetado entre ellos.

Detalles de los campos del JSONLead

NombreTipoObligatorioDescripción
client.foreign_idstringSiIdentificador único del cliente.
client.first_namestringSiNombre del cliente. En funcion del portal puede ser un nombre de usuario.
client.provincestringNoProvincia de la dirección del cliente.
client.postal_codestringNoCódigo postal de la dirección del cliente.
client.phonestringNoNúmero de teléfono del cliente.
client.emailstringNoEmail del cliente.
client.custom.addressstringNoDirección postal del cliente.
client.custom.citystringNoCiudad de la dirección del cliente.
client.custom.countrystringNoPaís (código ISO del país) de la dirección del cliente.
sales_lead.origin.sourcestringSiOrigen de la venta. Siempre será "portal_hero".
sales_lead.origin.mediumstringNoNombre del portal de donde proviene la venta.
sales_lead.related_urlsarrayNoUrl/s relevantes. Normalmente la url del artículo en el portal.
sales_lead.statusstringSiEstado de la venta. Actualmente puede ser "confirmed" o "cancelled".
sales_lead.custom.accountstringNoEmail o identificador de la cuenta en el portal. Util cuando se gestionan multiples cuentas en el mismo portal para poder identificar la cuenta de origen de la venta.
sales_lead.custom.external_idstring/arraystring*SiIdentificador único del artículo. El mismo que nos enviais en la subida de artículos.
sales_lead.custom.titlestring/arraystring*SiTítulo del producto vendido.
sales_lead.custom.created_atdatetimeSiFecha y hora de la creación de la venta.
sales_lead.custom.update_atdatetimeNoFecha y hora de la última actualización de la venta.
sales_lead.custom.amountfloat/arrayfloat*SiImporte total de la venta.
sales_lead.custom.shipping_amountfloatNoImporte de los costes de envío.
sales_lead.custom.payment_methodstringNoMétodo de pago.
sales_lead.custom.shipping.delivery_purchase_confirmedbooleanSiBooleano que indica si se ha realizado la venta. Siempre vendrá a true en este caso.
sales_lead.custom.shipping.delivery_purchase_confirmed_tsdatetimeNoObsoleto: Momento de creación de la venta. Mismo valor que "sales_lead.custom.created_at"
sales_lead.custom.shipping.shipping_label_urlstringNoUrl de la etiqueta de envio. Podrá ser un pdf o una imagen en función de la empresa de transporte
sales_lead.custom.shipping.tracking_codestringNoNúmero de seguimiento del pedido en la empresa de transporte.
sales_lead.foreign_idstringSiIdentificador único de la venta.
sales_lead.inquiryarrayNoConversación mantenida con el usuario en el portal.
versionstringSiVersión del schema de jsonLead. Versión 1.0.0 por el momento.

* En el caso de portales que permiten multiples artículos en el mismo pedido los elementos del JSON: "sales_lead.custom.external_id", "sales_lead.custom.amount" and "sales_lead.custom.title" sera una lista en vez de un solo elemento. El orden de las listas será respetado entre ellos.

Beneficios de esta integración

  • Automatización Completa: Procesa automáticamente las ventas en tu sistema de gestión.
  • Estandarización: El formato JSONLead asegura compatibilidad con la mayoría de sistemas del mercado.
  • Flexibilidad: Elige entre webhook, SFTP o email según lo que mejor se adapte a tus necesidades.

Integra esta solución en tu flujo de trabajo y optimiza la gestión de tus ventas con rapidez, precisión y facilidad. Si necesitas más detalles o soporte técnico, ¡contáctanos! 🚀