Coming from Appcharge Payment Links
If you already integrated Appcharge Payment Links, most of what you built maps directly, and several steps disappear.
| Appcharge | Appside |
|---|---|
Server calls Create Checkout Session, passes parsedUrl + purchaseId to the client exactly as received | Not needed. Your server signs a player token, and the client calls purchase(sku, token) |
| Separate web-store login: Authenticate Player Callback, SSO / Player-ID / OTP deeplink / Game Redirect | The same player token logs the player into the store. No callback to your server |
SDK callbacks onPurchaseSuccess(OrderResponseModel) / onPurchaseFailed / onPurchaseCanceled | onPurchaseCompleted(order) / onPurchaseFailed / onPurchaseCanceled / onStoreClosed |
| Grant Award Callback to your server | order.paid webhook, signed, retried 72 h, idempotency key |
signature: t=…,v1=… HMAC-SHA256 over t.payload | x-appside-timestamp + x-appside-signature, HMAC-SHA256 over ts.rawBody |
Validate purchaseId on your server | Optional getOrder(orderId) with your server key. The webhook is already the source of truth |
| Universal/Deep link setup | The same, and Studio generates the AASA / assetlinks files |
| iOS, Android, Unity SDKs | The same plus Web, React Native, Flutter, and server SDKs (see status) |
Migration guide in short: keep your item-granting code, point it at our webhook, replace the checkout-session call with a player-token endpoint, and swap the SDK call.