---
title: "Billing Webhook Wechat"
method: POST
path: "/api/billing/webhook/wechat"
---

# Billing Webhook Wechat

`POST /api/billing/webhook/wechat`

WeChat Pay v3 async notification endpoint.

Verifies the RSA signature with the platform certificate (lib
handles auto-refresh), decrypts the AES-GCM payload using
apiv3_key, and on `trade_state=SUCCESS` marks the order paid +
activates the user's subscription.

Idempotent: WeChat may retry the same notification multiple
times across the 50-minute retry window — a re-delivery for an
already-paid order is a no-op and still returns SUCCESS so the
retries stop.

Returns the WeChat-required ack body (`{code, message}`) with
HTTP 200 on success and HTTP 200 + FAIL ack on bad payload (so
we don't accidentally bury misconfigurations under WeChat retries).

## Response `200`

Successful Response

- unknown

---

[API](https://skmtc.dev/omicos/apis/omicos-server.md) · [All operations](https://skmtc.dev/omicos/apis/omicos-server/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/omicos/omicos-server/revisions/a00b94573ffe/schema)
