# Stripe webhook (payments at signing)

Called by Stripe only — there is no session, and the request is authenticated by the Stripe-Signature header (t=<unix time>,v1=<hex HMAC-SHA256 of "<t>.<raw body>">) checked over the raw body, against every configured signing secret (the platform endpoint and the Connect endpoint have different ones), before the body is parsed. A delivery more than five minutes from now is refused.
Each event is claimed by its id in the same transaction that applies it, so a redelivery changes nothing and a failed apply rolls the claim back. A payment's status only moves along the allowed transitions, and a terminal state (canceled, refunded) never moves again, so out-of-order delivery is harmless. An event about something this service does not know is acknowledged with 200 so Stripe stops retrying it. Only a failure a retry could fix (500, including an event that arrived before the row it depends on) asks for redelivery.

Canonical: https://easerix.com/docs/developers/api/sign/payments/stripeWebhook

{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}

export default function Layout(props) {
  const { APIPage, OpenAPIPage } = props.components ?? {};
  // "APIPage" is the old name from v10, this allows both for backward compatibility
  const Comp = OpenAPIPage ?? APIPage;
  return (
    <>
      {props.children}
      <Comp document="sign" operations={[{"path":"/webhooks/stripe","method":"post"}]} />
    </>
  );
}
