Evenimente
Webhooks
Configurează endpointul HTTPS în consola API și selectează explicit evenimentele consumate. Monedo operează worker-ele, retry-ul, DLQ-ul și replay-ul; integrarea ta trebuie doar să verifice evenimentul prin SDK și să răspundă cu `2xx` în maximum 12 secunde după procesare sau persistență durabilă.
| Header | Când | Valoare |
|---|---|---|
| Monedo-Event-Id | Obligatoriu | ID unic pentru deduplicare |
| Monedo-Signature | Obligatoriu | t=timestamp,v1=hmac_sha256 |
Semnătura este calculată peste `$${timestamp}.${rawBody}`. Verificarea trebuie făcută pe body-ul brut, înainte de parsarea JSON.
typescript
import { createWebhookHandler } from '@monedo/commerce';
const handleWebhook = createWebhookHandler({
'order.created': async (order, event) => {
await orders.upsert({ ...order, monedoEventId: event.id });
},
'order.cancelled': async (order, event) => {
await orders.cancel(order.id, event.id);
},
});
await handleWebhook(
rawBody,
request.headers['monedo-signature'],
process.env.MONEDO_WEBHOOK_SECRET,
);Ordine și stări
`payment_intent.created`/`requires_payment_method` nu trebuie mapat la eșec. Folosește `amount_capturable_updated` pentru autorizare, `succeeded` pentru captură și numai evenimentele explicite `failed`/`cancelled` pentru eșec terminal.
Retry și replay
Livrările nereușite folosesc retry exponențial cu jitter și ajung în dead-letter queue. După remedierea endpointului, le poți retrimite din fila Evenimente; procesarea rulează în workerul persistent, nu în requestul Edge.