# Cytrongift API changelog

## 1.2.1 (2026-10-30)

- `GET /catalog/country2data` is now `GET /catalog/countries`; the old path answers `404` with error `5005`.
- `GET /config`: the `links.news` entry is now `links.blog`.
- The Sandbox chapter of the guide is a step-by-step walkthrough; the documentation page links every Apps & API mention to the account page.

## 1.2.0 (2026-10-30)

- Sandbox: the same API at `https://sandbox.cytrongift.com/v1` with test money, settled by itself; a sandbox key (`cks_`) comes from the Apps & API page of an approved application, see the Sandbox chapter of the guide.
- `GET /health` reports `sandbox` (true on the sandbox address) and every sandbox answer and webhook carries the `X-Sandbox: 1` header.
- Error `3016`: a key used on the other address answers `401` instead of an unknown-key refusal.

## 1.1.0 (2026-10-29)

- Webhooks: register up to five https addresses with `POST /account/webhooks`, list them with `GET /account/webhooks` and drop one with `POST /account/webhooks/delete`; every delivery is signed with the secret shown once.
- Application decisions reach your Telegram chat and webhooks as `application.approved`, `application.rejected` and `application.paused`, beside the finished orders and payouts.
- Every answer carries `X-RateLimit-Limit`, `X-RateLimit-Remaining` and `X-RateLimit-Reset`, so a client can pace itself before a `429`.
- The documentation page gained the Webhooks chapter, the Changelog, the error table in JSON, CSV and XML, and the clients as one download.
