Adset.ProAdset.ProKnowledge base

CPA-шаблоны

CPA-шаблон — запись глобального каталога популярных партнёрских сетей с уже заполненными маппингом статусов, макросами постбэка, шаблоном параметров ссылки и адресом регистрации. В кабинете шаблон выбирается при создании партнёрской сети, чтобы не настраивать постбэки вручную. Через API шаблоны доступны только для чтения: получите нужный шаблон и используйте его поля в POST /api/cpa.

Получение токена, общий формат ответов, параметры списков и ошибки — в головной статье раздела.

Скоупы

Скоуп Доступ В дефолте PAT
api:cpa чтение шаблонов (тот же скоуп, что для чтения CPA-сетей) да

Отдельного write-скоупа нет: создание и правка шаблонов — административная операция, в публичный API не входит.

Эндпойнты

Метод Путь Скоуп RBAC-право
GET /api/cpa-templates api:cpa cpaTemplate:list
GET /api/cpa-templates/{id} api:cpa cpaTemplate:read

Права есть у всех ролей. Каталог общий для всей платформы — у шаблонов нет владельца и команды.

Параметры списка GET /api/cpa-templates

Поля
Фильтры filter[...] name, isActive, created, updated
Сортировка sort name, isActive, created, updated
Populate нет (у шаблона нет ссылок)
# найти шаблон по части названия
curl -G 'https://adset.pro/api/cpa-templates' \
  -H 'Authorization: Bearer pat_…' \
  --data-urlencode 'filter[name][contains]=1win' \
  --data-urlencode 'filter[isActive]=true'

Объект шаблона

Поле Тип Описание
id string ObjectId
name string название партнёрской сети, до 200 символов
description string описание, до 2000 символов
registrationUrl string ссылка на регистрацию в партнёрке
paramTemplate string шаблон GET-параметров для ссылок потоков
statuses объект маппинг статусов партнёрки на события трекера: hold, accept, redep, decline, trash
postbackMacros объект имена параметров постбэка: clickId, status, revenue, currency, externalId
isActive boolean активен ли шаблон в каталоге
acceptDuplicates boolean рекомендуемое значение для сети
acceptDuplicatesFor string[] рекомендуемый список событий, для которых принимаются дубли
created, updated date только чтение

Смысл полей statuses и postbackMacros подробно разобран в статье Партнёрские сети (CPA).

Пример ответа GET /api/cpa-templates/{id}:

{
  "data": {
    "id": "66f1a2b3c4d5e6f7a8b9c0d1",
    "name": "1win Partners",
    "description": "Gambling / betting, выплаты за FTD и редепозиты",
    "registrationUrl": "https://1winpartners.example/signup",
    "paramTemplate": "sub1={click_id}&sub2={campaign_id}&sub3={source_id}",
    "statuses": { "accept": "first_deposit", "redep": "deposit", "hold": "registration", "decline": "decline", "trash": "trash" },
    "postbackMacros": { "clickId": "sub1", "status": "status", "revenue": "amount", "currency": "USD", "externalId": "player_id" },
    "isActive": true,
    "acceptDuplicates": true,
    "acceptDuplicatesFor": ["CPA_REDEP"],
    "created": "2026-01-15T09:00:00.000Z",
    "updated": "2026-09-01T12:30:00.000Z"
  },
  "traceId": "01HX…"
}

Рецепт: создать CPA-сеть из шаблона

  1. Найдите шаблон: GET /api/cpa-templates?filter[name][contains]=….
  2. Создайте сеть, перенеся поля шаблона (нужен скоуп api:cpa:write):
curl -X POST 'https://adset.pro/api/cpa' \
  -H 'Authorization: Bearer pat_…' \
  -H 'Content-Type: application/json' \
  -d '{
    "name": "1win Partners",
    "shortName": "1win",
    "currency": "USD",
    "paramTemplate": "sub1={click_id}&sub2={campaign_id}&sub3={source_id}",
    "statuses": { "accept": "first_deposit", "redep": "deposit", "hold": "registration", "decline": "decline", "trash": "trash" },
    "postbackMacros": { "clickId": "sub1", "status": "status", "revenue": "amount", "currency": "USD", "externalId": "player_id" },
    "acceptDuplicates": true,
    "acceptDuplicatesFor": ["CPA_REDEP"]
  }'

Поля name, currency и shortName задайте свои — шаблон их не определяет (валюту выплат уточняйте в кабинете партнёрки).

Ошибки

HTTP Когда
403 forbidden + Insufficient OAuth scope. Required: api:cpa у токена нет скоупа api:cpa
404 notFound шаблона с таким id нет

Связанные статьи