Интерфейс API-функций CPA.Link - товарная партнерская программа позволяет выполнять большую часть действий вебмастера и поставщика, реализованных на самом сайте. Чтобы подключить API, зайдите на страницу своего профиля в системе. Взаимодействие с сервисом осуществляется по протоколу HTTP. Формат запроса - чистый POST. Формат результата - JSON или сериализованные данные PHP. Ограничений на количество запросов нет.

Чтобы начать работу с API-интерфейсом, необходимо получить ID и ключ. Они доступны в разделе «Профиль» системы. Далее по тексту пользовательский ID будет обозначаться {user}, а ключ доступа - {key}. Авторизуйтесь на сайте, чтобы видеть свои ИД и ключ API.

API-интерфейс состоит из нескольких приложений {app} с набором доступных функций {func}.

Для обращения к API-функции, необходимо отправить POST запрос на адрес вида:

https://cpa.link/api/{app}/{func}.{format}?id={user}-{key}

URL запроса состоит из следующих частей

Параметр Описание
{app} Идентификатор приложения:
{func} Идентификатор функции в рамках приложения.
{format} Формат возвращаемого результата:
  • json - данные в формате JSON
  • serial - сериализованные данные PHP, предназначенные для обработки функцией unserialize
  • xml - данные в формате XML
  • text - данные в виде строки параметров, аналогичной используемым в URL: param1=value1&param2=value2
  • raw - необработанные данные (используется только для некоторых функций)
{user} Идентификатор пользователя в системе: {user}
{key} API-ключ пользователя из профиля: {key}

Данные для запроса передаются в POST-части запроса в чистом виде. Их не нужно каким-либо образом кодировать, не нужно помещать в JSON или XML-представление. Но если очень хочется, JSON POST функция тоже примет и поймёт.

Функция для работы с нашим интерфейсом на PHP представлена ниже:

<?php

/**
 * Взаимодействие с сервисом CPA.Link - товарная партнерская программа.
 * @param $id Ваш ID в системе
 * @param $key Ваш API-ключ
 * @param $app Приложение для взаимодействия (wm, ext или comp)
 * @param $func Запрашиваемая функция
 * @param $data Массив параметров
 * @param $format Формат возвращаемого результата (serial, json, raw)
 * @return array Результат выполнения
 */
function apirequest $id$key$app$func$data = array(), $format 'serial' ) {

    $url 'https://cpa.link/api/' $app '/' $func '.' $format '?id=' $id '-' $key;
    $curl curl_init$url );
    curl_setopt$curlCURLOPT_RETURNTRANSFERtrue );
    curl_setopt$curlCURLOPT_TIMEOUT30 );
    curl_setopt$curlCURLOPT_POST);
    curl_setopt$curlCURLOPT_POSTFIELDS$data );
    $result curl_exec$curl );
    curl_close$curl );

    switch ( $format ) {
        case 'raw':     return $result;
        case 'json':    return json_decode$resulttrue );
        case 'text':    parse_str$result$a ); return $a;
        default:        return unserialize$result );
    }

}

Эта функция получает на входе следующие параметры:

Параметр Тип Описание
$id int Идентификатор пользователя в системе
$key string API-ключ пользователя
$app string Идентификатор приложения
$func string Идентификатор функции
$data array Массив параметров функции (необязательный параметр)
$format string Формат возвращаемого результата (необязательный параметр)

Функция возвращает массив результата в случае форматов json, serial или text, и чистый вывод для формата raw.

Функции веб-мастера позволяют работать с потоками и получать статистическую информацию аккаунта. Для работы со всеми функциями необходимо обращаться к приложению wm.

URL: https://cpa.link/api/wm/{function}.json?id={user}-{key}

Добавление лида

URL: https://cpa.link/api/wm/push.json?id={user}-{key}

ID функции - push. Функция позволяет добавить новый лид от имени вебмастера. Данные нового лида передаются в POST-запросе.

Внимание! Данная функция по умолчанию отключена для новых пользователей, она может быть активирована по запросу в техническую поддержку.

На входе функция принимает следующие данные о лиде:

Поле Описание
flow* Идентификатор потока, к которому привязывается заказ (обязательный параметр)
offer* Идентификатор оффера из списка (обязательный параметр)
ip* IP-адрес заказчика (обязательный параметр)
name ФИО заказчика
phone* Телефон заказчика в формате 79876543210 (обязательный параметр)
email Электронная почта заказчика
ua User-Agent браузера заказчика
country Двухбуквенный код страны заказчика, вычисляется на основании IP-адреса
currency Трёхбуквенный код валюты заказчика, например RUB или BYR, по умолчанию вычисляется на основании страны заказчика
index Почтовый индекс адреса доставки в формате 127000
addr Адрес доставки. Может содержать в себе полный адрес без индекса, если не используются поля ниже. В противном случае содержит только номер дома, корпуса, квартиры или офиса.
area Регион доставки, например, Московская обл.
city Город доставки, например Москва
street Улица по адресу доставки, например ул. Мира
base Цена единицы товара в валюте заказа.
count Количество товара.
discount Скидка на товар в процентах.
more Сумма добавочной стоимости заказа, например, наценки за экспресс-доставку.
comm Дополнительный комментарий по заказу.
us Метка utm_source
uc Метка utm_campaign
un Метка utm_content
ut Метка utm_term
um Метка utm_medium
promo Промо-код, указанный заказчиком.
mobile Укажите 0 для десктоп-трафика и 1 для мобильного трафика
bad Укажите 0 для нормального трафика и 1 для подозрительного трафика

Результатом выполнения функции является ассоциативный массив:

