# Atualizar escrow

### Liberação Única

```typescript
/**
 * Payload de Atualização de Escrow de Liberação Única
 */
export type UpdateSingleReleaseEscrowPayload = {
  /**
   * ID (endereço) que identifica o contrato de escrow
   */
  contractId: string;

  /**
   * Dados do escrow
   */
  escrow: {
    /**
   * Identificador único do escrow
   */
    engagementId: string;

    /**
     * Nome do escrow
     */
    title: string;

    /**
     * Papéis que compõem a estrutura do escrow
     */
    roles: {
      /**
       * Endereço da entidade que solicita o serviço.
       */
      approver: string;

      /**
       * Endereço da entidade que fornece o serviço.
       */
      serviceProvider: string;

      /**
       * Endereço da entidade que é proprietária do escrow
       */
      platformAddress: string;

      /**
       * Endereço do usuário responsável por liberar os fundos do escrow ao prestador de serviços.
       */
      releaseSigner: string;

      /**
       * Endereço responsável por resolver disputas dentro do escrow.
       */
      disputeResolver: string;

      /**
       * Endereço para o qual os valores do escrow serão enviados
       */
      receiver: string;
    };

    /**
     * Texto descrevendo a função do escrow
     */
    description: string;

    /**
     * Quantia a ser transferida após a conclusão dos marcos do escrow
     */
    amount: number;

    /**
     * Comissão que a plataforma receberá quando o escrow for concluído
     */
    platformFee: number;

    /**
     * Objetivos a serem concluídos para definir o escrow como concluído
     */
    milestones: {
      /**
       * Texto descrevendo a função do marco.
       */
      description: string;

      /**
       * Status do marco. Ex: Aprovado, Em disputa, etc...
       */
      status?: string;

      /**
       * Evidência do trabalho realizado pelo prestador de serviços.
       */
      evidence?: string;

      /**
       * Indicador de aprovação, apenas se o escrow for de liberação única
       */
      approved?: boolean;
    }[];

    /**
     * Flags que validam certos estados de vida do escrow
     */
    flags?: {
      /**
       * Flag indicando que um escrow está em disputa.
       */
      disputed?: boolean;

      /**
       * Flag indicando que os fundos do escrow já foram liberados.
       */
      released?: boolean;

      /**
       * Flag indicando que um escrow em disputa já foi resolvido.
       */
      resolved?: boolean;

      /**
       * Flag indicando se um marco foi aprovado pelo aprovador.
       */
      approved?: boolean;
    };

   /**
     * Informações sobre a trustline que irá gerenciar o movimento de fundos em escrow
     */
    trustline: {   
     /**
       * Símbolo do token, exemplo: USDC, EURC, etc...
       */
      symbol: string;
  
      /**
       * Endereço público que estabelece permissão para aceitar e usar um token específico.
       */
      address: string;
    };

    /**
     * Se o escrow está ativo. Isso vem do banco de dados, não da blockchain.
     */
    isActive?: boolean;
  };

  /**
   * Endereço do usuário que assina a transação do contrato
   */
  signer: string;
};
```

### Liberação Múltipla

```typescript
/**
 * Payload de Atualização de Escrow de Liberação Múltipla
 */
export type UpdateMultiReleaseEscrowPayload = {
  /**
   * ID (endereço) que identifica o contrato de escrow
   */
  contractId: string;

  /**
   * Dados do escrow
   */
  escrow: {
    /**
     * Identificador único do escrow
     */
    engagementId: string;

    /**
     * Nome do escrow
     */
    title: string;

    /**
     * Papéis que compõem a estrutura do escrow (sem receiver, pois cada marco tem seu próprio receiver)
     */
    roles: {
      /**
       * Endereço da entidade que solicita o serviço.
       */
      approver: string;

      /**
       * Endereço da entidade que fornece o serviço.
       */
      serviceProvider: string;

      /**
       * Endereço da entidade que é proprietária do escrow
       */
      platformAddress: string;

      /**
       * Endereço do usuário responsável por liberar os fundos do escrow ao prestador de serviços.
       */
      releaseSigner: string;

      /**
       * Endereço responsável por resolver disputas dentro do escrow.
       */
      disputeResolver: string;
    };

    /**
     * Texto descrevendo a função do escrow
     */
    description: string;

    /**
     * Comissão que a plataforma receberá quando o escrow for concluído
     */
    platformFee: number;

    /**
     * Objetivos a serem concluídos para definir o escrow como concluído
     */
    milestones: {
      /**
       * Texto descrevendo a função do marco.
       */
      description: string;

      /**
       * Status do marco. Ex: Aprovado, Em disputa, etc...
       */
      status?: string;

      /**
       * Evidência do trabalho realizado pelo prestador de serviços.
       */
      evidence?: string;

      /**
       * Quantia a ser transferida após a conclusão deste marco
       */
      amount: number;

      /**
       * Endereço para o qual os valores do marco serão enviados
       */
      receiver: string;

      /**
       * Flags que validam certos estados de vida do marco, apenas se o escrow for de liberação múltipla
       */
      flags?: {
        /**
         * Flag indicando que um escrow está em disputa.
         */
        disputed?: boolean;

        /**
         * Flag indicando que os fundos do escrow já foram liberados.
         */
        released?: boolean;

        /**
         * Flag indicando que um escrow em disputa já foi resolvido.
         */
        resolved?: boolean;

        /**
         * Flag indicando se um marco foi aprovado pelo aprovador.
         */
        approved?: boolean;
      };
    }[];

    /**
     * Informações sobre a trustline que irá gerenciar o movimento de fundos em escrow
     */
    trustline: {   
     /**
       * Símbolo do token, exemplo: USDC, EURC, etc...
       */
      symbol: string;
  
      /**
       * Endereço público que estabelece permissão para aceitar e usar um token específico.
       */
      address: string;
    };

    /**
     * Se o escrow está ativo. Isso vem do banco de dados, não da blockchain.
     */
    isActive?: boolean;
  };

  /**
   * Endereço do usuário que assina a transação do 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-pt/introducao/developer-resources/tipos/payloads/atualizar-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.
