Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Table of Contents

В АПК Ассист предусмотрен функционал, позволяющий реализовать оплату с передачей чека. Этот режим позволяет перейти к детализации в заказе на уровне перечня позиций, по которым осуществляется оплата в рамках заказа.

Чек в заказе

Чек передается в авторизационном запросе . Для этого необходимо в запросе передать дополнительный параметр ChequeItems, в котором передаётся структура в формате JSON, как в следующем примере.

В структуре передаются следующие параметры позиций чека:

Название

Обязательноеполе

Тип значения

Описание

id

Да

int

Позиция в чеке (уникальное число для чека)

product

Да/Нет1

string(50)

Код товара по справочнику товаров магазина

name

Да/Нет1

string(250)

Наименование товара

price

Да

float(10.2)

Стоимость единицы товара (услуги)

quantity

Да

float

Количество/объем товара/услуги в единицах измерения товара (может быть дробным числом)

measure

Нет3

string

Единица измерения товара 

amount

Да

float(15.2)

Стоимость позиции price*quantity

tax

Да/Нет2

string(10)

Идентификатор ставки налога 

taxes

Да/Нет2

Array[string]

Массив идентификаторов используемых ставок налога

gs1code

Нет

string(30)

GS1 DataMatrix код маркировки товара (номер акцизной марки).

Примечание. Код должен быть преобразован в BASE64 (URL safe).

Anchor
1
1


1Должен быть определен один из параметров - код товара или его наименование, либо оба параметра должны быть переданы. В зависимости от переданного значения в ОФД в качестве кода товара будет отправлено число (если было передано число не больше 9223372036854775807), либо в качестве наименования будет отправлена склейка переданного значения с значением наименования в поле name (если была передана строка или число больше 9223372036854775807).

Anchor
2
2


2Обязательным является один из двух параметров Tax(если при платеже использовалась единственная ставка налога) и Taxes (если для платежа использовались несколько ставок налога). Параметр Tax (Taxes) не передаются в запросе на отмену или возврат средств.

Anchor
3
3


3Если параметр не передан, то его значение берется из настроек предприятия.

Значения параметров price и amount всех позиций в чеке должны быть в одной валюте, и эта валюта должна совпадать с валютой заказа (параметр OrderCurrency в авторизационном запросе).

Сумма всех позиций чека (по параметру amount) должна быть равна сумме заказа (параметр OrderAmount в запросе).

Если указанные выше условия не соблюдаются, чек признается неверным и происходит ошибка запроса.

Пример запроса в формате POST:

Code Block
languagexml
<FORM ACTION="https://<SERVER-NAME>/pay/order.cfm" METHOD="POST">
<INPUT TYPE="HIDDEN" NAME="Merchant_ID" VALUE="Ваш Merchant_ID">
<INPUT TYPE="HIDDEN" NAME="OrderNumber" VALUE="A20042011_28">
<INPUT TYPE="HIDDEN" NAME="OrderAmount" VALUE="2672.01"> 
<INPUT TYPE="HIDDEN" NAME="OrderCurrency" VALUE="KZT"> 
<INPUT TYPE="HIDDEN" NAME="Email" VALUE="test@test.kz">
<INPUT TYPE="HIDDEN" NAME="OrderComment" VALUE="тестовый платеж">
<INPUT TYPE="HIDDEN" NAME="URL_RETURN_OK" VALUE="http://www.URL.kz/yes">
<INPUT TYPE="HIDDEN" NAME="URL_RETURN_NO" VALUE="http://www.URL.kz/no">
<INPUT TYPE="HIDDEN" NAME="CardPayment" VALUE="1">
<INPUT TYPE="HIDDEN" NAME="Delay" VALUE="0">
<INPUT TYPE="HIDDEN" NAME="Language" VALUE="RU">
<INPUT TYPE="HIDDEN" NAME="TaxationSystem" ="1">
<INPUT TYPE="HIDDEN" NAME="CashierINN" ="2147483646">
<INPUT TYPE="HIDDEN" NAME="Cashier" ="Иванов Иван Иванович">
<INPUT TYPE="HIDDEN" NAME="PaymentPlace" ="А345">
<INPUT TYPE="HIDDEN" NAME="TaxpayerID" ="123456789113">
<INPUT TYPE="HIDDEN" NAME="ChequeItems" =
  "{[{"id":"1"
     "name":"name1",
     "product":"2147483646",
     "price":"150.82",
     "quantity":"2.37",
     "measure":"кг",
     "amount":"357.44",
     "taxes":"[{'name':'vat12','value':12},{'name':'vat0','value':0}]",
   },
   {"id":"2",
     "name":"Товар 2",
     "product":"1212",
     "price":"128.12",
     "quantity":"5.76",
     "measure":"кг",
     "amount":"737.97",
     "tax":"vat12",
   },
   {"id":"3",
     "name":"Товар 3",
     "price":"370.6789",
     "product":"131415",
     "quantity":"2.658",
     "measure":"кг",
     "amount":"985.24",
     "tax":"vat0",
   },
   {"id":"4",
     "name":"Name 4",
     "product":"5432",
     "price":"49.56788",
     "quantity":"6",
     "measure":"кг",
     "amount":"297.36",
     "taxes":"[{'name':'vat0','value':0}]",
   },
   {"id":"5",
     "name":"Товар 5",
     "product":"11223344",
     "price":"49",
     "quantity":"6",
     "measure":"кг",
     "amount":"294",
   }]}"