Поле Описание
status Результат выполнения операции: ok в случае успешного выполнения, error в случае ошибки
id Идентификатор добавленного заказа (в случае успеха)
error Идентификатор ошибки: nooffer при отсутствии идентификатора оффера, noflow при отсутствии идентификатора потока, badflow при указании некорректного идентификатора потока, nophone при отсутствии номера телефона, duplicate наличии заказа с таким же телефоном, именем и оффером в обработке, offer если не найден указанный оффер, security при бане пользователя, ban при бане телефона или IP-адреса заказчика, traffic при отправке заказа на приватный или заблокированный оффер, db в случае внутренней ошибки добавления данных.

Пример успешного ответа функции:

{ "status" : "ok", "id" : 1234 }

Пример ответа функции при возникновении ошибки:

{ "status" : "error", "error" : "nooffer" }

Статистика по лидам

URL: https://cpa.link/api/wm/lead.json?id={user}-{key}

ID функции - lead. Функция предоставляет список лидов и их статус по списку идентификаторов или за указанную дату.

Поле Описание
ids Список идентификаторов лидов через запятую. Рекомендуется проверять не более 20 лидов за один запрос.
day Дата статистики в формате ГГГГ-ММ-ДД. Необязательный параметр. По умолчанию используется сегодняшний день. Игнорируется при указании списка идентификаторов.
offer ID оффера для получения статистики. Необязательный параметр. По умолчанию статистика выводится для всех офферов.
flow ID потока для получения статистики. Необязательный параметр. По умолчанию статистика выводится для всех потоков.
site Идентификатор сайта-источника. Список сайтов можно получить с помощью функции sites.
status Статус заказа:
  • a - принятые лиды
  • w - лиды в ожидании и на обработке
  • c - отклонённые лиды
  • не указан - все лиды

Результатом выполнения функции является массив лидов. Каждый элемент включает в себя следующие поля:

Поле Описание
id Идентификатор заказа
time Время поступления заказа в формате UNIX-timestamp
stage Символьный статус заказа:
  • new - новый заказ
  • wait - заказ в обработке
  • hold - холд
  • approve - заказ принят
  • cancel - заказ отменён
  • trash - треш
status Расширенный статус заказа:
  • 1 – New order
  • 2 – Processing
  • 3 – Callback
  • 4 – Hold
  • 5 – Cancelled
  • 6 – Packing
  • 7 – Sending
  • 8 – Transfer
  • 9 – Arrived
  • 10 – Completed
  • 11 – Return
  • 12 – Deleted
reason Идентификатор причины отказа:
  • 1 – Incorrect phone (треш)
  • 2 – Changed his mind
  • 3 – Did not order (треш)
  • 4 – Requires certificate
  • 5 – Wrong GEO (треш)
  • 6 – Errors of fake (треш)
  • 7 – Duplicate order (треш)
  • 8 – Ordered elsewhere (треш)
  • 9 – Expensive
  • 10 – Not satisfied with delivery
  • 11 – Could not get through (треш)
  • 12 – Possibly fraud (треш)
  • 13 – Speaks different language (треш)
  • 14 – Product did not fit (треш)
  • 15 – Offer disabled
reason_text Текстовое значение причины отказа
offer Идентификатор оффера
offer_name Название оффера
flow Идентификатор потока
site Идентификатор лендинга
site_url URL лендинга
space Идентификатор прелендинга
space_url URL прелендинга
ip IP-адрес заказчика
utm_* UTM-метки заказа: utm_source, utm_content, utm_campaign, utm_medium, utm_term

Пример ответа функции:

[
    {
	"id": 10101,
	"time": "1498127780",
	"stage": "trash",
	"status": 5,
	"reason": 1,
	"reason_text": "Некорректный номер",
	"hold": 0,
	"comment": null,
	"cash": 700,
	"offer": 234,
	"offer_name": "Shiny test offer",
	"flow": 4838,
	"site": 123,
	"site_url": "land.cpa/test-offer",
	"space": 0,
	"space_url": false,
	"ip": "12.34.56.78",
	"utm_source": "google",
	"utm_content": "321012",
	"utm_campaign": "321",
	"utm_medium": "cpc",
	"utm_term": "neverland"
    }
]

Статистика по датам

URL: https://cpa.link/api/wm/stats.json?id={user}-{key}

ID функции - stats. Функция предоставляет статистику по кликам и заказам, разбитую по датам, аналогично разделу «Статистика».

На входе функция получает следующие параметры:

Поле Описание
from Дата начала статистики в формате ГГГГ-ММ-ДД. Необязательный параметр. По умолчанию используется дата неделю назад.
to Дата окончания статистики в формате ГГГГ-ММ-ДД. Необязательный параметр. По умолчанию используется сегодняшний день.
offer ID оффера для получения статистики. Необязательный параметр. По умолчанию статистика выводится для всех офферов.
flow ID потока для получения статистики. Необязательный параметр. По умолчанию статистика выводится для всех потоков.

Результатом выполнения функции является ассоциативный массив. Идентификатором каждого элемента служит дата статистики в формате ГГГГММДД. Каждый элемент включает в себя следующие поля:

Поле Описание
id Дата статистики в формате ГГГГММДД
spaces Количество кликов по прелендингам
suni Количество уникальных кликов по прелендингам
sgood Количество успешных визитов на прелендинг
stime Среднее время пользователя на прелендинге в секундах
clicks Количество кликов по лендингам
unique Количество уникальных кликов по лендингам
good Количество успешных визитов на лендинг
time Среднее время пользователя на лендинге в секундах
ct Общее количество заказов без учёта треша
mt Общая сумма по лидам без учёта треша
ca Количество заказов в статусе «Принят»
ma Сумма по лидам в статусе «Принят»
cc Количество заказов в статусе «Отменён» без учёта треша
mc Сумма по лидам в статусе «Отменён» без учёта треша
cw Количество заказов в статусе «Ожидает»
mw Сумма по лидам в статусе «Ожидает»
cx Количество невалидных заказов (треш)
mx Сумма по невалидным лидам (треш)

