Настроить доступ к API Xiva через TVM
Шаг 1. Уточните, кому и какой доступ нужно выдать
Определите: Пример: вы хотите, чтобы приложение notifier-tst (id 2012202) получило право отправлять пуши в ксивном сервисе mail в sandbox-окружении (push-sandbox.yandex.ru).

Шаг 2. Запросите нужную роль в IDM
Запросите для своего TVM-приложения в системе Xiva роль: Например, так выглядит запрос роли mail/sandbox/publisher для notifier-tst.


Шаг 3. Выпишите TVM service-тикет
Передайте сервис из шага 1 параметром URL service= при походе в ручку API. Положите в заголовок X-Ya-Service-Ticket TVM service-тикет, выписанный от вашего src для одного из следующих dst:
Хост ID TVM-приложения
push-sandbox.yandex.ru 2002788
push.yandex-team.ru 2008783
push.yandex.TLD 2008797

Например для приложения notifier-tst:
curl -i https://push-sandbox.yandex.ru/v2/send?service=mail\&uid=123\&event=hello -d '{"payload": "hello"}' -H ''

HTTP/1.1 200 OK
Server: YaWEBServer/2.0.0
NotificationID: 200000007
TransitID: XlkDcTD3TCg1
Y-Context: XlkDcTD3TCg1
Connection: keep-alive
Content-Type: text/html
Access-Control-Allow-Origin: *
Access-Control-Expose-Headers: TransitID, Y-Context
Content-Length: 2

OK

TVM service-тикет также можно выписать с помощью tvm_curl:
SRC=2012202 DST=2002788 tvm_curl https://push-sandbox.yandex.ru/v2/send?service=mail\&uid=123\&event=hello -d '{"payload": "hello"}'

OK


Получить уведомление по WebSocket
Шаг 1. Запросите секретную подпись для упрощенной аутентификации
Этот запрос делается с бэкенда вашего сервиса. Вам понадобятся TVM service-тикет и роль subscriber для вашего бэкенда (подробнее тут).
curl -i 'https://push.yandex.ru/v2/secret_sign?service=ваш_сервис&user=john' -H ''

HTTP/1.1 200 OK
Server: YaWEBServer/2.0.0
Content-Type: application/json
Y-Context: j0eM8QMsa4Y1
Content-Length: 64

{"sign": "00a1560f46a1953645c9dd9fbcba4836", "ts": "1510268445"}
Передайте sign и ts в ваше клиентское приложение.

Шаг 2. Установите WebSocket соединение
Этот запрос делается с клиентского приложения. Подставьте полученные на предыдущем шаге sign и ts в одноименные параметры запроса.
var socket = new WebSocket( "wss://push.yandex.ru/v2/subscribe/websocket?sign=4f56e049fa551a34db07ac8e610d7da4&ts=1175892393&service=ваш_сервис&user=john&client=verstka&session=first_tab");

socket.onmessage = function(event) { console.log("new message: " + event.data); };
socket.onclose = function(event) { console.log("closed: " + event.code + " " + event.reason); };
Вам придет первое уведомление - ping от сервера. Оно означает, что соединение до транспорта в порядке.

Шаг 3. Отправьте уведомление
Этот запрос выполняется с бэкенда вашего сервиса.
curl -i 'https://push.yandex.ru/v2/send?user=john&event=greeting' -H '' -d '{ "payload" : "Привет!" }'

HTTP/1.1 200 OK
Server: YaWEBServer/2.0.0
NotificationID: 2
TransitID: NXerURMsbKo1
Y-Context: NXerURMsbKo1
Content-Type: text/html
Content-Length: 2

OK
Получить уведомление в мобильном приложении
Шаг 1. Зарегистрируйте приложение
Это разовая операция, осуществляемая в разделе "Аккаунты".
Android - в качестве имени приложения используйте имя пакета FCM.
iOS - в качестве имени приложения используйте имя сертификата APNs.


Шаг 2. Подпишитесь на уведомления
Запрос выполняется с бэкенда сервиса.
curl -i 'https://push.yandex.ru/v2/subscribe/app?service=ваш_сервис&app_name=имя_приложения&platform=ios&user=john&uuid=unique_app_installation_id' -H '' --data-urlencode 'push_token=device token'

HTTP/1.1 200 OK
Server: YaWEBServer/2.0.0
Y-Context: WxfWhUMsa0U1
Content-Type: text/html
Content-Length: 2

OK
В ответ придет HTTP код 200 и "OK" в теле ответа.

Шаг 3. Отправьте уведомление
Запрос выполняется с бэкенда сервиса. Обратите внимание, что в поле payload нужно передать корректный JSON, в противном случае сообщение будет принято, но доставляться оно будет во все подписки пользователя, кроме мобильных.
curl -i 'https://push.yandex.ru/v2/send?user=john&event=greeting' -H '' -d '{ "payload": {}, "repack": {"apns": {"aps": {"alert": "Привет!"}}, "fcm": {"notification": {"title": "Привет!", "sound": "default"}}}}'

HTTP/1.1 200 OK
Server: YaWEBServer/2.0.0
NotificationID: 3
TransitID: m0gejUMsa8c1
Y-Context: m0gejUMsa8c1
Content-Type: text/html
Content-Length: 2

OK