Propuesta abierta · versión 2026-10-09

Especificación Comercio IA

Extensión chilena para el Universal Commerce Protocol (UCP) y el Agentic Commerce Protocol (ACP). Define cómo un agente de IA y una tienda intercambian la información que la ley chilena exige para cerrar una venta a distancia, y cómo se paga con medios de pago chilenos.

Versión
2026-10-09 (propuesta abierta: lista para implementar y comentar)
Espacio de nombres
cl.comercioia.*
Esquemas servidos desde
https://comercioia.cl/ucp/…
Requiere
UCP 2026-08-25 o posterior. Equivalencias para ACP 2026-04-17 en la sección ACP.
Licencia
Apache-2.0

Esta especificación describe reglas tributarias y de protección al consumidor, pero no es asesoría legal. Cada tienda es responsable de decidir qué avisos le aplican.

1. Convenciones

  • DEBE, NO DEBE, DEBERÍA y PUEDE tienen el sentido de MUST, MUST NOT, SHOULD y MAY del RFC 2119.
  • Montos en pesos chilenos enteros. El peso no tiene decimales, así que la unidad mínima es el peso, igual que en los estándares.
  • RUT sin puntos, con guion y dígito verificador módulo 11, por ejemplo 76123456-0. Quien recibe un RUT DEBE validar el dígito verificador.
  • Fechas en RFC 3339 con zona horaria, por ejemplo 2026-12-03T14:22:05-03:00.
  • Objetos abiertos. Como pide UCP, los esquemas no cierran objetos ni usan listas cerradas: los códigos se documentan como ejemplos, y un valor desconocido DEBE tratarse como se indica en cada campo.
  • Autoridad del dominio. Todo esquema cl.comercioia.* se sirve desde comercioia.cl, sin redirecciones ni CDN con otro nombre. Si un esquema llega desde otro dominio, el agente lo ignora.

2. Declaración en el perfil de la tienda

La tienda declara las extensiones en capabilities y los medios de pago en payment_handlers de su perfil /.well-known/ucp. Los agentes negocian por nombre y versión: una extensión que el agente no anuncia queda inactiva y el checkout sigue con los campos del núcleo.

{
  "ucp": {
    "version": "2026-08-25",
    "services": { "dev.ucp.shopping": [ … ] },
    "capabilities": {
      "dev.ucp.shopping.checkout": [{ "version": "2026-08-25" }],
      "dev.ucp.shopping.order":    [{ "version": "2026-08-25" }],
      "cl.comercioia.shopping.tax_document": [{
        "version": "2026-10-09",
        "extends": ["dev.ucp.shopping.checkout", "dev.ucp.shopping.order"],
        "spec":   "https://comercioia.cl/spec/#tax-document",
        "schema": "https://comercioia.cl/ucp/schemas/tax_document/2026-10-09.json" }],
      "cl.comercioia.shopping.consumer_terms": [{
        "version": "2026-10-09",
        "extends": ["dev.ucp.shopping.checkout", "dev.ucp.shopping.order"],
        "spec":   "https://comercioia.cl/spec/#consumer-terms",
        "schema": "https://comercioia.cl/ucp/schemas/consumer_terms/2026-10-09.json" }],
      "cl.comercioia.shopping.credit_note": [{
        "version": "2026-10-09",
        "extends": "dev.ucp.shopping.order",
        "spec":   "https://comercioia.cl/spec/#credit-note",
        "schema": "https://comercioia.cl/ucp/schemas/credit_note/2026-10-09.json" }]
    },
    "payment_handlers": {
      "cl.comercioia.webpay_plus": [{
        "id": "webpay_1", "version": "2026-10-09",
        "spec":   "https://comercioia.cl/spec/#webpay-plus",
        "schema": "https://comercioia.cl/ucp/handlers/webpay_plus/2026-10-09.json",
        "available_instruments": [{ "type": "redirect" }],
        "config": { "environment": "production" } }]
    }
  }
}

3. Documento tributario cl.comercioia.shopping.tax_document

Extiende dev.ucp.shopping.checkout y dev.ucp.shopping.order. En el checkout, el comprador elige boleta o factura. En el pedido, la tienda devuelve los documentos que emitió.

En el checkout: tax_document