Пример ответа функции:

{
    "20190919": {
	"id": "20190919",
	"space": 321,
	"suni": 291,
	"sgood": 153,
	"stime": 23.45,
	"clicks": 113,
	"unique": 93,
	"time": 34.56,
	"good": 80,
	"ct": 13,
	"mt": 9100,
	"ca": 5,
	"ma": 3500,
	"cc": 3,
	"mc": 2100,
	"cw": 5,
	"mw": 3500,
	"cx": 2,
	"mx": 1400
    }
}

Статистика по кликам

URL: https://cpa.link/api/wm/click.json?id={user}-{key}

ID функции - click. Функция предоставляет статистику по кликам и заказам, сгруппированную по выбранному параметру. Данная функция доступна как веб-мастерам, так и агентствам.

На входе функция получает следующие параметры:

Поле Описание
item* Обязательный параметр. Поле, по которому производится группировка статистики:
  • offer - идентификатор оффера
  • flow - идентификатор потока
  • site - идентификатор сайта
  • utms - метка utm_source
  • utmc - метка utm_campaing
  • utmn - метка utm_content
  • utmt - метка utm_term
  • utmm - метка utm_medium
  • extu - идентификатор на стороне агентства
  • exts - вебмастер на стороне агентства
from Дата начала статистики в формате ГГГГ-ММ-ДД. По умолчанию используется дата неделю назад.
to Дата окончания статистики в формате ГГГГ-ММ-ДД. По умолчанию используется сегодняшний день.
offer Фильтрация по ID оффера.
flow Фильтрация по ID потока.
site Фильтрация по ID сайта.
utms Фильтрация по UTM-метке utm_source.
utmc Фильтрация по UTM-метке utm_campaign.
utmn Фильтрация по UTM-метке utm_content.
utmt Фильтрация по UTM-метке utm_term.
utmm Фильтрация по UTM-метке utm_medium.
extu Фильтрация по внешнему ИД на стороне агентства.
exts Фильтрация по ИД вебмастера на стороне агентства.

Результатом выполнения функции является ассоциативный массив. Идентификатором каждого элемента служит идентификатор выбранного элемента группировки. Каждый элемент включает в себя следующие поля:

Поле Описание
id Идентификатор элемента группировки
name Название элемента группировки, если применимо
spaces Количество кликов по прелендингам
suni Количество уникальных кликов по прелендингам
sgood Количество успешных визитов на прелендинг
stime Среднее время пользователя на прелендинге в секундах
clicks Количество кликов по лендингам
unique Количество уникальных кликов по лендингам
good Количество успешных визитов на лендинг
time Среднее время пользователя на лендинге в секундах
ct Общее количество заказов без учёта треша
mt Общая сумма по лидам без учёта треша
ca Количество заказов в статусе «Принят»
ma Сумма по лидам в статусе «Принят»
cc Количество заказов в статусе «Отменён» без учёта треша
mc Сумма по лидам в статусе «Отменён» без учёта треша
cw Количество заказов в статусе «Ожидает»
mw Сумма по лидам в статусе «Ожидает»
cx Количество невалидных заказов (треш)
mx Сумма по невалидным лидам (треш)

Пример ответа функции:

{
    "123": {
	"id": "123",
	"name": "Shiny test offer",
	"space": 321,
	"suni": 291,
	"sgood": 153,
	"stime": 23.45,
	"clicks": 113,
	"unique": 93,
	"time": 34.56,
	"good": 80,
	"ct": 13,
	"mt": 9100,
	"ca": 5,
	"ma": 3500,
	"cc": 3,
	"mc": 2100,
	"cw": 5,
	"mw": 3500,
	"cx": 2,
	"mx": 1400
    }
}

Список офферов

URL: https://cpa.link/api/wm/offers.json?id={user}-{key}

ID функции - offers. Функция позволяет получить список активных офферов, их описание и данные о конверсии. Чтобы показать информацию только по одному офферу, укажите его идентификатор в параметре offer.

Результатом выполнения функции является ассоциативный массив списка офферов со следующими полями:

Поле Описание
id Идентификатор оффера в системе
name Полное название оффера
short Краткое название оффера
cid Идентификатор категории оффера
cat Название категории оффера
epc EPC - цена клика (EPC)
cr Convert Ratio, соотношение уникальных посетителей к количеству успешных заказов
approve Процент подтверждения заказов с сайта
geo
goal
Список географических или обычных целей по офферу с указанием цен и отчислений, содержит поля:
  • code - код страны или цели
  • name - название страны или цели
  • price - цена на лендинге
  • currency - валюта
  • cr - конверсия
  • epc - цена клика (EPC)
  • approve - процент подтверждения
  • desktop и mobile - суммы отчислений за десктоп и мобайл
Отчисления содержат следующие поля:
  • base - базовая часть отчисления
  • upsale - дополнительное отчисление за единицу апсейла
  • xsale - дополнительное отчисление за единицу кроссейла
  • percent - процентное отчисление от суммы заказа
  • currency - валюта отчисления
land
space
Список лендингов и прелендингов оффера, аналогично списка сайтов:
  • id - идентификатор сайта
  • url - URL сайта
  • epc - цена клика (EPC)
  • cr - конверсия
  • approve - процент подтверждённых заказов
  • mobile - оптимизация сайта под мобильные устройства
  • default - сайт используется по умолчанию

