docsWebhooks.subtitle
POST /api/v1/webhooks/configure
{
"url": "https://tu-servidor.com/webhooks/kustodia",
"events": ["payment.deposited", "payment.released"]
}
// Respuesta:
{
"success": true,
"webhook": {
"id": "...",
"url": "https://tu-servidor.com/webhooks/kustodia",
"secret": "abc123...", ← Guarda este secreto
"events": ["payment.deposited", "payment.released"],
"active": true
}
}| docsWebhooks.eventCol | docsWebhooks.statusCol | docsWebhooks.descCol |
|---|---|---|
| payment.created | pending_deposit | docsWebhooks.ev1 |
| payment.deposited | in_custody | docsWebhooks.ev2 |
| payment.approved | pending_release | docsWebhooks.ev3 |
| payment.released | released | docsWebhooks.ev4 |
| payment.cancelled | cancelled | docsWebhooks.ev5 |
| payment.refunded | refunded | docsWebhooks.ev6 |
| payment.disputed | disputed | docsWebhooks.ev7 |
| payment.test | — | docsWebhooks.ev8 |
{
"event": "payment.deposited",
"payment_id": "a1b2c3d4-...",
"timestamp": "2026-02-07T18:00:00Z",
"data": {
"id": "a1b2c3d4-...",
"amount": 15000.00,
"currency": "MXN",
"status": "in_custody",
"payer_email": "buyer@example.com",
"recipient_email": "seller@example.com"
}
}docsWebhooks.signatureDesc1 X-Kustodia-Signature docsWebhooks.signatureDesc2 webhook_secret.
// Node.js — Verificar firma
const crypto = require('crypto');
function verify(body, signature, secret) {
const expected = crypto
.createHmac('sha256', secret)
.update(JSON.stringify(body))
.digest('hex');
return crypto.timingSafeEqual(
Buffer.from(signature),
Buffer.from(expected)
);
}
app.post('/webhooks/kustodia', (req, res) => {
const sig = req.headers['x-kustodia-signature'];
if (!verify(req.body, sig, 'tu_webhook_secret')) {
return res.status(401).send('Invalid');
}
// Procesar evento...
res.status(200).json({ received: true });
});| docsWebhooks.attemptCol | docsWebhooks.delayCol | docsWebhooks.notesCol |
|---|---|---|
| 1° | docsWebhooks.retry1Delay | docsWebhooks.retry1Note |
| 2° | docsWebhooks.retry2Delay | docsWebhooks.retry2Note |
| 3° | docsWebhooks.retry3Delay | docsWebhooks.retry3Note |
| 4° | docsWebhooks.retry4Delay | docsWebhooks.retry4Note |
payment_id docsWebhooks.bp4Suffix