[{"data":1,"prerenderedAt":358},["ShallowReactive",2],{"help-article-invoice-439":3,"help-view-invoice":37},{"data":4},{"help":5},{"id":6,"name":7,"article":8},"20","Інвойс",{"id":9,"catalog":10,"category":11,"keywords":14,"title":25,"description":26,"body":27,"legacy":28,"created_by":29,"created_at":33,"updated_at":34,"edge_associated_articles":35},"439",{"id":6,"name":7},{"id":12,"name":13},"95","Інтеграції та API",[15,16,17,18,19,20,21,22,23,24],"API","API-ключ","REST API","інтеграція","автоматизація","бета","створено через API","джерело документа","коротке посилання","регулярні рахунки через API","Публічне API та API-ключі (бета)","Функція в бета-режимі, вмикається в **Налаштування → Ранні функції** (у меню — «Експериментальні функції»). Докладніше про такі функції — у статті [Експериментальні функції](https://wiki.oneb.app/help/invoice/articles/435).\n\nЯкщо у вас є власний сайт, CRM чи облікова система, їх можна зʼєднати з OneB Invoice через **пу","Функція в бета-режимі, вмикається в **Налаштування → Ранні функції** (у меню — «Експериментальні функції»). Докладніше про такі функції — у статті [Експериментальні функції](https://wiki.oneb.app/help/invoice/articles/435).\n\nЯкщо у вас є власний сайт, CRM чи облікова система, їх можна зʼєднати з OneB Invoice через **публічне API** — наприклад, щоб рахунки створювались автоматично із замовлень вашого магазину. Для доступу до API потрібен **API-ключ**, який ви створюєте самі в застосунку і передаєте розробникові.\n\n**Де це в застосунку:** Налаштування → API Keys.\n\n## Кому це потрібно\n\nСтаття для тих, хто працює з розробником або технічним партнером: ключ створюєте ви, а використовує його ваша система. Якщо вам достатньо готових інтеграцій — [OneB Finance](https://wiki.oneb.app/help/invoice/articles/281), [Prom.ua](https://wiki.oneb.app/help/invoice/articles/447), [School Today](https://wiki.oneb.app/help/invoice/articles/448) — API не знадобиться.\n\n## Як створити API-ключ\n\n1. Увімкніть **«API Keys»** у **Налаштування → Ранні функції**.\n2. Відкрийте **Налаштування → API Keys** і натисніть **«Створити ключ»**.\n3. Вкажіть назву ключа (наприклад, «Інтеграція з CRM») і, за бажанням, **дату закінчення дії** — після неї ключ перестане працювати сам.\n4. Натисніть **«Створити»** і одразу збережіть значення ключа в надійному місці: **повністю він показується один раз**. Потім у списку видно лише початок ключа.\n\nУ списку для кожного ключа видно назву, початок ключа, дати створення, спливання і останнього використання, а також кнопки «Перегенерувати» і «Видалити».\n\n![1.00](/img/s4/b1e3/1653e617e30a67fcd429255c6dd5c4b50ebf.png?s=6578702ce01dceb6f6375457301eabf9)\n\n## Що саме може ключ\n\n**Ключ має рівно ті самі права, що й користувач, який його створив.** Якщо у вас роль без доступу до, скажімо, договорів, ключ теж їх не побачить. Тому ключ, створений адміністратором, — «сильніший» за ключ менеджера.\n\n**Ключ працює лише в одному робочому просторі** — тому, в якому його створили. Якщо у вас кілька просторів, для кожного потрібен свій ключ.\n\nЧерез API доступні документи (рахунки, акти й інші типи), клієнти, товари та їхні категорії, профілі компаній, валюти, способи оплати, платежі з OneB Finance, зведені показники дашборда, розклади регулярних рахунків, а також керування вебхуками та самими API-ключами. Документ можна створити, оновити, змінити статус, видалити, отримати його PDF, увімкнути публічне посилання й створити з нього дочірній документ.\n\n## Документи, створені через API, видно в застосунку\n\nДокумент, який ваша система створила з API-ключем, у застосунку позначається смужкою **«Створено через API»** на картці документа і стрічкою «API» у списку — так само, як позначаються рахунки, що приходять з Prom.ua. Автором такого документа вважається не користувач, який створив ключ, а «API». Це допомагає бухгалтеру відрізнити власні чернетки від тих, що надійшли з іншої системи.\n\nТе саме джерело передається і розробникові: у відповідях API та у вебхуках є поле `source` зі значенням «користувач», «API» або назва інтеграції. Так ваша система може відбирати лише свої документи.\n\n## Що ще повідомляє API про документ\n\nКрім основних даних документа, розробникові доступні:\n\n* **час публікації** (`shared_at`) — коли документ востаннє поділили з клієнтом кнопкою «Поділитись» або через API; для чернетки значення порожнє. Зручно, щоб ваша система реагувала саме на момент виставлення рахунка, а не на будь-яке редагування;\n* **коротке публічне посилання** (`short_url`) — у відповідь на запит публічного посилання API повертає і повний, і скорочений варіант. Скорочене — те саме, що показує кнопка «Поділитись» у застосунку, його зручно надсилати клієнту. Якщо сервіс скорочення тимчасово недоступний, замість короткого повертається повне посилання, тож ваша система завжди має робочий варіант;\n* **рахунок-зразок** (`recurring_source_id`) — у рахунку, створеному за розкладом, це посилання на рахунок, з якого зроблено розклад; за ним же можна відфільтрувати список документів.\n\nПро публічне посилання, його захист і термін дії — у статті [Публічне посилання на документ](https://wiki.oneb.app/help/invoice/articles/508).\n\n## Регулярні рахунки через API\n\nВаша система може зробити рахунок [регулярним](https://wiki.oneb.app/help/invoice/articles/325) так само, як це робить користувач у застосунку: задати для нього розклад — як часто, дату наступного рахунку, коли закінчити (після кількості рахунків, до дати або безстроково) і чи надсилати рахунок клієнту одразу. Далі розклад можна прочитати, змінити, поставити на паузу й відновити або видалити, а також отримати список усіх розкладів простору.\n\nВажливо для розробника:\n\n* API **не створює рахунки наперед**: застосунок сам виставляє по одному рахунку в день дати, з поточним номером. Про кожен новий рахунок ваша система дізнається зі звичайної події вебхука про створення документа; щоб зрозуміти, що він створений за розкладом, запитайте цей документ через API — у ньому буде заповнене поле `recurring_source_id`. Те саме поле працює як фільтр списку документів: так можна отримати всі рахунки одного розкладу;\n* у відповіді про розклад видно наступну дату, скільки рахунків лишилось створити і скільки вже створено, останній створений рахунок і причину, якщо черговий рахунок пропущено (наприклад, вичерпано ліміт рахунків тарифу);\n* розклад, створений з API-ключем, дає рахунки з позначкою «Створено через API»;\n* дії «створити черговий рахунок негайно» в API немає — вона доступна лише в застосунку.\n\n## Документація для розробника\n\nБазовий шлях усіх запитів — `/api/public/v1` на адресі вашого застосунку. Технічна документація відкривається **без ключа** за тією самою адресою з додаванням `/api/public/v1/docs` — наприклад, посиланням **«API documentation»** у шапці екрана «API Keys». Її можна спокійно надіслати розробникові ще до того, як ви заведете ключ. Там перелічені всі запити, поля та приклади відповідей.\n\nУсі ідентифікатори записів у API — стабільні текстові коди (наприклад, документ виглядає як `inv_…`, клієнт — як `cli_…`). Їх варто зберігати у своїй системі як є.\n\n## Idempotency-Key: захист від дублів\n\nУявіть: ваша система надіслала запит на створення рахунка, звʼязок обірвався, відповідь не дійшла. Повторити запит страшно — раптом рахунок уже створився і буде другий.\n\nСаме для цього є заголовок **Idempotency-Key**. Розробник додає до запиту довільний унікальний рядок — «номер спроби». Далі:\n\n* якщо той самий ключ приходить **з тим самим запитом**, система не створює нічого нового, а повертає збережену відповідь від першого разу;\n* якщо той самий ключ приходить **з іншими даними**, запит відхиляється — це захист від випадкового перевикористання;\n* якщо два однакові запити прийшли одночасно, спрацює тільки один;\n* якщо перша спроба впала через збій на нашому боці, ключ можна використати ще раз.\n\nКлючі ідемпотентності зберігаються **добу**, потім видаляються. Заголовок необовʼязковий, але саме він дозволяє безпечно повторювати створення документів, розкладів регулярних рахунків, клієнтів, товарів, категорій і привʼязку платежів.\n\n## Обмеження й нюанси\n\nПублічне API — **рання (експериментальна) функція**: поки ви не увімкнете «API Keys» у Налаштування → Ранні функції, пункту меню просто не буде. Крім того, доступ до API входить не в кожен тарифний план — на пункті меню може зʼявитись іконка корони. Див. [Експериментальні функції](https://wiki.oneb.app/help/invoice/articles/435) і [Тарифний план і ліміти](https://wiki.oneb.app/help/invoice/articles/442).\n\nСтворювати, перевипускати й видаляти ключі може лише користувач із правами адміністратора робочого простору. Див. [Користувачі й ролі робочого простору](https://wiki.oneb.app/help/invoice/articles/419).\n\nДля одного ключа діє обмеження **120 запитів на хвилину**. При перевищенні система тимчасово відмовляє — розробникові варто передбачити повтор через паузу.\n\nПовне значення ключа показується **лише один раз** — при створенні або перевипуску. Якщо його втратили, ключ не «підглянути»: треба перегенерувати (старе значення одразу перестане працювати) або створити новий.\n\nКлюч дає доступ до даних усього робочого простору. **Не публікуйте його** і не надсилайте у відкритих каналах. Для кожної інтеграції створюйте окремий ключ з упізнаваною назвою — так видно, хто чим користується, і непотрібний ключ можна прибрати, не ламаючи решту.\n\nДокументи, створені через API, підпорядковуються тим самим правилам, що й створені вручну: редагування опублікованого документа повертає його в чернетку, і його треба поділитися з клієнтом знову. Див. [Статуси документів](https://wiki.oneb.app/help/invoice/articles/320).\n\n## Часті питання\n\n**Я загубив ключ. Де його подивитись?**\nНіде. У списку видно лише початок ключа. Натисніть «Перегенерувати» — отримаєте нове значення, але стару інтеграцію доведеться оновити.\n\n**Чи можна обмежити ключ лише читанням?**\nОкремого перемикача «тільки читання» немає. Обсяг прав визначає роль користувача, який створив ключ.\n\n**Ключ працює, але не бачить частини документів.**\nПеревірте роль користувача, під яким його створено, і чи не в іншому робочому просторі ви шукаєте дані.\n\n**Розробник питає, який базовий шлях використовувати.**\n`/api/public/v1` на адресі вашого застосунку. Повний перелік запитів — у документації за посиланням «API documentation».\n\n**Як відрізнити документи, створені моєю системою, від тих, що завели вручну?**\nУ застосунку — за смужкою «Створено через API» на картці документа. У відповідях API та вебхуках — за полем `source`.\n\n**Чи можна через API виставляти рахунки щомісяця автоматично?**\nТак: створіть для рахунку розклад — і застосунок сам виставлятиме наступні рахунки в день дати. Докладніше — у розділі «Регулярні рахунки через API» вище і в статті [Регулярні рахунки](https://wiki.oneb.app/help/invoice/articles/325).\n\n**Чи можна отримувати події замість того, щоб постійно опитувати API?**\nТак, для цього є [Webhooks](https://wiki.oneb.app/help/invoice/articles/440).\n\n## Що може змінитися\n\nФункція в бета-режимі. Набір доступних запитів і полів у відповідях може розширюватись, зʼявлятимуться нові події та можливості. Ми намагаємось не ламати наявні інтеграції, але поки функція в беті радимо: не покладатись на недокументовані поля і час від часу звірятися з документацією.\n\n## Дивіться також\n\n* [Webhooks: миттєві сповіщення ваших систем про події](https://wiki.oneb.app/help/invoice/articles/440)\n* [Регулярні рахунки: автоматичне виставлення за розкладом](https://wiki.oneb.app/help/invoice/articles/325)\n* [Публічне посилання на документ](https://wiki.oneb.app/help/invoice/articles/508)\n* [Експериментальні функції (ранні функції)](https://wiki.oneb.app/help/invoice/articles/435)\n* [Тарифний план і ліміти](https://wiki.oneb.app/help/invoice/articles/442)\n* [Користувачі й ролі робочого простору](https://wiki.oneb.app/help/invoice/articles/419)\n* [Інтеграція OneB Invoice та OneB Finance](https://wiki.oneb.app/help/invoice/articles/281)\n",false,{"id":30,"name":31,"photo_url":32},"37","Ярослав Плакида","https://account.oneb.app/uploads/usr/photo/1/JMQPpCmTUtL2j8Mecr5W3TbY5ZbyK4fw.jpeg?w=300&h=300&fit=crop&s=7712ff4ac866b4965be19403505c01c8",1783648145,1789622365,{"edges":36},[],{"data":38},{"help":39},{"id":6,"name":7,"language":40,"edge_categories":43,"edge_translations":356},{"id":41,"name":42},"uk","Українська",{"page_info":44,"edges":46},{"has_next_page":28,"end_cursor":45},"W1s0XSxbMiw1NV1d",[47,79,111,143,175,207,238,270,301,329,341],{"node":48},{"id":49,"name":50,"created_at":51,"articles_count":52,"edge_preview_articles":53},"54","Початок роботи",1698401262,14,{"edges":54},[55,59,63,67,71,75],{"node":56},{"id":57,"title":58},"548","Що відбувається з даними при видаленні",{"node":60},{"id":61,"title":62},"524","Історія змін документа і відновлення версії",{"node":64},{"id":65,"title":66},"509","Що OneB Invoice робить сам",{"node":68},{"id":69,"title":70},"506","Вхід у застосунок, зміна пошти й перемикання просторів",{"node":72},{"id":73,"title":74},"505","Робочий простір: що це, аліас і кілька просторів",{"node":76},{"id":77,"title":78},"455","Головна сторінка: швидкі дії, статистика і контроль оплат",{"node":80},{"id":81,"name":82,"created_at":83,"articles_count":84,"edge_preview_articles":85},"71","Документи",1730719366,7,{"edges":86},[87,91,95,99,103,107],{"node":88},{"id":89,"title":90},"529","Документ за QR-кодом",{"node":92},{"id":93,"title":94},"526","Редагування й копіювання рахунку",{"node":96},{"id":97,"title":98},"521","Додатки до договору",{"node":100},{"id":101,"title":102},"520","Зв'язки між документами: «в рамках», батьківський документ і копія",{"node":104},{"id":105,"title":106},"518","Публічна сторінка документа очима клієнта",{"node":108},{"id":109,"title":110},"517","Картка рахунку: що можна зробити після створення",{"node":112},{"id":113,"name":114,"created_at":115,"articles_count":116,"edge_preview_articles":117},"84","Покрокові інструкції",1783639591,52,{"edges":118},[119,123,127,131,135,139],{"node":120},{"id":121,"title":122},"560","Як додати печатку компанії на документи",{"node":124},{"id":125,"title":126},"556","Як імпортувати договір із Word (.docx) у шаблон",{"node":128},{"id":129,"title":130},"531","Публічний звіт для бухгалтера чи партнера",{"node":132},{"id":133,"title":134},"514","Сторони договору й заповнення даних контрагентом",{"node":136},{"id":137,"title":138},"513","Підпис «від руки» і «на папері»",{"node":140},{"id":141,"title":142},"512","Картка договору: вкладки Огляд, Специфікація, Повʼязані, Додатки, Історія",{"node":144},{"id":145,"name":146,"created_at":147,"articles_count":148,"edge_preview_articles":149},"85","Поняття й терміни",1783640071,8,{"edges":150},[151,155,159,163,167,171],{"node":152},{"id":153,"title":154},"545","SWIFT і SEPA реквізити",{"node":156},{"id":157,"title":158},"544","Бюджет проєкту (бета)",{"node":160},{"id":161,"title":162},"541","Учасники проєкту, задачі та ставки",{"node":164},{"id":165,"title":166},"511","Що означають сторінки помилок",{"node":168},{"id":169,"title":170},"508","Публічне посилання на документ: як працює і як захистити",{"node":172},{"id":173,"title":174},"417","Типи документів у OneB Invoice: що є що",{"node":176},{"id":177,"name":178,"created_at":179,"articles_count":180,"edge_preview_articles":181},"86","Огляди можливостей",1783640913,12,{"edges":182},[183,187,191,195,199,203],{"node":184},{"id":185,"title":186},"549","Журнали дня і тижня, звіт з обліку часу",{"node":188},{"id":189,"title":190},"547","Імпорт записів часу",{"node":192},{"id":193,"title":194},"540","Штрихкоди: сканування й пошук товару",{"node":196},{"id":197,"title":198},"536","Архів проєктів: куди подівся проєкт",{"node":200},{"id":201,"title":202},"523","Вибіркова аналітика: як побудувати власний звіт",{"node":204},{"id":205,"title":206},"454","Платежі: вхідні, вихідні та контроль оплат",{"node":208},{"id":209,"name":210,"created_at":211,"articles_count":148,"edge_preview_articles":212},"87","Сценарії використання",1783724309,{"edges":213},[214,218,222,226,230,234],{"node":215},{"id":216,"title":217},"546","Бухгалтер обслуговує кількох ФОП",{"node":219},{"id":220,"title":221},"542","Робота з іноземним замовником від А до Я",{"node":223},{"id":224,"title":225},"538","Файли проєкту",{"node":227},{"id":228,"title":229},"462","Погодинна робота: від обліку годин до рахунку й акта",{"node":231},{"id":232,"title":233},"461","Продаж товарів: від замовлення до видаткової накладної",{"node":235},{"id":236,"title":237},"460","Проєктна робота: кошторис, аванс, етапні акти і контроль бюджету",{"node":239},{"id":240,"name":241,"created_at":242,"articles_count":243,"edge_preview_articles":244},"93","Налаштування",1787996248,9,{"edges":245},[246,250,254,258,262,266],{"node":247},{"id":248,"title":249},"553","Доступ для служби підтримки: як дати боту тимчасовий доступ до свого простору",{"node":251},{"id":252,"title":253},"537","Додаткові поля у специфікації (колонки кошторису)",{"node":255},{"id":256,"title":257},"535","Категорії товарів",{"node":259},{"id":260,"title":261},"533","Валюти й курси",{"node":263},{"id":264,"title":265},"532","Загальні налаштування робочого простору",{"node":267},{"id":268,"title":269},"515","Формати дати, часу, чисел і валюти",{"node":271},{"id":272,"name":273,"created_at":274,"articles_count":84,"edge_preview_articles":275},"94","Кабінет клієнта та публічні сторінки",1787996251,{"edges":276},[277,281,285,289,293,297],{"node":278},{"id":279,"title":280},"543","Вітрина очима покупця",{"node":282},{"id":283,"title":284},"528","Кабінет у Telegram Mini App",{"node":286},{"id":287,"title":288},"527","Клієнт подає заявку з кабінету",{"node":290},{"id":291,"title":292},"525","Кабінет очима клієнта: головна, документи, деталі, профіль",{"node":294},{"id":295,"title":296},"522","Вхід клієнта в кабінет: посилання, код і Telegram",{"node":298},{"id":299,"title":300},"519","Кабінет клієнта: що це і як увімкнути",{"node":302},{"id":12,"name":13,"created_at":303,"articles_count":304,"edge_preview_articles":305},1787996254,6,{"edges":306},[307,311,315,319,323,325],{"node":308},{"id":309,"title":310},"534","Telegram-бот для клієнтів",{"node":312},{"id":313,"title":314},"448","Інтеграція зі School Today: рахунки за харчування учнів",{"node":316},{"id":317,"title":318},"447","Інтеграція з Prom.ua: рахунки із замовлень магазину",{"node":320},{"id":321,"title":322},"440","Webhooks: миттєві сповіщення ваших систем про події (бета)",{"node":324},{"id":9,"title":25},{"node":326},{"id":327,"title":328},"281","Інтеграція OneB Invoice та OneB Finance",{"node":330},{"id":331,"name":332,"created_at":333,"articles_count":334,"edge_preview_articles":335},"58","Функціонал ",1707816481,1,{"edges":336},[337],{"node":338},{"id":339,"title":340},"402","Кабінет клієнта: що це, як увімкнути та як ним користуватися",{"node":342},{"id":343,"name":344,"created_at":345,"articles_count":346,"edge_preview_articles":347},"55","Зворотний зв'язок",1698401315,2,{"edges":348},[349,353],{"node":350},{"id":351,"title":352},"423","Часті питання: швидкі відповіді підтримки",{"node":354},{"id":355,"title":344},"133",{"edges":357},[],1791429733993]