Primary sync: delta since updatedSince — new codes and status changes.
Why this method exists
Primary sync: delta since updatedSince — new codes and status changes.
When to use
Cron 5–15 min + after webhook; persist cursor.
Endpoint
POST /v1/platform/promo-codes/changes
Authentication: X-Api-Key header (prefix bk_plt_). Do not send projectId or actor id in body — they come from the key.
Scope: platform:catalog:read
Request example
{
"meta": { "requestId": "optional-uuid" },
"data": { "updatedSince": "2026-07-13T08:00:00Z", "limit": 500, "changeTypes": ["created", "status_changed"] }
}
Response example
{
"success": true,
"data": {
"items": [
{
"codeId": "code-uuid",
"changeType": "created",
"status": "available",
"codeDisplay": "QUEEN14-***AMU",
"supplierName": "Промомед",
"updatedAt": "2026-07-13T09:15:00Z"
}
],
"nextCursor": "…",
"hasMore": false,
"serverTime": "2026-07-13T12:00:00Z"
}
}
Errors
UNAUTHORIZED/ACCESS_DENIED— access deniedVALIDATION_ERROR— invalid bodyNOT_FOUND— resource not foundRATE_LIMIT_EXCEEDED(429) — rate limit
cURL
curl -X POST "https://api-external.promanta.ru/v1/platform/promo-codes/changes" \
-H "Content-Type: application/json" \
-H "X-Api-Key: YOUR_API_KEY" \
-d '{"data": { "updatedSince": "2026-07-13T08:00:00Z", "limit": 500, "changeTypes": ["created", "status_changed"] }}'