<INPUT TYPE="HIDDEN" NAME="Lastname" VALUE="Тестов">
<INPUT TYPE="HIDDEN" NAME="Firstname" VALUE="Тест">
<INPUT TYPE="HIDDEN" NAME="Middlename" VALUE="Тестович">
<INPUT TYPE="SUBMIT" NAME="Submit" VALUE="Купить">
</FORM>

Чек при подтверждении

При двустадийном механизме работы финансовое подтверждение интернет-магазин может осуществить в течение 4 дней в Личном кабинете либо с помощью веб-сервиса.

Для подтверждения оплаты нужно отправить запрос на сервер АПК Ассист методом HTTP POST или SOAP (в кодировке UTF-8).

URL запроса для передачи финансового подтверждения и список параметров запроса подтверждения оплаты совпадают с указанными здесь. Для передачи чека подтверждения в запросе HTTP POST добавляется лишь дополнительный параметр ChequeItems, в котором передаётся структура в формате JSON, как в следующем примере.

Пример запроса в формате POST:

Code Block
languagexml
<FORM ACTION="https://<SERVER-NAME>/charge/charge.cfm" METHOD="POST">
<INPUT TYPE="HIDDEN" NAME="Merchant_ID" VALUE="Ваш Merchant_ID">
<INPUT TYPE="HIDDEN" NAME="BillNumber" VALUE="Номер платежа">
<INPUT TYPE="HIDDEN"NAME="Login"VALUE="Ваш логин">
<INPUT TYPE="HIDDEN"NAME="Password"VALUE="Ваш пароль"
<INPUT TYPE="HIDDEN" NAME="Amount" VALUE="2672.01">
<INPUT TYPE="HIDDEN" NAME="Currency" VALUE="KZT"> 
<INPUT TYPE="HIDDEN" NAME="Type" VALUE="sell"> 
<INPUT TYPE="HIDDEN" NAME="Email" VALUE="test@test.kz">
<INPUT TYPE="HIDDEN" NAME="Paymenttype" VALUE="1">
<INPUT TYPE="HIDDEN" NAME="Format" VALUE="3">
<INPUT TYPE="HIDDEN" NAME="Language" VALUE="RU">
<INPUT TYPE="HIDDEN" NAME="Lastname" VALUE="Тестов">
INPUT TYPE="HIDDEN" NAME="Firstname" VALUE="Тест"
<INPUT TYPE="HIDDEN" NAME="TaxationSystem" ="1">
<INPUT TYPE="HIDDEN" NAME="CashierINN" ="2147483646">
<INPUT TYPE="HIDDEN" NAME="Cashier" ="Иванов Иван Иванович">
<INPUT TYPE="HIDDEN" NAME="PaymentPlace" ="А345">
<INPUT TYPE="HIDDEN" NAME="ChequeItems" =
  "{[{"id":"1"
     "name":"name1",
     "product":"2147483646",
     "price":"150.82",
     "quantity":"2.37",
     "measure":"кг",
     "amount":"357.44",
     "taxes":"[{'name':'vat12','value':12},{'name':'vat0','value':0}]",
   },
   {"id":"2",
     "name":"Товар 2",
     "product":"1212",
     "price":"128.12",
     "quantity":"5.76",
     "measure":"кг",
     "amount":"737.97",
     "tax":"vat12",
   },
   {"id":"3",
     "name":"Товар 3",
     "price":"370.6789",
     "product":"131415",
     "quantity":"2.658",
     "measure":"кг",
     "amount":"985.24",
     "tax":"vat0",
   },
   {"id":"4",
     "name":"Name 4",
     "product":"5432",
     "price":"49.56788",
     "quantity":"6",
     "measure":"кг",
     "amount":"297.36",
     "taxes":"[{'name':'vat0','value':0}]",
   },
   {"id":"5",
     "name":"Товар 5",
     "product":"11223344",
     "price":"49",
     "quantity":"6",
     "measure":"кг",
     "amount":"294",
   }]}"