Пример ответа сервера:

{
    "31": {
        "id": 31,
        "name": "Shiny test offer",
        "short": "Testing",
        "cid": 2,
        "cat": "Health and beauty",
        "epc": 262.5,
        "cr": 150,
        "appr": 42.9,
        "geo": {
            "ru": {
                "code": "ru",
                "name": "Россия",
                "price": 990,
                "currency": "rub",
                "cr": 6.2,
                "epc": 18.4,
                "approve": 71.2,
                "desktop": {
                    "base": 600,
                    "upsale": 30,
                    "crossale": 30,
                    "percent": 0,
                    "currency": "rub"
                },
                "mobile": {
                    "base": 500,
                    "upsale": 25,
                    "crossale": 25,
                    "percent": 0,
                    "currency": "rub"
                }
            },
        },
        "land": {
            "123": {
                "id": 123,
                "url": "http://land.cpa/test-land/",
                "epc": 23.4,
                "cr": 5.6,
                "approve": 78.9,
                "mobile": 1,
                "default": true
            },
        },
        "space": {
            "234": {
                "id": 234,
                "url": "http://blog.cpa/test-space/",
                "epc": 12.3,
                "cr": 4.5,
                "approve": 67.8,
                "mobile": 0,
                "default": false
            },
        }
    }
}

Сайты оффера

URL: https://cpa.link/api/wm/sites.json?id={user}-{key}

ID функции - sites. Функция позволяет получить список сайтов, прикреплённых к указанному офферу. На входе функция получает один параметр: offer - идентификатор оффера, для которого требуется получить список сайтов.

Результатом выполнения функции является ассоциативный массив с двумя полями: land и space. Первое содержит список лендингов данного оффера, второе - список доступных преленлингов. По каждому из сайтов представлена следующая информация:

Поле Описание
id Идентификатор сайта в системе
url Полный адрес сайта
epc EPC - Earn Per Click, средний доход за каждый клик
cr Convert Ratio, соотношение уникальных посетителей к количеству успешных заказов
approve Процент подтверждения заказов с сайта
mobile Оптимизация сайта под мобильные устройства:
  • 0 - не оптимизирован для мобильных устройств
  • 1 - перенаправляет на мобильную версию сайта
  • 2 - оптимизирован для мобильных устройств
  • 3 - адаптивный дизайн, оптимизирован под любые устройства

Пример ответа сервера

{
    "land": {
        "123": {
            "id": 123,
            "url": "http://land.cpa/test-land/",
            "epc": 23.4,
            "cr": 5.6,
            "approve": 78.9,
            "mobile": 1
        },
    },
    "space": {
        "234": {
            "id": 234,
            "url": "http://blog.cpa/test-space/",
            "epc": 12.3,
            "cr": 4.5,
            "approve": 67.8,
            "mobile": 0
        },
    }
}

Список потоков

URL: https://cpa.link/api/wm/flows.json?id={user}-{key}

ID функции - flows. Функция возвращает список потоков, созданных веб-мастером. На входе функция получает один параметр: offer - идентификатор оффера, для которого требуется получить список существующих потоков.

Результатом выполнения функции является ассоциативный массив со списком потоков:

Поле Описание
id Идентификатор потока в системе
url Полная ссылка потока
offer ID оффера потока
offername Название оффера потока
name Название потока
epc EPC - Earn Per Click, средний доход за каждый клик
cr Convert Ratio, соотношение уникальных посетителей к количеству успешных заказов
total Общий заработок по потоку
site Идентификатор лендинга
siteurl URL лендинга
space Идентификатор прелендинга (ноль - не используется)
spaceurl URL прелендинга (false - не используется)
traffback Ссылка трафбека, куда перенаправляются пользователи, не подходящие по ГЕО
postback Ссылка для отправки PostBack-запросов
metrika Идентификатор счётчика Яндекс.Метрика
google Идентификатор счётчика Google Tag Manager
vkcom Идентификатор пикселя VKcom
facebook Идентификатор пикселя Facebook
utm_* UTM-метки: utm_source, utm_campaign, utm_content, utm_term, utm_medium

Пример ответа функции:

{
    "123": {
        "id": 123,
        "url": "http://blog.cpa/test-space/?flow=123&l=234",
        "offer": 45,
        "offername": "Shiny test offer",
        "name": "Still shiny 45",
        "epc": 12.3,
        "cr": 4.5,
        "total": 550,
        "site": 234,
        "siteurl": "land.cpa/test-site",
        "space": 345,
        "spaceurl": "blog.cpa/test-space",
        "traffback": "",
        "postback": "http://help.me/iamtrapped.php?key=inroom&number=5&status={stage}",
        "metrika": "123456789",
        "google": "123-ABDC",
        "vkcom": "VK-ABCD-1234",
        "facebook": "1234-56-7890",
        "utm_source": "google",
        "utm_campaign": "343",
        "utm_content": "987652",
        "utm_term": "helloworld",
        "utm_medium": "cpc"
    },
}

Создание потока

URL: https://cpa.link/api/wm/add.json?id={user}-{key}

ID функции - add. Функция создаёт новый поток по офферу.

На входе функция получает идентификатор оффера, по которому требуется создать поток. Идентификатор оффера передаётся в параметре offer, список идентификаторов можно получить в функции offers.

Результатом выполнения функции является ассоциативный массив:

Поле Описание
status Результат выполнения операции: ok в случае успешного выполнения, error в случае ошибки
id Идентификатор созданного потока
error Идентификатор ошибки: offer-inactive при работе с неактивным оффером, request-error в случае внутренней ошибки системы

Пример успешного ответа функции:

{ "status" : "ok", "id" : 1234 }

