Създаване на документ чрез API

Функция/команда:document_create
Предназначение:Използва се за създаване на нов документ
Параметри: 1.client_number- ЕИК на клиент (използвайте 000000000, 111111111 или 999999999 ако не го знаете)
2.type - Вид документ (1 - фактура, 2 - проформа, 3 - стокова разписка, 4 - протокол)
3.document - обект, който съдържа полета за:
-sumОбща сума в лева - данъчна основа
-dds_percent - ДДС % - 0, 9 или 20
-null_value - Основание за нулева ставка или ненач. на ДДС - Попълва се само ако ДДС е 0%
-payment_method_id - Код на начин на плащане - 1 - в брой. Таблица с други кодове
-eshop_id - №/ID на онлайн магазин (незадължително)
-order_id - № на поръчка/заявка (незадължително)
-order_date - Дата на поръчка/заявка (незадължително)
-note - Забележка към документ
-paid - Статус на плащане - 1 - платен, 0 - неплатен, 2 - частично платен
-kind -Кредитно или дебитно известие - използва се само за фактурите. 1 - за кредитно, 2 - за дебитно известие.
-reason - Основание за кредитно или дебитно известие
-client_id - ID на клиент
-client_name - Име на клиент
-client_country_id - Код на държава на клиента
-client_place - Населено място на клиент
-client_address - Данъчен адрес на клиент
-client_dds - ИН по ДДС на клиент
-client_face - МОЛ на клиент
-client_phone - Телефон на клиент
-client_email - Email на клиент
-receiver - Име на получател
-company_face - МОЛ на доставчик
-creator - Съставител на документа
-place - Място на сделката - ако не е посочено се използва мястото от данъчния адрес на доставчика
-numbers_id - Код на търговски обект - ако не е посочено се използва основния, 1 - за втори, 2 - за трети и т.н.
-add_client_to_db - Добавяне на клиента в базата с данни. Въведете 1 и ако клиентът не съществува в номенклатурата с клиенти той ще се добави автоматично. Прави се проверка по ЕИК/ЕГН.
-update_quantities - Актуализиране на складовите наличности при ползване на модул "Склад". Въведете 1 ако желаете да се регистрират движения в склада.
- rows - Редове на документ. Масив от обекти със следните полета:
  » name - Име на стока или услуга
  » quantity - Количество на стока/услуга
  » measure_id - Мярка на стока/услуга - 70 за брой. За повече информация - 4. ДРУГИ > Таблица с използвани мерни единици
  » price - Ед. цена на стока/услуга в лева
  » code - Артикулен номер - използва се задължително ако се ползва модул "Склад" или някоя от следващите две настройки
  » load_name_from_db - Зареждане на името от базата данни - можете да не подавате името през API, а да се извлича директно от базата данни спрямо подадения артикулен номер. Въведете 1 ако желаете това действие.
  » load_price_from_db - Зареждане на цената от базата данни - можете да не подавате ед. цена през API, а да се извлича директно от базата данни спрямо подадения артикулен номер. Въведете 1 ако желаете това действие.
Допълнителни полета за Invoice - документ на английски език:
-invoice_currency_id - Валута за английски език - тук са описани всички възможни валути.
-currency_fixing - Фиксинг спрямо лева - по подразбиране е 1.
-retail_sum - Обща сума в съответната валутата. Ако се пропусне се изчислява автоматично спрямо фиксинга.
Postman пример: https://fakturirane.eu/api/document_create?client_number=147022197&type=2&document={"sum":"100","payment_method_id":"2","rows":[{"name":"Стока 1", "quantity":"4", "measure_id":"70","price":"10"}]}
Резултат: {
    "error": 0,
    "document": {
       "id": "1",
       "number": "1"
   }
}

-error - Код на грешка
-document - обект със следните полета:
  -id - ID на документа
  -number - номера на документа
