Produto BaaS (titular). Requer Bearer JWT do login da conta e assinatura HMAC obrigatória. Scope: baas.webhooks.write. Guia: documentação técnica.
stringAssinatura HMAC-SHA256 da requisição (hex).
stringTimestamp Unix (segundos, UTC) usado na assinatura.
stringNonce único por requisição (anti-replay).
stringRequer Bearer token do login da conta e assinatura HMAC obrigatórios.
Scope: baas.webhooks.write.
Envie X-Signature, X-Timestamp e X-Nonce em todo pedido assinado. Veja Assinatura HMAC.
| Header | Obrigatório | Descrição |
|---|---|---|
Authorization | Sim | Bearer {{access_token}} |
Accept | Sim | application/json |
X-Signature | Sim | Assinatura HMAC |
X-Timestamp | Sim | Timestamp da assinatura |
X-Nonce | Sim | Nonce único por requisição |
| Campo | Obrigatório | Descrição |
|---|---|---|
url | Sim | URL HTTPS de callback |
events | Sim | Array com slugs (pix-received, pix-sent, etc.) |
entity | Não | Filtro por domínio: contracts, onboardings, pix-payments, accounts, key-managements, bankslip-payments |
method | Não | POST, PUT ou PATCH |
status | Não | ACTIVE, INACTIVE, PENDING |
| Código | Descrição |
|---|---|
| 200 | OK |
| 201 | Recurso criado |
| 400 | Parâmetros inválidos |
| 401 | Token ou HMAC inválido |
| 403 | Scope ausente |
| 404 | Não encontrado |
| 422 | Validação ou regra de negócio |
| 500 | Erro interno |
url)Quando um evento de events[] dispara, a Nuvende faz POST na url cadastrada. Não é endpoint da API pública: é o JSON inbound que seu servidor deve receber.
| Campo | Uso |
|---|---|
data.event_id | Idempotência. Não processe duas vezes o mesmo valor. |
data.event_name | Slug do evento (pix-received, pix-sent, etc.). |
Headers: Authorization quando autenticação foi configurada no cadastro. Responda HTTP 2xx rapidamente.
Responsabilidade do integrador: idempotência por data.event_id e validação de status (movement.status, newStatus/oldStatus, event_name) antes de operacionalizar na aplicação.
Schema OpenAPI: #/components/schemas/BaasAccountWebhookNotificacao. Exemplos no callback Entrega na url cadastrada do POST e em post-api-v2-baas-webhooks-examples.
Eventos e payloads completos: Webhooks da conta.
url (HTTPS) e events[] (slugs documentados). 422 se slug inválido.curl --request POST \
--url 'https://api-h.nuvende.com.br/api/v2/baas/webhooks' \
--header 'Content-Type: application/json' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer {{access_token}}' \
--header 'X-Timestamp: {{timestamp}}' \
--header 'X-Nonce: {{nonce}}' \
--header 'X-Signature: {{signature}}' \
--data '{"url":"https://integrador.exemplo.com.br/webhooks/conta/pix","events":["pix-received","pix-sent","return-received"],"method":"POST","status":"ACTIVE"}'
const axios = require("axios");
const data = {
"url": "https://integrador.exemplo.com.br/webhooks/conta/pix",
"events": [
"pix-received",
"pix-sent",
"return-received"
],
"method": "POST",
"status": "ACTIVE"
};
axios({
method: "post",
url: "https://api-h.nuvende.com.br/api/v2/baas/webhooks",
headers: {
"Content-Type": "application/json",
Accept: "application/json",
Authorization: "Bearer {{access_token}}",
"X-Timestamp": "{{timestamp}}",
"X-Nonce": "{{nonce}}",
"X-Signature": "{{signature}}",
},
data,
})
.then((response) => console.log(JSON.stringify(response.data)))
.catch((error) => console.log(error.response?.data || error.message));
import json
import requests
url = "https://api-h.nuvende.com.br/api/v2/baas/webhooks"
payload = {
"url": "https://integrador.exemplo.com.br/webhooks/conta/pix",
"events": [
"pix-received",
"pix-sent",
"return-received"
],
"method": "POST",
"status": "ACTIVE"
}
headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Authorization": "Bearer {{access_token}}",
"X-Timestamp": "{{timestamp}}",
"X-Nonce": "{{nonce}}",
"X-Signature": "{{signature}}",
}
response = requests.post(url, headers=headers, data=json.dumps(payload))
print(response.text)
<?php
$curl = curl_init();
$opts = [
CURLOPT_URL => 'https://api-h.nuvende.com.br/api/v2/baas/webhooks',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS => '{"url":"https://integrador.exemplo.com.br/webhooks/conta/pix","events":["pix-received","pix-sent","return-received"],"method":"POST","status":"ACTIVE"}',
CURLOPT_HTTPHEADER => [
'Content-Type: application/json',
'Accept: application/json',
'Authorization: Bearer {{access_token}}',
'X-Timestamp: {{timestamp}}',
'X-Nonce: {{nonce}}',
'X-Signature: {{signature}}',
],
];
curl_setopt_array($curl, $opts);
$response = curl_exec($curl);
curl_close($curl);
echo $response;
{
"id": 1,
"url": "https://integrador.exemplo.com.br/webhooks/conta/pix",
"status": "ACTIVE",
"events": [
"pix-received",
"pix-sent"
],
"method": "POST",
"created_at": "2025-01-10T08:00:00Z"
}
{
"data": {
"event_id": 1001,
"event_name": "pix-received",
"customer": {
"id": 500,
"out_user_id": "user-abc-123",
"name": "Maria Pagadora Exemplo",
"document": "11144477735",
"phone": "11999999999",
"email": "[email protected]",
"status": 1,
"uuid": "550e8400-e29b-41d4-a716-446655440000"
},
"account": {
"id": 800,
"uuid": "acc-uuid-receiver",
"name": "Maria Pagadora Exemplo",
"document": "11144477735",
"bank_id": 1,
"agency": "0001",
"account": "123456",
"account_digit": "7",
"primary": true
},
"movement": {
"id": 9001,
"uuid": "mov-uuid-001",
"value": 150.5,
"status": 1,
"type": 0,
"transaction_type": 0,
"created_at": "2026-05-26T14:30:00+00:00"
}
}
}
{
"data": {
"event_id": 1002,
"event_name": "pix-sent",
"customer": {
"id": 500,
"out_user_id": "user-abc-123",
"name": "Maria Pagadora Exemplo",
"document": "11144477735",
"phone": "11999999999",
"email": "[email protected]",
"status": 1,
"uuid": "550e8400-e29b-41d4-a716-446655440000"
},
"account": {
"id": 800,
"uuid": "acc-uuid-payer",
"name": "Maria Pagadora Exemplo",
"document": "11144477735",
"bank_id": 1,
"agency": "0001",
"account": "123456",
"account_digit": "7",
"primary": true
},
"movement": {
"id": 9002,
"uuid": "mov-uuid-002",
"value": 75,
"status": 1,
"type": 1,
"transaction_type": 0,
"created_at": "2026-05-26T15:00:00+00:00"
}
}
}
{
"data": {
"event_id": 1004,
"event_name": "person-status-updated",
"customer": {
"id": 500,
"out_user_id": "user-abc-123",
"name": "Maria Pagadora Exemplo",
"document": "11144477735",
"phone": "11999999999",
"email": "[email protected]",
"status": 2,
"uuid": "550e8400-e29b-41d4-a716-446655440000"
},
"newStatus": 2,
"oldStatus": 1
}
}