Пример ответа функции при возникновении ошибки:

{ "status" : "error", "error" : "offer-inactive" }

Редактирование потока

URL: https://cpa.link/api/wm/edit.json?id={user}-{key}

ID функции - edit. Функция позволяет изменить настройки потока. Идентификатор потока является обязательным параметром, остальные параметры не обязательны для передачи.

На входе функция получает следующие параметры:

Поле Описание
flow* ID потока для изменения
name Новое название потока
site Идентификатор лендинга
space Идентификатор прелендинга (ноль - не требуется)
drt Идентификатор паркованного домена для перенаправления (ноль - не требуется)
dst Идентификатор паркованного домена лендингов (ноль - не требуется)
dsp Идентификатор паркованного домена прелендингов (ноль - не требуется)
url Ссылка трафбека, куда перенаправляются пользователи, не подходящие по ГЕО
pbu Ссылка для отправки PostBack-запросов
mtrk Идентификатор счётчика Яндекс.Метрика
ga Идентификатор счётчика Google Tag Manager
vk Идентификатор пикселя VKcom
fb Идентификатор пикселя Facebook
utms UTM-метка utm_source
utmc UTM-метка utm_campaign
utmn UTM-метка utm_content
utmt UTM-метка utm_term
utmm UTM-метка utm_medium

Результатом выполнения функции является ассоциативный массив:

Поле Описание
status Результат выполнения операции: ok в случае успешного выполнения, error в случае ошибки
error Идентификатор ошибки: access-denied при работе с недоступным потоком, request-error в случае внутренней ошибки системы

Пример успешного ответа функции:

{ "status" : "ok" }

Пример ответа функции при возникновении ошибки:

{ "status" : "error", "error" : "access-denied" }

Удаление потока

URL: https://cpa.link/api/wm/del.json?id={user}-{key}

ID функции - del. Функция удаляет поток. На входе она получает идентификатор потока, который требуется удалить. Идентификатор оффера передаётся в параметре flow.

Результатом выполнения функции является ассоциативный массив:

Поле Описание
status Результат выполнения операции: ok в случае успешного выполнения, error в случае ошибки
error Идентификатор ошибки: access-denied при работе с недоступным потоком, request-error в случае внутренней ошибки системы

Пример успешного ответа функции:

{ "status" : "ok" }

Пример ответа функции при возникновении ошибки:

{ "status" : "error", "error" : "access-denied" }

API-интерфейс поставщика позволяет произвести интеграцию вашего собственного интерфейса с нашей системой обработки заказов. Для работы со всеми функциями необходимо обращаться к приложению comp.

URL: https://cpa.link/api/comp/{function}.json?id={user}-{key}

Добавление заказа

URL: https://cpa.link/api/comp/add.json?id={user}-{key}

ID функции - add. Функция позволяет добавить новый лид от имени компании, без указания источника поступления лида. Данные нового лида передаются в POST-запросе.

Внимание! Данная функция по умолчанию отключена для новых пользователей, она может быть активирована по запросу в техническую поддержку.

На входе функция принимает следующие данные о лиде:

Поле Описание
offer* Идентификатор оффера из списка (обязательный параметр)
ip* IP-адрес заказчика (обязательный параметр)
name ФИО заказчика
phone* Телефон заказчика в формате 79876543210 (обязательный параметр)
email Электронная почта заказчика
exto Уникальный идентификатор заказа в рамках компании
ua User-Agent браузера заказчика
country Двухбуквенный код страны заказчика, вычисляется на основании IP-адреса
currency Трёхбуквенный код валюты заказчика, например RUB или BYN, по умолчанию вычисляется на основании страны заказчика
index Почтовый индекс адреса доставки в формате 127000
addr Адрес доставки. Может содержать в себе полный адрес без индекса, если не используются поля ниже. В противном случае содержит только номер дома, корпуса, квартиры или офиса.
area Регион доставки, например, Московская обл.
city Город доставки, например Москва
street Улица по адресу доставки, например ул. Мира
base Цена единицы товара в валюте заказа.
count Количество товара.
discount Скидка на товар в процентах.
more Сумма добавочной стоимости заказа, например, наценки за экспресс-доставку.
comm Дополнительный комментарий по заказу.
promo Промо-код, указанный заказчиком.
mobile Укажите 0 для десктоп-трафика и 1 для мобильного трафика
bad Укажите 0 для нормального трафика и 1 для подозрительного трафика

Результатом выполнения функции является ассоциативный массив:

Поле Описание
status Результат выполнения операции: ok в случае успешного выполнения, error в случае ошибки
id Идентификатор добавленного заказа (в случае успеха)
error Идентификатор ошибки: access-denied при отсутствии доступа к функции добавления лида, nooffer при отсутствии идентификатора оффера, nophone при отсутствии номера телефона, duplicate при наличии заказа с таким же телефоном, именем и оффером в обработке, offer если не найден указанный оффер, traffic если оффер приватный или трафик на него запрещён, security при бане пользователя, ban при бане телефона или IP-адреса заказчика, db в случае внутренней ошибки добавления данных.

Пример ответа функции:

{ "status" : "ok", "id" : 1234 }

Список заказов

URL: https://cpa.link/api/comp/list.json?id={user}-{key}

ID функции - list. Функция позволяет получить список заказов. Параметры отбора могут передаваться в GET или POST-запросе.

На входе функция может использовать следующие параметры для отбора заказов:

