Регистрация аккаунта

Для регистрации с выплатой на банковскую карту необходимо:
Для регистрации с выплатой на банковский счет необходимо:

Готовые примеры

Codeigniter пример
Microsoft .NET пример
Perl пример
PHP пример
Ruby пример

Готовые модули для CMS

1С Битрикс вер.12 вер.13 вер.14 вер.15 вер.16
CS Cart вер.3.х вер.4.х
Drupal Ubercart вер.2.х вер.3.х
HTML/PHP/CSS вер.1.1
ImageCMS вер.4.х
Insales вер.1.0
Joomla Hikashop вер.3.х
Joomla JoomlaKassa вер.2.х
Joomla Joomshopping вер.3.х вер.4.х
Joomla Virtuemart вер.1.1.5 вер.1.1.9 вер.2.0 вер.2.5 вер.2.6 вер.3.0
Magento вер.1.х
Melbis Shop вер.5.х
Opencart OcStore/Maxistore вер.0.2.2 вер.1.4.х вер.1.5.х вер.2.0-2.2 вер.2.3.х
OsCommerce вер.2.х вер.3.х
PrestaShop вер.1.2 вер.1.4 вер.1.5 вер.1.6
ShopCMS вер.3.х
ShopOS вер.2.5.х
Simpla вер.2.х
Ucoz вер.1.0
VamShop вер.1.х вер.2.х
Webassyst ShopScript вер.3.х вер.4.х вер.5.х
Wordpress Ecommerce вер.3.7 вер.3.8 вер.3.9
Wordpress Jigoshop вер.1.х
Wordpress WooCommerce вер.1.х вер.2.х

Запрос “Доступные методы оплаты”

Описание

Первым запросом необходимо получить перечень доступных для продавца платежных систем. Платежные системы должны быть показаны покупателю на этапе формирования заказа перед кнопкой «Оформить заказ». Каждая платежная система имеет свой уникальный идентификатор, который используется при подаче заказа на оплату.

Пример запроса (формат JSON в теле POST запроса)

$api = new KaznacheyApi(MerchantSecretKey, MerchantGuid);
$merchantInfo = $api->GetMerchantInfo();
URL запроса (формат JSON в теле POST запроса)

http://payment.kaznachey.net/api/PaymentInterface/GetMerchantInformation  
    или
https://payment.kaznachey.net/api/PaymentInterface/GetMerchantInformation    
Описание переменных
MerchantGuid Идентификатор продавца Обязательное
MerchantSecretKey Секретный ключ продавца Обязательное
Signature Подпись запроса Обязательное
Формирование подписи

  md5 ({MerchantGuid}.ToUpper() + {MerchantSecretKey}.ToUpper())    
Пример ответа (формат JSON)

