> ## Documentation Index
> Fetch the complete documentation index at: https://docs.gu1.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Relatório PDF da entidade por e-mail

> Enfileira no servidor a geração do PDF completo da entidade (mesmo layout da exportação do painel) e o envia por e-mail a um ou mais destinatários.

## Visão geral

Enfileira de forma **assíncrona** a geração do PDF da entidade no servidor e o envio por e-mail. O PDF usa o mesmo fluxo **jsPDF** do download “exportar relatório” no app. Sua integração chama o endpoint com API key; os destinatários recebem o anexo (assunto/corpo conforme `emailLocale`).

<Note>
  A resposta HTTP é **202 Accepted** assim que o trabalho é enfileirado. Geração e envio ocorrem em segundo plano; falhas ficam nos logs do servidor.
</Note>

## Endpoint

```
POST http://api.gu1.ai/entities/{id}/report-export/email
```

## Autenticação e tenant

<ParamField header="Authorization" type="string" required>
  `Bearer SUA_API_KEY` — ver [Autenticação](/pt/api-reference/authentication).
</ParamField>

<ParamField header="X-Organization-ID" type="string" required>
  UUID da organização (produção ou sandbox) — ver [Ambientes](/pt/api-reference/environments).
</ParamField>

## Permissões

Exige permissão granular **`entities:export`** na API key (igual a `POST /entities/{id}/export` e `GET /entities/{id}/export-data`).

## Marketplace e faturamento

* A organização deve ter **`global_sender_email`** ativa (Aplicações / Marketplace) e o servidor com **MS Provider** configurado.
* Cada endereço em `recipientEmails` (após deduplicação) consome **uma execução do pacote de E-mail** ou **tokens** conforme `base_price_cents`.
* O pre-flight valida saldo/execuções para **todos** os destinatários antes de enfileirar.

## Domínio e remetente (`fromEmail`)

1. Cadastre o domínio em **Ajustes → E-mail → Domínios** e conclua a verificação DNS.
2. Envie **`fromEmail`** com qualquer endereço desse domínio (ex.: `noreply@seu-dominio.com`). **Não é obrigatório** cadastrar o endereço em “Remetentes” se o domínio já estiver verificado.
3. Alternativa: **`fromSenderId`** (UUID em `organization_email_senders`).
4. Omita ambos para o remetente padrão da plataforma (`noreply@gueno.com`).

Não envie `fromSenderId` e `fromEmail` no mesmo request.

## Parâmetros de rota

<ParamField path="id" type="string" required>
  UUID da entidade (`id` retornado por criar/listar/obter).
</ParamField>

## Corpo JSON

<ParamField body="recipientEmails" type="string[]" required>
  Um ou mais e-mails (máx. **26** após deduplicação). O envio vai **somente** para esses endereços; o e-mail do usuário da API key **não** é adicionado automaticamente.
</ParamField>

<ParamField body="emailLocale" type="string">
  Idioma do e-mail: `en`, `es` ou `pt`. Padrão `en` se omitido ou inválido.
</ParamField>

<ParamField body="fromSenderId" type="string (uuid)">
  UUID do remetente em **Ajustes → E-mail → Remetentes**. Exclusivo com `fromEmail`.
</ParamField>

<ParamField body="fromEmail" type="string">
  Endereço completo de envio (ex.: `relatorios@seu-dominio.com`). O domínio deve estar **verificado**. Exclusivo com `fromSenderId`.
</ParamField>

<ParamField body="sections" type="object" required>
  Booleanos por seção do relatório (mesma semântica do modal de exportação). Chaves opcionais; padrões alinhados ao validador da API (`generalInfo` padrão `true`, demais `false` se omitidos).

  Chaves: `generalInfo`, `kyc`, `documents`, `checks`, `enrichments`, `alerts`, `aiAnalysis`, `relationships`, `timeline`, `riskAnalysis`.
</ParamField>

### Exemplo de corpo

```json theme={null}
{
  "recipientEmails": ["compliance@exemplo.com"],
  "emailLocale": "pt",
  "fromEmail": "noreply@seu-dominio.com",
  "sections": {
    "generalInfo": true,
    "riskAnalysis": true,
    "enrichments": true
  }
}
```

## Exemplo curl

```bash theme={null}
curl -X POST "http://api.gu1.ai/entities/550e8400-e29b-41d4-a716-446655440000/report-export/email" \
  -H "Authorization: Bearer SUA_API_KEY" \
  -H "X-Organization-ID: UUID_DA_ORG" \
  -H "Content-Type: application/json" \
  -d '{
    "recipientEmails": ["compliance@exemplo.com"],
    "emailLocale": "pt",
    "fromEmail": "noreply@seu-dominio.com",
    "sections": {
      "generalInfo": true,
      "riskAnalysis": true,
      "enrichments": true
    }
  }'
```

## Respostas

### 202 Accepted — enfileirado

```json theme={null}
{
  "success": true,
  "status": "queued",
  "message": "…"
}
```

### 400 — validação / pre-flight

Códigos comuns: `NO_RECIPIENTS`, `TOO_MANY_RECIPIENTS`, `EMAIL_INTEGRATION_INACTIVE`, `DOMAIN_NOT_VERIFIED`, `SENDER_NOT_CONFIGURED`, `INVALID_SENDER`, `INSUFFICIENT_BALANCE` (mesma semântica da documentação em espanhol).

### 404 / 500

Entidade inexistente ou oculta; erro interno.

## Endpoints relacionados

* **`POST /entities/{id}/export`** — download síncrono do PDF.
* [**Exportação em massa por e-mail**](/pt/api-reference/entities/export-jobs-email) — `POST /entities/export/jobs`.
* [Obter entidade](/pt/api-reference/entities/get) — `GET /entities/{id}`.