CampoReglaFuente
document_choiceboleta (por defecto) o factura. Las personas reciben boleta (39, o 41 exenta); la factura (33 o 34) es solo para compradores con inicio de actividades. Un valor desconocido DEBE tratarse como boleta, avisando en messages[].DL 825 arts. 52–53
receiverObligatorio si se pide factura: rut, razon_social (≤100), giro (≤40), direccion (≤70), comuna (≤20); opcionales ciudad y email.Formato DTE del SII; DS 55 art. 69

En el pedido: tax_documents[]

CampoReglaFuente
type, folioTipo de DTE y folio autorizado por el SII.Formato DTE
issuer_rut, receiver_rutUna boleta a un consumidor no identificado lleva el RUT genérico 66666666-6.Formato DTE
issued_at, issue_triggerSe emite a más tardar en la entrega. Lo recomendado es emitir al confirmarse el pago (payment_confirmed). Una factura emitida después del despacho requiere guía de despacho (52) al despachar.DL 825 art. 55
total, net, iva, exemptPesos enteros. El total incluye IVA.DL 825
sii_track_id, sii_statusCada boleta se envía al SII dentro de una hora desde su emisión.Res. Ex. SII 74/2020
representation_urlEnlace https a una representación que el comprador pueda guardar, entregado de inmediato por correo, chat, enlace o QR.Res. Ex. SII 74/2020

4. Términos del consumidor cl.comercioia.shopping.consumer_terms

Extiende checkout y pedido con la información que un vendedor a distancia debe dar antes y después de la venta.

CampoReglaFuente
sellerrazon_social, rut, domicilio y contacto del vendedor, visibles antes de pagar; opcional platform_role con el rol de cualquier plataforma intermediaria.DS 6/2021
ai_disclosureEl agente declara que es un agente de IA (is_ai_agent, agent_name, purpose, human_contact). La tienda lo repite en su respuesta. Sin patrones engañosos; los rechazos automáticos deben explicar el motivo.SERNAC Res. Ex. 33/2022
price_includes_taxDEBE ser true en ventas a consumidores: el precio total incluye impuestos.Ley 19.496 art. 30
deliveryCosto de despacho y plazo estimado, informados antes del pago.DS 6/2021
installmentsSolo si se ofrecen cuotas: count, installment_amount, tasa mensual, cae, total_cost y cash_price. El precio contado DEBE ser al menos igual de visible que el precio en cuotas.Ley 19.496 arts. 17 G y 37
confirmation (pedido)Confirmación escrita con copia íntegra del contrato, enviada al cerrarse la venta: channel, sent_at, contract_copy_url. Sin ella, el plazo de retracto se extiende de 10 a 90 días.Ley 19.496 art. 12 A

5. Retracto y garantía legal

Ambas son tipos de política dentro de policies[] del núcleo, que UCP permite definir bajo el dominio propio. Como toda política de UCP, llevan type y description, un objeto con plain, markdown o html. Sus esquemas están en consumer_terms.

cl.comercioia.policy.retracto

CampoValor por defecto y regla
window_days10 días corridos desde la recepción del producto, o desde la contratación en servicios.
window_days_without_confirmation90, si no se envió la confirmación escrita del art. 12 A.
refund_within_days45, sin descuentos.
excluded, exclusion_reasonUn producto solo puede excluirse por su naturaleza: no retornable, perecible, hecho a medida o de higiene personal abierto (DS 52/2022). Los servicios pueden excluirse por decisión del vendedor. Ejemplos de código: not_returnable, perishable, made_to_order, hygiene_opened, service_excluded_by_seller.

Fuente: Ley 19.496 art. 3 bis b), modificada por la Ley 21.398. El aviso se muestra antes de pagar, junto al precio y con un tamaño no menor, con las palabras «derecho a retracto».

cl.comercioia.policy.garantia_legal

CampoValor por defecto y regla
months6 meses desde la recepción.
remediesrepair, replace o refund, a elección del comprador.
remote_claim_channelUn vendedor a distancia ofrece un canal de reclamo a distancia o retiro gratuito.

Fuente: Ley 19.496 arts. 20 y 21; SERNAC Res. Ex. 779/2023.

Avisos que llegan aunque el agente no conozca la extensión

La tienda DEBE enviar además cada aviso de retracto y garantía como un mensaje warning del núcleo en messages[], con presentation: "disclosure", code igual al tipo de la política y path apuntando a ella. UCP exige que las plataformas no oculten, colapsen ni descarten esos avisos, y que deriven al comprador a continue_url si no pueden mostrarlos. Así los avisos legales llegan incluso a través de un agente que no sabe nada de Chile.

