Skip to content

Apps

Apps sao as aplicacoes consumidoras (seu CRM, atendimento, chatbot). Cada app tem api_key e webhook_secret. Todos endpoints aqui exigem admin key.

POST /v1/apps

Cria app + gera credenciais.

POST /v1/apps
Authorization: Bearer ADMIN_KEY
Content-Type: application/json
{
"name": "MeuZap CRM",
"webhook_url": "https://meuzap.com/wpphub-webhook"
}

201 Created:

{
"id": "01HZTQAPP01...",
"name": "MeuZap CRM",
"api_key_prefix": "ak_live",
"api_key": "ak_live_4f2a8b9c123...", // ⚠️ MOSTRADA UNICA VEZ
"webhook_secret": "whsec_xyz...", // ⚠️ MOSTRADO UNICA VEZ
"webhook_url": "https://meuzap.com/wpphub-webhook",
"is_active": true,
"created_at": "...",
"updated_at": "..."
}

api_key e webhook_secret so aparecem agora. Hub guarda apenas hash SHA-256. Se perder, recrie a app.

GET /v1/apps

Lista (sem paginacao).

{
"data": [
{
"id": "...",
"name": "MeuZap CRM",
"api_key_prefix": "ak_live_4f2a",
"webhook_url": "https://meuzap.com/...",
"is_active": true,
"created_at": "...",
"updated_at": "..."
}
]
}

api_key_prefix e os 12 primeiros chars — pra identificar em log sem expor a key inteira.

GET /v1/apps/:id

Mesmo schema do item.

PATCH /v1/apps/:id

Atualiza webhook_url. Audita em audit_events (campo before/after).

PATCH /v1/apps/01HZTQ...
Authorization: Bearer ADMIN_KEY
Content-Type: application/json
{ "webhook_url": "https://novo.endpoint.com/whk" }

DELETE /v1/apps/:id

Soft delete (is_active=false). Webhooks param de ser entregues; deliveries pendentes sao canceladas.

204 No Content.

GET /v1/apps/:id/accesses

Lista vinculos com chips (app_chip_access).

{
"data": [
{
"app_id": "...",
"chip_id": "...",
"can_send": true,
"can_receive": true,
"receive_self_chat": false,
"transcribe_audio_mode": "off",
"transcribe_audio_jids": [],
"priority": 100,
"created_at": "..."
}
]
}

POST /v1/app-chip-access

Cria vinculo (upsert).

POST /v1/app-chip-access
Authorization: Bearer ADMIN_KEY
Content-Type: application/json
{
"app_id": "01HZTQAPP...",
"chip_id": "01HZTQCHIP...",
"can_send": true,
"can_receive": true,
"receive_self_chat": false,
"transcribe_audio_mode": "off", // 'off' | 'all' | 'whitelist'
"transcribe_audio_jids": [] // JIDs pra transcricao parcial (so quando mode='whitelist')
}

DELETE /v1/app-chip-access/:appId/:chipId

Revoga vinculo. App perde acesso ao chip imediatamente.