Перейти к содержанию

Запрос доступа к 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-сертификат отображаются/выдаются только один раз. При утере — перезапросите доступы.

В личном кабинете "Профиль" → "Безопасность" → "Запрос доступов" выполните:

  1. Нажмите "Запросить" или "Запросить заново", если доступы уже оформлялись.
  2. Выберите тип: Bearer-токен (рекомендуется) или SSL-сертификат.
  3. Для уровня PCI DSS отметьте "Требуется уровень PCI DSS", загрузите действующие SAQ/ASV, укажите сроки их действия.
  4. После успешной обработки вы получите письмо "Ваш доступ к API активирован", статус изменится на "Предоставлен".
Пояснение
  • При повторном запросе доступы перевыпускаются: старые Bearer-токены / SSL-сертификаты становятся недействительны.
  • Доступ к PCI DSS без валидного SAQ/ASV не выдаётся.

Использование Bearer-токена:

  1. Нажмите "Сгенерировать токен" — отобразятся Bearer-токен (для Authorization: Bearer {token}) и секретный ключ (SignSecretKey для расчёта заголовка Sign).
  2. Для тестирования используйте "Пример создания СКО" из раздела "Контрольная подпись".

Использование SSL-сертификата:

  1. Задайте пароль и нажмите "Скачать сертификат".
  2. Для тестирования использовать методы:

    С#
    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:

    Bash
    openssl pkcs12 -in cert_file.pfx -out cert_file.pem
    

    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;
        }
    ?>
    
    JSON
    {
    "OperationState": {
        "Code": 0,
        "Desc": "Успешно обработана"
    },
    "OperationId": "e8d24ac5-099b-41ce-a84a-a09b4ad9fe40",
    "Result": {
        "State": {
        "Code": 0,
        "Desc": "Успешно обработан."
        },
        "Data": "Congratulations! Your certificate is valid. Property value is value"
    }
    }
    

Продление доступа

Срок действия доступа к API — 1 год, продление выполняется автоматически. О выпуске продлённого Bearer-токена или SSL-сертификата приходит уведомление по почте. После уведомления их можно получить на вкладке «Запрос доступов». Для непрерывности интеграции планируйте ротацию Bearer-токенов и SSL-сертификатов до даты истечения.

Если используете API уровня PCI DSS, дополнительно подтверждайте соответствие по мере истечения срока SAQ. Уведомление об окончании срока придёт на почту с темой "Срок действия документа SAQ подходит к концу".

Инструкция по получению SAQ и ASV-отчёта

Пройти программу соответствия PCI DSS и получить SAQ и ASV-отчёт можно у аккредитованных поставщиков: