Mergi la conținut

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ă.

HeaderCândValoare
Monedo-Event-IdObligatoriuID unic pentru deduplicare
Monedo-SignatureObligatoriut=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.