Documentação da API ChefePay
Esta é a documentação completa para desenvolvedores. A API ChefePay permite consultar saldo, gerar cobranças PIX e solicitar saques direto do seu sistema. Por padrão, as transações via API são processadas na carteira Pix'M (você pode informar outra carteira no campo provider da requisição). Para começar, faça login para gerar sua chave de acesso.
Base URL
https://chefepay.com/api/public/v1Autenticação
Faça login e gere uma chave na aba Chaves e envie-a no header Authorization. A chave é exibida apenas uma vez — guarde-a em local seguro e nunca a exponha no frontend.
Authorization: Bearer cp_live_xxxxxxxxxxxxxxxxxxxxxxxx
Content-Type: application/jsonhttpParâmetro t= (timestamp)
Obrigatório: valide o timestamp e rejeite requisições antigas
Toda requisição e todo webhook do ChefePay carregam o parâmetro t=, que é o timestamp Unix em segundos (UTC) do momento em que a mensagem foi gerada. Ele também entra na base da assinatura HMAC, então não pode ser alterado sem invalidar a assinatura.
Por que isso importa: sem essa checagem, um atacante que capture uma requisição válida (por logs, proxy ou histórico) pode reenviá-la mais tarde — o chamado replay attack — e provocar créditos, saques ou confirmações duplicadas. Como a cópia é byte a byte idêntica, a assinatura continua válida; só o tempo denuncia a fraude.
Como usar corretamente:
- Leia o
tda query string (ou do headerX-Chefepay-Timestamp). - Compare com o horário atual do seu servidor em UTC — nunca com o horário do navegador do cliente.
- Rejeite com 400 qualquer requisição em que
|agora − t| > 300 segundos(5 minutos). A margem absoluta também barra timestamps no futuro, que indicam relógio adulterado. - Só depois de aprovar o timestamp, valide a assinatura HMAC sobre
t + "." + corpoe processe o evento. - Mantenha o relógio do seu servidor sincronizado por NTP; um desvio maior que 5 minutos fará requisições legítimas serem recusadas.
- Guarde o
iddo evento já processado por 5 minutos para também bloquear reenvios dentro da janela válida (idempotência).
const MAX_SKEW = 300; // 5 minutos, em segundos
function verificarTimestamp(t) {
const enviado = Number(t);
if (!Number.isFinite(enviado)) return false;
const agora = Math.floor(Date.now() / 1000);
return Math.abs(agora - enviado) <= MAX_SKEW;
}
// dentro do seu webhook
const t = new URL(req.url).searchParams.get("t");
if (!verificarTimestamp(t)) {
return new Response("Requisição expirada", { status: 400 });
}javascriptGET /balance
https://chefepay.com/api/public/v1/balanceRetorna o saldo disponível e o saldo pendente da conta, em centavos.
curl -X GET "https://chefepay.com/api/public/v1/balance?t=$(date +%s)" \
-H "Authorization: Bearer cp_live_sua_chave"bash{
"available_cents": 1284530,
"pending_cents": 45000,
"currency": "BRL",
"updated_at": "2026-08-13T03:41:12.000Z"
}jsonPOST /deposits
https://chefepay.com/api/public/v1/depositsGera uma cobrança PIX e devolve o código copia-e-cola e o QR Code.
| Campo | Tipo | Descrição |
|---|---|---|
| amount_cents* | integer | Valor em centavos. Mínimo 100. |
| description | string | Descrição exibida na cobrança. |
| customer_name | string | Nome do pagador. |
| callback_url | string | URL que receberá o webhook de pagamento. |
| t* | integer | Timestamp Unix (query string). |
curl -X POST "https://chefepay.com/api/public/v1/deposits?t=$(date +%s)" \
-H "Authorization: Bearer cp_live_sua_chave" \
-H "Content-Type: application/json" \
-d '{
"amount_cents": 4990,
"description": "Pedido #1042",
"customer_name": "Maria Silva",
"callback_url": "https://seusite.com/webhooks/chefepay"
}'bashTry It Out
simuladoA resposta simulada aparecerá aqui.
POST /withdrawals
https://chefepay.com/api/public/v1/withdrawalsSolicita um saque PIX a partir do saldo disponível.
| Campo | Tipo | Descrição |
|---|---|---|
| amount_cents* | integer | Valor do saque em centavos. |
| pix_key* | string | Chave PIX de destino. |
| pix_key_type* | enum | cpf | email | telefone | aleatoria |
| holder_name | string | Nome do titular da chave. |
| t* | integer | Timestamp Unix (query string). |
curl -X POST "https://chefepay.com/api/public/v1/withdrawals?t=$(date +%s)" \
-H "Authorization: Bearer cp_live_sua_chave" \
-H "Content-Type: application/json" \
-d '{
"amount_cents": 25000,
"pix_key": "maria@email.com",
"pix_key_type": "email",
"holder_name": "Maria Silva"
}'bash{
"id": "wd_9f2c71ab44d0",
"status": "pendente",
"amount_cents": 25000,
"pix_key": "maria@email.com",
"created_at": "2026-08-13T03:41:12.000Z"
}jsonWhatsApp (Zappaz)
Dica de Administrador
Você pode usar o botão "Listar Grupos" na aba de Notificações do painel para encontrar e selecionar o ID do grupo (JID) visualmente, sem precisar de chamadas manuais à API.
Para integração manual via código, faça uma requisição para listar os seus grupos e copie o jid do grupo desejado (exemplo: 120363023847293847@g.us).
Comandos via WhatsApp:
Usuarios tambem conseguem gerar cobrancas através do WhatsApp usando o comando /depositar+(valor) e tambem sacar usando o /sacar +(valor) e o bot deve solicitar a chave pix para saque
const response = await fetch('https://api.zappaz.io/api/v1/session/ab43074f-50da-4fc9-9823-cc0398b44b1c/group', {
method: 'GET',
headers: {
'Authorization': 'SEU_TOKEN_AQUI'
}
});
const grupos = await response.json();
console.log(grupos);javascriptUtilize o endpoint de envio de mensagem passando o jid no campo number
const response = await fetch('https://api.zappaz.io/api/v1/session/ab43074f-50da-4fc9-9823-cc0398b44b1c/message/text', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Authorization': 'SEU_TOKEN_AQUI'
},
body: JSON.stringify({
number: '120363023847293847@g.us', // JID do seu grupo aqui
message: '🚀 Notificação de teste enviada via Lovable!'
})
});
const data = await response.json();
console.log(data);javascriptResumo de Implementação:
- Substitua SEU_TOKEN_AQUI pelo token gerado na sua plataforma Zappaz.
- Certifique-se de usar o sessionId da sua sessão (ab43074f-50da-4fc9-9823-cc0398b44b1c).
- Verifique se o ID do grupo termina com @g.us.
Códigos de resposta
cp_live_ em código de navegador ou aplicativo.