# Pedir execução

`POST /v1/processos/{cnj}/execucoes`

Pede a cópia integral, a consulta dos dados ou os documentos de um processo. `202` = entrou na fila; `200` com `de_cache: true` = a Conta pediu o mesmo há pouco e recebe aquela execução (dados 6 h, cópia e documentos 24 h). Repetir com a mesma `Idempotency-Key` devolve a mesma execução.

## Parâmetros

| Nome | Onde | Tipo | Obrigatório | Descrição |
|---|---|---|---|---|
| `cnj` | caminho | texto | sim | Número do processo no padrão CNJ (`NNNNNNN-DD.AAAA.J.TR.OOOO`) |
| `Idempotency-Key` | cabeçalho | texto | sim | Chave única do pedido. **Obrigatória** |

## Corpo (`application/json`)

| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| `analise` | `nano` \| `mini` \| `pro` | não | Opcional, só com `copia_integral`: `nano`, `mini` ou `pro`. Vem como o documento `analise.json` |
| `ato` | `consulta` \| `copia_integral` \| `documentos` | não | `copia_integral` (padrão), `consulta` (dados do processo) ou `documentos` (peça a peça) (padrão `copia_integral`) |
| `certificado_id` | uuid | não | Certificado usado no tribunal. Sem ele, vale o certificado padrão da Conta; sem padrão, `422`. O Sync nunca escolhe a Conexão por você |
| `credencial_id` | uuid | não | Credencial, para tribunais com acesso por usuário e senha. Sem ela, vale a credencial padrão |
| `sistema` | texto | não | Opcional. Sem ele, em tribunal com mais de um sistema, o Sync escolhe e tenta os outros na mesma execução |

## Respostas

| HTTP | Significa |
|---|---|
| 202 | Aceito: entrou na fila |
| 422 | Corpo ou parâmetros com formato inválido (`detail` lista os campos) |

### Exemplo de resposta

```json
{
  "id": "c3f0a9d2-7b1e-4f6a-8c2d-5e9b1a0f3d47",
  "processo": "8187736-02.2026.8.05.0001",
  "tribunal": "8.05",
  "sistema": "PJE",
  "ato": "copia_integral",
  "estado": "na_fila",
  "desfecho": null,
  "pendencia": null,
  "criada_em": "2026-09-26T12:00:00+00:00",
  "concluida_em": null,
  "documentos": []
}
```

## Erros

Recusas vêm como `{"detail": {"erro": "<código>", "mensagem": "…"}}`.

| HTTP | `erro` | Significa |
|---|---|---|
| 401 | — | Chave ausente ou inválida |
| 422 | `idempotency_key_obrigatoria` | Envie o cabeçalho Idempotency-Key |
| 422 | `cnj_invalido` | Número do processo com dígito verificador errado |
| 422 | `tribunal_nao_suportado` | Tribunal/sistema ainda não coberto |
| 422 | `conexao_obrigatoria` | Informe `certificado_id` ou `credencial_id`, ou marque uma Conexão padrão no Cofre |
| 422 | `analise_so_com_copia` | `analise` só vale com `ato: copia_integral` |
| 404 | `nao_encontrado` | A Conexão não existe nesta Conta (ou foi revogada) |
| 409 | `certificado_vencido` | Cadastre o certificado novo |
| 409 | `segundo_fator_invalido` | O tribunal recusou o código da última vez; cadastre a chave nova |
| 409 | `limite_mensal_atingido` | A Conta chegou ao limite mensal de consumo do contrato |

## Exemplos de requisição

### Bash

```bash
curl -X POST 'https://sync.lops.com.br/v1/processos/8187736-02.2026.8.05.0001/execucoes' \
  -H "Authorization: Bearer $SYNC_CHAVE" \
  -H 'Idempotency-Key: pedido-123' \
  -H 'Content-Type: application/json' \
  -d '{"ato":"copia_integral","certificado_id":"5b1e7c2a-3f4d-4c8e-9a1b-2d6f0e8c7a15"}'
```

### JavaScript

```javascript
const resposta = await fetch("https://sync.lops.com.br/v1/processos/8187736-02.2026.8.05.0001/execucoes", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.SYNC_CHAVE}`,
    "Idempotency-Key": "pedido-123",
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "ato": "copia_integral",
    "certificado_id": "5b1e7c2a-3f4d-4c8e-9a1b-2d6f0e8c7a15"
  }),
});
console.log(resposta.status, await resposta.json());
```

### Python

```python
import os

import requests

resposta = requests.post(
    "https://sync.lops.com.br/v1/processos/8187736-02.2026.8.05.0001/execucoes",
    headers={"Authorization": f"Bearer {os.environ['SYNC_CHAVE']}", "Idempotency-Key": "pedido-123"},
    json={
        "ato": "copia_integral",
        "certificado_id": "5b1e7c2a-3f4d-4c8e-9a1b-2d6f0e8c7a15",
    },
)
print(resposta.status_code, resposta.json())
```

### PHP

```php
<?php
$ch = curl_init('https://sync.lops.com.br/v1/processos/8187736-02.2026.8.05.0001/execucoes');
curl_setopt_array($ch, [
    CURLOPT_CUSTOMREQUEST => 'POST',
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER => [
        'Authorization: Bearer ' . getenv('SYNC_CHAVE'),
        'Idempotency-Key: pedido-123',
        'Content-Type: application/json',
    ],
    CURLOPT_POSTFIELDS => json_encode([
        'ato' => 'copia_integral',
        'certificado_id' => '5b1e7c2a-3f4d-4c8e-9a1b-2d6f0e8c7a15',
    ]),
]);
$corpo = curl_exec($ch);
$status = curl_getinfo($ch, CURLINFO_HTTP_CODE);
var_dump($status, json_decode($corpo, true));
```
