{
	"info": {
		"_postman_id": "021ea3ff-5ae4-4070-aba5-6fabe3f05ce9",
		"name": "API Расчётов по номинальному счёту",
		"schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json",
		"_exporter_id": "52069276",
		"_collection_link": "https://vyacheslavv-work-1699923.postman.co/workspace/q's-Workspace~476ada41-b4da-40c1-8c64-8f722f42456f/collection/52069276-021ea3ff-5ae4-4070-aba5-6fabe3f05ce9?action=share&source=collection_link&creator=52069276"
	},
	"item": [
		{
			"name": "Доступность сервиса",
			"item": [
				{
					"name": "Проверить доступность сервиса",
					"event": [
						{
							"listen": "test",
							"script": {
								"exec": [
									""
								],
								"type": "text/javascript",
								"packages": {}
							}
						}
					],
					"request": {
						"auth": {
							"type": "noauth"
						},
						"method": "POST",
						"header": [
							{
								"key": "sign-system",
								"value": "{{system_id}}",
								"type": "text"
							},
							{
								"key": "sign-thumbprint",
								"value": "{{sign-thumbprint}}",
								"type": "text"
							},
							{
								"key": "sign-data",
								"value": "{{sign-data}}",
								"type": "text"
							}
						],
						"body": {
							"mode": "raw",
							"raw": "{\r\n    \"id\": \"{{$guid}}\",\r\n    \"jsonrpc\": \"2.0\",\r\n    \"method\": \"echo\",\r\n    \"params\": {\r\n        \"text\": \"Hello world!\"\r\n    }\r\n}",
							"options": {
								"raw": {
									"language": "json"
								}
							}
						},
						"url": {
							"raw": "{{cyclops}}/v2/jsonrpc",
							"host": [
								"{{cyclops}}"
							],
							"path": [
								"v2",
								"jsonrpc"
							]
						},
						"description": "Проверка работоспособности сервиса"
					},
					"response": []
				}
			]
		},
		{
			"name": "Бенефициары",
			"item": [
				{
					"name": "Создать бенефициара — юрлицо",
					"event": [
						{
							"listen": "test",
							"script": {
								"exec": [
									"var jsonData = JSON.parse(responseBody);\r",
									"postman.setEnvironmentVariable(\"beneficiary_id\", jsonData.result.beneficiary.id);\r",
									"var jsonData = JSON.parse(responseBody);\r",
									"postman.setEnvironmentVariable(\"inn\", jsonData.result.beneficiary.inn);"
								],
								"type": "text/javascript",
								"packages": {}
							}
						},
						{
							"listen": "prerequest",
							"script": {
								"exec": [
									"function generateINN() {",
									"    let inn = '';",
									"    for (let i = 0; i < 9; i++) {",
									"        inn += Math.floor(Math.random() * 10); // генерация случайной цифры от 0 до 9",
									"    }",
									"    ",
									"    // Вычисление контрольной суммы",
									"    const weights = [2, 4, 10, 3, 5, 9, 4, 6, 8];",
									"    let controlSum = 0;",
									"    for (let i = 0; i < 9; i++) {",
									"        controlSum += parseInt(inn[i]) * weights[i];",
									"    }",
									"    ",
									"    // Вычисление контрольного числа",
									"    let controlNumber = controlSum % 11;",
									"    if (controlNumber > 9) {",
									"        controlNumber %= 10;",
									"    }",
									"    ",
									"    inn += controlNumber; // Добавление контрольного числа в конец ИНН",
									"    ",
									"    return inn;",
									"}",
									"",
									"// Генерация ИНН и сохранение в переменную окружения Postman",
									"pm.environment.set(\"inn_ten_digit\", generateINN());"
								],
								"type": "text/javascript",
								"packages": {}
							}
						}
					],
					"request": {
						"auth": {
							"type": "noauth"
						},
						"method": "POST",
						"header": [
							{
								"key": "sign-system",
								"value": "{{system_id}}",
								"type": "text"
							},
							{
								"key": "sign-thumbprint",
								"value": "{{sign-thumbprint}}",
								"type": "text"
							},
							{
								"key": "sign-data",
								"value": "{{sign-data}}",
								"type": "text"
							}
						],
						"body": {
							"mode": "raw",
							"raw": "{\r\n    \"id\": \"{{$guid}}\",\r\n    \"jsonrpc\": \"2.0\",\r\n    \"method\": \"create_beneficiary_ul\", //Метод\r\n    \"params\": {\r\n        \"inn\": \"{{inn_ten_digit}}\", //Инн\r\n        \"beneficiary_data\": {\r\n            \"name\": \"ЗАО \\\"Пегас\\\"\", //Название организации\r\n            \"kpp\": \"347233122\" //КПП \r\n        }\r\n    }\r\n}",
							"options": {
								"raw": {
									"language": "json"
								}
							}
						},
						"url": {
							"raw": "{{cyclops}}/v2/jsonrpc",
							"host": [
								"{{cyclops}}"
							],
							"path": [
								"v2",
								"jsonrpc"
							]
						}
					},
					"response": []
				},
				{
					"name": "Создать бенефициара — ИП или физлицо (v3)",
					"event": [
						{
							"listen": "test",
							"script": {
								"exec": [
									"var jsonData = JSON.parse(responseBody);",
									"postman.setEnvironmentVariable(\"beneficiary_id\", jsonData.result.beneficiary.id);",
									"var jsonData = JSON.parse(responseBody);",
									"postman.setEnvironmentVariable(\"inn\", jsonData.result.beneficiary.inn);",
									""
								],
								"type": "text/javascript",
								"packages": {}
							}
						},
						{
							"listen": "prerequest",
							"script": {
								"exec": [
									"// Функция для генерации случайного числа в заданном диапазоне",
									"function getRandomInt(min, max) {",
									"    return Math.floor(Math.random() * (max - min + 1)) + min;",
									"}",
									"",
									"// Функция для вычисления контрольного числа",
									"function calculateControlNumber(digits, weights) {",
									"    let sum = 0;",
									"    for (let i = 0; i < digits.length; i++) {",
									"        sum += parseInt(digits[i]) * weights[i];",
									"    }",
									"    let controlNumber = sum % 11;",
									"    if (controlNumber > 9) {",
									"        controlNumber %= 10;",
									"    }",
									"    return controlNumber;",
									"}",
									"",
									"// Функция для генерации ИНН",
									"function generateINN() {",
									"    const weights1 = [7, 2, 4, 10, 3, 5, 9, 4, 6, 8, 0];",
									"    const weights2 = [3, 7, 2, 4, 10, 3, 5, 9, 4, 6, 8, 0];",
									"",
									"    // Генерируем случайные первые 10 цифр",
									"    let digits = '';",
									"    for (let i = 0; i < 10; i++) {",
									"        digits += getRandomInt(0, 9);",
									"    }",
									"",
									"    // Вычисляем контрольные числа",
									"    const controlNumber1 = calculateControlNumber(digits, weights1);",
									"    const controlNumber2 = calculateControlNumber(digits + controlNumber1, weights2);",
									"",
									"    // Составляем полный ИНН",
									"    const INN = digits + controlNumber1.toString() + controlNumber2.toString();",
									"    ",
									"    // Возвращаем сгенерированный ИНН",
									"    return INN;",
									"}",
									"",
									"// Генерация ИНН",
									"const generatedINN = generateINN();",
									"console.log('Сгенерированный ИНН:', generatedINN);",
									"",
									"// Сохранение сгенерированного ИНН в переменную окружения в Postman",
									"pm.environment.set(\"inn_12_digit\", generatedINN);"
								],
								"type": "text/javascript",
								"packages": {}
							}
						}
					],
					"request": {
						"auth": {
							"type": "noauth"
						},
						"method": "POST",
						"header": [
							{
								"key": "sign-system",
								"value": "{{system_id}}",
								"type": "text"
							},
							{
								"key": "sign-thumbprint",
								"value": "{{sign-thumbprint}}",
								"type": "text"
							},
							{
								"key": "sign-data",
								"value": "{{sign-data}}",
								"type": "text"
							}
						],
						"body": {
							"mode": "raw",
							"raw": "{\r\n    \"id\": \"{{$guid}}\",\r\n    \"jsonrpc\": \"2.0\",\n    \"method\": \"create_beneficiary\", //Метод\n    \"params\": {\n        \"legal_type\": \"F\",  //Субъект права (ИП или физлицо)\n        \"inn\": \"{{inn_12_digit}}\", //ИНН\n        \"nominal_account_data\": {\n            \"code\": \"40802810920000265507\",  //Номер номинального счёта\n            \"bic\": \"044525104\"  //БИК\n            },\n        \"beneficiary_data\": {\n            \"registration_address\": \"г. Екатеринбург, ул. Сакко и Ванцетти, д. 61, кв. 98\", //Адрес регистрации\n            \"tax_resident\": true  //Налоговое резидентство РФ\n        }\n    }\n}",
							"options": {
								"raw": {
									"language": "json"
								}
							}
						},
						"url": {
							"raw": "{{cyclops}}/v3/jsonrpc",
							"host": [
								"{{cyclops}}"
							],
							"path": [
								"v3",
								"jsonrpc"
							]
						}
					},
					"response": []
				},
				{
					"name": "Добавить документы бенефициара — ИП или физлица (v3)",
					"event": [
						{
							"listen": "test",
							"script": {
								"exec": [
									""
								],
								"type": "text/javascript",
								"packages": {}
							}
						},
						{
							"listen": "prerequest",
							"script": {
								"exec": [
									"// Функция для генерации случайного числа в заданном диапазоне",
									"function getRandomInt(min, max) {",
									"    return Math.floor(Math.random() * (max - min + 1)) + min;",
									"}",
									"",
									"// Функция для вычисления контрольного числа",
									"function calculateControlNumber(digits, weights) {",
									"    let sum = 0;",
									"    for (let i = 0; i < digits.length; i++) {",
									"        sum += parseInt(digits[i]) * weights[i];",
									"    }",
									"    let controlNumber = sum % 11;",
									"    if (controlNumber > 9) {",
									"        controlNumber %= 10;",
									"    }",
									"    return controlNumber;",
									"}",
									"",
									"// Функция для генерации ИНН",
									"function generateINN() {",
									"    const weights1 = [7, 2, 4, 10, 3, 5, 9, 4, 6, 8, 0];",
									"    const weights2 = [3, 7, 2, 4, 10, 3, 5, 9, 4, 6, 8, 0];",
									"",
									"    // Генерируем случайные первые 10 цифр",
									"    let digits = '';",
									"    for (let i = 0; i < 10; i++) {",
									"        digits += getRandomInt(0, 9);",
									"    }",
									"",
									"    // Вычисляем контрольные числа",
									"    const controlNumber1 = calculateControlNumber(digits, weights1);",
									"    const controlNumber2 = calculateControlNumber(digits + controlNumber1, weights2);",
									"",
									"    // Составляем полный ИНН",
									"    const INN = digits + controlNumber1.toString() + controlNumber2.toString();",
									"    ",
									"    // Возвращаем сгенерированный ИНН",
									"    return INN;",
									"}",
									"",
									"// Генерация ИНН",
									"const generatedINN = generateINN();",
									"console.log('Сгенерированный ИНН:', generatedINN);",
									"",
									"// Сохранение сгенерированного ИНН в переменную окружения в Postman",
									"pm.environment.set(\"inn_12_digit\", generatedINN);"
								],
								"type": "text/javascript",
								"packages": {}
							}
						}
					],
					"request": {
						"auth": {
							"type": "noauth"
						},
						"method": "POST",
						"header": [
							{
								"key": "sign-system",
								"value": "{{system_id}}",
								"type": "text"
							},
							{
								"key": "sign-thumbprint",
								"value": "{{sign-thumbprint}}",
								"type": "text"
							},
							{
								"key": "sign-data",
								"value": "{{sign-data}}",
								"type": "text"
							}
						],
						"body": {
							"mode": "raw",
							"raw": "{\n   \"id\": \"{{$guid}}\", //id запроса\n   \"jsonrpc\": \"2.0\",\n   \"method\": \"add_beneficiary_documents_data\", //Метод\n   \"params\": {\n       \"beneficiary_id\": \"{{beneficiary_id}}\", //id бенефициара\n       \"documents\": [\n           {\n               \"type\": \"inn_f\", //Тип документа\n               \"inn\": \"{{inn_12_digit}}\", //ИНН\n               \"birth_place\": \"г. Москва\" //Место рождения\n           },\n           {\n               \"type\": \"internal_passport\", //Тип документа\n               \"series\": \"1234\", //Серия паспорта\n               \"number\": \"567890\", //Номер паспорта\n               \"first_name\": \"Юрий\", //Имя\n               \"middle_name\": \"Иванович\", //Отчество\n               \"last_name\": \"Васильев\", //Фамилия\n               \"birth_date\": \"1990-01-08\", //Дата рождения\n               \"issuer_code\": \"314\", //Код подразделения, выдавшего паспорт\n               \"issuer_date\": \"2010-01-22\" //Дата выдачи паспорта\n           }\n       ]\n   }\n}",
							"options": {
								"raw": {
									"language": "json"
								}
							}
						},
						"url": {
							"raw": "{{cyclops}}/v3/jsonrpc",
							"host": [
								"{{cyclops}}"
							],
							"path": [
								"v3",
								"jsonrpc"
							]
						}
					},
					"response": []
				},
				{
					"name": "Загрузить документ по бенефициару",
					"event": [
						{
							"listen": "test",
							"script": {
								"exec": [
									"var jsonData = JSON.parse(responseBody);\r",
									"postman.setEnvironmentVariable(\"documentId\", jsonData.document_id);\r",
									""
								],
								"type": "text/javascript",
								"packages": {}
							}
						}
					],
					"request": {
						"auth": {
							"type": "noauth"
						},
						"method": "POST",
						"header": [
							{
								"key": "sign-system",
								"value": "{{system_id}}",
								"type": "text"
							},
							{
								"key": "sign-thumbprint",
								"value": "{{sign-thumbprint}}",
								"type": "text"
							},
							{
								"key": "sign-data",
								"value": "{{sign-data}}",
								"type": "text"
							},
							{
								"key": "Content-Type",
								"value": "application/pdf",
								"type": "text"
							}
						],
						"body": {
							"mode": "file",
							"file": {
								"src": ""
							}
						},
						"url": {
							"raw": "{{cyclops}}/upload_document/beneficiary?beneficiary_id={{beneficiary_id}}&document_type=contract_offer&document_date=2022-07-21&document_number=0001",
							"host": [
								"{{cyclops}}"
							],
							"path": [
								"upload_document",
								"beneficiary"
							],
							"query": [
								{
									"key": "beneficiary_id",
									"value": "{{beneficiary_id}}",
									"description": "ID бенефициара"
								},
								{
									"key": "document_type",
									"value": "contract_offer",
									"description": "Тип документа. Возможно только значение contract_offer — договор-оферта"
								},
								{
									"key": "document_date",
									"value": "2022-07-21",
									"description": "Дата подписания документа в  формате ГГГГ-ММ-ДД"
								},
								{
									"key": "document_number",
									"value": "0001",
									"description": "Номер документа"
								}
							]
						}
					},
					"response": []
				},
				{
					"name": "Получить данные загруженного документа",
					"request": {
						"auth": {
							"type": "noauth"
						},
						"method": "POST",
						"header": [
							{
								"key": "sign-system",
								"value": "{{system_id}}",
								"type": "text"
							},
							{
								"key": "sign-thumbprint",
								"value": "{{sign-thumbprint}}",
								"type": "text"
							},
							{
								"key": "sign-data",
								"value": "{{sign-data}}",
								"type": "text"
							}
						],
						"body": {
							"mode": "raw",
							"raw": "{\r\n    \"id\": \"{{$guid}}\", //id запроса\r\n    \"jsonrpc\": \"2.0\",\r\n    \"method\": \"get_document\", //Метод\r\n    \"params\": {\r\n        \"document_id\": \"{{documentId}}\"//id документа\r\n    }\r\n}",
							"options": {
								"raw": {
									"language": "json"
								}
							}
						},
						"url": {
							"raw": "{{cyclops}}/v2/jsonrpc",
							"host": [
								"{{cyclops}}"
							],
							"path": [
								"v2",
								"jsonrpc"
							]
						}
					},
					"response": []
				},
				{
					"name": "Создать виртуальный счёт",
					"event": [
						{
							"listen": "test",
							"script": {
								"exec": [
									"var jsonData = JSON.parse(responseBody);\r",
									"postman.setEnvironmentVariable(\"virtual_account\", jsonData.result.virtual_account);\r",
									"\r",
									""
								],
								"type": "text/javascript",
								"packages": {}
							}
						},
						{
							"listen": "prerequest",
							"script": {
								"packages": {},
								"type": "text/javascript"
							}
						}
					],
					"request": {
						"auth": {
							"type": "noauth"
						},
						"method": "POST",
						"header": [
							{
								"key": "sign-system",
								"value": "{{system_id}}",
								"type": "text"
							},
							{
								"key": "sign-thumbprint",
								"value": "{{sign-thumbprint}}",
								"type": "text"
							},
							{
								"key": "sign-data",
								"value": "{{sign-data}}",
								"type": "text"
							}
						],
						"body": {
							"mode": "raw",
							"raw": "{\r\n    \"id\": \"{{$guid}}\", //id запроса\r\n    \"jsonrpc\": \"2.0\",\r\n    \"method\": \"create_virtual_account\", //Метод\r\n    \"params\": {\r\n        \"beneficiary_id\": \"{{beneficiary_id}}\", //id бенефицара\r\n        \"virtual_account_type\": \"standard\" //Тип виртуального счёта (standard для сделок)\r\n        \r\n    }\r\n}",
							"options": {
								"raw": {
									"language": "json"
								}
							}
						},
						"url": {
							"raw": "{{cyclops}}/v2/jsonrpc",
							"host": [
								"{{cyclops}}"
							],
							"path": [
								"v2",
								"jsonrpc"
							]
						}
					},
					"response": []
				},
				{
					"name": "Деактивировать бенефициара",
					"request": {
						"auth": {
							"type": "noauth"
						},
						"method": "POST",
						"header": [
							{
								"key": "sign-system",
								"value": "{{system_id}}",
								"type": "text"
							},
							{
								"key": "sign-thumbprint",
								"value": "{{sign-thumbprint}}",
								"type": "text"
							},
							{
								"key": "sign-data",
								"value": "{{sign-data}}",
								"type": "text"
							}
						],
						"body": {
							"mode": "raw",
							"raw": "{\r\n    \"id\": \"{{$guid}}\", //id запроса\r\n    \"jsonrpc\": \"2.0\",\r\n    \"method\": \"deactivate_beneficiary\",\r\n    \"params\": {\r\n        \"beneficiary_id\": \"{{beneficiary_id}}\" //id бенефициара\r\n    }\r\n}",
							"options": {
								"raw": {
									"language": "json"
								}
							}
						},
						"url": {
							"raw": "{{cyclops}}/v2/jsonrpc",
							"host": [
								"{{cyclops}}"
							],
							"path": [
								"v2",
								"jsonrpc"
							]
						}
					},
					"response": []
				},
				{
					"name": "Активировать бенефициара",
					"request": {
						"auth": {
							"type": "noauth"
						},
						"method": "POST",
						"header": [
							{
								"key": "sign-system",
								"value": "{{system_id}}",
								"type": "text"
							},
							{
								"key": "sign-thumbprint",
								"value": "{{sign-thumbprint}}",
								"type": "text"
							},
							{
								"key": "sign-data",
								"value": "{{sign-data}}",
								"type": "text"
							}
						],
						"body": {
							"mode": "raw",
							"raw": "{\r\n    \"id\": \"{{$guid}}\", //id запроса\r\n    \"jsonrpc\": \"2.0\",\r\n    \"method\": \"activate_beneficiary\",\r\n    \"params\": {\r\n        \"beneficiary_id\": \"{{beneficiary_id}}\" //id бенефициара\r\n    }\r\n}",
							"options": {
								"raw": {
									"language": "json"
								}
							}
						},
						"url": {
							"raw": "{{cyclops}}/v2/jsonrpc",
							"host": [
								"{{cyclops}}"
							],
							"path": [
								"v2",
								"jsonrpc"
							]
						}
					},
					"response": []
				},
				{
					"name": "Обновить бенефициара — юрлицо",
					"request": {
						"auth": {
							"type": "noauth"
						},
						"method": "POST",
						"header": [
							{
								"key": "sign-system",
								"value": "{{system_id}}",
								"type": "text"
							},
							{
								"key": "sign-thumbprint",
								"value": "{{sign-thumbprint}}",
								"type": "text"
							},
							{
								"key": "sign-data",
								"value": "{{sign-data}}",
								"type": "text"
							}
						],
						"body": {
							"mode": "raw",
							"raw": "{\r\n    \"id\": \"{{$guid}}\", //id запроса\r\n    \"jsonrpc\": \"2.0\",\r\n    \"method\": \"update_beneficiary_ul\", //Метод\r\n    \"params\": {\r\n        \"beneficiary_id\": \"{{beneficiary_id}}\", //id бенефициара\r\n        \"beneficiary_data\": {\r\n            \"name\": \"ООО \\\"Точка Банк\\\"\", //Название юрлица\r\n            \"kpp\": \"770201001\" //КПП\r\n        }\r\n    }\r\n}",
							"options": {
								"raw": {
									"language": "json"
								}
							}
						},
						"url": {
							"raw": "{{cyclops}}/v2/jsonrpc",
							"host": [
								"{{cyclops}}"
							],
							"path": [
								"v2",
								"jsonrpc"
							]
						}
					},
					"response": []
				},
				{
					"name": "Получить данные бенефициара",
					"request": {
						"auth": {
							"type": "noauth"
						},
						"method": "POST",
						"header": [
							{
								"key": "sign-system",
								"value": "{{system_id}}",
								"type": "text"
							},
							{
								"key": "sign-thumbprint",
								"value": "{{sign-thumbprint}}",
								"type": "text"
							},
							{
								"key": "sign-data",
								"value": "{{sign-data}}",
								"type": "text"
							}
						],
						"body": {
							"mode": "raw",
							"raw": "{\r\n    \"id\": \"{{$guid}}\", //id запроса\r\n    \"jsonrpc\": \"2.0\",\r\n    \"method\": \"get_beneficiary\", //Метод\r\n    \"params\": {\r\n        \"beneficiary_id\": \"{{beneficiary_id}}\" //id бенефициара\r\n    }\r\n}",
							"options": {
								"raw": {
									"language": "json"
								}
							}
						},
						"url": {
							"raw": "{{cyclops}}/v2/jsonrpc",
							"host": [
								"{{cyclops}}"
							],
							"path": [
								"v2",
								"jsonrpc"
							]
						}
					},
					"response": []
				}
			]
		},
		{
			"name": "Платежи",
			"item": [
				{
					"name": "Пополнить счёт",
					"event": [
						{
							"listen": "test",
							"script": {
								"exec": [
									"var jsonData = JSON.parse(responseBody);\r",
									"postman.setEnvironmentVariable(\"paymentId\", jsonData.result.service_pay_key);"
								],
								"type": "text/javascript",
								"packages": {}
							}
						},
						{
							"listen": "prerequest",
							"script": {
								"exec": [
									"function randomString(length=1) {\r",
									"    let randomString = \"\";\r",
									"    for (let i = 0; i < length; i++){\r",
									"        randomString += pm.variables.replaceIn(\"{{$randomAlphaNumeric}}\");\r",
									"    }\r",
									"    return randomString;\r",
									"}\r",
									"\r",
									"STRING_LEN = 206\r",
									"pm.variables.set('randomString', randomString(STRING_LEN));\r",
									""
								],
								"type": "text/javascript",
								"packages": {}
							}
						}
					],
					"request": {
						"auth": {
							"type": "noauth"
						},
						"method": "POST",
						"header": [
							{
								"key": "sign-data",
								"value": "{{sign-data}}",
								"type": "text"
							},
							{
								"key": "sign-system",
								"value": "{{system_id}}",
								"type": "text"
							},
							{
								"key": "sign-thumbprint",
								"value": "{{sign-thumbprint}}",
								"type": "text"
							}
						],
						"body": {
							"mode": "raw",
							"raw": "{\r\n    \"id\": \"{{$guid}}\", //id запроса\r\n    \"jsonrpc\": \"2.0\",\r\n    \"method\": \"transfer_money\", //Метод\r\n    \"params\": {\r\n        \"recipient_account\": \"407000000000000000001\", //Номер счёта получателя\r\n        \"recipient_bank_code\": \"044525104\", //БИК получателя\r\n        \"amount\": 1.00, //Сумма платежа\r\n        \"purpose\": \"Платеж №1 без НДС\", //Назначение платежа\r\n        \"payer_account\": \"407000000000000000002\",  //Номер счёта отправителя\r\n        \"payer_bank_code\": \"044525104\" //БИК отправителя\r\n    }\r\n}",
							"options": {
								"raw": {
									"language": "json"
								}
							}
						},
						"url": {
							"raw": "{{URL_HELP}}/jsonrpc",
							"host": [
								"{{URL_HELP}}"
							],
							"path": [
								"jsonrpc"
							]
						},
						"description": "Пополнение счёта через сервис «Tender-Helpers».\n\nДокументация сервиса:  \n[https://api.tochka.com/static/v1/tender-docs/tender-helpers/main/index.html](https://api.tochka.com/static/v1/tender-docs/tender-helpers/main/index.html)"
					},
					"response": []
				},
				{
					"name": "Получить список платежей",
					"event": [
						{
							"listen": "test",
							"script": {
								"exec": [
									""
								],
								"type": "text/javascript",
								"packages": {}
							}
						}
					],
					"request": {
						"auth": {
							"type": "noauth"
						},
						"method": "POST",
						"header": [
							{
								"key": "sign-system",
								"value": "{{system_id}}",
								"type": "text"
							},
							{
								"key": "sign-thumbprint",
								"value": "{{sign-thumbprint}}",
								"type": "text"
							},
							{
								"key": "sign-data",
								"value": "{{sign-data}}",
								"type": "text"
							}
						],
						"body": {
							"mode": "raw",
							"raw": "{\r\n    \"id\": \"{{$guid}}\", //id запроса\r\n    \"jsonrpc\": \"2.0\",\r\n    \"method\": \"list_payments\", //Метод \r\n    \"params\": {\r\n        \"page\": 1, //Страница в пагинации\r\n        \"per_page\": 100, //Количество записей на странице\r\n        \"filters\": {\r\n            \"status\":\"PAID\",\r\n            \"identify\": false\r\n        }\r\n    }\r\n}",
							"options": {
								"raw": {
									"language": "json"
								}
							}
						},
						"url": {
							"raw": "{{cyclops}}/v2/jsonrpc",
							"host": [
								"{{cyclops}}"
							],
							"path": [
								"v2",
								"jsonrpc"
							]
						}
					},
					"response": []
				},
				{
					"name": "Получить данные платежа",
					"request": {
						"auth": {
							"type": "noauth"
						},
						"method": "POST",
						"header": [
							{
								"key": "sign-system",
								"value": "{{system_id}}",
								"type": "text"
							},
							{
								"key": "sign-thumbprint",
								"value": "{{sign-thumbprint}}",
								"type": "text"
							},
							{
								"key": "sign-data",
								"value": "{{sign-data}}",
								"type": "text"
							}
						],
						"body": {
							"mode": "raw",
							"raw": "{\r\n    \"id\": \"{{$guid}}\",//id запроса\r\n    \"jsonrpc\": \"2.0\",\r\n    \"method\": \"get_payment\",//Метод\r\n    \"params\": {\r\n        \"payment_id\": \"{{paymentId}}\" //id платежа по которому хотим получить информацию\r\n    }\r\n}",
							"options": {
								"raw": {
									"language": "json"
								}
							}
						},
						"url": {
							"raw": "{{cyclops}}/v2/jsonrpc",
							"host": [
								"{{cyclops}}"
							],
							"path": [
								"v2",
								"jsonrpc"
							]
						}
					},
					"response": []
				},
				{
					"name": "Идентифицировать платёж",
					"event": [
						{
							"listen": "test",
							"script": {
								"exec": [
									""
								],
								"type": "text/javascript",
								"packages": {}
							}
						}
					],
					"request": {
						"auth": {
							"type": "noauth"
						},
						"method": "POST",
						"header": [
							{
								"key": "sign-system",
								"value": "{{system_id}}",
								"type": "text"
							},
							{
								"key": "sign-thumbprint",
								"value": "{{sign-thumbprint}}",
								"type": "text"
							},
							{
								"key": "sign-data",
								"value": "{{sign-data}}",
								"type": "text"
							}
						],
						"body": {
							"mode": "raw",
							"raw": "{\r\n    \"id\": \"{{$guid}}\", //id запроса\r\n    \"jsonrpc\": \"2.0\",\r\n    \"method\": \"identification_payment\", //Метод\r\n    \"params\": {\r\n        \"payment_id\": \"{{paymentId}}\", //id платежа в Cyclops\r\n        \"owners\": [\r\n            {\r\n                \"virtual_account\": \"{{virtual_account}}\", //Виртуальный счёт, с которым будет сопоставлен платёж\r\n                \"amount\": 1.00 //Сумма платежа\r\n            }\r\n        ]\r\n    }\r\n}",
							"options": {
								"raw": {
									"language": "json"
								}
							}
						},
						"url": {
							"raw": "{{cyclops}}/v2/jsonrpc",
							"host": [
								"{{cyclops}}"
							],
							"path": [
								"v2",
								"jsonrpc"
							]
						}
					},
					"response": []
				},
				{
					"name": "Вывести деньги с виртуального счёта",
					"event": [
						{
							"listen": "prerequest",
							"script": {
								"exec": [
									"function randomString(length=1) {\r",
									"    let randomString = \"\";\r",
									"    for (let i = 0; i < length; i++){\r",
									"        randomString += pm.variables.replaceIn(\"{{$randomAlphaNumeric}}\");\r",
									"    }\r",
									"    return randomString;\r",
									"}\r",
									"\r",
									"STRING_LEN = 209\r",
									"pm.variables.set('randomString', randomString(STRING_LEN));"
								],
								"type": "text/javascript",
								"packages": {}
							}
						}
					],
					"request": {
						"auth": {
							"type": "noauth"
						},
						"method": "POST",
						"header": [
							{
								"key": "sign-system",
								"value": "{{system_id}}",
								"type": "text"
							},
							{
								"key": "sign-thumbprint",
								"value": "{{sign-thumbprint}}",
								"type": "text"
							},
							{
								"key": "sign-data",
								"value": "{{sign-data}}",
								"type": "text"
							}
						],
						"body": {
							"mode": "raw",
							"raw": "{    \r\n    \"id\": \"{{$guid}}\", //id запроса\r\n    \"jsonrpc\": \"2.0\",\r\n    \"method\": \"refund_virtual_account\", //Метод создаёт виртуальную транзакцию списания и платёж на указанные реквизиты\r\n    \"params\": {\r\n        \"virtual_account\": \"{{virtual_account}}\", //Виртуальный счёт списания\r\n        \"purpose\": \"Платеж без НДС\", //Назначение платежа\r\n        \"recipient\": {  //Реквизиты получателя\r\n            \"amount\": 150,  //Сумма платежа\r\n            \"account\": \"40700000000000000000\", //Номер счёта получателя\r\n            \"bank_code\": \"000000000\",  //БИК банка получателя\r\n            \"name\": \"ООО \\\"Точка Банк\", //Название организации получателя\r\n            \"inn\": \"00000000\",  //ИНН получателя\r\n            \"document_number\": \"0002\" //Номер документа (используется в назначении)\r\n        }\r\n    }\r\n    \r\n}",
							"options": {
								"raw": {
									"language": "json"
								}
							}
						},
						"url": {
							"raw": "{{cyclops}}/v2/jsonrpc",
							"host": [
								"{{cyclops}}"
							],
							"path": [
								"v2",
								"jsonrpc"
							]
						},
						"description": "С помощью этого метода можно вернуть с виртуального счёта неидентифицированный платёж или идентифицированный платёж, выполненный через СБП"
					},
					"response": []
				}
			]
		},
		{
			"name": "Сделки",
			"item": [
				{
					"name": "Создать сделку",
					"event": [
						{
							"listen": "test",
							"script": {
								"exec": [
									"var jsonData = JSON.parse(responseBody);\r",
									"postman.setEnvironmentVariable(\"deal_id\", jsonData.result.deal_id);"
								],
								"type": "text/javascript",
								"packages": {}
							}
						},
						{
							"listen": "prerequest",
							"script": {
								"exec": [
									""
								],
								"type": "text/javascript",
								"packages": {}
							}
						}
					],
					"request": {
						"auth": {
							"type": "noauth"
						},
						"method": "POST",
						"header": [
							{
								"key": "sign-system",
								"value": "{{system_id}}",
								"type": "text"
							},
							{
								"key": "sign-thumbprint",
								"value": "{{sign-thumbprint}}",
								"type": "text"
							},
							{
								"key": "sign-data",
								"value": "12345",
								"type": "text"
							}
						],
						"body": {
							"mode": "raw",
							"raw": "{\r\n    \"id\": \"{{$guid}}\",\r\n    \"jsonrpc\": \"2.0\",\r\n    \"method\": \"create_deal\",\r\n    \"params\": {\r\n        \"amount\": 20.00,\r\n        \"payers\": [\r\n            {\r\n                \"virtual_account\": \"{{virtual_account}}\",\r\n                \"amount\": 20.00\r\n            }\r\n        ],\r\n        \"recipients\": [\r\n            {\r\n                \"number\": 1,\r\n                \"type\": \"commission\",\r\n                \"amount\": 7.00,\r\n                \"purpose_nds\": 20.00,\r\n                \"purpose_type\":\"standard\"\r\n            },\r\n            {\r\n                \"number\": 2,\r\n                \"type\": \"payment_contract\",\r\n                \"amount\": 10.00,\r\n                \"account\": \"40700000000000000000\",\r\n                \"bank_code\": \"044525104\",\r\n                \"name\": \"ООО Организация\",\r\n                \"inn\": \"00000000\",\r\n                \"document_number\": \"1\",\r\n                \"purpose_nds\": 0.0,\r\n                \"purpose\": \"Платёж №1 без НДС\"\r\n            }\r\n        ]\r\n    }\r\n}",
							"options": {
								"raw": {
									"language": "json"
								}
							}
						},
						"url": {
							"raw": "{{cyclops}}/v2/jsonrpc",
							"host": [
								"{{cyclops}}"
							],
							"path": [
								"v2",
								"jsonrpc"
							]
						}
					},
					"response": []
				},
				{
					"name": "Загрузить документ по сделке",
					"event": [
						{
							"listen": "test",
							"script": {
								"exec": [
									"var jsonData = JSON.parse(responseBody);",
									"postman.setEnvironmentVariable(\"deal_document_id\", jsonData.result.document_id);"
								],
								"type": "text/javascript",
								"packages": {}
							}
						}
					],
					"request": {
						"auth": {
							"type": "noauth"
						},
						"method": "POST",
						"header": [
							{
								"key": "sign-system",
								"value": "{{system_id}}",
								"type": "text"
							},
							{
								"key": "sign-thumbprint",
								"value": "{{sign-thumbprint}}",
								"type": "text"
							},
							{
								"key": "sign-data",
								"value": "{{sign-data}}",
								"type": "text"
							},
							{
								"key": "Content-Type",
								"value": "application/pdf",
								"type": "text"
							}
						],
						"body": {
							"mode": "file",
							"file": {
								"src": ""
							}
						},
						"url": {
							"raw": "{{cyclops}}/upload_document/deal?beneficiary_id={{beneficiary_id}}&deal_id={{deal_id}}&document_type=service_agreement&document_date=2020-10-19&document_number=1",
							"host": [
								"{{cyclops}}"
							],
							"path": [
								"upload_document",
								"deal"
							],
							"query": [
								{
									"key": "beneficiary_id",
									"value": "{{beneficiary_id}}",
									"description": "id бенефициара, создавшего сделку "
								},
								{
									"key": "deal_id",
									"value": "{{deal_id}}",
									"description": "id сделки"
								},
								{
									"key": "document_type",
									"value": "service_agreement",
									"description": "Тип документа. Возможно только значение service_agreement — договор оказания услуг"
								},
								{
									"key": "document_date",
									"value": "2020-10-19",
									"description": "Дата документа"
								},
								{
									"key": "document_number",
									"value": "1",
									"description": "Номер долкумента "
								}
							]
						}
					},
					"response": []
				},
				{
					"name": "Получить данные загруженного документа",
					"request": {
						"auth": {
							"type": "noauth"
						},
						"method": "POST",
						"header": [
							{
								"key": "sign-system",
								"value": "{{system_id}}",
								"type": "text"
							},
							{
								"key": "sign-thumbprint",
								"value": "{{sign-thumbprint}}",
								"type": "text"
							},
							{
								"key": "sign-data",
								"value": "{{sign-data}}",
								"type": "text"
							}
						],
						"body": {
							"mode": "raw",
							"raw": "{\r\n    \"id\": \"{{$guid}}\", //id запроса\r\n    \"jsonrpc\": \"2.0\",\r\n    \"method\": \"get_document\", //Метод\r\n    \"params\": {\r\n        \"document_id\": \"{{deal_document_id}}\"//id документа\r\n    }\r\n}",
							"options": {
								"raw": {
									"language": "json"
								}
							}
						},
						"url": {
							"raw": "{{cyclops}}/v2/jsonrpc",
							"host": [
								"{{cyclops}}"
							],
							"path": [
								"v2",
								"jsonrpc"
							]
						}
					},
					"response": []
				},
				{
					"name": "Обновить сделку",
					"event": [
						{
							"listen": "test",
							"script": {
								"exec": [
									"var jsonData = JSON.parse(responseBody);\r",
									"postman.setEnvironmentVariable(\"deal_id\", jsonData.result.deal_id);\r",
									"\r",
									""
								],
								"type": "text/javascript",
								"packages": {}
							}
						},
						{
							"listen": "prerequest",
							"script": {
								"exec": [
									""
								],
								"type": "text/javascript",
								"packages": {}
							}
						}
					],
					"request": {
						"auth": {
							"type": "noauth"
						},
						"method": "POST",
						"header": [
							{
								"key": "sign-system",
								"value": "{{system_id}}",
								"type": "text"
							},
							{
								"key": "sign-thumbprint",
								"value": "{{sign-thumbprint}}",
								"type": "text"
							},
							{
								"key": "sign-data",
								"value": "{{sign-data}}",
								"type": "text"
							}
						],
						"body": {
							"mode": "raw",
							"raw": "{\r\n    \"id\": \"{{$guid}}\",\r\n    \"jsonrpc\": \"2.0\",\r\n    \"method\": \"update_deal\",\r\n    \"params\": {\r\n        \"deal_id\": \"{{deal_id}}\", //id обновляемой сделки\r\n        \"deal_data\": {\r\n            \"amount\": 10,\r\n            \"payers\": [\r\n                {\r\n                   \"virtual_account\": \"{{virtual_account}}\",\r\n                    \"amount\": 10\r\n                }\r\n            ],\r\n            \r\n            \"recipients\": [\r\n              {\r\n                \"number\": 1, //Номер получателя\r\n                \"type\": \"payment_contract\", //Тип получателя \r\n                \"amount\": 10.00, //Сумма платежа для получателя\r\n                \"account\": \"40800000000000000000\", //Номер счёта получателя\r\n                \"bank_code\": \"0000000000\", //БИК получателя\r\n                \"name\": \"ООО Точка Банк\", //Название получателя\r\n                \"document_number\": \"1\", //номер документа \r\n                \"purpose_nds\": 0.0, //Процент НДС (в назначении)\r\n                \"purpose\": \"{VO21200} 02-01-2026 №123 без НДС\", //Назначение платежа, для нерезидента обязателен код В\r\n                \"code_purpose\": 3, //Кодовое назначение платежа 1-5, проставляется в платёжке (код вида дохода), необязательное поле\r\n                 \"identifier\": \"123\"\r\n              }\r\n            ]\r\n        }\r\n    }\r\n}",
							"options": {
								"raw": {
									"language": "json"
								}
							}
						},
						"url": {
							"raw": "{{cyclops}}/v2/jsonrpc",
							"host": [
								"{{cyclops}}"
							],
							"path": [
								"v2",
								"jsonrpc"
							]
						},
						"description": "Обновлять можно сделки во всех статусах, кроме closed и in_process.\n\nТакже нельзя изменить сумму сделки и обновить получателей, по которым были успешно исполнены платежи."
					},
					"response": []
				},
				{
					"name": "Исполнить сделку",
					"event": [
						{
							"listen": "test",
							"script": {
								"exec": [
									""
								],
								"type": "text/javascript",
								"packages": {}
							}
						}
					],
					"request": {
						"auth": {
							"type": "noauth"
						},
						"method": "POST",
						"header": [
							{
								"key": "sign-system",
								"value": "{{system_id}}",
								"type": "text"
							},
							{
								"key": "sign-thumbprint",
								"value": "{{sign-thumbprint}}",
								"type": "text"
							},
							{
								"key": "sign-data",
								"value": "{{sign-data}}",
								"type": "text"
							}
						],
						"body": {
							"mode": "raw",
							"raw": "{\n    \"id\": \"{{$guid}}\", //id запроса\n    \"jsonrpc\": \"2.0\",\n    \"method\": \"execute_deal\", //Метод\n    \"params\": {\n        \"deal_id\": \"{{deal_id}}\", //id сделки\n        \"recipients_execute\": [ //Получатели, для которых сделка будет подтверждена. Если массив пустой, сделка становится подтвержденной для всех получателей\n            {\n                \"number\": 2//Номер получателя\n            }\n        ]\n    }\n}",
							"options": {
								"raw": {
									"language": "json"
								}
							}
						},
						"url": {
							"raw": "{{cyclops}}/v2/jsonrpc",
							"host": [
								"{{cyclops}}"
							],
							"path": [
								"v2",
								"jsonrpc"
							]
						}
					},
					"response": []
				},
				{
					"name": "Получить данные сделки",
					"event": [
						{
							"listen": "test",
							"script": {
								"exec": [
									"// Проверяем наличие тела ответа и его корректность\r",
									"if (pm.response && pm.response.json) {\r",
									"    // Разбираем JSON-ответ\r",
									"    var jsonData = pm.response.json();\r",
									"\r",
									"    // Проверяем наличие необходимых свойств в ответе\r",
									"    if (jsonData && jsonData.result && jsonData.result.deal) {\r",
									"        // Получаем значения из ответа\r",
									"        var dealId = jsonData.result.deal.id;\r",
									"        var dealStatus = jsonData.result.deal.status;\r",
									"\r",
									"        // Выводим информацию в консоль\r",
									"        console.log(\"Статус сделки \" + dealId + \" равен \" + dealStatus);\r",
									"    } else {\r",
									"        console.log(\"Недостаточно данных в ответе\");\r",
									"    }\r",
									"} else {\r",
									"    console.log(\"Ответ отсутствует или не удался\");\r",
									"}"
								],
								"type": "text/javascript",
								"packages": {}
							}
						},
						{
							"listen": "prerequest",
							"script": {
								"packages": {},
								"type": "text/javascript"
							}
						}
					],
					"request": {
						"auth": {
							"type": "noauth"
						},
						"method": "POST",
						"header": [
							{
								"key": "sign-system",
								"value": "{{system_id}}",
								"type": "text"
							},
							{
								"key": "sign-thumbprint",
								"value": "{{sign-thumbprint}}",
								"type": "text"
							},
							{
								"key": "sign-data",
								"value": "{{sign-data}}",
								"type": "text"
							}
						],
						"body": {
							"mode": "raw",
							"raw": "{\r\n    \"id\": \"{{$guid}}\", //id запроса\r\n    \"jsonrpc\": \"2.0\",\r\n    \"method\": \"get_deal\", //Метод\r\n    \"params\": {\r\n        \"deal_id\": \"{{deal_id}}\" //id сделки\r\n    }\r\n}\r\n",
							"options": {
								"raw": {
									"language": "json"
								}
							}
						},
						"url": {
							"raw": "{{cyclops}}/v2/jsonrpc",
							"host": [
								"{{cyclops}}"
							],
							"path": [
								"v2",
								"jsonrpc"
							]
						}
					},
					"response": []
				},
				{
					"name": "Отменить сделку",
					"request": {
						"auth": {
							"type": "noauth"
						},
						"method": "POST",
						"header": [
							{
								"key": "sign-system",
								"value": "{{system_id}}",
								"type": "text"
							},
							{
								"key": "sign-thumbprint",
								"value": "{{sign-thumbprint}}",
								"type": "text"
							},
							{
								"key": "sign-data",
								"value": "{{sign-data}}",
								"type": "text"
							}
						],
						"body": {
							"mode": "raw",
							"raw": "{\r\n    \"id\": \"{{$guid}}\", //id запроса\r\n    \"jsonrpc\": \"2.0\",\r\n    \"method\": \"rejected_deal\", //Метод\r\n    \"params\": {\r\n        \"deal_id\": \"{{deal_id}}\" //id сделки\r\n    }\r\n}",
							"options": {
								"raw": {
									"language": "json"
								}
							}
						},
						"url": {
							"raw": "{{cyclops}}/v2/jsonrpc",
							"host": [
								"{{cyclops}}"
							],
							"path": [
								"v2",
								"jsonrpc"
							]
						}
					},
					"response": []
				}
			]
		}
	]
}