6. Notas de crédito cl.comercioia.shopping.credit_note

Extiende dev.ucp.shopping.order. Cada entrada de adjustments[] del núcleo (devolución, retracto, anulación) PUEDE llevar un tax_document con la nota de crédito (61) o de débito (56) emitida.

CampoRegla
type, folio, issued_at, totalDocumento emitido, en pesos enteros.
ref_type, ref_folio, ref_dateDocumento original al que se refiere (por ejemplo, boleta 39).
cod_ref1 anula el documento, 2 corrige texto, 3 corrige montos.
razonMotivo impreso en el documento (≤90).

El IVA de una nota de crédito solo se recupera dentro de los 6 meses siguientes a la entrega (DL 825 arts. 21 N°2 y 70).

7. Medios de pago

Los cinco medios de pago siguen el mismo patrón, que en UCP es el patrón de escalamiento del núcleo:

  1. La tienda crea el pago con su propia cuenta en el proveedor.
  2. El checkout responde status: "requires_escalation" con un continue_url y un mensaje con severity: "requires_buyer_input".
  3. El comprador paga en la página del proveedor.
  4. La tienda confirma el resultado directamente con el proveedor y crea el pedido.

El agente nunca recibe datos de tarjeta ni credenciales. La configuración pública (config) NO DEBE incluir claves ni secretos. Estos medios de pago están publicados por la iniciativa Comercio IA hasta que cada proveedor publique el suyo; cada proveedor está invitado a revisarlo, cofirmarlo o asumirlo.

Fallas y su equivalente en UCP

SituacióncodeseverityQué hace el agente
El emisor rechaza el pagopayment_failedrecoverableOfrece reintentar u otro medio de pago.
Fondos insuficientespayment_failedrecoverableIgual que un rechazo; el detalle va en content.
El comprador no pagó a tiempo (vence la sesión del proveedor)payment_failedrecoverableUn nuevo intento crea una nueva transacción.
Proveedor no disponible o error de redpayment_failedrecoverableReintenta después; la tienda consulta el estado antes de crear otro pago.
El comprador debe pagar en la página del proveedor(estado del checkout)requires_buyer_inputLleva al comprador a continue_url.

Webpay Plus · cl.comercioia.webpay_plus

Proveedor
Transbank
Crear
POST /rswebpaytransaction/api/webpay/v1.2/transactions con el código de comercio de la tienda. buy_order ≤26 caracteres, session_id ≤61, monto en pesos enteros, return_url ≤256.
Cómo paga
Webpay exige un formulario POST con token_ws, así que continue_url apunta a una página de la tienda que lo envía automáticamente.
Confirmación
Commit (PUT …/transactions/{token}) al volver el comprador. Aprobado solo si response_code = 0 y status = AUTHORIZED.
Vencimiento
Token de 5 minutos; el formulario da 4 minutos en producción (token_ttl_seconds, payment_window_seconds).
Diseñar para
No hay webhook: la tienda DEBE revisar por consulta de estado los pagos abandonados (el estado se puede consultar por 7 días). No hay clave de idempotencia: la tienda usa la suya.
Devoluciones
Reversa o anulación, total o parcial, según los plazos de Transbank.

Oneclick Mall · cl.comercioia.oneclick_mall (propuesto)

Proveedor
Transbank
Crear
Inscripción única de la tarjeta en la página de Transbank. Después, cobros servidor a servidor con el tbk_user de la inscripción y el código de comercio de la tienda dentro del Mall.
Cómo paga
Solo una vez, al inscribir. Si no hay inscripción vigente, la respuesta indica enrollment_required y deriva a continue_url.
Confirmación
Respuesta síncrona de la autorización.
Diseñar para
Es lo más parecido a pagar dentro del chat que existe hoy en Chile. Los límites diarios por usuario se fijan al afiliarse. Antes de usarlo hay que confirmar con Transbank si un cobro iniciado a través de un agente de IA calza con sus condiciones.

Mercado Pago · cl.comercioia.mercadopago

