Webhooks Overview
Purpose
Webhooks provide real-time payment status notifications to your endpoint.
Configure at portal-test.sweuze.com → Developer → Webhooks.
Payload Structure
All webhooks follow this envelope:
{
"id": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"type": "payment_intent.succeeded",
"version": "2025.1.0",
"occurredAt": "2025-11-18T14:30:00.000+00:00",
"data": {
// Event-specific data (shape depends on `type`)
}
}
Fields:
id: Webhook notification UUID (use for idempotency)type: Event type (determinesdatastructure)version: API version of the webhook payloadoccurredAt: ISO 8601 timestamp with millisecondsdata: Event-specific payload (always containsmerchantId)
Event Categories
Payment Intent Events (payment_intent.*) - data is a PaymentIntentEventData:
data.ididentifies the payment intentdata.paymentIdidentifies the associated payment (null until a payment is created)data.merchantIdidentifies your merchant accountdata.merchantReferencematches the order reference you sent onPOST /payment-intentsdata.paymentMethodId,data.customerId,data.amount,data.currency,data.statusdata.actionis only populated onpayment_intent.requires_action
Payment Events (payment.*) - data is a PaymentEventData:
data.ididentifies the paymentdata.paymentIntentIdpoints back to the intentdata.merchantId,data.merchantReference,data.providerReferencedata.paymentMethodId,data.customerId,data.amount,data.currency,data.statusdata.errors[]is populated onpayment.failedand empty otherwise
Amounts in webhook
dataare fixed-precision decimal strings with eight decimal places (e.g."50.00000000"), while amounts in the REST API use two decimal places ("50.00").
See Event Types for the complete list with examples.
Security
Webhooks are signed with versioned signatures:
X-Signature: t=timestamp,v1=current_sig,v0=old_sig
See Signature Validation for implementation.