<MENUPLACEHOLDER

</synced_block_reference>

Creación de comercios

YOM puede delegar en el sistema del cliente la aprobación de nuevos comercios. Cuando un vendedor completa en la aplicación de YOM el formulario de alta de un comercio, YOM envía una solicitud HTTP POST al endpoint del cliente con las respuestas del formulario. El cliente responde si aprueba, rechaza u observa la solicitud y, si la aprueba, entrega los datos con los que se crea el Comercio en YOM.

<aside> 📝

El cliente debe exponer el endpoint e informar a YOM su URL completa. El formulario de alta (preguntas y opciones) se configura junto con YOM durante la implementación.

</aside>

Flujo


  1. El vendedor completa el formulario de alta en la aplicación de YOM.
  2. YOM envía la solicitud al endpoint del cliente.
  3. El cliente responde con el estado de la solicitud:
  4. Una solicitud en pending se cierra cuando el comercio llega a YOM a través de la carga habitual de Comercios.

Endpoint


POST <url_informada_por_el_cliente>

Encabezados que envía YOM

Cuerpo de la solicitud

{
  "commerceRequest": { ... }
}

Campos


CommerceRequest

La solicitud de creación de comercio.

Campo Tipo Carácter Descripción Ejemplos
_id 🆔 ObjectId 🟢 Requerido Identificador de la solicitud en YOM. Se recomienda usarlo como clave de idempotencia. "66fd1a2b3c4d5e6f7a8b9c0d"
domain 📝 Texto 🟢 Requerido Dominio del cliente al que pertenece la solicitud. "cliente.youorder.me"
status 📝 Texto 🟢 Requerido Estado de la solicitud al momento del envío. "pending"
form 🔡 Lista de Objetos → FormAnswer 🟢 Requerido Respuestas del formulario de alta. Ver detalle abajo.
tempId 📝 Texto ⚪ Opcional Identificador temporal de la solicitud generado por la aplicación. Se mantiene si el vendedor reenvía la solicitud. "lead-9f3a1c"
requestNum 🔢 Número ⚪ Opcional Número correlativo de la solicitud. 783
externalSellerId 📝 Texto ⚪ Opcional Código del Vendedor que creó la solicitud en el sistema del cliente. "V015"
source 📝 Objeto ⚪ Opcional Origen de la solicitud: sourceType (por ejemplo "seller") y sourceExternalId (código del vendedor). {"sourceType": "seller", "sourceExternalId": "V015"}
createdBy 📝 Texto ⚪ Opcional Usuario que creó la solicitud. "[email protected]"
createdAt 📅 Fecha 🟢 Requerido Fecha de creación de la solicitud en formato ISO 8601. "2026-10-02T14:32:00.000Z"

FormAnswer

Cada elemento de commerceRequest.form. Las preguntas dependen del formulario configurado para el cliente.

Campo Tipo Carácter Descripción Ejemplos
key 📝 Texto 🟢 Requerido Clave de la pregunta. "rut"
"commune"
answer 📝 Texto ⚪ Opcional Respuesta del vendedor. En preguntas de selección corresponde al código de la opción elegida; en preguntas con imagen, a la URL de la foto. "76741803-5"
"13101"
answerLabel 📝 Texto ⚪ Opcional Texto de la opción elegida, en preguntas de selección. "Santiago"
title 📝 Texto ⚪ Opcional Título de la pregunta. "Comuna"
type 📝 Texto ⚪ Opcional Tipo de pregunta.
"text" · "select" · "multiSelect" · "text-image" "select"

Respuesta esperada


El endpoint debe responder 2xx con Content-Type: application/json.

