# Compra e financiamento do escrow

### Contexto e Premissas (Importante)

Offer Hub modela um **mercado clássico**:

* Vendedores listam bens ou serviços com antecedência
* Compradores navegam pelas ofertas existentes
* Um comprador cria um pedido clicando em **Comprar**
* Cada pedido cria **um escrow**

Este fluxo pressupõe:

* O vendedor e a oferta já existem
* O comprador está iniciando a transação
* Os fundos devem ser garantidos *antes de* a entrega começar

***

### Objetivo

Criar **um escrow por pedido** e financiá-lo **diretamente pelo comprador**, mantendo a experiência simples e totalmente abstraída.

***

### Da Perspectiva do Usuário

> “Eu clico em Comprar.\
> Se eu já tenho dinheiro, ele é reservado.\
> Se não, eu pago da mesma forma que sempre.\
> O vendedor só é pago se tudo for aprovado.”

O usuário nunca escolhe:

* blockchains
* carteiras
* endereços de escrow
* fluxos de assinatura

***

### Atores

* **Comprador**
* **Vendedor**
* **Interface OfferHub**
* **Backend OfferHub (Orquestrador)**
* **Supabase** (perfil do usuário + vínculo com Airtm)
* **Airtm** (contas, saldos, rails)
* **Trustless Work** (motor de escrow na Stellar)
* **Stellar (USDC)**

***

### Pré-condições

* Comprador está logado (Supabase)
* O comprador tem uma **conta Airtm vinculada e aprovada em KYC**
* O vendedor tem uma oferta ativa
* A plataforma está configurada como:
  * emissor de escrow
  * resolvedor de disputas
  * signatário de liberação

***

### Fluxo em Alto Nível

```
Comprador clica em Comprar
→ Escrow criado
→ Escrow financiado pelo comprador
→ Pedido inicia
```

Existem **dois caminhos de financiamento voltados ao usuário**, dependendo de o comprador já possuir fundos.

***

### Caminho A — Comprador Tem Saldo Suficiente na Airtm (Caminho Primário)

#### Quando Isso Acontece

* O comprador já possui USDC (ou equivalente) suficiente em sua conta Airtm
* Este é o **fluxo padrão e preferido**

***

#### Experiência do Usuário

> “Eu clico em Comprar e o dinheiro é reservado.”

Nenhuma etapa de pagamento adicional é necessária.

***

#### Fluxo do Sistema

1. **Comprador clica em Comprar**

```
Comprador → Interface OfferHub: Comprar
```

2. **OfferHub cria o escrow**

```
OfferHub → Trustless Work:
  Criar escrow (parâmetros do pedido)
```

3. **Comprador financia o escrow a partir do saldo Airtm**

```
Airtm:
  Transferir USDC da conta do comprador
  → Endereço de escrow na Stellar
```

4. **Escrow fica financiado**

```
Estado do escrow → Financiado
Estado do pedido → Em Andamento
```

***

#### Propriedades Chave

* Os fundos se movem **diretamente do comprador para o escrow**
* O marketplace nunca toca nos fundos do usuário
* O escrow é financiado imediatamente
* O vendedor pode prosseguir com segurança

Este é o **caminho mais limpo e seguro**, e aquele em torno do qual o Offer Hub foi projetado primeiro.

***

### Caminho B — Comprador NÃO Tem Saldo Suficiente (Pagar-para-Escrow)

⚠️ **Este caminho requer validação com a equipe da Airtm**\
Ele está incluído aqui como um **padrão educacional e voltado ao futuro**.

***

#### Quando Isso Acontece

* Comprador é aprovado em KYC na Airtm
* Comprador não tem saldo suficiente
* Comprador ainda quer concluir a compra imediatamente

***

#### Experiência do Usuário

> “Eu clico em Comprar e escolho como pagar.”

O usuário pode ver:

* cartão de débito
* cartão de crédito
* transferência bancária (ACH, transferência, etc.)

Mas ainda **nunca vê cripto ou stablecoins**.

***

#### Fluxo do Sistema (Proposto / A Ser Validado)

1. **Comprador clica em Comprar**

```
Comprador → Interface OfferHub: Comprar
```

2. **OfferHub cria escrow (pendente de financiamento)**

```
OfferHub → Trustless Work:
  Criar escrow
```

3. **Comprador seleciona método de pagamento via Airtm**

```
Comprador → Fluxo de Pagamento Hospedado pela Airtm
```

4. **O pagamento financia o escrow diretamente**

```
Rail de pagamento → Airtm
Airtm → endereço de escrow na Stellar
```

5. **Escrow fica financiado**

```
Estado do escrow → Financiado
Estado do pedido → Em Andamento
```

***

#### Notas Importantes

* Fundos **não devem** liquidar em uma conta da plataforma
* A intenção é **pagar → escrow**, não pagar → saldo → escrow
* Isto preserva:
  * garantias não custodiais
  * contabilidade limpa
  * fronteiras de confiança corretas

Se a Airtm pode suportar **fluxos de pagamento direto-para-escrow** é um **item chave de validação** para o piloto.

***

### O Que Acontece a Seguir (Ambos os Caminhos)

Uma vez que o escrow é financiado:

* O vendedor é notificado
* O pedido entra em **Em Andamento**
* A entrega pode começar
* A lógica de disputa e aprovação se aplica de forma idêntica

A partir deste ponto, **ambos os caminhos convergem**.

***

### Resultados

* ✅ Escrow criado e financiado
* ✅ Estado do pedido atualizado
* ✅ Vendedor notificado
* ✅ Trilha de auditoria criada (off-chain + on-chain)

***

### Cenários de Falha

#### Saldo Insuficiente (Caminho A)

* Criação do pedido bloqueada
* Comprador solicitado a recarregar ou usar o Caminho B

#### Falha no Pagamento (Caminho B)

* Escrow permanece sem financiamento
* Pedido não inicia
* Comprador tenta o pagamento novamente

#### Falha no Financiamento do Escrow

* Pedido marcado como falhado
* Nenhuma entrega permitida
* Retentativa manual ou automatizada

***

### Resumo Educacional

| Cenário                  | Ação do Usuário           | Resultado                          |
| ------------------------ | ------------------------- | ---------------------------------- |
| Comprador tem fundos     | Clicar em Comprar         | Escrow financiado instantaneamente |
| Comprador não tem fundos | Clicar em Comprar → Pagar | Escrow financiado após o pagamento |
| Plataforma               | —                         | Nunca retém fundos                 |
| Vendedor                 | —                         | Protegido por escrow               |

***

### Invariante Chave (Muito Importante)

> **Nenhum pedido pode entrar em “Em Andamento” a menos que o escrow esteja totalmente financiado.**

Esta é a garantia de segurança central que o Offer Hub aplica.


---

# 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/dapps-oss/offerhub-marketplace/fluxos-principais/compra-e-financiamento-do-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.