Proveedor
Mercado Pago
Crear
API de órdenes o preferencias con las credenciales de la tienda. external_reference ≤64, notification_url ≤248, precios unitarios enteros en Chile, encabezado X-Idempotency-Key.
Cómo paga
En la URL de checkout que devuelve Mercado Pago.
Confirmación
Webhook firmado (x-signature) más conciliación.
Devoluciones
Totales o parciales, dentro de los plazos de Mercado Pago.

Getnet · cl.comercioia.getnet

Proveedor
Getnet (Web Checkout sobre la plataforma PlacetoPay)
Crear
POST /api/session con las credenciales de la tienda; reference ≤32. La sesión dura 30 minutos por defecto (session_ttl_seconds).
Cómo paga
En el processUrl devuelto.
Confirmación
La notificación se envía una sola vez, así que la tienda DEBE además consultar /api/session/{requestId}.
Diseñar para
Qué funciones tiene habilitadas Getnet Chile está por confirmar con Getnet.

Khipu · cl.comercioia.khipu

Proveedor
Khipu (transferencia bancaria)
Crear
POST https://payment-api.khipu.com/v3/payments con la API key de la tienda.
Cómo paga
Desde su cuenta bancaria, en el payment_url devuelto.
Confirmación
Webhook firmado (x-khipu-signature), que Khipu reintenta, más consulta de estado (pending, verifying, done).
Diseñar para
No hay clave de idempotencia documentada. Iniciar pagos desde cuentas bancarias es una actividad regulada: el registro lo tiene Khipu, no quien implementa esta especificación.

8. Ejemplos

Los ejemplos muestran solo los campos relevantes. Los RUT de ejemplo pasan la validación módulo 11.

Respuesta a complete_checkout: pagar con Webpay Plus

{
  "id": "chk_7f3a",
  "status": "requires_escalation",
  "continue_url": "https://tienda-ejemplo.cl/pagar/chk_7f3a",
  "currency": "CLP",
  "totals": [
    { "type": "subtotal", "display_text": "Productos (IVA incluido)", "amount": 189990 },
    { "type": "fulfillment", "display_text": "Despacho RM, 3 días hábiles", "amount": 4990 },
    { "type": "total", "amount": 194980 }
  ],
  "policies": [
    { "type": "cl.comercioia.policy.retracto",
      "description": { "plain": "Derecho a retracto: 10 días desde que recibes el producto." },
      "url": "https://tienda-ejemplo.cl/retracto",
      "window_days": 10, "window_days_without_confirmation": 90, "refund_within_days": 45 },
    { "type": "cl.comercioia.policy.garantia_legal",
      "description": { "plain": "Garantía legal de 6 meses: reparación, cambio o devolución." },
      "months": 6, "remedies": ["repair", "replace", "refund"] }
  ],
  "messages": [
    { "type": "warning", "code": "cl.comercioia.policy.retracto",
      "path": "$.policies[0]", "presentation": "disclosure",
      "content": "Tienes derecho a retracto por 10 días desde que recibes el producto." },
    { "type": "error", "code": "payment_redirect", "severity": "requires_buyer_input",
      "content": "Completa el pago en Webpay." }
  ],
  "tax_document": { "document_choice": "boleta" },
  "consumer_terms": {
    "seller": { "razon_social": "Tienda Ejemplo SpA", "rut": "76123456-0",
                "domicilio": "Av. Ejemplo 123, Santiago", "contacto": "ayuda@tienda-ejemplo.cl" },
    "ai_disclosure": { "is_ai_agent": true, "purpose": "purchase_assistance" },
    "price_includes_tax": true,
    "delivery": { "cost": 4990, "estimated_delivery": "3 días hábiles" }
  }
}

El pedido después del pago y de un retracto

{
  "id": "ord_5521",
  "checkout_id": "chk_7f3a",
  "currency": "CLP",
  "totals": [{ "type": "total", "amount": 194980 }],
  "tax_documents": [{
    "type": 39, "folio": 4512330, "issuer_rut": "76123456-0", "receiver_rut": "66666666-6",
    "issued_at": "2026-12-03T14:22:05-03:00", "total": 194980, "net": 163849, "iva": 31131,
    "issue_trigger": "payment_confirmed", "sii_status": "accepted",
    "representation_url": "https://tienda-ejemplo.cl/dte/39/4512330" }],
  "consumer_terms": {
    "confirmation": { "channel": "email", "sent_at": "2026-12-03T14:22:40-03:00",
                      "contract_copy_url": "https://tienda-ejemplo.cl/contrato/ord_5521" } },
  "adjustments": [{
    "id": "adj_1", "type": "refund", "status": "completed",
    "occurred_at": "2026-12-09T10:00:00-03:00",
    "description": "Retracto dentro de 10 días",
    "tax_document": { "type": 61, "folio": 88213, "issued_at": "2026-12-09T10:05:00-03:00",
                      "total": 194980, "ref_type": 39, "ref_folio": 4512330,
                      "ref_date": "2026-12-03", "cod_ref": 1,
                      "razon": "Anula boleta por retracto" } }]
}

