Russian
Запросы API
Запросы Cardsmobile к эмитенту и эмитента к Cardsmobile при выпуске и обслуживании экземпляра продукта
post
https://<issuer-URL>
/product/form/requestProduct
Запрос на выпуск экземпляра продукта пользователю
Запрос направляется от Cardsmobile к эмитенту.

Пример тела запроса:

1
{
2
"productRequestId": "4ee64eb1-0012-4cd0-aefe-966d48ea7b71",
3
"productId": "AAA_1",
4
"platform": "ANDROID",
5
"form": {...}
6
}
Copied!
post
https://<CM-URL>
/product/form/notifyRequestProductResult
Ответ на запрос выпуска экземпляра продукта со стороны эмитента
Запрос направляется от эмитента к Cardsmobile.

Пример тела запроса:

1
{
2
"productRequestId": "4ee64eb1-0012-4cd0-aefe-966d48ea7b71",
3
"issuerId": 5,
4
"status": "AUTHENTICATION_REQUIRED",
5
"authenticationMethods": [
6
{
7
"methodId": 4,
8
"type": "WEB_LINK",
9
"value": "https://my-bank/card"
10
}
11
]
12
"userMessage": "Требуется дополнительная аутентификация пользователя"
13
}
Copied!
См. описание объекта AuthenticationMethod.
post
https://<issuer-URL>
/product/form/authentication/selectedMethod
Передача эмитенту способа аутентификации, выбранного пользователем
Запрос направляется от Cardsmobile к эмитенту. Перечень допустимых методов идентификации предварительно согласовывается эмитентом и Cardsmobile.

Пример тела запроса:

1
{
2
"productRequestId": "4ee64eb1-0012-4cd0-aefe-966d48ea7b71",
3
"methodId": 2
4
}
Copied!
post
https://<CM-URL>
/product/form/authentication/authenticate
Передача ответа пользователя в рамках проверки аутентификации
Запрос направляется от Cardsmobile к эмитенту.

Пример тела запроса:

1
{
2
"productRequestId": "4ee64eb1-0012-4cd0-aefe-966d48ea7b71",
3
"value": "12345"
4
}
Copied!
post
https://<issuer-URL>
/product/provision/provisionRequest
Запрос доставки продукта пользователю со стороны Cardsmobile
Запрос направляется от Cardsmobile к эмитенту.

Пример тела запроса:

1
{
2
"productRequestId": "4ee64eb1-0012-4cd0-aefe-966d48ea7b71",
3
"appleWalletProvisionRequest": {},
4
"encryptedPayload": {}
5
}
Copied!

Передача зашифрованных данных

Поле encryptedPayload заполняется только в случае, если ожидается, что эмитент будет передавать Cardsmobile в ответном запросе чувствительные данные карты, например — проверочный код CVC2/CVV2. Расшифрованное значение поля encryptedData объекта EncryptedPayload имеет вид объекта JSON:
1
{
2
"appOneTimePublicKey": "<значение ключа>"
3
}
Copied!
где appOneTimePublicKey — одноразовый открытый ключ экземпляра мобильного приложения «Кошелёк».
Поле appleWalletProvisionRequest заполняется только в случае, если выпущенный экземпляр продукта подлежит загрузке в Apple Wallet.
post
https://<CM-URL>
/product/provision/provisionResult
Ответ эмитента на запрос на загрузку карты
Запрос направляется от эмитента к Cardsmobile.

Пример тела запроса:

1
{
2
"productRequestId": "4ee64eb1-0012-4cd0-aefe-966d48ea7b71",
3
"productInstanceId": "cf94bc49-333b-491a-ba8b-9329849ed7e5",
4
"issuerId": 5,
5
"encryptedPayload1": {...},
6
"encryptedPayload2": {...},
7
"appleWalletProvisionResponse": ""
8
}
Copied!

Передача зашифрованных данных