<INPUT TYPE="SUBMIT" NAME="Submit" VALUE="Выполнить">
</FORM>

Подтверждение может быть проведено как на всю сумму оплаты, так и на часть суммы. Допускается совершение частичного подтверждения на сумму, не превышающую суммы оплаты, если операция оплаты по банковской карте была совершена через процессинг, имеющий соответствующие настройки.

Чек подтверждения может содержать все или часть позиций, которые присутствовали в чеке оплаты.

Для каждой позиции чека подтверждения параметры id, name, price должны быть безусловно эквивалентны этим параметрам соответствующей позиции чека оплаты.

Сумма параметров amount всех позиций чека подтверждения должна быть равна сумме подтверждения из поля Amount запроса на подтверждение.

В случае подтверждения на полную сумму не обязательно передавать набор структур ChequeItem соответствующий всему чеку, переданному в заказе. Для подтверждения на полную сумму чек не является обязательным.

Чек в отмене

Отмена отдельных позиций чека может быть выполнена оператором в личном кабинете или посредством обращения к веб-сервису cancel (в формате POST) или wscancel (в формате SOAP).

Для отмены оплаты по отдельным позициям чека через веб-сервис нужно выполнить  запрос (в кодировке UTF-8) к серверу АПК Ассист.

URL запроса для отмены или возврата средств и список параметров запроса отмены оплаты совпадают с указанными здесь значениями . Для передачи чека отмены добавляется лишь повторяющаяся структура ChequeItem, в которой передаются позиции чека, как в следующем примере.

Пример запроса в формате POST:

Code Block
languagexml
<FORM ACTION="https://<SERVER-NAME>/cancel/cancel.cfm" METHOD="POST">
<INPUT TYPE="HIDDEN" NAME="BillNumber" VALUE="Номер платежа">
<INPUT TYPE="HIDDEN" NAME="Merchant_ID" VALUE="Ваш Merchant_ID">
<INPUT TYPE="HIDDEN"NAME="Login"VALUE="Ваш логин">
<INPUT TYPE="HIDDEN"NAME="Password"VALUE="Ваш пароль"
<INPUT TYPE="HIDDEN" NAME="Amount"VALUE="Сумма"> 
<INPUT TYPE="HIDDEN" NAME="Currency"VALUE="Валюта"> 
<INPUT TYPE="HIDDEN" NAME= CancelReason"VALUE="1">
<INPUT TYPE="HIDDEN" NAME="Email" VALUE="test@test.ru">
<INPUT TYPE="HIDDEN" NAME="OrderComment" VALUE="тестовый платеж">
<INPUT TYPE="HIDDEN" NAME="Language" VALUE="RU">
<INPUT TYPE="HIDDEN" NAME="GenerateReceipt" ="1">
<INPUT TYPE="HIDDEN" NAME="PaymentPlace" ="А345"
<INPUT TYPE="HIDDEN" NAME="ChequeItems" =
  "{[{"id":"1"
     "name":"name1",
     "product":"2147483646",
     "price":"150.82",
     "quantity":"2.37",
     "measure":"кг",
     "amount":"357.44",
     "taxes":"[{'name':'vat12','value':12},{'name':'vat0','value':0}]",
   },
   {"id":"2",
     "name":"Товар 2",
     "product":"1212",
     "price":"128.12",
     "quantity":"5.76",
     "measure":"кг",
     "amount":"737.97",
     "tax":"vat12",
   },
   {"id":"3",
     "name":"Товар 3",
     "price":"370.6789",
     "product":"131415",
     "quantity":"2.658",
     "measure":"кг",
     "amount":"985.24",
     "tax":"vat0",
   },
   {"id":"4",
     "name":"Name 4",
     "product":"5432",
     "price":"49.56788",
     "quantity":"6",
     "measure":"кг",
     "amount":"297.36",
     "taxes":"[{'name':'vat0','value':0}]",
   },
   {"id":"5",
     "name":"Товар 5",
     "product":"11223344",
     "price":"49",
     "quantity":"6",
     "measure":"кг",
     "amount":"294",
   }]}"
<INPUT TYPE="SUBMIT" NAME="Submit" VALUE="Выполнить">
</FORM>

В случае проведения отмены на полную сумму не обязательно передавать набор структур ChequeItem соответствующий всему чеку, переданному в заказе. Для отмены на полную сумму чек не является обязательным.

Чек отмены может содержать все или часть позиций, которые присутствовали в чеке оплаты или в чеке подтверждения при двустадийном механизме работы.

Для каждой позиции чека отмены параметры id, name, price должны быть безусловно эквивалентны этим параметрам соответствующей позиции чека оплаты или чека подтверждения при двустадийном механизме работы.

Сумма параметров amount всех позиций чека отмены должна быть равна сумме отмены из поля Amount запроса на отмену.

Для каждой позиции чека отмены значения параметров quantity и amount не должны быть больше, чем значения соответствующих параметров quantity и amount чека оплаты или чека подтверждения (при двустадийном механизме работы) с учетом значений параметров quantity и amount по этой позиции из уже проведенных ранее отмен.

Значения параметров price и amount всех позиций в чеке должны быть в одной валюте, и эта валюта должна совпадать с валютой запроса (параметр Currency в запросе).

Если указанные выше условия не соблюдаются, чек признается неверным и происходит ошибка запроса.

Чек при создании счета

Список основных параметров запроса и URL запроса приводятся в документации.

Пример запроса в формате POST:

