Лого

Как обойти ФЗ-54

 Брежнев Андрей28 марта 2018 г.
Как обойти ФЗ-54. Работа без онлайн-кассы с помощью API сервиса Моё Дело

Обновленный 54 ФЗ ударил без исключения по всем сферам бизнеса. Но намного сильнее досталось мелким интернет магазинам, для которых это оказалось непомерным грузом.

Я хочу рассказать о способе легального приема оплаты с помощью пластиковых карт. Он конечно подойдет не всем, а только пользователям онлайн бухгалтерии Моё Дело, ну или тем кто захочет пользоваться в будущем. Если заинтересует, могу подарить скидку 20%; получить скидку.

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

Выписывание счетов с помощью API сервиса Моё Дело

Идея напрашивалась давно, так как в сервисе Моё Дело к каждому счету можно сгенерировать онлайн ссылку на счет, который можно оплатить с помощью карты или Яндекс деньги.

Дело за малым, изучить API и написать скрипт. Сказано сделано, идем в мануал сервиса и находим инструкции по следующим функциям: Выписка счетов, поиск контаргентов и создание нового контрагента. Другие функции можно использовать, если хотите в дальнейшем развить идею.

Для начала нам нужны исходные данные, название контагента и сумма оплаты:


$name = 'ООО Династия';
$price = 500;

Дальнейшие действия происходят в 3 шага:

1. Поиск контагента в базе


$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://restapi.moedelo.org/kontragents/api/v1/kontragent?name=".urlencode($name));
curl_setopt($ch, CURLOPT_HTTPHEADER, array("Content-Type: application/json","Accept: application/json","md-api-key: ваш-апи-кей"));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);

$answerObject = json_decode($response);
$arr = ($answerObject);
foreach ($arr as $key => $value) {
foreach ($value[0] as $key1 => $value1) {     
if ($key1 == 'Id') {$KontragentId = $value1;}
}
}

if ($KontragentId > 0) {
//Контрагент найден и его id известно	
}

2. Создание нового контрагента


$data_string = '{
  "Name": "'.$name.'",
  "Type": 1
}';

print_r($data_string);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://restapi.moedelo.org/kontragents/api/v1/kontragent");
curl_setopt($ch, CURLOPT_POST, true); // -X
curl_setopt($ch, CURLOPT_HTTPHEADER, array("Content-Type: application/json","Accept: application/json","md-api-key: ваш-апи-кей"));
curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);

$answerObject = json_decode($response);
$arr = ($answerObject);
foreach ($arr as $key => $value) {     
if ($key == 'Id') {$KontragentId = $value;}
}
if ($KontragentId > 0) {
//Контрагент создан и его id известно	
}

3. Создание счета на оплату


//создание счета
$DocDate = date('Y-m-d');
$date2 = strtotime("+10 day");
$DeadLine = date('Y-m-d', $date2);

$data_string = '{
  "Number": "",
  "DocDate": "'.$DocDate.'T00:00:00+03:00",
  
  
  "Type": 1,
  "Status": 4,
  "KontragentId": '.$KontragentId.',
  "DeadLine": "'.$DeadLine.'T00:00:00+03:00",
  "AdditionalInfo": "",
  "ContractSubject": "",
  "NdsPositionType": 1,
  "IsCovered": true,
  "UseStampAndSign": true,
  "Items": [
    {
      
      "Name": "Название товара или услуги",
      "Count": 1,
      "Unit": "шт",
      "Type": 2,
      "Price": '.$price.',
      "NdsType": 0
    }
  ]
}';


$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://restapi.moedelo.org/accounting/api/v1/sales/bill");
curl_setopt($ch, CURLOPT_POST, true); // -X
curl_setopt($ch, CURLOPT_HTTPHEADER, array("Content-Type: application/json","Accept: application/json","md-api-key: ваш-апи-кей"));
curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$response = curl_exec($ch);
print_r($response);
curl_close($ch);

$answerObject = json_decode($response);
$arr = ($answerObject);
foreach ($arr as $key => $value) {     
if ($key == 'Online') {$url = $value;}
}
if ($url != "") {
// Скрипт возвращает ссылку на счет
}


Минусы метода

Минус в задержке оплаты. Деньги на РС счет приходят на следующий день, а иногда через 2 дня. Но клиенты могут прислать скан платежки, что может ускорить работу с заказами.

Плюсы метода

  1. Не нужна касса
  2. Не нужно платить комиссию агрегаторам или банку
  3. Счет на оплату уже сформирован и базе

Ну в кратце все. Если вопросы возникнут, пишите в комментах ниже.

Рейтинг: 1.9/5 (Оценили: 113)

Читайте также

Рейтинг
1 февраля 2018 г.
Как передать параметры для кроссдоменного iframe, просто и понятно