---
title: "Receive Stripe sandbox event"
method: POST
path: "/api/payment-webhooks/stripe"
---

# Receive Stripe sandbox event

`POST /api/payment-webhooks/stripe`

<Info>This API is in beta. Endpoints, fields, and behavior may still change, so avoid depending on it in production.</Info>

<Note>Base44 registers this endpoint with the payment provider for you, and the provider is its only caller. You can't invoke it for your own app or repoint it. It's documented so you can recognize the traffic and read the acknowledgements it returns.</Note>

Receives Stripe events for apps connected to a Stripe sandbox, and for the sandbox lifecycle itself.

Base44 verifies the `Stripe-Signature` header against its sandbox signing secret before reading the body, and rejects the request when the header is missing or the signature doesn't match. Live-mode events go to [Receive Stripe live event](/api-reference/receive-stripe-live-event), which verifies against a separate secret.

Verified events update the app's Stripe sandbox state and record revenue for payment analytics. Checkout sessions, payment intents, invoices and charges are tracked or acknowledged, and any other event type comes back as `ignored`. A verified event Base44 can't process returns an error instead of an acknowledgement, and Stripe retries the delivery, so the acknowledgement is what tells you the event landed.

<Warning>The response includes fields beyond the ones documented here. Don't rely on undocumented response fields, as they can change at any time.</Warning>

## Headers

- `Stripe-Signature` string — Required on every request. Stripe's signature over the raw request body. A request that omits it is rejected with a 400, as is one whose signature doesn't verify.

## Response `200`

How Base44 handled the event.

- PaymentWebhookAck — What Base44 did with an inbound payment webhook event.
  - `status` string, required — How Base44 handled the event. `processed` means it updated app state or recorded revenue, `acknowledged` means the event was valid but needed no action, and `ignored` means it was skipped. The Stripe endpoints also return `logged`, for an event recorded for reporting only.
  - `reason` string, nullable — Why the event needed no action. Present when `status` is `ignored`, and on the `acknowledged` responses that skip an event, such as a transaction that was already approved or one for a zero amount.
  - `action` string, nullable — What Base44 recorded. Present on most `processed` responses.

## Other responses

- `400` — The `Stripe-Signature` header is missing, or the signature doesn't match.

## Changes

- **2026-09-15** `ca10c5ce328c` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/base44/apis/base44-app-management-api/changes/api/payment-webhooks/stripe/post.md)

---

[API](https://skmtc.dev/base44/apis/base44-app-management-api.md) · [All operations](https://skmtc.dev/base44/apis/base44-app-management-api/llms.txt) · [OpenAPI document](https://skmtc.dev/base44/apis/base44-app-management-api/revisions/cf164639a9bf?raw)
