Convert prices

Fetches pre-converted prices from the price sheet for the given destination country, applies tax based on region, and optionally applies custom rounding. Returns final prices in minor units and locale-formatted display strings.

POST
/sdk/server/prices/convert
x-stash-hmac-signature<token>

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 compact canonical request JSON for POST requests and empty for GET requests. 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

ConvertPricesRequest fetches pre-converted prices from the uploaded price sheet for a given destination country, applies tax, and optionally applies custom rounding.

The destination_amount and pre_rounding_amount in the response use "minor units" (the smallest denomination of a currency as defined by ISO 4217). The decimal_places field tells callers how to interpret amounts: divide by 10^decimal_places to get the human-readable value.

sourceCurrencystring

ISO-4217 source currency code (e.g., 'USD'). Currently only 'USD' is supported.

destinationCountrystring

ISO-3166-1 alpha-2 destination country code (e.g., 'DE', 'JP', 'PL'). Used to resolve the destination currency via CLDR.

priceIdsarray<string>

Price IDs (price point identifiers) to look up. Must match the priceId values in the uploaded price sheet.

rounding?string

Optional rounding strategy to apply. Use 'hg' for Huuuge Games charm pricing rounding. Omit for no rounding.

Response Body

curl -X POST "https://test-api.stash.gg/sdk/server/prices/convert" \  -H "Content-Type: application/json" \  -d '{    "sourceCurrency": "string",    "destinationCountry": "string",    "priceIds": [      "string"    ]  }'
{
  "sourceCurrency": "string",
  "destinationCurrency": "string",
  "destinationCountry": "string",
  "conversions": [
    {
      "priceId": "string",
      "sourceAmount": 0,
      "destinationAmount": 0,
      "preRoundingAmount": 0,
      "displayPrice": "string",
      "decimalPlaces": 0
    }
  ],
  "missingPriceIds": [
    "string"
  ],
  "taxRate": "string",
  "taxInclusive": true
}
{
  "code": 0,
  "message": "string",
  "details": [
    {
      "@type": "string",
      "property1": null,
      "property2": null
    }
  ]
}

How is this guide?