Запрос доступа к API
Работа с API IntellectMoney разграничена уровнями доступа. Чем выше уровень, тем шире набор доступных методов и режимов, но тем строже требования к защите данных на стороне клиента (включая соответствие PCI DSS). В большинстве интеграций достаточно базового уровня.
Уровни доступа
| Уровень | Требования | Доступные методы | Описание |
|---|---|---|---|
| Тестовый | Зарегистрирована организация. Создан магазин с тестовым счётом и валютой TST. |
CreateInvoice BankCardPayment GetBankCardPaymentState |
Доступ в тестовом режиме не требует авторизации, если в запросах используется валюта TST.Заголовок Authorization и Sign передавать не нужно.Заявка на доступ не требуется. |
| Базовый | Дополнительно подписан договор. Магазин имеет боевой счёт и валюту счёта: RUB, USD, EUR и т. д. |
Все методы, кроме требующих уровня PCI DSS. | Выдаётся по умолчанию при создании заявки на доступ. Разрешены методы, не обрабатывающие данные платёжных карт (PAN, CVV, срок действия и т. п.). |
| PCI DSS | Дополнительно приложен сертификат SAQ и ASV-отчёт сканирования. | Все методы, включая: ActivationPay BankCardPayment CreateOperation (с банковской картой) |
Обязателен для работы с методами, обрабатывающими конфиденциальные данные держателей карт. Требуется подтверждение соответствия PCI DSS. |
Пояснение
- Тестовый доступ нужен для быстрой проверки интеграции без оформления заявок и без авторизации — при валюте
TST. - Базовый доступ покрывает большинство прод-сценариев без работы с карточными реквизитами.
- Уровень PCI DSS открывает методы, затрагивающие карточные данные, без актуального SAQ/ASV такие методы недоступны.
Типы доступа
| Тип | Рекомендуется | Описание |
|---|---|---|
| Bearer-токен | Да | Прикладная схема доступа через заголовок Authorization: Bearer {token}. Используется по умолчанию во всех сценариях, прост в выдаче, ротации и аудите. |
| SSL-сертификат | Нет | Транспортная аутентификация по TLS-сертификату. Поддерживается для легаси, но не рекомендован для новых интеграций. |
Заявка на доступ
Важно
В целях безопасности Bearer-токен, его секретный ключ и SSL-сертификат отображаются/выдаются только один раз. При утере — перезапросите доступы.
В личном кабинете "Профиль" → "Безопасность" → "Запрос доступов" выполните:
- Нажмите "Запросить" или "Запросить заново", если доступы уже оформлялись.
- Выберите тип: Bearer-токен (рекомендуется) или SSL-сертификат.
- Для уровня PCI DSS отметьте "Требуется уровень PCI DSS", загрузите действующие SAQ/ASV, укажите сроки их действия.
- После успешной обработки вы получите письмо "Ваш доступ к API активирован", статус изменится на "Предоставлен".
Пояснение
- При повторном запросе доступы перевыпускаются: старые Bearer-токены / SSL-сертификаты становятся недействительны.
- Доступ к PCI DSS без валидного SAQ/ASV не выдаётся.
Использование Bearer-токена:
- Нажмите "Сгенерировать токен" — отобразятся Bearer-токен (для
Authorization: Bearer {token}) и секретный ключ (SignSecretKeyдля расчёта заголовкаSign). - Для тестирования используйте "Пример создания СКО" из раздела "Контрольная подпись".
Использование SSL-сертификата:
- Задайте пароль и нажмите "Скачать сертификат".
-
Для тестирования использовать методы:
- Базовый доступ:
POSThttps://api.intellectmoney.ru/personal/certificate/getCertificateValidationBaseLevel. - Доступ PCI DSS:
POSThttps://api.intellectmoney.ru/personal/certificate/getCertificateValidationPcidssLevel.
С#using System; using System.Net.Http; using System.Collections.Generic; using System.Security.Authentication; using System.Security.Cryptography.X509Certificates; string certPath = @"certificate.pfx"; string certPassword = "0000"; using (X509Certificate2 certificate = new X509Certificate2(certPath, certPassword)) { HttpClientHandler clientHandler = new HttpClientHandler(); clientHandler.SslProtocols = SslProtocols.Tls12 | SslProtocols.Tls13; clientHandler.ClientCertificates.Add(certificate); clientHandler.ClientCertificateOptions = ClientCertificateOption.Manual; var requestParams = new Dictionary<string, string> { // Пример как задаются параметров запроса (метод getCertificateValidationPcidssLevel не требует параметров, но они используются для вызова других методов) ["property"] = "value", }; using (var content = new FormUrlEncodedContent(requestParams)) { using (HttpClient client = new HttpClient(clientHandler)) { using (HttpResponseMessage response = client.PostAsync($"https://api.intellectmoney.ru/personal/certificate/getCertificateValidationPcidssLevel", content).Result) { string result = response.Content.ReadAsStringAsync().Result; Console.WriteLine(result); } } } }Для использования сертификата в PHP его следует конвертировать из формата PFX в формат PEM.
Команда конвертации в OpenSSL:
PHP<?php $url = "https://api.intellectmoney.ru/personal/certificate/getCertificateValidationBaseLevel"; $cert_file = 'cert_file.pem'; $cert_password = '0000'; $ch = curl_init(); $options = array( CURLOPT_POST => true, CURLOPT_RETURNTRANSFER => true, CURLOPT_URL => $url, CURLOPT_SSLCERT => $cert_file, CURLOPT_SSLCERTPASSWD => $cert_password, ); curl_setopt_array($ch, $options); $output = curl_exec($ch); if ($output === false) { echo "Curl Error : " . curl_error($ch); } else { echo $output; } ?> - Базовый доступ:
Продление доступа
Срок действия доступа к API — 1 год, продление выполняется автоматически. О выпуске продлённого Bearer-токена или SSL-сертификата приходит уведомление по почте. После уведомления их можно получить на вкладке «Запрос доступов». Для непрерывности интеграции планируйте ротацию Bearer-токенов и SSL-сертификатов до даты истечения.
Если используете API уровня PCI DSS, дополнительно подтверждайте соответствие по мере истечения срока SAQ. Уведомление об окончании срока придёт на почту с темой "Срок действия документа SAQ подходит к концу".
Инструкция по получению SAQ и ASV-отчёта
Пройти программу соответствия PCI DSS и получить SAQ и ASV-отчёт можно у аккредитованных поставщиков:
- Список на сайте PCI SSC.
- Пример поставщика, регистрация, продажи: InfoSales@Trustwave.com, 888-878-7817.