<MENUPLACEHOLDER
</synced_block_reference>
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>
approved → el comercio se crea en YOM con los datos entregados y queda disponible para tomar pedidos.rejected → la solicitud se rechaza y el comercio no se crea.observations → la solicitud requiere correcciones; el vendedor las ve en la aplicación, corrige y vuelve a enviar.pending → la solicitud quedó recibida y en revisión en el sistema del cliente.pending se cierra cuando el comercio llega a YOM a través de la carga habitual de Comercios.POST <url_informada_por_el_cliente>
Encabezados que envía YOM
Content-Type: application/jsonx-auth-token: {identificador del cliente en YOM}origin: legacy.youorder.meCuerpo de la solicitud
{
"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" |
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" |
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" |
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"}] |
{
"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" }]
}
}
{
"status": "observations",
"observations": [
{ "key": "rut", "value": "El RUT no coincide con la razón social" }
]
}
{
"status": "rejected",
"statusReason": "Cliente ya existe asignado a este vendedor"
}
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": { ... }}'
<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>
commerceRequest._id como clave para no crear dos veces el mismo comercio.status distinto de los cuatro valores documentados se interpreta como "pending"."approved" sin commerceData deja la solicitud en "pending".commerceRequest puede incluir campos adicionales a los descritos en este documento. Se recomienda usar solo los campos necesarios y tolerar la aparición de campos nuevos.