Campo Tipo Carácter Descripción Ejemplos
status 📝 Texto 🟢 Requerido Resultado de la solicitud.
"approved" → aprobada; el comercio se crea en YOM
"rejected" → rechazada
"observations" → requiere correcciones del vendedor
"pending" → en revisión "approved"
commerceData 📝 Objeto → CommerceData ⚪ Opcional Datos del Comercio a crear. Obligatorio cuando status es "approved".
externalCommerceId 📝 Texto ⚪ Opcional Código del Comercio en el sistema del cliente. "76741803-5/1"
segmentExternalId 📝 Texto ⚪ Opcional Identificador del Segmento que se asigna al comercio creado. Si no se informa, el comercio queda solo en el segmento base. "LISTA-01"
observations 🔡 Lista de Objetos ⚪ Opcional Observaciones para el vendedor, como pares key (campo observado) y value (descripción). Se usan con "observations" y "rejected". [{"key": "rut", "value": "RUT inválido"}]
statusReason 📝 Texto ⚪ Opcional Motivo legible del resultado. Si no se informa, se usa la primera observación. "Cliente ya existe"

CommerceData

Datos del comercio aprobado. Siguen el modelo de Comercios.

Campo Tipo Carácter Descripción Ejemplos
contact 📝 Objeto 🟢 Requerido Datos de contacto: externalId (código del comercio en el sistema del cliente), name, email y phone.
address 🔡 Lista de Objetos ⚪ Opcional Direcciones del comercio: name, address, city y commune.
credit 📝 Objeto ⚪ Opcional Situación crediticia del comercio. {}
sellerAssignments 🔡 Lista de Objetos ⚪ Opcional Vendedores asignados al comercio, por externalSellerId. [{"externalSellerId": "V015"}]

Solicitud aprobada

{
  "status": "approved",
  "externalCommerceId": "76741803-5/1",
  "segmentExternalId": "LISTA-01",
  "commerceData": {
    "contact": {
      "externalId": "76741803-5/1",
      "name": "COMERCIAL LOS ANDES SPA",
      "email": "[email protected]",
      "phone": "+56912345678"
    },
    "address": [
      { "name": "AV MATTA", "address": "AV MATTA 1234", "city": "SANTIAGO", "commune": "SANTIAGO" }
    ],
    "credit": {},
    "sellerAssignments": [{ "externalSellerId": "V015" }]
  }
}

Solicitud con observaciones

{
  "status": "observations",
  "observations": [
    { "key": "rut", "value": "El RUT no coincide con la razón social" }
  ]
}

Solicitud rechazada

{
  "status": "rejected",
  "statusReason": "Cliente ya existe asignado a este vendedor"
}

Ejemplo


POST <https://api.cliente.com/webhooks/yom/commerce/create>
Content-Type: application/json
x-auth-token: 6a5a8ee27726337b51c72405
origin: legacy.youorder.me

{
  "commerceRequest": {
    "_id": "66fd1a2b3c4d5e6f7a8b9c0d",
    "domain": "cliente.youorder.me",
    "tempId": "lead-9f3a1c",
    "requestNum": 783,
    "status": "pending",
    "externalSellerId": "V015",
    "source": { "sourceType": "seller", "sourceExternalId": "V015" },
    "createdBy": "[email protected]",
    "form": [
      { "key": "rut", "title": "RUT", "type": "text", "answer": "76741803-5" },
      { "key": "name", "title": "Razón social", "type": "text", "answer": "Comercial Los Andes SpA" },
      { "key": "email", "title": "Email", "type": "text", "answer": "[email protected]" },
      { "key": "phone", "title": "Teléfono", "type": "text", "answer": "+56912345678" },
      { "key": "commune", "title": "Comuna", "type": "select", "answer": "13101", "answerLabel": "Santiago" },
      { "key": "streetName", "title": "Calle", "type": "text", "answer": "Av. Matta" },
      { "key": "streetNumber", "title": "Número", "type": "text", "answer": "1234" },
      { "key": "idFront", "title": "Cédula (frente)", "type": "text-image", "answer": "https://.../idFront.jpg" }
    ],
    "createdAt": "2026-10-02T14:32:00.000Z"
  }
}
curl -X POST \
  '<https://api.cliente.com/webhooks/yom/commerce/create>' \
  -H 'Content-Type: application/json' \
  -H 'x-auth-token: 6a5a8ee27726337b51c72405' \
  -d '{"commerceRequest": { ... }}'

Consideraciones


<aside> ⏱️

El endpoint debe responder en menos de 70 segundos. Si no responde a tiempo, responde con un código distinto de 2xx o falla la conexión, la solicitud queda en pending.

</aside>