---
title: "Receive Wix merchant event"
method: POST
path: "/api/payment-webhooks/wix-merchant/{merchant_id}"
---

# Receive Wix merchant event

`POST /api/payment-webhooks/wix-merchant/{merchant_id}`

<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 order and subscription events for a partner merchant selling through Wix Payments.

Base44 registers one of these endpoints per merchant at provisioning time, so the `merchant_id` in the path identifies which merchant the event belongs to. Base44 verifies the body as an RS256-signed JWT against the public key stored for that merchant when the companion webhook registered, and rejects anything that doesn't verify.

Verified events confirm an order's checkout and update subscription status; revenue and refunds for partner merchants are reported separately through [Receive Wix Payments event](/api-reference/receive-wix-payments-event). A subscription-ending event that arrives before its order still records the ending, so a later order event can't revive it. An event type Base44 doesn't handle comes back as `ignored`.

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

## Path parameters

- `merchant_id` string, required — ID of the merchant the event belongs to. Base44 sets this when it registers the webhook with the provider.

## 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

- `401` — No webhook key is registered for this merchant, or the body isn't signed by the registered key.
- `404` — No merchant is registered with this ID.

## Changes

> 18 revisions in range; 1 not diffed.

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

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

---

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