# Disputas

Las disputas son un **mecanismo explícito y dirigido por humanos** en Offer Hub.

Existen para manejar casos donde:

* la entrega es disputada,
* la aprobación se retiene,
* se solicita la cancelación,
* o se debe revisar evidencia.

Offer Hub **no** se basa en temporizadores ni en arbitraje automatizado.\
En su lugar, las disputas son resueltas por la **plataforma del mercado**, actuando como servicio al cliente, con resultados aplicados por contratos escrow.

***

### Objetivo

Permitir:

* **compradores o vendedores** presentar una disputa,
* **la plataforma** revisar la evidencia y decidir el resultado,
* **el escrow** hacer cumplir la resolución final (liberación o reembolso).

***

### Actores

* **Comprador**
* **Vendedor**
* **Interfaz de OfferHub**
* **Backend de OfferHub (Orquestador)**
* **Escrow de Trustless Work**
* **dApp de Trustless Work (Backoffice)**
* **Dirección del Resolver de Disputas (controlada por la plataforma)**

***

### Cuándo se puede presentar una disputa

Se puede iniciar una disputa **en cualquier momento después de que el escrow esté financiado y antes de la liberación final**.

Los escenarios típicos incluyen:

#### Disputas iniciadas por el comprador

* El producto nunca llegó
* El servicio no se entregó según lo acordado
* La evidencia de entrega es insuficiente
* El vendedor marcó la entrega prematuramente

#### Disputas iniciadas por el vendedor

* El comprador no responde
* El comprador se niega a aprobar a pesar de la entrega
* El vendedor quiere cancelar y reembolsar
* El vendedor tiene evidencia sólida de cumplimiento

Ambas partes tienen derecho a **marcar la transacción**, pero ninguna puede resolverla por sí misma.

***

### Inicio de la disputa

#### 1. Comprador o Vendedor presenta una disputa

```
Usuario → Interfaz de OfferHub: Presentar disputa
```

Esta acción:

* se inicia fuera de la cadena,
* registra la intención de disputar,
* todavía no mueve fondos.

OfferHub captura:

* quién presentó la disputa
* código de motivo
* evidencia opcional (mensajes, archivos, enlaces)

***

#### 2. El escrow se marca como disputado

```
OfferHub → Trustless Work:
  Marcar el escrow como Disputado
```

Una vez disputado:

* el escrow queda congelado,
* no puede producirse una liberación o reembolso automáticamente,
* el control pasa al **rol de Resolver de Disputas**.

El estado del pedido se actualiza a **Disputado**.

***

### Resolución de la plataforma (flujo de backoffice)

#### Decisión de diseño importante

> **Offer Hub no implementa su propio backoffice de disputas.**

En su lugar, aprovecha la **dApp existente de Trustless Work**, que ya soporta:

* inspección de escrow,
* firma basada en roles,
* ejecución de liberaciones y reembolsos.

Esto evita la duplicación y garantiza un comportamiento consistente.

***

#### 3. La plataforma inicia sesión en la dApp de Trustless Work

Un operador de la plataforma (servicio al cliente) inicia sesión en la dApp de Trustless Work usando la **dirección del Resolver de Disputas / Firmante de Liberación** asignada al escrow.

📌 Referencia:

* dApp de Trustless Work (Backoffice)
* Iniciar sesión usando la wallet del resolver configurada para el mercado

***

#### 4. La plataforma revisa el caso

Usando:

* evidencia proporcionada por OfferHub (fuera de la cadena)
* estado del escrow en la cadena
* historial de transacciones

La plataforma decide uno de los siguientes resultados:

* **Liberar fondos al vendedor**
* **Reembolsar fondos al comprador**

***

#### 5. La plataforma firma la resolución

```
dApp de Trustless Work → Escrow:
  Ejecutar Liberación O Reembolso
```

Esta acción:

* es firmado por la dirección del resolver/firmante de liberación de la plataforma,
* se aplica en cadena,
* es definitivo.

***

### Estado posterior a la resolución

Después de la resolución:

* El escrow pasa a **Liberado** o **Reembolsado**
* El pedido pasa a **Cerrado**
* Los fondos se transfieren en consecuencia
* Existe una pista de auditoría completa (en cadena + fuera de la cadena)

***

### Resultados

* ✅ Disputa registrada
* ✅ Escrow congelado durante la revisión
* ✅ Resolución aplicada en cadena
* ✅ Pedido cerrado con resultado final

***

### Lo que ven los usuarios

#### Comprador

* Actualizaciones del estado de la disputa
* Resultado final (reembolso o no)
* Explicación clara por parte de la plataforma

#### Vendedor

* Actualizaciones del estado de la disputa
* Resultado final (pagado o reembolsado)
* Explicación de la decisión de la plataforma

***

### Modelo de seguridad y confianza

* Compradores **no pueden** liberar fondos
* Vendedores **no pueden** liberar fondos
* Plataforma **solo puede actuar dentro de las reglas del escrow**
* Todas las acciones de resolución están firmadas y son auditables

***

### Notas educativas

#### Por qué ambas partes pueden presentar disputas

Esto refleja los mercados reales:

* las disputas son señales, no decisiones,
* presentar una disputa no implica mala conducta,
* la resolución la maneja el servicio al cliente.
