Использование API Для вызова функции необходимо отправить POST запрос на адрес /api/модуль/функция В body запроса передаётся JSON объект со всеми необходимыми параметрами Авторизация через cookie [deprecated] После получения session-id при логине\регистрации - можно проходить авторизацию, передавая его в cookie с именем u Авторизация по ключам В настройках проекта можно получить открытый и закрытый ключ. Ключ является уникальной авторизацией с привязкой к пользователю и проекту. В BODY пост запроса передаются те же самые данные что и раньше, но в GET (адресе) появляются дополнительные параметры ?_open=открытый ключ&_key=base64(sha256("закрытый ключ"+body)) sha256 должен браться в формате binary, а не hex Как читать документацию Billingrad API представляет собой единую точку обработки запросов и разделено на модули. Каждый модуль имеет в себе некоторый набор методов. У каждого метода описаны принимаемые на вход параметры. Если имя параметра написано в [квадратных скобках], то это означает что параметр является необязательным. Но всё равно стоит прочитать комментарий к нему, в некоторых случаях параметр может быть необязательным только при соблюдении определённых условий. [type=card] - такая запись обозначает что параметр type является необязательным и его отсутствие равнозначно передаче значения `card` Готовые обёртки для работы с API На данный момент имеются готовые обёртки для PHP и Ruby. Черновые варианты для Python и серверного JavaScript выдаются по запросу в техподдержку. Что возвращает API? Обработка ошибок Billingrad API возвращает ответ в формате json. Этот объект содержит в себе поле error, которое имеет значение либо true, либо false. Error = false возможет в следующих случаях: - Ошибка авторизации. В поле data приходит значение `Security`. Это значит что не удалась авторизация по подписи и нужно уточнить корректность генерации параметра _key - Ошибка прав доступа. Случай когда проект ещё не получил одобрения на выполнение некоторых действий. - Ошибка метода. Данные ошибки описаны в документации к самому вызываемому методу. YAML! Апи может возвращать объект в формате yaml, если указать параметр _format=yaml XML! Апи может возвращать объект в формате xml, если указать параметр _format=xml В случае если сервер не отвечает или код ответа не 200 - проведите запрос повторно через некоторое время. Идеально делать наращивание интервала проведения запроса в геометрической прогрессии (секунда, 4 секунды, 16, 64 ...). Мы постарались выстроить стабильную распределённую инфраструктуру, но не застрахованы от стихийных бедствий, проблем с интернетом (обычно со стороны серверов клиента), физическим выходом из строя 80% серверов одновременно.