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

# Adesão a ATA (Carona)

> Como encontrar ATAs vigentes para aderir

## O que é Adesão?

**Adesão** (ou "carona") permite que um órgão compre usando uma ATA de **outro órgão**, sem fazer nova licitação.

<CardGroup cols={2}>
  <Card title="Vantagem" icon="clock">
    Compra rápida - sem licitação
  </Card>

  <Card title="Requisito" icon="check">
    ATA deve estar vigente
  </Card>
</CardGroup>

## Passo a Passo

### 1. Encontre ATAs vigentes

```python theme={null}
import requests
from datetime import date

API_KEY = "ak_sua_chave"
BASE = "https://api.ata360.com.br"
headers = {"Authorization": f"Bearer {API_KEY}"}

# Buscar ATAs vigentes para Papel A4
resp = requests.get(f"{BASE}/api/items/vigentes",
    params={"codigo": 150233},
    headers=headers
)
atas = resp.json()["atas"]

print(f"Encontradas {len(atas)} ATAs vigentes")
```

### 2. Filtre por estado

```python theme={null}
# ATAs vigentes no Paraná
resp = requests.get(f"{BASE}/api/items/vigentes",
    params={"codigo": 150233, "uf": "PR"},
    headers=headers
)
atas_pr = resp.json()["atas"]

for ata in atas_pr[:5]:
    print(f"ATA: {ata['numero_controle_pncp_ata']}")
    print(f"  Preço: R$ {ata['valor_unitario']:.2f}")
    print(f"  Fornecedor: {ata['nome_fornecedor']}")
    print(f"  Válida até: {ata['data_vigencia_final']}")
    print()
```

### 3. Ordene por preço

```python theme={null}
# Ordenar do mais barato ao mais caro
atas_ordenadas = sorted(atas, key=lambda x: x["valor_unitario"])

print("Top 5 menores preços:")
for i, ata in enumerate(atas_ordenadas[:5], 1):
    print(f"{i}. R$ {ata['valor_unitario']:.2f} - {ata['nome_fornecedor']}")
```

### 4. Verifique detalhes da ATA escolhida

```python theme={null}
from urllib.parse import quote

ata_id = atas_ordenadas[0]["numero_controle_pncp_ata"]
encoded_id = quote(ata_id, safe="")

# Buscar detalhes completos
resp = requests.get(f"{BASE}/api/atas/{encoded_id}", headers=headers)
ata_completa = resp.json()

print(f"Órgão gerenciador: {ata_completa['metadata']['nomeOrgao']}")
print(f"Objeto: {ata_completa['metadata']['objetoContratacao']}")
print(f"Vigência: {ata_completa['metadata']['vigenciaInicio']} a {ata_completa['metadata']['vigenciaFim']}")
```

### 5. Baixe os documentos

```python theme={null}
# Baixar PDFs para análise
resp = requests.get(f"{BASE}/api/atas/{encoded_id}/arquivos", headers=headers)
arquivos = resp.json()["arquivos"]

for arq in arquivos:
    print(f"- {arq['titulo']}: {arq['url']}")
```

## Script Completo

```python theme={null}
def buscar_ata_para_adesao(codigo_item, uf=None, max_resultados=10):
    """
    Busca ATAs vigentes para adesão, ordenadas por preço
    """
    params = {"codigo": codigo_item}
    if uf:
        params["uf"] = uf

    resp = requests.get(f"{BASE}/api/items/vigentes",
        params=params,
        headers=headers
    )
    atas = resp.json()["atas"]

    # Ordenar por preço
    atas_ordenadas = sorted(atas, key=lambda x: x["valor_unitario"])

    print(f"{'='*60}")
    print(f"ATAs VIGENTES PARA ADESÃO")
    print(f"Item: {codigo_item} | UF: {uf or 'Todas'}")
    print(f"{'='*60}")

    for i, ata in enumerate(atas_ordenadas[:max_resultados], 1):
        print(f"\n{i}. ATA: {ata['numero_controle_pncp_ata']}")
        print(f"   Preço: R$ {ata['valor_unitario']:.2f}")
        print(f"   Fornecedor: {ata['nome_fornecedor']}")
        print(f"   UF: {ata['uf']}")
        print(f"   Válida até: {ata['data_vigencia_final']}")
        print(f"   Qtd disponível: {ata.get('quantidade_disponivel', 'N/A')}")

    return atas_ordenadas[:max_resultados]

# Uso
melhores_atas = buscar_ata_para_adesao(150233, uf="PR")
```

## Checklist para Adesão

<Steps>
  <Step title="Verificar vigência">
    A ATA deve estar dentro do período de validade
  </Step>

  <Step title="Verificar quantidade">
    Deve haver quantidade disponível para adesão
  </Step>

  <Step title="Contatar órgão gerenciador">
    Solicitar autorização para adesão
  </Step>

  <Step title="Contatar fornecedor">
    Confirmar que aceita fornecer para seu órgão
  </Step>

  <Step title="Formalizar adesão">
    Emitir termo de adesão e empenho
  </Step>
</Steps>

<Warning>
  Nem toda ATA permite adesão. Verifique no edital se há previsão de "carona".
</Warning>