{
	'TermToUse':"http://kaznachey.ua/usloviya_ispolzovaniya.pdf",
	'PaySystems':[
		{
			'Id':3,
			'PaySystemName':"Банковская карта Visa/MasterCard",
			'PaySystemTag':"liqpayCard",
			'Fields':[],
			'PaySystemCurrencies':["UAH","EUR","RUB","USD"]
		},
	'ErrorCode':0,
	'DebugMessage':null
}
Описание переменных ответа
PaySystems Массив доступных платёжных систем
PaySystems[0].Id Идентификатор платежной системы
PaySystems[0].PaySystemName Название платежной системы
ErrorCode Код ошибки
DebugMessage Описание ошибки (Отладочная информация)
TermToUse поле содержит ссылку на договор оферты, с которым должен согласиться покупатель при оплате заказа. Лучше всего его оформить в виде элемента checkbox с установленным по умолчанию параметром checked и ссылкой – «Согласен с условиями использования».
Коды ошибок
0 Операция завершена успешно
1 Ошибка операции

Запрос “Оплата счета”

Пример запроса (формат JSON)

{
	'Currency':"UAH",
	'Language':"RU",
	'AltAmount':0.00,
	'AltCurrency':"",
	'SelectedPaySystemId':3,
	'Products':[
		{
			'ProductName':"Оплата заказа",
			'ImageUrl':"http://website.com/image/image.jpg",
			'ProductItemsNum':1.00,
			'ProductPrice':366.69,
			'ProductId':335,
			"Id":335
		}
	],
	'PaymentDetails':
		{
			'MerchantInternalPaymentId':"8978",
			'MerchantInternalUserId':"1831",
			'EMail':"email@mail.com",
			'PhoneNumber':"380501111111",
			'Description':"",
			'DeliveryType':"",
			'CustomMerchantInfo':"",
			'StatusUrl':"http://website.com/statusURL",
			'ReturnUrl':"http://website.com/returnURL",
			'BuyerCountry':"Украина",
			'BuyerFirstname':"Александр",
			'BuyerPatronymic':"Петрович",
			'BuyerLastname':"Иванов",
			'BuyerStreet':"ул. Пушкинская, 10",
			'BuyerZone':"Орловск",
			'BuyerZip':"32482",
			'BuyerCity':"с. Усово",
			'Address':"3482, Украина, Орловск, с. Усово, ул. Пушкинская, 10",
			'Fio':"Александр Иванов",
			'DeliveryFirstname':"Александр",
			'DeliveryLastname':"Иванов",
			'DeliveryZip':"32482",
			'DeliveryCountry':"Украина",
			'DeliveryPatronymic':"Петрович",
			'DeliveryStreet':"ул. Пушкинская, 10",
			'DeliveryCity':"с. Усово",
			'DeliveryZone':"Орловск",
			'Id':335
		},
	'MerchantGuid':"a1402365-ar31-41f4-bsa2-43haa3481332",
	'Signature':"468fc67c664bf2d34dbfa55e790a06f6",
	'Version':"",
	'ImplementationInfo':""
}
Минимально допустимый запрос (формат JSON)

{
	'Currency':"UAH",
	'Language':"RU",
	'SelectedPaySystemId':3,
	'Products':[
		{
			'ProductName':"Оплата заказа",
			'ProductItemsNum':1.00,
			'ProductId':335,
		}
	],
	'PaymentDetails':
		{
			'MerchantInternalPaymentId':"8978",
			'MerchantInternalUserId':"1831",
			'EMail':"email@mail.com",
			'StatusUrl':"http://website.com/statusURL",
			'ReturnUrl':"http://website.com/returnURL",
		},
	'MerchantGuid':"12402365-ar31-41f4-bsa2-43h75ea81332",
	'Signature':"468fc67c664bf2d34dbfa55e790a06f6",
}
URL запроса (формат JSON в теле POST запроса)

http://payment.kaznachey.net/api/PaymentInterface/CreatePaymentEx
    или
https://payment.kaznachey.net/api/PaymentInterface/CreatePaymentEx   
Описание переменных запроса
SelectedPaySystemId Id платежной системы Обязательное
Products Массив товаров (описание ниже) Обязательное
PaymentDetails Детали платежа (описание ниже) Обязательное
Currency Валюта платежа. В зависимости от региона может принимать значения UAH, RUB, USD, EUR По умолчанию принимает значение UAH Обязательное
AltAmount Альтернативная сумма счета. Используется совместно с AltCurrency. Сумма будет показана покупателю независимо от стоимости товара в корзине. Формат 12345.67
Разделитель ‘.’ и два знака дробной части обязательны!
AltCurrency Альтернативная валюта счета. Используется совместно с AltAmount. Валюта будет показана покупателю независимо от валюты авторизации (фактического списания). В зависимости от региона может принимать значения UAH, RUB, USD, EUR.
Language Язык платежной формы. В зависимости от региона может принимать значения RU, EN Обязательное
Signature Подпись запроса Обязательное
Массив Products

Если в заказе присутствует скидка, ее необходимо оформить отдельной позицией (отдельным товаром). Аналогично добавляется стоимость доставки и другие факторы, влияющие на сумму счета.

ProductId Код товара в магазине Обязательное
ProductName Наименование товара Обязательное
ImageUrl Ссылка на изображение. формат base64
ProductItemsNum Количество единиц товара Обязательное
ProductPrice Стоимость товара Формат 12345.67
Разделитель ‘.’ и два знака дробной части обязательны!
Обязательное
Массив PaymentDetails
MerchantInternalPaymentId Номер заказа в магазине Обязательное
MerchantInternalUserId Id покупателя в магазине Обязательное
EMail Email покупателя Обязательное
PhoneNumber Номер телефона покупателя
Description Назначение платежа. Отображается в поле коментарий счета, в платежной форме и сохраняется в реестре платежей банка
Description Назначение платежа. Отображается в поле коментарий счета, в платежной форме и сохраняется в реестре платежей банка
DeliveryType Способ доставки
CustomMerchantInfo Дополнительная информация о заказе. Значение поля будет возвращено в ответе сервера на StatusURL
StatusUrl Адрес, на который будет отправлен ответ о статусе платежа Обязательное
ReturnUrl Адрес, на который будет возвращен покупатель после оплаты Обязательное
BuyerLastname Фамилия покупателя
BuyerFirstname Имя покупателя
BuyerPatronymic Отчество покупателя
BuyerStreet Улица покупателя
BuyerCity Город покупателя
BuyerZone Область покупателя
BuyerZip Индекс покупателя
BuyerCountry Страна покупателя
DeliveryLastname Фамилия покупателя
DeliveryFirstname Имя покупателя
DeliveryPatronymic Отчество покупателя
DeliveryStreet Улица покупателя
DeliveryCity Город покупателя
DeliveryZone Область покупателя
DeliveryZip Индекс покупателя
DeliveryCountry Страна покупателя
Формирование подписи

Для формирования подписи необходимо подсчитать md5 сумму следующих полей:

MerchantGuid Идентификатор продавца
Обязательно в верхнем регистре
Cумма всех позиций Формат 12345.67
Разделитель ‘.’ и два знака дробной части обязательны!
SelectedPaySystemId ID выбранной платежной системы
EMail EMail покупателя
PhoneNumber Телефон покупателя
MerchantInternalUserId Id покупателя в магазине продавца
MerchantInternalPaymentId Номер заказа в магазине продавца
Language Язык интерфейса RU,EN
Currency Валюта платежа EUR,USD,UAH,RUB
MerchantSecretKey Секретный ключ продавца
Обязательно в верхнем регистре!
Oбъект ExternalForm

Ответом на запрос создания платежа будет сформирован объект ExternalForm:

ExternalForm Html код в формате base64
ErrorCode Код ошибки
DebugMessage Описание ошибки (только для отладки)
Коды ошибок
0 Запрос выполнен успешно
1 Ошибка запроса
Пример ответа (формат JSON )

{
	'OrderId':12345,
	'ExternalForm':"PGRpdiBzdHlsZT0idmlzaWJpbG......lwdD48L2Rpdj4=",
	'FormToken':null,
	'SyncToken':null,
	'ErrorCode':0,
	'DebugMessage':null
}

В параметре ExternalForm зашифрована HTML форма в формате base64. Её нужно распаковать и отобразить на сайте. На основании этих данных не стоит изменять статус платежа в системе. Этот ответ предназначен только для покупателя. Для изменения статуса дождитесь ответа от сервера.

Формат ответа на ReturnUrl

После оплаты заказа осуществляется редирект по адресу, указанному переменной в ReturnUrl.
К редиректу добавляются следующие поля:

Result Статус платежа (описание ниже)
OrderId Номер заказа в магазине продавца
Переменная Status
Success Платеж выполнен успешно
Failed Ошибка платежа
Inprogress Платеж в обработке, или аккаунт продавца не активен
Deferred Платеж ожидает подтверждения продавца (Отложенный платеж)
Описание

Токен - это механизм, который позволяет запомнить реквизиты карты покупателя и проводить последующие платежи без необходимости повторного ввода, просто передав уникальный идентификатор. В результате, все последующие платежи покупатель сможет осуществлять простым нажатием кнопки "Оплатить" (в один клик).

Запрос "Получить токен"

Пример запроса на получение токена(формат JSON)

{
	'Description':"Оплата за товар/услуги на сайте",
	'SelectedPaySystemId':"2022',
	'Amount':"250.00",
	'Currency':"UAH",
	'MerchantInternalPaymentId':"1192",
	'MerchantInternalUserId':"19387",
	'MerchantCustomInfo':"",
	'Language':"RU",
	'AltAmount':"100.00",
	'AltCurrency':"USD",
	'UserEmail':"example@example.com",
	'UserPhone':"123123123123",
	'UserFullName':"Name Surname",
	'UserAddress':"User Address Here",
	'StatusUrl':"http://website.com/statusURL",
	'ReturnUrl':"http://website.com/returnURL",
	'CreatePaymentToken':"true",
	'BuyerZip':"12123",
	'Products':[
		{
			'ProductName':"Оплата заказа.",
			'ImageUrl':"http://website.com/image/image.jpg",
			'ProductItemsNum':"1.00",
			'ProductPrice':"250.00",
			'ProductId':"335"			
		}
	],
	'MerchantGuid':"f5221871-f4d5-4a32-b664-08b316d2578f",
	'Signature':"c8ecf049afb16b425462d9ce30b4d9af0",
	'Version':"3.0",
	'ImplementationInfo':"php"
	'PartnershipGuid':""
}
Минимально допустимый запрос на получение токена(формат JSON)

{	
	'SelectedPaySystemId':2022,
	'Amount':"250.00",
	'Currency':"UAH",
	'MerchantInternalPaymentId':"1192",
	'MerchantInternalUserId':"19387",
	'UserEmail':"example@example.com",
	'StatusUrl':"http://website.com/statusURL",
	'ReturnUrl':"http://website.com/returnURL",
	'CreatePaymentToken':"true",
	'MerchantGuid':"f5221871-f4d5-4a32-b664-08b316d2578f",
	'Signature':"c8ecf049afb16b425462d9ce30b4d9af0",
	'Version':"3.0",
}
URL запроса (формат JSON в теле POST запроса)

http://payment.kaznachey.net/api/PaymentGatewayV3/
    или
https://payment.kaznachey.net/api/PaymentGatewayV3/
Описание переменных запроса
SelectedPaySystemId Id платежной системы
(уточните Ваше значение в службе поддержки)
Обязательное
Amount Стоимость заказа. Формат 12345.67
Разделитель ‘.’ и два знака дробной части обязательны!
Обязательное
Currency Валюта платежа. В зависимости от региона может принимать значения UAH, RUB, USD, EUR Обязательное
MerchantInternalPaymentId Номер заказа в магазине Обязательное
MerchantInternalUserId Id покупателя в магазине Обязательное
CustomMerchantInfo Дополнительная информация о заказе. Значение поля будет возвращено в ответе сервера на StatusURL
Language Язык платежной формы. В зависимости от региона может принимать значения RU, EN Обязательное
AltAmount Альтернативная сумма счета. Используется совместно с AltCurrency. Сумма будет показана покупателю независимо от стоимости товара в корзине. Формат 12345.67
Разделитель ‘.’ и два знака дробной части обязательны!
AltCurrency Альтернативная валюта счета. Используется совместно с AltAmount. Валюта будет показана покупателю независимо от валюты авторизации (фактического списания). В зависимости от региона может принимать значения UAH, RUB, USD, EUR.
UserEmail Email покупателя Обязательное
UserPhone Номер телефона покупателя
UserFullName ФИО покупателя
UserAddress Адрес покупателя
BuyerZip Почтовый индекс покупателя
StatusUrl Адрес, на который будет отправлен ответ о статусе платежа Обязательное
ReturnUrl Адрес, на который будет возвращен покупатель после оплаты Обязательное
CreatePaymentToken Запрос токена. Может принимать значения True, False Обязательное
Products Массив товаров (описание ниже)
MerchantGuid Идентификатор продавца
Обязательно в верхнем регистре
Signature Подпись запроса Обязательное
Version Версия АПИ. Может принимать значения 3.0 Обязательное
ImplementationInfo Язык реализации АПИ. Может принимать ЛЮБОЕ значение
Description Назначение платежа. Данная стрка будет передана в банковской выписке.
PartnershipGuid ID партнера. По умолчанию принимает ПУСТОЕ значение.
Массив Products

Если в заказе присутствует скидка, ее необходимо оформить отдельной позицией (отдельным товаром). Аналогично добавляется стоимость доставки и другие факторы, влияющие на сумму счета.

ProductName Наименование товара
ImageUrl Ссылка на изображение.
ProductItemsNum Количество единиц товара
ProductPrice Стоимость товара Формат 12345.67
Разделитель ‘.’ и два знака дробной части обязательны!
ProductId Код товара в магазине
Формирование подписи

Для формирования подписи необходимо подсчитать md5 сумму следующих полей:

MerchantGuid Идентификатор продавца
Обязательно в верхнем регистре
Amount Формат 12345.67
Разделитель ‘.’ и два знака дробной части обязательны!
UserEmail EMail покупателя
UserPhone Телефон покупателя
MerchantInternalUserId Id покупателя в магазине продавца
MerchantInternalPaymentId Номер заказа в магазине продавца
Currency Валюта платежа EUR,USD,UAH,RUB
PaymentToken Полученный ранее токен
PartnershipGuid ID партнера. По умолчанию принимает ПУСТОЕ значение.
MerchantSecretKey Секретный ключ продавца
Обязательно в верхнем регистре!
Oбъект ExternalForm

Ответом на запрос создания платежа будет сформирован объект ExternalForm:

ExternalForm Html код в формате base64
ErrorCode Код ошибки
DebugMessage Описание ошибки (только для отладки)
Коды ошибок
0 Запрос выполнен успешно
1 Ошибка запроса
Пример ответа (формат JSON )

{
	'OrderId':123456,
	'ErrorDecription':null,
	'PaymentDate':"20160101105247",
	'MerchantInternalPaymentId':"45",
	'MerchantInternalUserId':"1398",
	'CustomMerchantInfo':"",
	'OrderSum':500.00,
	'RecivedSum':487.50,
	'Currency':"UAH",
	'CardType':"VISA",
	'Enrolled':false,
	'CardMask':"123456XXXXXX7890",
	'ECI':"05",
	'CardCountry':null,
	'FraudScore':null,
	'ClientIp':null,
	'PaymentToken':"7d222ae5-9216-4cf9-4424-ab2a45a0756",
	'Signature':"5c149f1ac8d2416a370a7343ea23d58e",
	'ErrorCode':0,
	'DebugMessage':null
}
Формат ответа на ReturnUrl

После оплаты заказа осуществляется редирект по адресу, указанному переменной в ReturnUrl.
К редиректу добавляются следующие поля:

Result Статус платежа (описание ниже)
OrderId Номер заказа в магазине продавца

На основании этих данных не стоит изменять статус платежа в системе. Этот ответ предназначен только для покупателя. Для изменения статуса дождитесь ответа от сервера.

Переменная Status
Success Платеж выполнен успешно
Failed Ошибка платежа
Inprogress Платеж в обработке, или аккаунт продавца не активен
Deferred Платеж ожидает подтверждения продавца (Отложенный платеж)
Оплата с помощью токена

{
	'PaymentToken':"7d222ae5-9216-4cf9-4424-ab2a45a0756",
	'Description':"Оплата за товар/услуги на сайте",
	'SelectedPaySystemId':"2022',
	'Amount':"250.00",
	'Currency':"UAH",
	'MerchantInternalPaymentId':"1192",
	'MerchantInternalUserId':"19387",
	'MerchantCustomInfo':"",
	'Language':"RU",
	'AltAmount':"100.00",
	'AltCurrency':"USD",
	'UserEmail':"example@example.com",
	'UserPhone':"123123123123",
	'UserFullName':"Name Surname",
	'UserAddress':"User Address Here",
	'StatusUrl':"http://website.com/statusURL",
	'ReturnUrl':"http://website.com/returnURL",	
	'BuyerZip':"12123",
	'Products':[
		{
			'ProductName':"Оплата заказа.",
			'ImageUrl':"http://website.com/image/image.jpg",
			'ProductItemsNum':"1.00",
			'ProductPrice':"250.00",
			'ProductId':"335"			
		}
	],
	'MerchantGuid':"f5221871-f4d5-4a32-b664-08b316d2578f",
	'Signature':"c8ecf049afb16b425462d9ce30b4d9af0",
	'Version':"3.0",
	'ImplementationInfo':"php"
	'PartnershipGuid':""
}

Ответ “Статус платежа”

Массив Status

После успешной оплаты, от сервера «Казначей» на сервер продавца по url взятого из параметра StatusUrl отправлен POST ответ с информацией о состоянии платежа.

Пример запроса (формат JSON в теле POST запроса)

$api = new KaznacheyApi(MerchantSecretKey, MerchantGuid);
$merchantInfo = $api->GetMerchantInfo();
Описание переменных
OrderId Номер транзакции в системе «Казначей»
MerchantInternalPaymentId Номер заказа в магазине продавца
MerchantInternalUserId Id покупателя в магазине
CustomMerchantInfo Пользовательская информация
Sum Сумма с учетом комиссии
OrderSum Общая сумма заказа
Currency Валюта, в которой оплачен счет
SignatureEx Подпись
ErrorCode Код ошибки
DebugMessage Сообщения для отладки
Коды ошибок
0 Запрос выполнен успешно
1 Ошибка запроса
Формирование SignatureEx

Для формирования подписи необходимо подсчитать md5 сумму следующих полей:

ErrorCode Код ошибки
OrderId Номер заказа в системе продавца
MerchantInternalPaymentId Внутренний id заказа в системе продавца
MerchantInternalUserId Внутренний id пользователя в системе продавца
OrderSum Сумма заказа. Формат 12345.67
Sum Сумма заказа за вычетом комиссии. Формат 12345.67
Currency Валюта платежа.
Обязательно в верхнем регистре!
MerchantSecretKey Секретный ключ.
Обязательно в верхнем регистре!
Пример ответа на StatusURL

{
	'PaymentDate':"20160428081801",
	'OrderId':123456,
	'MerchantInternalPaymentId':"91210",
	'MerchantInternalUserId':"107228",
	'Sum':141.38,
	'OrderSum':145.00,
	'Currency':"UAH",
	'CustomMerchantInfo':"",
	'Signature':"85ae1692253f7cc320bcacab40c5c4a1",
	'SignatureEx':"25087be80529bacc4c3f6b39568ffcb",
	'CardType':null,
	'Enrolled':false,
	'ErrorCode':0,
	'DebugMessage':null
}
Пример обработки запроса

try {
		$statusRequest = $api->GetStatusResponse();
		echo "ok";
    } 
catch (Exception $ex) {
		print "Error!";
        print $ex->getMessage();
}
$fp = fopen('counter.txt', 'a');
fputs($fp, $statusRequest, strlen($statusRequest));
fclose($fp);

Платежные инструменты

Платежная форма (формат IFRAME)

Платежная форма предназначена для простой интеграции, когда нет возможности привлечь программиста, либо текущая площадка сайта не позволяет размещать скрипты на странице. Внешний вид и количество полей формы - неизменны. Для сохдания собственного варианта - используйте HTML форму (описание ниже)

Для установки формы необходимо:
Платежная форма (формат HTML)

Платежная форма предназначена для гибкой настройки внешнего вида без привлечения программиста. Вы можете корректировать количество полей и внешний вид формы на свое усмотрение.

Внешний вид формы может быть полностью изменен.

Для установки формы необходимо:
Коды платежных систем

Уточните в службе поддержки доступные для Вас методы оплаты.

1 Тестовая система
3,8,2022 Банковская карта Visa/MasterCard (уточните Ваше значение в службе поддержки)
4 Терминал Приватбанка
1014 Наложенный платеж
1015 Отложенный платеж
1018 Оплата в кредит
1020 Приват24
1021 Ликпей
Платежная кнопка (формат IFRAME)

Платежная кнопка предназначена для простой интеграции и корректировки внешнего вида.

Интерфейс создания и вид кнопок

  


Для установки кнопки необходимо:
Платежная кнопка (формат HTML)

Платежная кнопка предназначена для простой интеграции и корректировки внешнего вида.

Внешний вид кнопки по-умолчанию

Для установки формы необходимо:
Отправка счета на Email

Отправить счет по электронной почте можно с использованием кода платежной HTML формы

Для установки формы и отправки счета необходимо: