Архитектура и защита на данните
Тази страница е написана за проверка от отдел съответствие, защита на данните или ИТ. Описва какво прави PLANA Connect, какво съхранява, какво не съхранява и къде. Всяко число по-долу описва услугата такава, каквато е изградена, а не каквато е планирана.
Ако ви трябва само краткият отговор: PLANA Connect не съхранява транзакции. Съхранява връзките между записите, за да не се внесе един и същ разход два пъти.
Какво представлява услугата
PLANA Connect е хоствана услуга за синхронизация между Payhawk и Odoo. Работи като отделно приложение. Нищо не се инсталира във вашето Odoo и никакъв код на PLANA не работи вътре в него.
Свързва се и с двете системи по начина, по който го прави всяка интеграция:
| Система | Как | Достъп |
|---|---|---|
| Payhawk | REST API v3 през HTTPS | API ключ, който създавате в Payhawk |
| Odoo | XML-RPC или JSON-2 през HTTPS | Интеграционен потребител и API ключ, които създавате в Odoo |
И двата достъпа се издават от вас, ограничават се от вас и могат да бъдат отнети от вас по всяко време, без участие на PLANA. Конекторът няма собствен постоянен достъп.
Къде работи
| Хостинг | Exoscale, зона София (bg-sof-1), България, ЕС |
| Местоположение на данните | Всички данни на приложението остават в тази зона. Нищо не се репликира извън ЕС. |
| Транспорт | HTTPS към Payhawk и Odoo, както и към контролния панел |
| Подизпълнители | Exoscale (инфраструктура). Без аналитични инструменти и без проследяване от трети страни в контролния панел. |
Какви данни се съхраняват и какви не
Това обикновено е първият въпрос при проверка, затова е описано изцяло.
Не се съхраняват
Нищо от изброеното не се записва в базата на PLANA в нито един момент:
- суми, дати, категории или описания на разходи
- съдържание на фактури, включително редове и данъчни суми
- редове от банкови извлечения, салда или движения по сметки
- изображения и PDF файлове на разписки
- банкови данни на доставчици (IBAN и номера на сметки)
- номера на карти или каквито и да е данни за платежен инструмент
Разписките са най-ясният пример. Когато разписка се прикачва към фактура в Odoo, файлът се изтегля от Payhawk и се качва директно във вашето Odoo в рамките на същата операция. Минава през паметта и никога не се записва на диск или в база при нас.
Доставките на webhook се записват само като {topic, delivery_id}. Тялото, което Payhawk изпраща, не се съхранява.
Съхраняват се
| Какво | Защо | Какво съдържа |
|---|---|---|
| Връзки между записи | За да не се внесе един разход два пъти | Идентификатор от Payhawk, идентификаторът в Odoo, към който сочи, и контролна сума за откриване на промени. Без съдържание. |
| Състояние на синхронизацията | Докъде е стигнало последното пускане | Времеви маркер за всеки поток |
| История на пусканията | За да виждате какво и кога се е случило | Начало и край, състояние и броячи от рода на „създадени 12, обновени 3" |
| Диагностичен дневник | За да може пропуснат запис да бъде обяснен | Редове от дневник. Вижте бележката по-долу. |
| Конфигурация | Вашите настройки | Кои потоци са включени, идентификатор на фирма, данъчно съответствие и подобни |
| Достъпи | За да достигаме до вашите системи | Криптирани. Вижте по-долу. |
| Записи за акаунт и достъп | Вход, одит | Вашите потребители, сесии и одитна следа за достъпа |
Нещо, което предпочитаме да кажем сами
Диагностичният дневник цитира имена на записи, защото предупреждение, което не казва за кой запис се отнася, е безполезно. Реален ред от дневника изглежда така:
partner 'ACME Supplies Ltd' matches Payhawk supplier 100080179 by VAT but its externalId is already set - skipping (duplicate partner in Odoo)
Когато доставчикът е физическо лице, това име е име на човек. Тоест макар конекторът да не съхранява транзакции, диагностичният дневник може да съдържа ограничен обем лични данни под формата на имена на доставчици. Точно заради това съществува срокът за съхранение по-долу.
Срок на съхранение
| Данни | Пазят се |
|---|---|
| Редове от диагностичния дневник | 30 дни, след което се изтриват автоматично |
| Записи за доставки на webhook | 90 дни |
| Записи за приключили задачи | 90 дни |
| История на пусканията (начало, край, състояние, броячи) | Пази се. Не съдържа имена или идентификатори. |
| Връзки между записи | Пазят се за срока на връзката. Те са състоянието на конектора: изтриването им би довело до повторно внасяне на всички записи. |
| Записи за достъп и одит | Пазят се като документ за отчетност |
| Вашата конфигурация | Пази се, докато не изтриете фирмата |
Изтриването работи автоматично на всеки час и не изисква някой да го задейства.
При прекратяване връзката и достъпите ѝ се изтриват. Връзките между записите и конфигурацията се изтриват заедно с фирмата.
Достъпи
Достъпите се пазят с пликова криптография:
- всеки клиент има собствен ключ за криптиране на данни
- този ключ се съхранява само в обвит вид, криптиран с главен ключ, който стои извън базата
- достъпите се криптират с ключа на клиента, преди да бъдат записани
- API-то никога не връща стойност на достъп. Контролният панел показва кои полета са попълнени, но не и какво съдържат
- всяко използване на достъп от служител на PLANA се записва в одитна следа
Копие на базата само по себе си не дава използваем достъп.
Контрол на достъпа
| Достъп на клиента | Имейл и парола, със задължителна двуфакторна автентикация (TOTP) |
| Разделяне | Всяка заявка е ограничена до един клиент на ниво база данни, чрез row level security. Не е само логика в приложението. |
| Достъп на служители на PLANA | Отделен доставчик на идентичност (SSO), отделна плоскост на правата |
| Одит на служителите | Всяко действие на служител в клиентски акаунт се записва: кой, кога, при кой клиент, какво |
Поддръжката на PLANA вижда вашата конфигурация и история на пусканията, за да може да ви съдейства. Стойностите на достъпите не са видими за служителите.
Какви данни се движат и в коя посока
Всеки поток може да се включва и изключва самостоятелно от страницата с настройки на фирмата.
| Поток | Посока | Какво се движи |
|---|---|---|
| Разходи към фактури | Payhawk към Odoo | Прегледаните разходи стават фактури от доставчик |
| Разписки | Payhawk към Odoo | Файлът на разписката се прикачва към фактурата |
| Банкови извлечения | Payhawk към Odoo | Движенията по карти и сметки стават редове в извлечение |
| Плащания | Payhawk към Odoo | Фактурата се отбелязва като платена |
| Доставчици | Двупосочно, еднопосочно или изключено | Вижте следващия раздел |
| Данъчни ставки | Odoo към Payhawk | Вашите данъци за покупки, за да избират проверяващите същите |
| Сметкоплан | Odoo към Payhawk | Разходните сметки, за да се кодират разходите правилно |
Конекторът никога не изтрива нищо в която и да е от двете системи. Създава и обновява, но не премахва.
Доставчици: само доставчици
Чест въпрос, и отговорът е конкретен: конекторът изпраща само доставчици. Не изпраща вашата база с контакти.
При публикуване от Odoo към Payhawk партньор се включва само ако и четирите условия са изпълнени:
- Odoo го брои за доставчик. Odoo задава това при първото използване на партньора в поръчка за покупка или във фактура от доставчик.
- Това е основният контактен запис, а не адрес за доставка или фактуриране.
- Не е архивиран.
- Представлява самостоятелна фирма, а не лице, заведено под нея.
Клиенти, потенциални клиенти, служители и лични контакти не се изпращат никога. Четвъртото условие изключва и служителите: лице, записано под фирма, наследява данъчния ѝ номер, и изпращането му би било едновременно погрешно и отхвърлено от Payhawk.
Ако и това е повече, отколкото желаете, самата посока е настройка с три стойности:
| Настройка | Какво прави |
|---|---|
| И в двете посоки (по подразбиране) | Доставчиците от Payhawk стават доставчици в Odoo, а доставчиците от Odoo се публикуват в Payhawk |
| Само внос | Само Payhawk към Odoo. Нищо не напуска вашето Odoo. |
| Изключено | Без синхронизация на доставчици изобщо |
За проверка, която изисква нулев изходящ поток от контактни данни, Само внос отговаря с една настройка и оставя останалата част от интеграцията работеща.
Кое поле на кого принадлежи
Когато доставчиците се синхронизират и в двете посоки, собствеността е по поле, а не по запис:
- Odoo владее идентичността. Име, данъчен номер, адрес и данни за контакт. Корекция, направена в Odoo, се публикува към Payhawk.
- Payhawk владее банковите данни. IBAN се въвежда в Payhawk, защото оттам се извършват плащанията, и затова пътува към Odoo. Това е само добавяне: конекторът никога не премахва и не презаписва платежни данни, които вече са в ERP системата ви.
Как върви синхронизацията
| График | На всеки 15 минути по подразбиране, настройваемо за всяка фирма |
| В реално време | Webhook от Payhawk задейства пускане веднага щом разход бъде прегледан |
| Пълно обхождане | Веднъж дневно, извън работно време, конекторът прочита всичко наново, за да улови промени, които филтър на API не може да съобщи |
| Идемпотентност | Всеки запис се съпоставя със съществуващия си двойник, преди да се запише каквото и да е, тъй че повторно пускане никога не дублира |
| Отказ | Неуспешно пускане се повтаря. Запис, който не може да бъде обработен, се записва в дневника и се прескача, но никога не блокира останалите. |
Въпроси, на които тази страница не отговаря
За Споразумение за обработване на лични данни, списък с подизпълнители или каквото и да е специфично за вашата рамка за съответствие, пишете ни на payhawk@plana.solutions и ще отговорим директно, вместо да ви препращаме насам.