MyStars FaaS · AsyncAPI Specification
Mystars Webhooks
Version
View Spec
View on GitHub
Telegramtelegram-starstelegram-premiumPaymentsCryptoTONfulfilmentBlockchainDigital Goodsreseller-apiAsyncAPIWebhooksEvents
AsyncAPI Specification
generated: '2026-08-27'
method: searched
source: openapi/mystars-faas-openapi.json (webhooks block) + https://mystars.tg/docs
docs: https://mystars.tg/docs
note: >-
MyStars publishes NO AsyncAPI document — probed /asyncapi.yaml and /asyncapi.json on both hosts
during discovery and found nothing, and none exists in the GitHub account. What it DOES publish
is a first-class webhook contract inside the OpenAPI 3.1 webhooks block, which is the modern
in-spec way to declare one. Captured here as a webhook catalog; no AsyncAPI has been
fabricated. asyncapi_present is honestly false; a webhook surface is honestly present.
asyncapi_published: false
webhooks_published: true
subscription_model:
style: per-order callback
registration: >-
There is NO "register webhook" endpoint and no global subscription. Each order carries its
own optional callback_url, passed in the POST /v1/orders body, and the terminal event is
POSTed to exactly that URL. Omit it and poll GET /v1/orders/{id} instead.
callback_url_constraints: >-
Must be a publicly reachable https:// URL. Loopback addresses, private-network hosts and
non-HTTPS schemes are rejected with 400 bad_request. Redirects are NOT followed — the
callback_url must be the final destination.
event_count: 1
events:
- name: orderStatus
operationId: orderStatusWebhook
transport: HTTPS POST
content_type: application/json
fires_on: an order reaching a terminal status
statuses: [delivered, failed, reversed, expired]
payload_fields:
order_id: uuid — the order, and also the on-chain payment memo
status: one of delivered / failed / reversed / expired
failure_reason: >-
Null on delivered. Otherwise underpaid / overpaid / no_memo / wrong_memo (failed, funds
reversed), undeliverable (reversed, funds reversed), or expired.
purchase_tx: on-chain reference for the fulfilment purchase, when delivered
reversal_tx: on-chain reference for returned funds, when reversed
required_fields: [order_id, status]
see: errors/mystars-decline-codes.yml
history: >-
v1.3.0 (2026-06-21) added the terminal failed and expired events; before that only delivered
and reversed fired.
security:
signature_header: X-Faas-Signature
algorithm: HMAC-SHA256, hex encoded
signed_over: the EXACT raw request body
secret: >-
A per-tenant webhook signing secret, a credential SEPARATE from the API key. Shown once
alongside the API key on /api_start in @my_stars_tg_bot.
rotation:
command: /api_rotate_webhook
window: 24 hours
behaviour: >-
During the rollover window X-Faas-Signature may carry MULTIPLE comma-separated signatures
(the new and the previous secret). Treat the header as a comma-separated list and accept if
ANY entry matches. Outside a rotation it is a single value, so naive single-value
verification keeps working day to day — which is precisely why an integrator who never
reads this note will break exactly once, during their first rotation.
note: >-
/api_rotate rotates the API KEY only and does not touch the webhook secret. Two credentials,
two rotation commands.
delivery:
acknowledgement: any 2xx stops retries
timeout: 5 seconds (connect, headers and body each)
redirects: not followed
retries: exponential backoff, then dead-lettered
ordering: not guaranteed (not documented)
replay_stability: the body and its signature are stable across retries
failure_isolation: >-
A timeout or non-2xx triggers the retry / dead-letter path exactly as a connection error
would; it never blocks order processing.
at_least_once: true
polling_alternative:
operationId: getOrder
path: GET /v1/orders/{id}
note: >-
A fully supported alternative — the webhook is optional. An agent with no public HTTPS
endpoint can operate entirely on polling, subject to the order-lifecycle rate-limit bucket.
sdk_support: >-
Both official SDKs ship webhook verification, and @mystars-tg/faas-cli can verify a captured
X-Faas-Signature offline against a raw body.
Work with this as data
Every AsyncAPI spec here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for asyncapi
4 MCP tools reach this
find_asyncapisBrowse and filter every AsyncAPI spec in the catalog.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.
Call it yourself
curl for this page
This AsyncAPI spec
curl "https://apis.io/api/v1/asyncapis/mystars-webhooks"
All asyncapi
curl "https://apis.io/api/v1/asyncapis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.