Ръководства
Фактури
Агентът може да прочете издадена фактура от свързания Fakturoid или ABRA Flexi и да я използва като основа за напомнящо обаждане - никога не издава фактура и не я отбелязва като платена.
Какво може и какво не може
- Търси издадени фактури по номер или име на фирма (
list_invoices). - Зарежда актуалното състояние на една фактура директно от доставчика (
get_invoice). - Създава напомняща Задача (
taskType: "invoice"), която препраща към фактурата.
Не може
- Не издава, не редактира и не изтрива никаква фактура.
- Не отбелязва фактура като платена - това могат само Fakturoid или ABRA сами.
- Не свързва Fakturoid с данни за вход - възможно е само през OAuth в браузъра.
Свързване на профил
Двете фактуриращи услуги се управляват на същото място като календарите, в портала в раздела Данни и интеграции (/propojeni). list_integrations и GET /v1/integrations са само за четене: връщат състоянието на връзката и евентуален connectUrl, но сами нищо не свързват. Подробната процедура за агента (list_integrations -> connectUrl -> стъпка в браузъра) е на страницата Връзки.
Fakturoid
Свързва се единствено чрез OAuth вход в браузъра - POST /v1/integrations с provider: "fakturoid" REST отхвърля с грешка integration_unsupported, данни за вход тук не могат да се изпращат. Когато профилът има повече фирми с фактуриране, след входа браузърът се връща на страницата Данни и интеграции във volai (/propojeni) и там едва се показва изборът на фирма - записът в integrations възниква чак след този избор. ready за fakturoid в GET /v1/integrations съобщава само, че volai има настроени OAuth данни за вход към Fakturoid (FAKTUROID_CLIENT_ID и др.) - НЕ че конкретен профил вече е свързан. Дали връзката е готова, агентът познава по това, че се появява в полето integrations.
ABRA Flexi
Свързва се с данни за вход, както Apple Calendar: POST /v1/integrations с {provider: "abra-flexi", baseUrl, company, username, password}. Адресът на сървъра (baseUrl) трябва да съвпада с точния адрес, предварително разрешен от оператора (ABRA_FLEXI_ALLOWED_HOSTS) - друг връща грешка.
Предавайте паролата само когато потребителят вече я има съхранена безопасно (променлива на средата, посочен от него файл) - никога не я изисквайте в разговора и никога не я повтаряйте обратно.
Четене на фактури
Процедура в две стъпки: първо търсене, после актуален детайл на онази една фактура, която Ви интересува.
list_invoices({integrationId, search?})-search(до 100 знака) търси при доставчика по номер на документ или име на фирма; връща първите 40 реда при Fakturoid или 50 при ABRA, без странициране. Когато резултатите са много, уточнетеsearch.get_invoice({integrationId, invoiceId})-invoiceIdе повторената стойностexternalIdотlist_invoices. Връща най-актуалното състояние директно от доставчика, а не това, което помни volai.
REST еквиваленти: GET /v1/integrations/{id}/invoices?search=... и GET /v1/integrations/{id}/invoices/{invoiceId}.
status е paid, unpaid, overdue или unknown; amountDueMinor е цяло число в най-малките единици на ВАЛУТАТА НА ДОКУМЕНТА (не непременно CZK), а null означава неустановен остатък. Детайлът допълнително носи provider, fetchedAt и evidence: "provider_response".
status: "unknown" и липсващата сума НИКОГА не означават платено - а твърдението на обаждащия се само по себе си не е доказателство за плащане. За доказателство агентът приема само актуален отговор на get_invoice.
Напомняне през Задачи
Масовите напомнящи обаждания за неплатени фактури минават през Задачи.
Задача от тип taskType: "invoice" се създава със source: "integration" и всеки получател (или цялата задача, когато фактурата е една и съща за всички) носи externalRefs.invoice = {connectionId, externalId, provider?} - connectionId е id на връзката от list_integrations, externalId е id на фактурата от list_invoices. Без тази референция create_task/POST /v1/tasks пропада с грешка validation със съобщение recipients.externalRefs и не записва никаква задача. Ако задължителната референция липсва при вече съществуващ запис, get_task/GET /v1/tasks/{id} я посочва в issues, а start_task отказва да стартира задачата със същата грешка при валидиране.
Всеки получател освен това носи поле paymentStatus (not_applicable, unknown, unpaid, paid, disputed) - само за четене, системата го извежда от последното четене на фактурата при доставчика непосредствено преди набирането. Без референция към фактура е not_applicable, след създаване или когато състоянието или сумата не могат да бъдат потвърдени е unknown, иначе според отговора на Fakturoid/ABRA - платена фактура задачата пропуска (skipped) и задава paid. Стойността disputed днес системата сама не задава, портала само може да я показва - тя е част от публичното изброяване (TaskItem в /openapi.json) за бъдещо ръчно отбелязване на спорна фактура.
Грешки
integration_not_found- Връзка с тозиintegrationIdне съществува или не принадлежи на този профил.integration_unsupported- Връзката не е фактурираща (например календар) или е направен опит Fakturoid да бъде свързан с данни за вход вместо чрез OAuth.integration_unauthorized- Fakturoid или ABRA са оттеглили достъпа - връзката трябва да се направи наново в портала.integration_provider_error- Доставчикът в момента не отговаря или върна грешка - опитайте по-късно, а състоянието на фактурата междувременно приемайте за неизвестно.integration_invalid_query- ABRA отхвърлиsearchс обратни наклонени черти или смесени кавички - опростете заявката.
Пълната таблица с всички кодове ще намерите в раздела фактури в REST API справочника и в грешките на MCP.
Сигурност
Токени за достъп и пароли към Fakturoid и ABRA Flexi нито REST API, нито MCP връщат някога, а ние ги съхраняваме криптирани. Прекъсване на интеграция е възможно само в портала или през REST (DELETE /v1/integrations/{id}) - MCP няма инструмент за това нарочно, защото е необратимо.
Свързани
MCP сървър
Свържете Claude Code, Codex CLI, Codex desktop, Cursor и други AI редактори.
REST API
Пълна справка за всички крайни точки: номера, обаждания, SMS, мобилни номера за SMS, агенти и техните чернови, инструменти, записи, уебхукове, списък „не се обаждай“, relay, акаунт, задачи, кредит, документи, календари и интеграции.
Връзки
Google и Apple Calendar: свържете акаунт, четете и потвърждавайте промени в събития.
Задачи
Изходящи кампании: създаване, импорт на получатели от CSV, старт/пауза/съгласуване, бюджет и прозорец за обаждане.