Skip to content

Ingest Webhook Event

POST/internal/v1/stripe/webhook-eventsInternal

Ingests a pre-validated Stripe webhook event for asynchronous processing. This is an internal-only endpoint called by the webhook receiver after signature verification.

Authentication

Auth Chain: Internal — no JWT required. This endpoint is restricted to internal service-to-service calls and is not exposed through the public gateway.

Request Parameters

NameTypeRequiredInDescription
eventIdstringYesbodyUnique identifier for the webhook event
connectionBizIdstringYesbodyBusiness ID of the Stripe connection that received this event
stripeEventTypestringYesbodyStripe event type (e.g. `payment_intent.succeeded`)
occurredAtlongNobodyTimestamp (epoch millis) when the event occurred in Stripe
receivedAtlongNobodyTimestamp (epoch millis) when the event was received by the webhook receiver
normalizedPayloadobjectNobodyNormalized event payload for internal consumption
rawPayloadobjectNobodyOriginal raw Stripe event payload

Success Response

Success200
{
  "version": "1.3.0",
  "timestamp": 1709337600000,
  "success": true,
  "code": "2000",
  "message": "SUCCESS",
  "data": "Stripe webhook event accepted"
}

Error Responses

Bad Request400
{
  "success": false,
  "code": "4000",
  "message": "Invalid webhook event payload"
}

Notes

  • Events are processed asynchronously after ingestion; the response only confirms acceptance.
  • Duplicate event IDs are handled idempotently by the ingestion service.
  • Unknown fields in the payload are silently ignored (@JsonIgnoreProperties).

Internal Documentation