Code Block
languagexml
<FORM ACTION="https://<SERVER-NAME>/bill/createbill.cfm" METHOD="POST">
<INPUT TYPE="HIDDEN" NAME="Merchant_ID" VALUE="Ваш Merchant_ID">
<INPUT TYPE="HIDDEN" NAME="Login" VALUE="Ваш логин">
<INPUT TYPE="HIDDEN" NAME="Password" VALUE="Ваш пароль">
<INPUT TYPE="HIDDEN" NAME="Bill" VALUE="280620210">
<INPUT TYPE="HIDDEN" NAME="Bill_amount" VALUE="2672.01"> 
<INPUT TYPE="HIDDEN" NAME="Bill_currency" VALUE="KZT"> 
<INPUT TYPE="HIDDEN" NAME="Customer_Email" VALUE="Email плательщика">
<INPUT TYPE="HIDDEN" NAME="Bill_comment" VALUE="тестовый счет">
<INPUT TYPE="HIDDEN" NAME="Customer_Lastname" VALUE="Тестов">
<INPUT TYPE="HIDDEN" NAME="Customer_Name" VALUE="Тест">
<INPUT TYPE="HIDDEN" NAME="Delay" VALUE="1">
<INPUT TYPE="HIDDEN" NAME="Language" VALUE="RU">
<INPUT TYPE="HIDDEN" NAME="SendNotification" ="1">
<INPUT TYPE="HIDDEN" NAME="CashierINN" ="2147483646">
<INPUT TYPE="HIDDEN" NAME="Cashier" ="Иванов Иван Иванович">
<INPUT TYPE="HIDDEN" NAME="PaymentPlace" ="А345">
<INPUT TYPE="HIDDEN" NAME="ChequeItems" =
  "{[{"id":"1"
     "name":"name1",
     "product":"2147483646",
     "price":"150.82",
     "quantity":"2.37",
     "measure":"кг",
     "amount":"357.44",
     "taxes":"[{'name':'vat12','value':12},{'name':'vat0','value':0}]",
   },
   {"id":"2",
     "name":"Товар 2",
     "product":"1212",
     "price":"128.12",
     "quantity":"5.76",
     "measure":"кг",
     "amount":"737.97",
     "tax":"vat12",
   },
   {"id":"3",
     "name":"Товар 3",
     "price":"370.6789",
     "product":"131415",
     "quantity":"2.658",
     "measure":"кг",
     "amount":"985.24",
     "tax":"vat0",
   },
   {"id":"4",
     "name":"Name 4",
     "product":"5432",
     "price":"49.56788",
     "quantity":"6",
     "measure":"кг",
     "amount":"297.36",
     "taxes":"[{'name':'vat0','value':0}]",
   },
   {"id":"5",
     "name":"Товар 5",
     "product":"11223344",
     "price":"49",
     "quantity":"6",
     "measure":"кг",
     "amount":"294",
   }]}"
<INPUT TYPE="SUBMIT" NAME="Submit" VALUE="Выполнить">
</FORM>

Чек при создании платежа в режиме Silentpay

Список основных параметров запроса и URL запроса приводятся в документации.

Пример запроса в формате SOAP:

Code Block
languagexml
<?xml version='1.0' encoding='utf-8' standalone='no'?> 
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ws="http://www.paysecure.ru/ws/">  
   <soapenv:Header/> 
      <soapenv:Body>
         <ws:SilentPay>
            <payment>
<merchant_id xsi:type="xsd:string">791560</merchant_id>
<login xsi:type="xsd:string">person02</login>
<password xsi:type="xsd:string">qwerty</password>
<orderamount xsi:type="xsd:string">2672.01</orderamount>
<ordernumber xsi:type="xsd:string">280620212017431</ordernumber>
<delay xsi:type="xsd:string">0</delay>
<comment xsi:type="xsd:string">Test Silent</comment>
<ordercurrency xsi:type="xsd:string">KZT</ordercurrency>
<clientip xsi:type="xsd:string">10.20.10.85</clientip>
<language xsi:type="xsd:string">RU</language>
<cardtype xsi:type="xsd:string">1</cardtype>
<cardnumber xsi:type="xsd:string">5529263272356119</cardnumber>
<cardholder xsi:type="xsd:string">TEST</cardholder>
<expiremonth xsi:type="xsd:string">12</expiremonth>
<expireyear xsi:type="xsd:string">2022</expireyear>
<cvc2 xsi:type="xsd:string">123</cvc2>
<lastname xsi:type="xsd:string">Testov</lastname>
<firstname xsi:type="xsd:string">Тест</firstname>
<middlename xsi:type="xsd:string">Testovich</middlename>
<PaymentPlace xsi:type="xsd:string">А345</PaymentPlace>
<TaxpayerID xsi:type="xsd:string">123456789113</TaxpayerID>
<Cashier xsi:type="xsd:string">Макарова И.А.</Cashier>
<CashierINN xsi:type="xsd:string">2147483646</CashierINN>
<email xsi:type="xsd:string">null@assist.kz</email>
<country xsi:type="xsd:string">KAZ</country>
<city xsi:type="xsd:string">Астана</city>
<state xsi:type="xsd:string">01</state>
<format xsi:type="xsd:string">4</format>
<testmode xsi:type="xsd:string">0</testmode>
<chequeitem>
    <id>1</id>
    <product>2147483646</product>
    <name>name1</name>
    <price>150.00</price>
    <quantity>10</quantity>
    <measure>шт</measure>
    <amount>1500.00</amount>
    <gs1code>UlUtNDAxMzAxLUFBQTAyNzcwMzAx</gs1code>
    <tax>vat12</tax>