Възможни грешки: - Не е въведен ЕИК. Можете да използвате 000000000, 111111111 или 999999999 ако не знаете ЕИК на клиента! (501)
- Не е подаден последния параметър с детайлите на документа и редовете! (502)
- Невалиден вид на документ. Използвайте 1 за фактура/и, 2 за проформа/и, 3 за стокови разписка/и или 4 за протокол/и. (3)
Забележки:1. Ако някое поле свързано с клиента не е зададено в третия параметър на функцията, тогава то се извлича от базата данни в зависимост от въведения ЕИК.
2. Останалата инфорамация за документа (напр. Съставител) се извлича от последно издадения документ.
3. Тази функция не променя складовите наличности ако не се подаде параметър update_quantities = 1
4. Ако създавате документ само в чуждестранна валута, тогава можете да въведете единичните цени в редовете в съответната валута и за фиксинг да зададете 1.
5. В СУПТО може да се създава само проформа-фактура
Примерен PHP код: // Следния код се вмъква в примерния скрипт.

$client_number = '000000000'; // ЕИК на клиента, 000000000 - ако е частно лице
$doc_type = 2; // 1 - за фактура, 2 - проформа, 3 - протокол, 4 - ст. разписка

$document = new StdClass();

$document->client_name = 'Име на клиент'; // ако не се зададе се извлича от базата данни спрямо въведения ЕИК
$document->client_country_id = 17; // България
$document->client_place = 'Град';
$document->client_address = 'Данъчен адрес на клиента';
$document->client_dds = 'BG999999999';
$document->client_face = 'Иван Иванов';
$document->client_phone = 'Телефон';
$document->client_email = 'email@na.klient';
$document->receiver = 'Иван Иванов';
$document->reason = 'Основание за кредитно или дебитно известие'; // попълва се ако се издава кредитно или дебитно известие
$document->company_face = 'Георги Георгиев'; // ако не е попълнено се използва посочения МОЛ в настройките
$document->creator = 'Георги Георгиев'; // ако не е попълнено се използва посочения съставител в настройките
$document->place = 'гр. София'; // Място на сделката, ако не е посочено се използва мястото от данъчния адрес на доставчика
$document->numbers_id = 0; // Коментирайте ако работите с основната номерация на програмата. 1 - за втора номерация, 2 - за трета и т.н.
$document->kind = 0; // използва се само в комбинация с $doc_type = 1; // фактура, само когато се издават известия, 1 - за кредитно, 2 - за дебитно.
$document->add_client_to_db = 1; // използва се ако клиентът не съществува в номенклатурата с клиенти и желаете да го добавите. Прави се проверка по ЕИК/ЕГН.

$document->rows = array();

// Ред 1
$row = new StdClass();
$row->name = 'Стока 1';
$row->quantity = 4;
$row->measure_id = 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->payment_method_id = 1;
$document->sum = 55.00;
$document->dds_percent = 20;
$document->null_value = 'Неначислен ДДС съгласно чл.113 ал.9 от ЗДДС'; // основание за нулева ставка или ненач. на ДДС. Попълва се само ако ДДС е 0%.
$document->note = 'Забележка към документ';
$document->paid = 1; // маркиране като платен, 0 - неплатен

$new_document = $FAPI->document_create($client_number, $doc_type, $document);
if(isset($new_document)){
  echo 'Документът е създаден успешно';
}else{
  echo ' Документът не е създаден!';
}
Внимание: “бисквитки”

Съгласно Регламент (ЕС) 2016/679 на Европейския парламент и на Съвета от 27 април 2016 година относно защитата на физическите лица във връзка с обработването на лични данни и относно свободното движение на такива данни (GDPR), за да използвате този уеб сайт и услугите предлагани чрез него, е необходимо да прочетете документите Правила и условия за ползване, Политика за поверителност и Политика за употреба на “бисквитки”, след което да отбележите изрично, че се съгласявате със съдържанието им.