Общие принципы
API построено на основе протокола удаленного вызова процедур JSON-RPC 2.0.
Авторизация и безопасность
Для обеспечения безопасности используется криптографический протокол TLS v1, TLS v1.1 или TLS v1.2. 
Для того чтобы авторизоваться, платежный инструмент должен отправить HTTP заголовок Auth.
Структура заголовка Auth
HTTP заголовок: Auth: service_id-hash-timestamp 
- hash – sha1(secret_key + timestamp)
- timestamp - UTC Время подписания запроса в миллисекундах 
- service_id – Идентификатор платежного инструмента в системе PaySys. (Выдается при регистрации платежного инструмента)
- secret_key – Ключ платежного инструмента. (Выдается при регистрации платежного инструмента)
Пример HTTP заголовка: 
Auth: 05e3bab097f42yu0a62ced0b-7f420a62c22fbe3bab09ed0b57874898-1399114284039
Структура заголовка токена карты
HTTP заголовок Card-Token: token
- token – Токен карты. Выдается при регистрации карты.
Пример HTTP заголовка: 
Card-Token: reethaa7ae2jooqee90t2neiloh8wai2jo
RPC Request
RPC Запрос - это JSON объект со следующими полями:
- id - Идентификатор запроса
- method - Имя метода на удаленном сервисе
- params - Необязательный объект с параметрами метода. Если в вызываемом методе нет параметров, поле можно пропустить или присвоить ему значение NULL
ВНИМАНИЕ! В отличие от оригинального стандарта JSON-RPC, поле "params" содержит только именованные параметры.
Пример RPC запроса:
{
  "method": "method.name",
  "params": {
    "param1": "Any String",
    "param2": [
      "list",
      "of",
      "items"
    ]
  },
  "id": "744a0a7a-f33b-4aa6-a609-a8d44206b2d4"
}
RPC Response
RPC Ответ - это JSON объект со следующими полями:
- error - Объект с информацией об ошибке. Если метод выполнился без ошибок праметр будет равен NULL
- result - Объект с результатом выполнения метода
- id - Идентификатор ответа. Значение должно быть то же, что и в запросе
Пример RPC ответа:
{
  "id": "744a0a7a-f33b-4aa6-a609-a8d44206b2d4",
  "error": null,
  "result": {
    "param1": "Any String",
    "param2": [
      {
        "id": 123,
        "title": "item 123"
      },
      {
        "id": 124,
        "title": "item 124"
      }
    ]
  }
}
Пример RPC Request завершенного ошибкой
Ответ содержит:
- code - Код ошибки
- message - Описание ошибки
- data - Дополнительное поле с данными об ошибке. Может не отправляться или содержать объект с произвольными данными
{
  "id": 202,
  "error": {
    "code": -32400,
    "message": "Системная (внутренняя ошибка)",
    "data": {
      "error": 504,
      "message": "Gateway Time Out"
    }
  },
  "result": null
}