Yatoday Rental: аренда собрана, сверена и с квитанцией - без таблиц
Владелец десятка квартир тратит первые дни каждого месяца на то, чтобы сверить банковское приложение с таблицей, выписать квитанции и переслать счета за воду. Yatoday Rental берёт эту работу на себя: выставляет начисления, находит переводы в выписке, читает счета поставщиков и оставляет владельцу только подтверждения.
Задача
Большинство частных арендодателей в Испании ведут долгосрочную аренду в трёх местах: в банковском приложении, в таблице и в WhatsApp. Каждый месяц нужно проверить, какие переводы пришли, напомнить тем, кто не заплатил, выписать квитанции вручную, переслать счета за свет и воду, а раз в год пересчитать аренду по индексу INE. С пятью квартирами на это уходят выходные. С двадцатью - половина рабочего времени, и ошибки потом всплывают в налоговой декларации.
Yatoday Rental - наш собственный сервис для таких владельцев. Он сделан для долгосрочной аренды, а не для посуточной. У владельца свой кабинет, у каждого арендатора - свой. Задумка простая: рутину делает сервис, а владелец только подтверждает.
Главная, которая говорит, что делать
День владельца начинается с одного экрана: сколько начислено в этом месяце, сколько получено, сколько ещё должно прийти и что просрочено. Ниже - должники с суммой и числом дней просрочки, рядом с каждым кнопки “Напомнить” и “Оплачено”. Отдельно - платежи, о которых сообщили арендаторы и которые ждут подтверждения, открытые обращения, непрочитанные сообщения, события ближайших 30 дней - сроки оплат, заезды, окончания договоров, индексации - и пустующие квартиры с числом дней простоя.
Начисления, оплаты и квитанции
Каждый договор выставляет начисления сам: аренду и другие ежемесячные статьи, за несколько дней до срока. Есть и разовые начисления, неполные месяцы, начисления, разделённые между со-арендаторами. Когда деньги пришли, владелец нажимает “Оплачено” - полная сумма, сегодняшняя дата, обычный способ оплаты по договору - или вводит данные частичной оплаты. Арендатор тоже может нажать “Я оплатил” и приложить фото перевода, а владелец подтвердит его или ответит “Не пришло”.
На каждую подтверждённую оплату выпускается квитанция со своим номером в серии владельца - PDF на языке арендатора или сразу на двух языках, которая уходит арендатору на почту. Напоминания отправляются по расписанию - за три дня, в день срока, через три и через семь дней, - а владелец может отправить напоминание вручную или готовым сообщением в WhatsApp.
В разделе “Оплаты” всё видно как реестр: объекты по строкам, месяцы по столбцам, каждая ячейка окрашена - оплачено, срок не наступил, оплачено частично, просрочено или квартира свободна. По нажатию на ячейку открываются начисления этого месяца с кнопкой “Оплачено”. Реестр и список начислений выгружаются в Excel и CSV.
Выписка банка сверяется сама
Владелец скачивает выписку из банка - Norma 43, camt.053 или Excel и CSV самого банка - и загружает её. Для таблицы колонки сопоставляются один раз, и сервис запоминает это для счёта. Операция, загруженная дважды, не задваивается, поэтому периоды могут пересекаться.
Для каждого входящего перевода сервис ищет договор и открытые начисления, которые он оплачивает: по сумме долга, по имени отправителя в сравнении с именами арендаторов (без учёта регистра и ударений), по уже подтверждённому IBAN арендатора и по улице, указанной в назначении платежа. У каждого предложения видны причины и уверенность по шкале до 100. Владелец подтверждает его, выбирает другое начисление, делит перевод или отмечает “Не оплата аренды”. Кнопка “Подтвердить все предложенные” закрывает месяц за один раз, и по каждому подтверждённому переводу арендатор получает квитанцию - так же, как после ручного “Оплачено”. Списания - взнос в общину, комиссию банка - можно записать расходом объекта из того же списка.
Счёт можно подключить и напрямую, по PSD2 через Enable Banking. Тогда операции приходят сами каждые шесть часов и проходят ту же сверку, а за неделю до окончания согласия банка сервис напоминает его продлить.
Онлайн-оплата
Владелец, который хочет принимать карты, подключает собственный аккаунт Stripe. Арендатор нажимает “Оплатить онлайн” в кабинете или в ссылке из напоминания, и деньги идут сразу на счёт владельца. Когда Stripe подтверждает платёж, сервис отмечает начисление оплаченным и выпускает квитанцию; возвраты и споры отменяют платёж с указанием причины. Арендатор может один раз дать мандат на SEPA-списание - и дальше аренда списывается в день срока, с предупреждением за три дня.
Счета за коммунальные услуги читает ИИ
Если счёт оформлен на владельца, а в договоре сказано, что коммунальные перевыставляются арендатору, владелец загружает PDF поставщика или фото счёта. Модель ИИ (Anthropic Claude) читает поставщика, номер счёта, период, итоговую сумму, дату списания и номер договора или CUPS. По этому номеру или точке подключения сервис находит объект и готовит черновик начисления арендатору с приложенным счётом. Общий счёт на весь дом можно разделить между несколькими квартирами - поровну или долями.
Ничего не выставляется, пока владелец не проверит черновик и не нажмёт “Выставить”. Если модель не уверена в каком-то поле, оно остаётся пустым, а не заполняется догадкой. У каждого кабинета есть дневной лимит распознаваний.
Индексация аренды
Договор может индексироваться по индексу аренды жилья (IRAV), по индексу потребительских цен (IPC) или на фиксированный процент. За тридцать дней до даты сервис считает новую аренду по значению INE за нужный месяц и показывает предложение в договоре и на главной. Для договоров, подписанных с 26 мая 2023 года, повышение ограничено IRAV, и в предложении видны обе цифры. Владелец подтверждает, уменьшает сумму или пропускает индексацию в этом году; арендатор получает уведомление, неоплаченные начисления переходят на новую сумму, а по уже оплаченным месяцам выставляется отдельное начисление на разницу.
Залог и акт заезда на телефоне
Залог отслеживается от получения до депонирования в региональном органе - срок считается в рабочих днях с праздниками этого региона - и до возврата после выезда.
В день заезда владелец открывает акт на телефоне и проходит квартиру по комнатам: фотографии, состояние комнаты, каждая вещь из описи с отметкой “Норма” или “Дефект”, показания счётчиков, переданные ключи. Обе стороны подписывают прямо на экране. Подпись сохраняет время, IP-адрес, устройство и отпечаток SHA-256 содержимого акта, после чего акт уже не меняется. PDF попадает в документы договора и уходит обеим сторонам на почту. Если арендатора нет на месте, он подпишет позже в своём кабинете. Акт выезда сравнивает квартиру с актом заезда и считает, что удержать из залога.
Кабинет арендатора и чат на двух языках
Арендатор видит, что нужно оплатить, может заплатить или сообщить об оплате, скачать квитанции, прочитать документы, оставить обращение с фото или видео и написать владельцу. Чат работает в реальном времени: файлы, отметки о прочтении, быстрые ответы, автоответ в нерабочее время с аварийными телефонами. Из сообщения одним нажатием создаётся обращение или начисление.
Каждый пишет на своём языке и читает собеседника на своём: сообщение испанской арендаторши англоязычный владелец видит по-английски, а оригинал открывается одним нажатием. Каждое сообщение переводится на каждый язык только один раз, а если переводчик недоступен, показывается оригинал.
От ссылки на объявление до договора
Для свободной квартиры владелец проходит короткий мастер и получает страницу, которую можно отправить любому, кто спрашивает. Кандидаты заполняют простую анкету: кто будет жить, дата заезда, работа, доход, поручитель, животные. Владелец видит доход каждого кандидата как кратность аренде, ставит оценки звёздами, сравнивает нескольких в таблице, пишет заметки, переписывается с ними и запрашивает документы; каждый просмотр документа записывается в журнал. Выбранный кандидат становится арендатором с черновиком договора, а данные остальных удаляются через 30 дней.
Технологии
- Бэкенд: Laravel 13 (PHP 8.5), MySQL 8.4, очереди Redis + Horizon
- Фронтенд: Inertia + React 19 + TypeScript, Tailwind CSS, Ant Design; устанавливаемое PWA
- Реальное время: Laravel Reverb (чат, уведомления), Web Push
- Поиск: Meilisearch
- PDF: Gotenberg (квитанции, акты, отчёты)
- ИИ: Anthropic Claude (распознавание счетов, перевод сообщений)
- Платежи: Stripe Connect (карты, SEPA-списание), Laravel Cashier (тарифы владельцев)
- Банк: импорт Norma 43 / camt.053 / XLSX, PSD2 через Enable Banking
- Инфраструктура: k3s на Hetzner, ArgoCD, GitLab CI, GlitchTipРезультат
Работа в начале месяца сводится к нескольким подтверждениям: начисления выставляются сами, выписка сопоставляет переводы с начислениями, квитанции уходят без участия владельца, а счета поставщиков превращаются в черновики начислений. Индексация, залоги и передача ключей идут по договору, а не по памяти владельца, и у арендатора есть одно место для оплат, документов и переписки. В нагрузочных прогонах на 300 владельцах и 5 000 объектах все страницы отвечают быстрее 300 мс в 95-м процентиле.
Статус: сервис построен, но ещё не запущен; оплата картой, SEPA-списания и подключение банков пока проверены на имитации провайдеров.




