# Actualizar escrow

### Liberación única

```typescript
/**
 * Carga útil de actualización de escrow de liberación única
 */
export type UpdateSingleReleaseEscrowPayload = {
  /**
   * ID (dirección) que identifica el contrato de escrow
   */
  contractId: string;

  /**
   * Datos del escrow
   */
  escrow: {
    /**
   * Identificador único del escrow
   */
    engagementId: string;

    /**
     * Nombre del escrow
     */
    title: string;

    /**
     * Roles que conforman la estructura del escrow
     */
    roles: {
      /**
       * Dirección de la entidad que requiere el servicio.
       */
      approver: string;

      /**
       * Dirección de la entidad que presta el servicio.
       */
      serviceProvider: string;

      /**
       * Dirección de la entidad que posee el escrow
       */
      platformAddress: string;

      /**
       * Dirección del usuario encargado de liberar los fondos del escrow al proveedor del servicio.
       */
      releaseSigner: string;

      /**
       * Dirección encargada de resolver disputas dentro del escrow.
       */
      disputeResolver: string;

      /**
       * Dirección a la que se enviarán los ingresos del escrow
       */
      receiver: string;
    };

    /**
     * Texto que describe la función del escrow
     */
    description: string;

    /**
     * Monto a transferir al completarse los hitos del escrow
     */
    amount: number;

    /**
     * Comisión que recibirá la plataforma cuando el escrow se complete
     */
    platformFee: number;

    /**
     * Objetivos que deben completarse para definir el escrow como completado
     */
    milestones: {
      /**
       * Texto que describe la función del hito.
       */
      description: string;

      /**
       * Estado del hito. Ej: Aprobado, En disputa, etc...
       */
      status?: string;

      /**
       * Evidencia del trabajo realizado por el proveedor del servicio.
       */
      evidence?: string;

      /**
       * Indicador de aprobado, solo si el escrow es de liberación única
       */
      approved?: boolean;
    }[];

    /**
     * Indicadores que validan ciertos estados de vida del escrow
     */
    flags?: {
      /**
       * Indicador que señala que un escrow está en disputa.
       */
      disputed?: boolean;

      /**
       * Indicador que señala que los fondos del escrow ya han sido liberados.
       */
      released?: boolean;

      /**
       * Indicador que señala que un escrow en disputa ya ha sido resuelto.
       */
      resolved?: boolean;

      /**
       * Indicador que señala si un hito ha sido aprobado por el aprobador.
       */
      approved?: boolean;
    };

   /**
     * Información sobre la trustline que gestionará el movimiento de fondos en escrow
     */
    trustline: {   
     /**
       * Símbolo del token, ejemplo: USDC, EURC, etc...
       */
      symbol: string;
  
      /**
       * Dirección pública que establece permiso para aceptar y usar un token específico.
       */
      address: string;
    };

    /**
     * Si el escrow está activo. Esto proviene de la BD, no de la blockchain.
     */
    isActive?: boolean;
  };

  /**
   * Dirección del usuario que firma la transacción del contrato
   */
  signer: string;
};
```

### Liberación múltiple

```typescript
/**
 * Carga útil de actualización de escrow de liberación múltiple
 */
export type UpdateMultiReleaseEscrowPayload = {
  /**
   * ID (dirección) que identifica el contrato de escrow
   */
  contractId: string;

  /**
   * Datos del escrow
   */
  escrow: {
    /**
     * Identificador único del escrow
     */
    engagementId: string;

    /**
     * Nombre del escrow
     */
    title: string;

    /**
     * Roles que conforman la estructura del escrow (sin receiver, ya que cada hito tiene su propio receiver)
     */
    roles: {
      /**
       * Dirección de la entidad que requiere el servicio.
       */
      approver: string;

      /**
       * Dirección de la entidad que presta el servicio.
       */
      serviceProvider: string;

      /**
       * Dirección de la entidad que posee el escrow
       */
      platformAddress: string;

      /**
       * Dirección del usuario encargado de liberar los fondos del escrow al proveedor del servicio.
       */
      releaseSigner: string;

      /**
       * Dirección encargada de resolver disputas dentro del escrow.
       */
      disputeResolver: string;
    };

    /**
     * Texto que describe la función del escrow
     */
    description: string;

    /**
     * Comisión que recibirá la plataforma cuando el escrow se complete
     */
    platformFee: number;

    /**
     * Objetivos que deben completarse para definir el escrow como completado
     */
    milestones: {
      /**
       * Texto que describe la función del hito.
       */
      description: string;

      /**
       * Estado del hito. Ej: Aprobado, En disputa, etc...
       */
      status?: string;

      /**
       * Evidencia del trabajo realizado por el proveedor del servicio.
       */
      evidence?: string;

      /**
       * Monto a transferir al completarse este hito
       */
      amount: number;

      /**
       * Dirección a la que se enviarán los ingresos del hito
       */
      receiver: string;

      /**
       * Indicadores que validan ciertos estados de vida del hito, solo si el escrow es de liberación múltiple
       */
      flags?: {
        /**
         * Indicador que señala que un escrow está en disputa.
         */
        disputed?: boolean;

        /**
         * Indicador que señala que los fondos del escrow ya han sido liberados.
         */
        released?: boolean;

        /**
         * Indicador que señala que un escrow en disputa ya ha sido resuelto.
         */
        resolved?: boolean;

        /**
         * Indicador que señala si un hito ha sido aprobado por el aprobador.
         */
        approved?: boolean;
      };
    }[];

    /**
     * Información sobre la trustline que gestionará el movimiento de fondos en escrow
     */
    trustline: {   
     /**
       * Símbolo del token, ejemplo: USDC, EURC, etc...
       */
      symbol: string;
  
      /**
       * Dirección pública que establece permiso para aceptar y usar un token específico.
       */
      address: string;
    };

    /**
     * Si el escrow está activo. Esto proviene de la BD, no de la blockchain.
     */
    isActive?: boolean;
  };

  /**
   * Dirección del usuario que firma la transacción del contrato
   */
  signer: string;
};
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.trustlesswork.com/trustless-work/v1-es/introduccion/developer-resources/tipos/cargas-utiles/actualizar-escrow.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
