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

Request Body

application/json

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.

TypeScript Definitions

Use the request body type in TypeScript.

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.

Response Body

application/json

application/json

curl -X POST "https://example.com/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}

How is this guide?