</chequeitem>
<chequeitem>
    <id>2</id>
    <product>1212</product>
    <name>Товар 2</name>
    <price>1172.01</price>
    <quantity>1</quantity>
    <measure>шт</measure>
    <amount>1172.01</amount>
    <gs1code>UlUtNDAxMzAxLUFBQTAyNzcwMzAy</gs1code>
    <taxes>[{'name':'vat0','value':0}]</taxes>
</chequeitem>
</payment>
</ws:SilentPay>
</soapenv:Body>
</soapenv:Envelope>

Чек при проведении фискализации

Список основных параметров запроса и URL запроса приводятся в документации.

Пример запроса в формате POST:

Code Block
languagexml
<FORM ACTION="https://<SERVER-NAME>/fiscal/fiscalize.cfm " METHOD="POST">
<INPUT TYPE="HIDDEN" NAME="Merchant_ID" VALUE="Ваш Merchant_ID">
<INPUT TYPE="HIDDEN" NAME="BillNumber" VALUE="Номер платежа">
<INPUT TYPE="HIDDEN" NAME="Amount" VALUE="2672.01">
<INPUT TYPE="HIDDEN" NAME="Type" VALUE="sell">
<INPUT TYPE="HIDDEN" NAME="Email" VALUE="test@test.kz">
<INPUT TYPE="HIDDEN" NAME="Paymenttype" VALUE="1">
<INPUT TYPE="HIDDEN" NAME="Format" VALUE="3">
<INPUT TYPE="HIDDEN" NAME="Language" VALUE="RU">
<INPUT TYPE="HIDDEN" NAME="Lastname" VALUE="Тестов">
<INPUT TYPE="HIDDEN" NAME="Firstname" VALUE="Тест">
<INPUT TYPE="HIDDEN" NAME="TaxationSystem" ="1">
<INPUT TYPE="HIDDEN" NAME="CashierINN" ="2147483646">
<INPUT TYPE="HIDDEN" NAME="Cashier" ="Иванов Иван Иванович">
<INPUT TYPE="HIDDEN" NAME="PaymentPlace" ="А345">
<INPUT TYPE="HIDDEN" NAME="ChequeItems" =
  "{[{"id":"1"
     "name":"name1",
     "product":"2147483646",
     "price":"150.82",
     "quantity":"2.37",     
     "measure":"кг",
     "amount":"357.44",
     "taxes":"[{'name':'vat12','value':12},{'name':'vat0','value':0}]",
   },
   {"id":"2",
     "name":"Товар 2",
     "product":"1212",
     "price":"128.12",
     "quantity":"5.76",
     "measure":"кг",
     "amount":"737.97",
     "tax":"vat12",
   },
   {"id":"3",
     "name":"Товар 3",
     "price":"370.6789",
     "product":"131415",
     "quantity":"2.658",
     "measure":"кг",
     "amount":"985.24",
     "tax":"vat0",
   },
   {"id":"4",
     "name":"Name 4",
     "product":"5432",
     "price":"49.56788",
     "quantity":"6",
     "measure":"кг",
     "amount":"297.36",
     "taxes":"[{'name':'vat0','value':0}]",
   },
   {"id":"5",
     "name":"Товар 5",
     "product":"11223344",
     "price":"49",
     "quantity":"6",
     "measure":"кг",
     "amount":"294",
   }]}"
<INPUT TYPE="SUBMIT" NAME="Submit" VALUE="Выполнить">
</FORM>

Получение фискального чека

Список основных параметров запроса и URL запроса приводятся в документации.