WalletD developers
Catalog

Every price change in the shop, newest first

Every price change in the shop, newest first, with the old and new amount, what caused it (a manual edit or a repricing) and who did it.

GET/v1/clients/{clientId}/price_history

Every price change in the shop, newest first, with the old and new amount, what caused it (a manual edit or a repricing) and who did it. Optional offering_id narrows it. Needs authority over the client — membership of its organization, an API key bound to this client, or tenant staff holding clients:manage; anything else is refused not_client_member or insufficient_scope (403), and an unknown client client_not_found (404). Cursor paged: pass the last id you saw as cursor; limit is clamped to 1-100 and defaults to 50.

Authorization

bearerAuth
AuthorizationBearer <token>

A tenant API key (sk_{env}_{id}_{secret}), a wallet user token, or an IdP access token. Which principal the credential resolves to decides the scopes it carries; see the authentication guide.

In: header

Path Parameters

clientId*string
Formatuuid

Query Parameters

offering_id?string
Formatuuid
cursor?string

Last seen id from the previous page. The listing resumes after that row, so an id that belongs to no row in the listing is refused invalid_request (400) rather than answered with an empty page.

Formatuuid
limit?integer
Range1 <= value <= 100
Default50

Response Body

application/json

application/problem+json

application/problem+json

application/problem+json

curl -X GET "https://example.com/v1/clients/497f6eca-6276-4993-bfeb-53cbbbba6f08/price_history"
[  {    "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",    "offering_id": "a7d124b6-6a8c-44d1-9d46-4636e3f8c04e",    "variant_id": "8a2d415d-59aa-4132-bef3-011f97c4a0f6",    "old_amount": 0,    "new_amount": 0,    "source": "manual",    "actor_type": "string",    "actor_id": "string",    "created_at": "2019-08-24T14:15:22Z"  }]