9. Equivalencias en ACP

Los objetos base de ACP son cerrados (additionalProperties: false), así que los campos de esta extensión solo validan contra un esquema que combine el de ACP con el nuestro. La versión para ACP se activará cuando el programa de OpenAI incluya Chile; hoy sus catálogos de productos cubren Estados Unidos, Canadá y México.

PiezaYa existe en ACPLo que agrega Comercio IA
Boleta o facturaOrder.confirmation (invoice_number, receipt_url)Tipo de DTE, folio, RUT del emisor, estado en el SII
Comprador de facturabuyer.company.tax_id, nombreGiro, dirección, comuna; elección de boleta o factura
RetractoEnlace return_policy; campo de catálogo return_deadline_in_daysCampos estructurados de retracto
Garantía legaldisclosures[] por productoCampos estructurados de garantía
Nota de créditoOrder.adjustments[]Referencia al DTE 61
Pagocapabilities.payment.handlers[] con pspLos cinco medios de pago chilenos; los pagos con redirección aún no están definidos en ACP (propuesta #142)

10. Esquemas

JSON Schema draft 2020-12, autodescriptivos ($id, name, version), con una entrada en $defs por cada capacidad que extienden, compuesta con allOf, y un bloque requires con la versión mínima del núcleo.

NombreEsquema
cl.comercioia.shopping.tax_document/ucp/schemas/tax_document/2026-10-09.json
cl.comercioia.shopping.consumer_terms/ucp/schemas/consumer_terms/2026-10-09.json
cl.comercioia.shopping.credit_note/ucp/schemas/credit_note/2026-10-09.json
cl.comercioia.webpay_plus/ucp/handlers/webpay_plus/2026-10-09.json
cl.comercioia.oneclick_mall/ucp/handlers/oneclick_mall/2026-10-09.json
cl.comercioia.mercadopago/ucp/handlers/mercadopago/2026-10-09.json
cl.comercioia.getnet/ucp/handlers/getnet/2026-10-09.json
cl.comercioia.khipu/ucp/handlers/khipu/2026-10-09.json

11. Versionado y gobernanza

  • Cada versión tiene fecha (AAAA-MM-DD) y queda publicada en su propia dirección. Una versión publicada no se modifica: los cambios salen en una versión nueva.
  • Las extensiones de terceros se versionan de forma independiente del núcleo, como permiten UCP y ACP. Cada versión declara qué versiones del núcleo requiere.
  • Se mantiene compatibilidad con la versión vigente de UCP y la anterior.
  • Comentarios abiertos hasta el 30 de noviembre de 2026 en el repositorio público. Primera versión estable prevista para enero de 2027, al cumplir el camino a la 1.0.
  • Si un proveedor publica un medio de pago oficial, esta especificación lo adopta y marca el suyo como obsoleto.
  • Cuando haya adopción amplia, las piezas que sirvan a otros países se propondrán al núcleo de UCP o ACP por sus procesos formales.

12. Preguntas abiertas

Temas que deben revisar abogados antes de la versión estable:

  • En una venta a distancia, cuándo ocurre la entrega para efectos del DL 825 art. 55, y si emitir la boleta al confirmarse el pago es el criterio correcto por defecto.
  • Si un agente de IA que completa una compra cuenta como «plataforma» u «operador» bajo el DS 6/2021, y qué responsabilidad le corresponde.
  • Si un orquestador que no retiene fondos queda fuera del capítulo III.J.2 del Banco Central y de la NCG 541 de la CMF.
  • Los roles de tratamiento de datos bajo la Ley 21.719 (vigente desde el 1 de diciembre de 2026) cuando un agente comparte datos del comprador con la tienda, y la forma del mandato del comprador.
  • Si SERNAC fija un plazo para la confirmación del art. 12 A.

13. Fuentes