MyStars FaaS · AsyncAPI Specification

Mystars Webhooks

Version

View Spec View on GitHub Telegramtelegram-starstelegram-premiumPaymentsCryptoTONfulfilmentBlockchainDigital Goodsreseller-apiAsyncAPIWebhooksEvents

AsyncAPI Specification

Raw ↑
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.
All 92 tools →

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.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.