1) Авторизуете пользователя (получаете обратно code по запрошенным скоупам)
2) Меняете code на access_token
3) Запрашиваете данные по пользователю используя access_token (получаете список нужных вам организаций)
4) Создаете еще один запрос через API аналогичный второму пункту и получаем ЕЩЕ ОДИН access_token, но уже для организаций (обратите внимание, что grant_type уже client_credentials, а code и state используется из ответа на первый шаг)
$arParams = [
    'client_id'     => '*CLIENT_CODE*',
    'code'          => $_GET['code'],
    'grant_type'    => 'client_credentials',
    'state'         => $_GET['state'],
    'scope'         => join(' ', [
        "http://esia.gosuslugi.ru/org_inn?org_oid=*111111111*",
        "http://esia.gosuslugi.ru/org_ogrn?org_oid=*111111111*",
        "http://esia.gosuslugi.ru/org_ctts?org_oid=*111111111*",
        "http://esia.gosuslugi.ru/org_fullname?org_oid=*111111111*",
        "http://esia.gosuslugi.ru/org_type?org_oid=*111111111*",
        "http://esia.gosuslugi.ru/org_inn?org_oid=*222222222*",
        "http://esia.gosuslugi.ru/org_ogrn?org_oid=*222222222*",
        "http://esia.gosuslugi.ru/org_ctts?org_oid=*222222222*",
        "http://esia.gosuslugi.ru/org_fullname?org_oid=*222222222*",
        "http://esia.gosuslugi.ru/org_type?org_oid=*222222222*",
        "http://esia.gosuslugi.ru/org_inn?org_oid=*333333333*",
        "http://esia.gosuslugi.ru/org_ogrn?org_oid=*333333333*",
        "http://esia.gosuslugi.ru/org_ctts?org_oid=*333333333*",
        "http://esia.gosuslugi.ru/org_fullname?org_oid=*333333333*",
        "http://esia.gosuslugi.ru/org_type?org_oid=*333333333*",
    ]),
    'timestamp'     => date('Y.m.d H:i:s O'),
    'token_type'    => 'Bearer',
    'client_secret' => '*CLIENT_SECRET*',
];
5) С полученным новым токеном делаем запрос на получение информации по организации (на каждую свой):
https://esia-portal1.test.gosuslugi.ru/rs/orgs/222222222/ctts?embed=(contacts.elements)
Документация у них конечно "дно" =)