Електронна бележка за онлайн магазин

Тази функция е полезна за собствениците на онлайн магазини, прилагащи алтернативен режим за неприсъствени плащания (получават плащания с карти през виртуален POS терминал и не желаят да обвързват електронните си магазини със СУПТО или да работят с фискално устройство). Ако се генерира ежемесечно XML файл (стандартизиран одиторски файл за всички извършени чрез електронния магазин продажби, който се подава до 15-о число на месеца, следващ месеца, за който се отнася) и изпращат електронен документ (електронна бележка) на клиента за всяка направена поръчка платена с карта, тогава те не са задължени да използват СУПТО /импортер към СУПТО/ и да издават фискален бон за всяка продажба. Необходимо е всяко лице, което извършва продажби чрез електронен магазин, изпълнява условията и желае да прилага алтернативния режим за отчитане на продажби, за които е извършено неприсъствено плащане с кредитна или дебитна карта, да се запознае подробно с разпоредбите на чл. 3, ал.17 и глава седма "г" от Наредба №Н-18/2006 г.

Когато се изпълни тази функция с нужните параметри, в базата на софтуера за фактуриране се записва съответния документ в списъка с електронни бележки със следващ пореден номер. Повече за настройките в софтуера и работата с онлайн магазини можете да прочетете тук.

Електронна бележка

Функция/команда:document_online_shop
Предназначение:Създаване на бележка в софтуера с допълнителна възможност (задава се в $settings) за генериране на PDF файл, който може да бъде съхранен като файл или автоматично изпратен по електронен път до клиента
Параметри:
  1. document - обект (StdClass в PHP), който съдържа полета:
    •   » title - заглавие на документ. Ако не се попълни се използва "ЕЛЕКТРОННА БЕЛЕЖКА"
    •   » total - обща сума в лева
    •   » language - код на езика на отпечатания документ - bg или en
    •   » nra_number - номерът, получен от НАП при подаване на информация по чл. 52р от приложение № 33
    •   » eshop_id - ID на онлайн магазина от номенклатурата на софтуера
    •   » order_number - № на поръчка от онлайн магазини
    •   » order_date - Дата на поръчка (формат YYYY-MM-DD)
    •   » pos_number - № на VPOS терминала
    •   » transaction_number - авторизационен номер на транзакция (Retrieval reference number RRN)
    •   » payment_method_id - начин на плащане. 2 - банка, 3- POS, 8 - ППП, 9 - PayPal, 10 - myPOS, 11 - Paysera, 12 - Виртуален POS, 13 - Stripe
    •   » payment_provider_number - номер на доставчика на платежни услуги. Посочва се ЕИК за български и ДДС №, а за чуждестранни лица
    •   » client_number - ЕИК/ЕГН на клиент
    •   » client_vat ИН по ДДС, VAT number
    •   » client_name - име на клиент
    •   » client_place - населено място от дан. адрес
    •   » client_address - данъчен адрес (без населено място)
    •   » client_face - МОЛ
    •   » client_phone - тел. номер
    •   » client_email - email на клиент
    •   » receiver - име на получател
    •   » creator - име на съставител. Ако не е попълнено се използва посочения съставител в настройките
    •   » place - място на сделката. Ако не е посочено се използва мястото от данъчния адрес на доставчика
    •   » numbers_id - няма нужда се попълва ако работите с основен търговски обект. 1 - за втори, 2 - за трети и т.н.
    •   » add_client_to_db - Ако е попълнено 1 и клиентът не съществува в списъка с клиенти в софтуера се добавя. Прави се проверка по ЕИК/ЕГН.
    •   » vat_percent - начислед ДДС%, напр. 20. Ако не се попълни се взима от фирмения профил
    •   » rows - Редове на документ. Масив от обекти със следните полета:
      •     » name - Име на стока или услуга
      •     » quantity - Количество на стока/услуга
      •     » measure_id - Мярка на стока/услуга - 70 за брой. За повече информация - F. ДРУГИ > Мерни единици
      •     » price - Продажна цена на стока/услуга в лева
    • settings - обект (StdClass в PHP), който съдържа полета за:
      •   » return_pdf - въведете 1 ако желаете функцията да върне PDF файл
      •   » recipient_email - email на получател на документа за автоматично изпращане
      •   » email_body - въведете съдържание на писмо ако желаете да използвате собствено
Postman пример: https://fakturirane.com/api/v1/document_online_shop?document={"total":"40", "nra_number":"RF0000221", "vat_percent":"20", "order_number":"10023", "pos_number":"23423342343", "transaction_number":"1234567", "payment_method_id":"3", "client_number":"147022197", "client_name":"Име на клиент", "rows":[{"name":"Стока 1", "quantity":"4", "measure_id":"70","price":"10"}]}&settings={"return_pdf":"1"}
Резултат: {
    "error": 0,
    "pdf": "%25PDF-1.7%0A%25%E2%E3%CF%D3%0A10+0+obj%0A"
}

-error - Код на грешка
-pdf - Съдържанието на файла представен като текст
Възможни грешки: - Грешка при изпълнение на заявка. (4)
Забележка:Полученият резултат може да бъде показан или изтеглен като файл в браузъра или да бъде съхранен като PDF файл, след което да бъде изпратен на клиента
Примерен PHP код: <?php
include('fapi-settings.php'); // fapi-settings.php можете да копирате от тук

$document = new StdClass();
$document->title = 'ЕЛЕКТРОННА БЕЛЕЖКА'; // заглавие на документ. Ако не се попълни се използва "ЕЛЕКТРОННА БЕЛЕЖКА"
$document->language = 'bg'; // език на отпечатания документ - bg или en
$document->nra_number = 'RF0000221'; // номерът, получен от НАП при подаване на информация по чл. 52р съгласно приложение № 33

$document->eshop_id = '1'; // ID на онлайн магазина от номенклатурата на софтуера
$document->order_date = '2020-12-24'; // дата на поръчка от онлайн магазини (формат YYYY-MM-DD)
$document->order_number = '1'; // номер на поръчка от онлайн магазини
$document->pos_number = '123456'; // номер на VPOS терминала. Попълва се само за VPOS транзакции
$document->transaction_number = '1234234235234'; // авторизационен (Retrieval reference number RRN) номер на транзакцията - при VPOS
$document->payment_method_id = 3; // 2 - по банка банка, 3- VPOS, 8 - Пощенски паричен превод, 9 - PayPal, 10 - myPOS, 11 - Paysera
$document->payment_provider_number = '206181036'; // В случай че плащането е извършено чрез доставчика на платежни услуги, полето е задължително. Посочва се ЕИК, а за чуждестранни лица- ДДС

$document->client_number = '147022197'; // ЕИК на клиент
$document->client_vat = ''; // ИН по ДДС
$document->client_name = 'Име на клиент';
$document->client_place = 'гр. Бургас'; // населено място от дан. адрес
$document->client_address = 'ул. Перущица 5'; // данъчен адрес (без населено място)
$document->client_face = 'МОЛ';
$document->client_phone = '0888888888';
$document->client_email = 'email@na.klient';
$document->receiver = 'Иван Иванов'; // Получател

$document->creator = 'Георги Георгиев'; // ако не е попълнено се използва посочения съставител в настройките
$document->place = 'гр. София'; // Място на сделката, ако не е посочено се използва мястото от данъчния адрес на доставчика
$document->numbers_id = 0; // Коментирайте ако работите с основен търговски обект. 1 - за втори, 2 - за трети и т.н.
$document->add_client_to_db = 1; // използва се ако клиентът не съществува в номенклатурата с клиенти и желаете да го добавите. Прави се проверка по ЕИК/ЕГН.

$document->vat_percent = 20; // ако не се попълни се взима от фирмения профил
$document->rows = array();

// Ред 1
$row = new StdClass();
$row->name = 'Стока 1';
$row->quantity = 4;
$row->measure_id = 70; // мярка от номенклатурата - 70 - бр.
$row->price = 10.00; // ед. цена с ДДС
$document->rows[] = $row;

// Ред 2
$row = new StdClass();
$row->name = 'Стока 2';
$row->quantity = 1;
$row->measure_id = 90;
$row->price = 15.00; // ед. цена с ДДС
$document->rows[] = $row;

$document->total = 55.00; // сума за плащане

$document->null_value = ''; // основание за нулева ставка или ненач. на ДДС. Попълва се само ако ДДС е 0%. Пример: Неначислен ДДС съгласно чл.113 ал.9 от ЗДДС
$document->note = 'Забележка към документ';

$settings = new StdClass();
$settings->return_pdf = 1;

$command = 'document_online_shop'; // API функция/команда
$data = array('document'=>json_encode($document), 'settings'=>json_encode($settings));

$result = send_to_api($command, $data); // изпълнение на функцията
// print_r($result); // можете да откоментирате, за да погледнете дали всичко е наред
if($result->error == 0){
  if(isset($result->pdf)){
    $pdf = urldecode($result->pdf);
    file_put_contents('order-document.pdf', $pdf); // Запазване във файл на генерирания PDF

    // Ако желаете можете да изтеглите файла или отворите директно в браузъра
    /*
    header('Content-Type: application/pdf');
    header('Content-Length: '.strlen($pdf));

    //header('Content-Disposition: inline;'); // За да се зареди PDF-а в браузъра
    header('Content-Disposition: attachment; filename=document.pdf'); // файла се изтегля.

    header('Cache-Control: private, max-age=0, must-revalidate');
    header('Pragma: public');
    echo $pdf;
    */
  }
}else{
  echo $result->error;
}
?>
Създайте си фирмен профил и изпробвайте Фактуриране