Поле Описание
oid Внутренний идентификатор заказа CPA.Link - товарная партнерская программа или список идентификаторов через запятую
ids[] Массив внутренних идентификатор заказа CPA.Link - товарная партнерская программа.
eid Внешний идентификатор заказа в интерфейсе поставщика или список идентификаторов через запятую
eids[] Массив внешних идентификатор заказа из интерфейса поставщика.
status Статус заказа. Кроме основных статусов (см. поле status в таблице ниже) может получать дополнительные значения:
  • -1 - Заказы без отказов
  • -2 - Заказы в обработке
  • -3 - Подтверждённые заказы
from
to
Отбор заказов по времени с from до to. Время указывается в формате UNIX-timestamp. Могут использоваться как оба параметра одновременно, так и один из параметров по отдельности. Полезно для формирования выгрузки заказов в свой интерфейс, но для этой задачи рекомендуется использовать поле ниже.
after Идентификатор последнего полученного заказа, после которого начинать выдачу. Полезно для выгрузки заказов в свой интерфейс - список заказов запрашивается каждый раз с указанием ID последнего полученного заказа, и в результате выводятся только новые заказы, пришедшие после указанного.

Результатом выполнения функции является массив элементов со следующими полями:

Поле Описание
id Идентификатор заказа в рамках CPA.Link - товарная партнерская программа
ext Внешний идентификатор заказа (в случае интеграции интерфейсов)
offer Идентификатор оффера (см. список)
wm Идентификатор вебмастера
status Текущий статус заказа. Принимает одно из следующих значений:
  • 1 – New order
  • 2 – Processing
  • 3 – Callback
  • 4 – Hold
  • 5 – Cancelled
  • 6 – Packing
  • 7 – Sending
  • 8 – Transfer
  • 9 – Arrived
  • 10 – Completed
  • 11 – Return
  • 12 – Deleted
reason Код причины отказа. Принимает одно из следующих значений:
  • 1 – Incorrect phone (треш)
  • 2 – Changed his mind
  • 3 – Did not order (треш)
  • 4 – Requires certificate
  • 5 – Wrong GEO (треш)
  • 6 – Errors of fake (треш)
  • 7 – Duplicate order (треш)
  • 8 – Ordered elsewhere (треш)
  • 9 – Expensive
  • 10 – Not satisfied with delivery
  • 11 – Could not get through (треш)
  • 12 – Possibly fraud (треш)
  • 13 – Speaks different language (треш)
  • 14 – Product did not fit (треш)
  • 15 – Offer disabled
check Флаг постановки заказа на проверку службой безопасности. 1 - заказ подозрительный и находится на проверке.
calls Количество звонков по данному офферу
site Адрес сайта, с которого был выполнен заказ
ip IP-адрес заказчика
time Время получения заказа в формате UNIX-timestamp
name ФИО заказчика
gender Пол заказчика. 1 - мужчина, 2 - женщина. Определяется автоматически.
phone Телефон заказчика в формате 79876543210
country Двухбуквенный код страны заказчика, вычисляется на основании IP-адреса
index Почтовый индекс адреса доставки в формате 127000
addr Адрес доставки. Может содержать в себе полный адрес без индекса, если не используются поля ниже. В противном случае содержит только номер дома, корпуса, квартиры или офиса.
area Регион доставки, например, Московская обл.
city Город доставки, например Москва
street Улица по адресу доставки, например ул. Мира
count Количество товара.
items Состав заказа, количество тех или иных вариантов товара. Массив, в котором ключ - идентификатор варианта, значение - количество товара данного вида и цена за единицу товара.
delivery Идентификатор службы доставки
discount Скидка на товар в процентах.
currency ISO-код валюты товара
base Цена за единицу товара в валюте заказа
delpr Цена за доставку в валюте заказа
more Сумма добавочной стоимости заказа, например, наценки за экспресс-доставку.
price Общая стоимость заказа.
comment Дополнительный комментарий по заказу.

Пример ответа функции:

[
    {
        "id": 13131,
        "ext": 2424,
        "offer": 15,
        "offername": "Shiny test offer",
        "wm": 59,
        "status": 10,
        "reason": 0,
        "check": 0,
        "calls": 3,
        "site": 12,
        "siteurl": "land.cpa/test-offer",
        "space": 23,
        "spaceurl": "blog.cpa/test-space",
        "ip": "12.34.56.78",
        "time": 1568907260,
        "name": "John Doe",
        "gender": 0,
        "phone": "123456789000",
        "country": "ru",
        "index": "100000",
        "area": "",
        "city": "Moscow",
        "street": "Lenina street",
        "addr": "1",
        "comment": "Заберет у курьера в течение 2-5  дней",
        "count": 6,
        "items": {
            "12": [ 3, 665 ],
            "23": [ 1, 665 ],
            "34": [ 2, 665 ]
        },
        "delivery": 1,
        "discount": 0,
        "currency": "rub",
        "base": "0.00",
        "more": "0.00",
        "delpr": "350.00",
        "price": "4340.00"
    }
]

Смена статуса заказа

URL: https://cpa.link/api/comp/status.json?id={user}-{key}

ID функции - status. Функция позволяет обновить статус существующего заказа и изменить некоторые его поля. Все параметры могут передаваться как в POST, так и в GET-части запроса. Функция оптимальна для использования в PostBack-запросах.

На входе функция получает следующие параметры:

Поле Описание
oid
eid
Идентификатор заказа, над которым ведётся работа. Поле oid используется для указания внутреннего идентификатора заказа в рамках CPA.Link - товарная партнерская программа, поле eid используется для работы с идентификатором заказа на стороне поставщика. Обязательное поле запроса. Может передаваться в GET.
status Текстовое поле со статусом заказа, привязанное к параметрам st* или распознаваемое автоматически по списку:
  • Принят: a, accept, accepted, approve, approved, confirm, confirmed, 1
  • Холд: h, hold, holding
  • Отмена: c, d, decline, declined, cancel, cancelled, canceled, reject, rejected, -1
  • Треш: t, trash, error, wrong, bad
