now.gg Payments Callbacks (derived)
Version 1.0.0
Outbound webhook contract for now.gg Payments. now.gg POSTs subscription and webshop order events to an endpoint the publisher implements and registers in nowStudio. Derived by API Evangelist from now.gg's published prose reference.
Channels
Messages
Servers
AsyncAPI Specification
x-provenance:
generated: '2026-08-08'
method: derived
source: https://docs.now.gg/nowstudio/payments
derived_from: asyncapi/bluestacks-payments-webhooks.yml
note: >-
now.gg publishes NO AsyncAPI. This document is an API Evangelist derivation that
transcribes the callback contract now.gg publishes in prose at
docs.now.gg/nowstudio/payments and docs.now.gg/nowstudio/webshop into AsyncAPI
3.0.0. Every channel, message, field, type and example below appears verbatim in
those pages; nothing has been invented. It is NOT a provider artifact and must not
be presented as one. The address is the PUBLISHER'S own endpoint — now.gg is the
sender, the publisher is the receiver — so the server URL is a placeholder the
integrator substitutes.
asyncapi: 3.0.0
info:
title: now.gg Payments Callbacks (derived)
version: '1.0.0'
description: >-
Outbound webhook contract for now.gg Payments. now.gg POSTs subscription and
webshop order events to an endpoint the publisher implements and registers in
nowStudio. Derived by API Evangelist from now.gg's published prose reference.
contact:
name: now.gg developer support
email: dev-support@now.gg
externalDocs:
url: https://docs.now.gg/nowstudio/payments
servers:
publisherCallback:
host: publisher.example.com
protocol: https
description: >-
The publisher's own callback host, registered in nowStudio under Payment
Settings. Substitute your own.
channels:
subscriptionStatusCallback:
address: /subscription-status-callback
title: SubscriptionStatusCallback
description: >-
Publisher-implemented endpoint that receives subscription lifecycle events from
now.gg.
messages:
subscriptionStatusEvent:
$ref: '#/components/messages/SubscriptionStatusEvent'
paymentsProcessingCallback:
address: /payments-processing-callback
title: PaymentsProcessingCallback
description: >-
Publisher-implemented endpoint that receives webshop order completion events
from now.gg.
messages:
webshopItemPurchased:
$ref: '#/components/messages/WebshopItemPurchased'
operations:
receiveSubscriptionStatus:
action: receive
channel:
$ref: '#/channels/subscriptionStatusCallback'
summary: Receive a subscription lifecycle event from now.gg.
security:
- $ref: '#/components/securitySchemes/webhookApiKey'
messages:
- $ref: '#/channels/subscriptionStatusCallback/messages/subscriptionStatusEvent'
reply:
address:
location: '$message.header#/'
channel:
$ref: '#/channels/subscriptionStatusCallback'
messages:
- $ref: '#/components/messages/CallbackAck'
receivePaymentsProcessing:
action: receive
channel:
$ref: '#/channels/paymentsProcessingCallback'
summary: Receive a webshop order completion event from now.gg.
security:
- $ref: '#/components/securitySchemes/webhookApiKey'
messages:
- $ref: '#/channels/paymentsProcessingCallback/messages/webshopItemPurchased'
components:
securitySchemes:
webhookApiKey:
type: httpApiKey
name: Authorization
in: header
description: >-
Webhook API Key issued by now.gg in nowStudio. now.gg presents it to the
publisher's endpoint. There is no body signature.
messages:
SubscriptionStatusEvent:
name: SubscriptionStatusEvent
title: Subscription status update
contentType: application/json
payload:
$ref: '#/components/schemas/SubscriptionNotification'
WebshopItemPurchased:
name: WebshopItemPurchased
title: Webshop item purchased
contentType: application/json
payload:
$ref: '#/components/schemas/WebshopNotification'
CallbackAck:
name: CallbackAck
title: Publisher acknowledgement
contentType: application/json
payload:
$ref: '#/components/schemas/Ack'
schemas:
SubscriptionNotification:
type: object
required:
- notificationType
- data
properties:
notificationType:
type: string
description: The subscription status event.
enum:
- WEBSHOP_ITEM_PURCHASED
- SUBSCRIPTION_PURCHASED
- SUBSCRIPTION_RENEWED
- SUBSCRIPTION_CANCELLED
- SUBSCRIPTION_EXPIRED
data:
type: object
properties:
orderId:
type: string
description: Order ID associated with the purchase order.
examples:
- '1-202402110116343'
packageName:
type: string
description: Package name of the publisher's app.
examples:
- gg.now.sample.app
productId:
type: string
description: Product ID of the product purchased by the user.
examples:
- SampleProduct
eventTime:
type: integer
format: int64
description: Epoch timestamp associated with the order, in milliseconds.
examples:
- 1752895192000
expiryTime:
type: integer
format: int64
description: Epoch milliseconds when the subscription expires or is set to renew.
examples:
- 1707965194000
amount:
type: number
format: float
description: Amount associated with the order.
examples:
- 24.99
isTestOrder:
type: boolean
description: True when the order was generated by an internal tester.
currency:
type: string
description: Currency associated with the in-app purchase order.
examples:
- USD
paymentId:
type: string
examples:
- '1234'
developerPayload:
type: string
description: Developer-specified supplemental information about an order.
examples:
- '{UID: abc}'
WebshopNotification:
type: object
required:
- notificationType
- data
properties:
notificationType:
type: string
enum:
- WEBSHOP_ITEM_PURCHASED
description: Sent when the user's payment is completed.
data:
type: object
properties:
orderId:
type: string
examples:
- '1-202402110116343'
packageName:
type: string
examples:
- gg.now.sample.app
productId:
type: string
examples:
- SampleProduct
eventTime:
type: integer
format: int64
examples:
- 1707965194000
paymentId:
type: string
Ack:
type: object
required:
- success
properties:
success:
type: boolean
description: >-
Must be true, with HTTP 200, or now.gg retries. For the webshop callback,
the order is only marked completed once this is received.
reason:
type: string
description: Optional. Required only when success is false.
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
curl "https://apis.io/api/v1/asyncapis/bluestacks-payments-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 form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.