conta-azullisted
Install: claude install-skill augustotecnos/claude-skill-conta-azul
# Conta Azul — API v2
ERP Conta Azul. REST + JSON, autenticação **OAuth 2.0 Authorization Code** — não é API key.
- **Base URL:** `https://api-v2.contaazul.com`
- **Servidor de autorização:** `https://auth.contaazul.com`
- **Auth nas chamadas:** header `Authorization: Bearer <access_token>`
- **Rate limit:** **600 req/min** e **10 req/s** por conta ERP conectada → estourou, `429`.
- **Validades:** `code` **3 min** (uso único) · `access_token` **1 h** · `refresh_token` até 5 anos **ou até a próxima renovação**
- **Portal do Desenvolvedor:** https://developers-portal.contaazul.com — client_id/secret, app de dev com dados fictícios, e o **único** canal de suporte técnico da API
- **Multi-tenant:** cada empresa Conta Azul autoriza individualmente e tem seu próprio par de tokens
## OAuth 2.0 — as 3 chamadas que importam
**1. Cliente autoriza** (abrir no navegador; usar conta do **ERP**, não a do Portal):
```
https://auth.contaazul.com/login?response_type=code&client_id=CLIENT_ID&redirect_uri=REDIRECT_URI&state=ALEATORIO&scope=openid+profile+aws.cognito.signin.user.admin
```
Volta em `REDIRECT_URI?code=...&state=...` — confira o `state` (proteção CSRF).
**2. Trocar `code` por tokens** (até 3 min depois):
```bash
curl -X POST 'https://auth.contaazul.com/oauth2/token' \
-H 'Authorization: Basic BASE64(CLIENT_ID:CLIENT_SECRET)' \
-H 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'grant_type=authorization_code' \
--data-urlencode 'code=CODIGO' \
--d