В поле encryptedPayload1 передается объект EncryptedPayload, расшифрованное значение поля encryptedData которого имеет вид объекта JSON:
Поле
Тип
Обязательно
Описание
type
String
Да
Тип банковского продукта, например: BANK_CARD.
pan
String
Нет
PAN (Номер банковской карты), если type=BANK_CARD.
expDate
String
Нет
Дата окончания действия карты, если type=BANK_CARD.
statusId
String
Нет
Идентификатор статуса карты, если type=BANK_CARD.
cardHolderName
String
Нет
Имя владельца карты, если type=BANK_CARD.
Пример расшифрованного значения encryptedPayload1.encryptedData:
1
{
2
"type": "BANK_CARD",
3
"pan": "1111 1111 1111 1111",
4
"expDate": "01/23",
5
"statusId": "2",
6
"cardHolderName": "IVAN IVANOV"
7
}
Copied!
По согласованию с эмитентом, набор передаваемых в запросе полей может быть дополнен. Например, это может быть использовано в следующих ситуациях:
  • Для передачи идентификатора клиента в системе лояльности ритейлера для обладателя выпускаемой банковской карты, если она — кобрендинговая, то есть совмещена с картой лояльности ритейлера,
  • Для передачи TAV (Tokenization Authentication Value) для последующей токенизации выпущенной виртуальной карты по «зеленому» пути.
Поле encryptedPayload2 передается только если эмитент сообщает Cardsmobile контрольный код CVN (CVC2/CVV2). В этом поле передается объект EncryptedPayload, расшифрованное значение поля encryptedData которого имеет вид объекта JSON:
1
{
2
"value": "<значение CVN>"
3
}
Copied!
Ключ RGK для объекта в поле encryptedPayload2 должен быть зашифрован одноразовым открытым ключом, отправленным эмитенту от Cardsmobile в поле appOneTimePublicKey зашифрованного объекта, переданного в запросе provisionRequest. В этом случае поле encryptedPayload2.encryptedData возможно расшифровать только на в экземпляре мобильного приложения «Кошелёк», работающем на устройстве пользователя-получателя сведений о карте.
Поле encryptedPayload1.encryptedData возможно расшифровать только на узле Cardsmobile.
post
https://<issuer-URL>
/product/instance/requestProductInfo
Запрос клиентом данных карты по альтернативным каналам
Запрос направляется от Cardsmobile к эмитенту. Необязательный запрос.

Пример тела запроса:

1
{
2
"productRequestId": "4ee64eb1-0012-4cd0-aefe-966d48ea7b71",
3
"productInstanceId": "cf94bc49-333b-491a-ba8b-9329849ed7e5",
4
"deliveryMethodId": 2,
5
"requestedParamIds": [1, 3]
6
}
Copied!
В случае использование этого запроса при взаимодействии с Cardsmobile, эмитент должен определить варианты доставки пользователю информации по продукту. При необходимости перечень идентификаторов может быть дополнен.
post
https://<CM-URL>
/product/instance/notifyProductInstanceUpdated
Оповещение об изменении статуса выпущенного экземпляра продукта со стороны эмитента
Запрос направляется от эмитента к Cardsmobile. Необязательный запрос.

Пример тела запроса:

1
{
2
"requestId": "896a0038-e2d5-4248-964d-fe6caf9130d9",
3
"issuerId": 5,
4
"productInstanceId": "cf94bc49-333b-491a-ba8b-9329849ed7e5",
5
"encryptedPayload": {...},
6
}
Copied!

Передача зашифрованных данных

В поле encryptedPayload передается объект EncryptedPayload, расшифрованное значение поля encryptedData которого имеет вид объекта JSON:
Поле
Тип
Обязательно
Описание
statusId
Integer
Да
Идентификатор статуса экземпляра продукта, в который его перевел эмитент.
userMessage
String
Да
Сообщение пользователю от эмитента (не более 200 символов, кодировка UTF-8).
Пример расшифрованного значения encryptedPayload.encryptedData:
1
{
2
"statusId": 3,
3
"userMessage": "Карта заблокирована"
4
}
Copied!
post
https://<issuer-URL>
/product/instance/сhangeProductInstanceRequest
Запрос на изменение статуса выпущенного экземпляра продукта со стороны клиента
Запрос направляется от Cardsmobile к эмитенту. Необязательный запрос.

Пример тела запроса:

1
{
2
"requestId": "896a0038-e2d5-4248-964d-fe6caf9130d9",
3
"productInstanceId": "cf94bc49-333b-491a-ba8b-9329849ed7e5",
4
"encryptedPayload": {...}
5
}
Copied!

Передача зашифрованных данных

В поле encryptedPayload передается объект EncryptedPayload, расшифрованное значение поля encryptedData которого имеет вид объекта JSON:
Поле
Тип
Обязательно
Описание
statusId
Integer
Да
Идентификатор статуса экземпляра продукта, который к нему желает применить пользователь.
Пример расшифрованного значения encryptedPayload.encryptedData:
1
{
2
"statusId": 3
3
}
Copied!
post
https://<issuer-URL>
/product/instance/statusRequest
Запрос текущего баланса продукта
Запрос направляется от Cardsmobile к эмитенту. Необязательный запрос.

Пример тела запроса:

1
{
2
"requestId": "896a0038-e2d5-4248-964d-fe6caf9130d9",
3
"productInstanceId": "cf94bc49-333b-491a-ba8b-9329849ed7e5"
4
}
Copied!
post
https://<CM-URL>
/product/instance/notifyStatusDetails
Передача информации по балансу карты
Запрос направляется от эмитента к Cardsmobile. Необязательный запрос.

Пример тела запроса:

1
{
2
"requestId": "1e8650dd-b52e-4b6c-b526-75aa6b00cae2",
3
"issuerId": 5,
4
"productInstanceId": "cf94bc49-333b-491a-ba8b-9329849ed7e5",
5
"amount": 631.15,
6
"currencyCode": "RUB"
7
}
Copied!
post
https://<issuer-URL>
/product/instance/getTransactionHistory
Запрос истории транзакций по продукту
Запрос направляется от Cardsmobile к эмитенту. Необязательный запрос.

Пример тела запроса:

1
{
2
"requestId": "295914cd-2ada-49cd-93ba-172e37e13af5",
3
"productInstanceId": "cf94bc49-333b-491a-ba8b-9329849ed7e5",
4
"fromTimestamp": "2019-06-05T18:23:05+03:00",
5
"limit": 10
6
}
Copied!
post
https://<CM-URL>
/product/instance/notifyTransactionHistory
Передача истории транзакций по продукту
Запрос направляется от эмитента к Cardsmobile. Необязательный запрос.

Пример тела запроса:

1
{
2
"requestId": "d204cd1b-a78a-4ec3-a356-9231dbe57cac",
3
"issuerId": 2,
4
"productInstanceId": "cf94bc49-333b-491a-ba8b-9329849ed7e5",
5
"productTransactions":
6
[
7
{
8
"transactionId": "f477f5e3-5a06-4ea2-a0eb-b2ba12215674",
9
"transactionType": "PURCHASE",
10
"amount": 125.87,
11
"currencyCode": "RUB",
12
"authorizationStatus": "AUTHORIZED",
13
"timestamp": "2019-06-05T18:23:05+03:00",
14
"merchantName": "...",
15
"merchantType": "5812"
16
}
17
]
18
}
Copied!
См. описание объекта ProductTransaction.
post
https://<CM-URL>
/product/instance/notifyActualTransaction
Уведомление о текущей транзакции
Запрос направляется от эмитента к Cardsmobile. Необязательный запрос.

Пример тела запроса:

1
{
2
"requestId": "d204cd1b-a78a-4ec3-a356-9231dbe57cac",
3
"issuerId": 2,
4
"productInstanceId": "cf94bc49-333b-491a-ba8b-9329849ed7e5",
5
"productTransaction":
6
{
7
"transactionId": "f477f5e3-5a06-4ea2-a0eb-b2ba12215674",
8
"transactionType": "PURCHASE",
9
"amount": 125.87,
10
"currencyCode": "RUB",
11
"authorizationStatus": "AUTHORIZED",
12
"timestamp": "2019-06-05T18:23:05+03:00",
13
"merchantName": "...",
14
"merchantType": "5812"
15
}
16
}
Copied!
См. описание объекта ProductTransaction.
Last modified 18d ago