Get user preferences
Retrieves the payment channel preference for a specific user. Returns 404 NotFound if no preference is set.
Versioned HMAC-SHA256 signature authenticating server-to-server SDK requests (your backend calling Stash), as opposed to client-side SDK operations. Recommended over the deprecated X-Stash-Api-Key for the best security. Header format: v1;{appId};{unixMillisTimestamp};{base64Signature} (semicolon-delimited). {base64Signature} is the base64-encoded HMAC-SHA256 of the string {unixMillisTimestamp}.{requestBody} using your app ingress secret (the ingress secret is shown base64-encoded in Studio; base64-decode it to the raw bytes used as the HMAC key), where {requestBody} is the request body exactly as you send it for POST and PUT requests (the compact canonical request JSON is also accepted) and empty for GET requests. A signature over the exact bytes verifies for bodies of up to 18 KiB (18,432 bytes); a larger body may be refused with 401 even when correctly signed. The timestamp must be within 5 minutes of Stash server time. Your appId is your immutable app identifier, shown in Stash Studio under Project Settings > App details; your ingress secret is under Project Settings > API Secrets.
In: header
Path Parameters
User ID (external user ID from the game/application)
Response Body
application/json
application/json
curl -X GET "https://example.com/sdk/server/user_preferences/string"{ "paymentChannel": "UNSPECIFIED"}How is this guide?
Update subscription POST
Applies one change to a subscription. free_period grants free billing periods that start when the current paid period ends: the subscriber keeps access, is not charged at the next renewal date, and billing resumes at the plan's normal price when the free period ends. A scheduled cancellation is reversed. Rejections return FAILED_PRECONDITION with reason SUBSCRIPTION_NOT_ELIGIBLE, FREE_PERIOD_ALREADY_ACTIVE or RENEWAL_IN_PROGRESS. Reusing an idempotency_key with different parameters returns ALREADY_EXISTS.
Set user preferences POST
Creates or updates the payment channel preference for a user. This is a server-side endpoint and should not be called from the client.