sta Значение статуса, которое будет распознано как аппрув
stc Значение статуса, которое будет распознано как отмена
stt Значение статуса, которое будет распознано как треш
sth Значение статуса, которое будет распознано как холд
stw Значение статуса, которое будет распознано как заказ в обработке
name ФИО заказчика
phone Телефон заказчика в формате 79876543210 (только цифры)
email Адрес электронной почты заказчика
comment Дополнительный комментарий по заказу.
country Двухбуквенный ISO-код страны
currency Трёхбуквенный ISO-код валюты
base Цена за единицу товара или стоимость конверсии в валюте заказа
count Количество товара в заказе
delpr Стоимость доставки товара в валюте заказа

Обязательным являются только идентификатор заказа и статус, остальные поля используются по мере надобности. Результатом выполнения функции является ассоциативный массив:

Поле Описание
status Результат выполнения операции: ok в случае успешного выполнения, error в случае ошибки
error Идентификатор ошибки: orderid при отсутствии идентификатора заказа, edit в случае отсутствия полей для обновления (например, если информация не изменялась), access-denied при работе с недоступным заказом, request-error в случае внутренней ошибки системы.

Пример успешного ответа функции:

{ "status" : "ok" }

Пример ответа функции при возникновении ошибки:

{ "status" : "error", "error" : "access-denied" }

Редактирование заказа

URL: https://cpa.link/api/comp/edit.json?id={user}-{key}

ID функции - edit. Функция позволяет отредактировать поля существующего заказа, обновить его статус. Часть параметров может передаваться в GET-части запроса.

На входе функция получает следующие параметры:

Поле Описание
oid
eid
Идентификатор заказа, над которым ведётся работа. Поле oid используется для указания внутреннего идентификатора заказа в рамках CPA.Link - товарная партнерская программа, поле eid используется для работы с идентификатором заказа на стороне поставщика. Обязательное поле запроса. Может передаваться в GET.
accept Флаг приёма заказа. Устанавливается в 1 если заказ в данный момент одобряется на стороне поставщика. Может передаваться в GET.
status Идентификатор нового статуса заказа. Может передаваться в GET. Принимает одно из следующих значений:
  • 1 – New order
  • 2 – Processing
  • 3 – Callback
  • 4 – Hold
  • 5 – Cancelled
  • 6 – Packing
  • 7 – Sending
  • 8 – Transfer
  • 9 – Arrived
  • 10 – Completed
  • 11 – Return
  • 12 – Deleted
Для отмены заказа передайте статус 5 и поле reason.
Важно! Для подтверждения заказа используйте поле accept=1, а не смену статуса заказа!
reason Код причины отказа, обязателен для указания при установке статуса status=5. Может передаваться в GET. Принимает одно из следующих значений:
  • 1 – Incorrect phone (треш)
  • 2 – Changed his mind
  • 3 – Did not order (треш)
  • 4 – Requires certificate
  • 5 – Wrong GEO (треш)
  • 6 – Errors of fake (треш)
  • 7 – Duplicate order (треш)
  • 8 – Ordered elsewhere (треш)
  • 9 – Expensive
  • 10 – Not satisfied with delivery
  • 11 – Could not get through (треш)
  • 12 – Possibly fraud (треш)
  • 13 – Speaks different language (треш)
  • 14 – Product did not fit (треш)
  • 15 – Offer disabled
check Флаг постановки заказа на проверку службой безопасности. 1 - отправить на проверку, 0 - снять с проверки. Может передаваться в GET.
track Трек-код отправленной посылки. Может передаваться в GET.
calls Увеличить количество выполненных звонков по данному заказу. Важно! В данном поле указывается не общее количество звонков, а только его прирост. Это значит, что если со времени последнего обновления количества звонков был сделан один звонок по заказу, здесь должно быть указано 1.
name ФИО заказчика
phone Телефон заказчика в формате 79876543210 (только цифры)
email E-mail заказчика
index Почтовый индекс адреса доставки в формате 127000 (только цифры)
addr Адрес доставки. Может содержать в себе полный адрес без индекса, если не используются поля ниже. В противном случае должен содержать только номер дома, корпуса, квартиры или офиса.
area Регион доставки, например, Московская обл.
city Город доставки, например Москва
street Улица по адресу доставки, например ул. Мира
delivery Используемая идентификатор службы доставки
base Стоимость единицы товара в валюте заказа
delpr Стоимость доставки в валюте заказа
discount Скидка на товар в процентах. Целое число от 0 до 99.
count Количество товара, используется для товаров без дополнительных вариантов оформления, размера, цвета и пр.
items Состав заказа, количество тех или иных вариантов товара. Принимает на входе массив, в котором ключ - идентификатор товара, значение - количество товара данного вида и его цена. Идентификаторы вариантов для своего товара уточните у администрации во время настройки интеграции. В случае указания поля items, передавать count не нужно.
more Сумма добавочной стоимости заказа, например, наценки за экспресс-доставку. Прибавляется к основной сумме заказа после учёта всех скидок.
comment Дополнительный комментарий по заказу.

Обязательным является только поле идентификатора заказа, остальные поля используются по мере надобности. Результатом выполнения функции является ассоциативный массив:

Поле Описание
status Результат выполнения операции: ok в случае успешного выполнения, error в случае ошибки
error Идентификатор ошибки: orderid при отсутствии идентификатора заказа, edit в случае отсутствия полей для обновления (например, если информация не изменялась), access-denied при работе с недоступным заказом, request-error в случае внутренней ошибки системы.

