Интеграции с външни системи

XML Api

Адреса към който се подава XML-а е: http://домейна_на_фирмата.inv.bg/api

Входните данни се подават в XML формат чрез POST – променливата трябва се казва XMLDATA.

Структура

<?xml version="1.0" encoding="UTF-8" ?> <request> <!-- Данни за вход: --> <login username="doych" password="12345" /> <invoice> <!-- Информация за фактурата --> <info> <!-- Тип на фактурата: prof/dan/deb/kred prof - Проформа dan - Даначна фактура deb - Дебитно известие kred - Кредитно известие --> <type>dan</type> <!-- Номер на фактурата – ако е "AUTO" се генерира автоматично --> <number>AUTO</number> <!-- Има смисъл само когато типа на документа е deb или kred. В такъв случай този атрибут е номера на фактурата към която е издадено това дебитно или кредитно известие. --> <related_invoice>784322</related_invoice> <!-- Има смисъл само когато типа на документа е deb или kred и когато фактурата към която е издадено известието не е в системата на inv.bg. Задава датата на фактурата към която е издадено известието. --> <related_invoice_date>27.11.2009</related_invoice_date> <!-- Статус на фактурата – "UNPAID" или "PAID" --> <status>UNPAID</status> <!-- Дати на издаване и на дан.събитие – формат dd.mm.yyyy --> <date_create>28.11.2009</date_create> <date_event>29.11.2009</date_event> <!-- Валута - "лв", "USD", ... --> <currency>лв</currency> <!-- Размер на отстъпката --> <reduction_value>2</reduction_value> <!-- Дали е конкр. сума или е процент – "percent", "currency" --> <reduction_type>currency</reduction_type> <!-- Метод на плащане - "cash", "bank", "ondlv", "card", "order" или "other" --> <payment_method>cash</payment_method> <!-- Свободно описание на начина на плащане само ако горното е "other" --> <payment_method_other></payment_method_other> <!-- Дали въвеждаме цените с или без ДДС – 1 или 0 --> <enter_objects_with_vat>0</enter_objects_with_vat> <!-- Забележки към фактурата --> <notes></notes> <!-- Като се издаде дали да се прати на някого --> <create_and_send_to_email>name@domain.com</create_and_send_to_email> <!-- Като се издаде дали pdf-ът да се върне по xml – 1 или 0 --> <create_and_return_pdf>0</create_and_return_pdf> <!-- Основание за неначисляване на ДДС - да се попълва САМО ако има основание за неначисляване на ДДС. незадължителен параметър--> <without_vat_reason></without_vat_reason> </info> <!-- Информация за клиента --> <client> <!-- Име на фирмата --> <firmname>ЕТ Ник Павлов</firmname> <!-- ЕИК/Булстат --> <bulstat>1234567890</bulstat> <!-- ДДС номер (ако не е рег.по ЗДДС да е празно) --> <vat_number></vat_number> <!-- Град --> <town>Пловдив</town> <!-- Адрес на регистрация --> <address>Нещо си</address> <!-- Материално отговорно лице--> <mol>Някой си</mol> <!-- Получател на фактурата --> <recipient>Някой си</recipient> <!-- Банкови данни – задълж.са ако методът на плащане е "bank" --> <bank_name>Райфайзенбанк</bank_name> <bank_iban>BG11 RZBB 9155 1005 4160 29</bank_iban> <bank_bic>RZBBBGSF</bank_bic> <!-- *опционално* Идентификатор на клиента, по който да се познава във външната база данни --> <outside_client_id>42</outside_client_id> <!-- *опционално* Флаг, обозначаващ дали клиента е физическо лице(1) --> <is_person>0</is_person> <person_name>Павлов Човеков</person_name> <!-- *опционално* ЕГН. Има смисъл само когато клиента е физическо лице --> <person_egn>8801119127</person_egn> <!-- *опционално* Град на физическото лице --> <person_city>Варна</person_city> <!-- *опционално* Адрес на физическото лице --> <person_address>Приморкса 10</person_address> </client> <!-- Списък с артикулите --> <objects> <object> <!-- Име на артикула --> <name>Круши от по 8</name> <!-- Единица за количество - "COUNT", "DAY", "KILOGRAM". Ако е различен се създава нов за тази фирма. --> <quantity_unit>COUNT</quantity_unit> <!-- Количество --> <quantity_value>1</quantity_value> <!-- Единична цена --> <price_single>8</price_single> <!-- Количество, за което е единичната цена --> <price_single_is_for_quantity>1</price_single_is_for_quantity> <!-- *опционално* Отстъпка за артукил - число --> <reduction_value>1</reduction_value> <!-- *опционално* Дали е конкр. сума или е процент – "percent", "currency" --> <reduction_type>currency</reduction_type> <!-- *опционално* Коментар към този продукт във фактурата --> <notes>От Средна Гора. По два лева отстъпка на всеки два килограма.</notes> <!-- *опционално* клиентски вътрешен код на продукта, външен за inv.bg --> <outside_id>4</outside_id> <!-- *опционално* клиентски вътрешен код на групата, в която принадлежи продукта. Външен за inv.bg --> <outside_group_id>3</outside_group_id> </object> <object> <name>Круши от по 100</name> <quantity_unit>COUNT</quantity_unit> <quantity_value>1</quantity_value> <price_single>100</price_single> <price_single_is_for_quantity>1</price_single_is_for_quantity> <reduction_value>1</reduction_value> <reduction_type>percent</reduction_type> <notes>От Средна Гора. Но от хубавите!</notes> <outside_id>5</outside_id> <outside_group_id>2</outside_group_id> </object> </objects> <additional_fields> <field>value</field> <second_field>other value</second_field> <!-- Ако тук има email ще бъде създаден контакт за клиента --> <email></email> </additional_fields> </invoice> </request>

Скриптът може да върне две неща – за грешка и за успех.

Грешка

<?xml version="1.0" encoding="UTF-8" ?> <result> <status>ERROR</status> <error_code>INVALID_LOGIN</error_code> <error_message>Невалидно име или парола.</error_message> <invoice></invoice> </result>

Успех

<?xml version="1.0" encoding="UTF-8" ?> <result> <status>OK</status> <error_code></error_code> <error_message></error_message> <invoice> <!-- Тук връща номера на създадената фактура --> <number>0000000015</number> <!-- Ако е зададено create_and_return_pdf, тук връща файла --> <pdf>..base64encoded..</pdf> <!-- Id на фактурата --> <id>42</id> <!-- url за гледане на фактурата (трябва логин) --> <view_url></view_url> </invoice> </result>
© inv.bg 2009 - 2017