Пример успешного ответа функции:

{ "status" : "ok" }

Пример ответа функции при возникновении ошибки:

{ "status" : "error", "error" : "access-denied" }

API-интерфейс агентства позволяет сторонним партнёрским сетям и арбитражным командам загружать лиды в систему и проверять статус их обработки с помощью выгрузки. Для работы со всеми функциями необходимо обращаться к приложению ext.

URL: https://cpa.link/api/ext/{function}.json?id={user}-{key}

Добавление лида

URL: https://cpa.link/api/ext/add.json?id={user}-{key}

ID функции - add. Функция позволяет добавить новый лид от имени агентства. Данные нового лида передаются в POST-запросе.

На входе функция принимает следующие данные о лиде:

Поле Описание
id* Уникальный идентификатор заказа в рамках агентства (обязательный параметр)
wm Идентификатор вебмастера или другого источника на стороне агентства
offer* Идентификатор оффера из списка (обязательный параметр)
ip* IP-адрес заказчика (обязательный параметр)
name ФИО заказчика
phone* Телефон заказчика в формате 79876543210 (обязательный параметр)
email Электронная почта заказчика
ua User-Agent браузера заказчика
country Двухбуквенный код страны заказчика, вычисляется на основании IP-адреса
currency Трёхбуквенный код валюты заказчика, например RUB или BYN, по умолчанию вычисляется на основании страны заказчика
index Почтовый индекс адреса доставки в формате 127000
addr Адрес доставки. Может содержать в себе полный адрес без индекса, если не используются поля ниже. В противном случае содержит только номер дома, корпуса, квартиры или офиса.
area Регион доставки, например, Московская обл.
city Город доставки, например Москва
street Улица по адресу доставки, например ул. Мира
base Цена единицы товара в валюте заказа.
count Количество товара.
discount Скидка на товар в процентах.
more Сумма добавочной стоимости заказа, например, наценки за экспресс-доставку.
comm Дополнительный комментарий по заказу.
promo Промо-код, указанный заказчиком.
mobile Укажите 0 для десктоп-трафика и 1 для мобильного трафика
bad Укажите 0 для нормального трафика и 1 для подозрительного трафика

Результатом выполнения функции является ассоциативный массив:

Поле Описание
status Результат выполнения операции: ok в случае успешного выполнения, error в случае ошибки
id Идентификатор добавленного заказа (в случае успеха)
error Идентификатор ошибки: nooffer при отсутствии идентификатора оффера, noid при отсутствии идентификатора заказа на стороне агентства, nophone при отсутствии номера телефона, duplicate при наличии заказа с таким же телефоном, именем и оффером в обработке, offer если не найден указанный оффер, traffic если оффер приватный или трафик на него запрещён, security при бане пользователя, ban при бане телефона или IP-адреса заказчика, db в случае внутренней ошибки добавления данных.

Пример ответа функции:

{ "status" : "ok", "id" : 1234 }

Проверка статуса лидов

URL: https://cpa.link/api/ext/list.json?id={user}-{key}

ID функции - list. Функция позволяет получить информацию о статусе обработки отправленных лидов. На входе функция получает параметр ids, содержащий список идентификаторов лидов на стороне агентства. Параметр может передаваться в GET или POST-запросе. Идентификаторы указываются через запятую. Рекомендуется отправлять не более 50 идентификаторов в одном запросе.

Результатом выполнения функции является массив статусов лидов. Ключевой параметр - идентификатор заказа на стороне агентства. Для каждого лида указываются следующие параметры:

Поле Описание
id Идентификатор заказа на стороне агентства
src Идентификатор вебмастера (источника) на стороне агентства
uid Идентификатор заказа на стороне нашей системы
stage Символьный статус заказа:
  • new - новый заказ
  • wait - заказ в обработке
  • hold - холд
  • approve - заказ принят
  • cancel - заказ отменён
  • trash - треш
status Идентификатор статуса заказа. Принимает одно из следующих значений:
  • 1 – New order
  • 2 – Processing
  • 3 – Callback
  • 4 – Hold
  • 5 – Cancelled
  • 6 – Packing
  • 7 – Sending
  • 8 – Transfer
  • 9 – Arrived
  • 10 – Completed
  • 11 – Return
  • 12 – Deleted
reason Код причины отказа для статуса 5. Принимает одно из следующих значений:
  • 1 – Incorrect phone (треш)
  • 2 – Changed his mind
  • 3 – Did not order (треш)
  • 4 – Requires certificate
  • 5 – Wrong GEO (треш)
  • 6 – Errors of fake (треш)
  • 7 – Duplicate order (треш)
  • 8 – Ordered elsewhere (треш)
  • 9 – Expensive
  • 10 – Not satisfied with delivery
  • 11 – Could not get through (треш)
  • 12 – Possibly fraud (треш)
  • 13 – Speaks different language (треш)
  • 14 – Product did not fit (треш)
  • 15 – Offer disabled
cash Сумма отчисления по лиду
count Количество проданных единиц товара
calls Количество звонков по данному заказу (только для некоторых офферов)
comment Текстовый комментарий к заказу (при наличии)

Пример ответа функции:

[
 1234 : {
  "id": 1234, // ID заказа на стороне агентства
  "uid": 432, // ID заказа на стороне нашей системы
  "status": 5, // Код статуса заказа
  "reason": 2, // Код причины отказа
  "comment: "Мур-мур-мур-мур", // Комментарий по заказу
 },
 2345 : {
  "id": 2345, // ID заказа на стороне агентства
  "uid": 543, // ID заказа на стороне нашей системы
  "status": 6, // Код статуса заказа
  "count: 2, // Количество товара в заказе
 }
]