Атомарные платежи для оплаты парковок в Lamoda


c2be3e6f7cf04ab3bc2a18b0b9c065b2.png


Мы придумали способ избавить вас от чеков и неудобных отчетов за корпоративные компенсации (питание, бензин, парковки, связь и т.п.).


Став эмитентом карт MasterCard, Яндекс.Деньги научились создавать специальные карточные счета на целевые расходы: ваша компания зачисляет на такие счета деньги, которые нельзя снять в банкомате или потратить нецелевым способом — ими можно оплатить только то, что организация готова компенсировать.


Изюминка в том, что сотруднику не нужно носить с собой дополнительные карточки или бумажки — достаточно одной карты Я.Денег. Новая фишка прижилась не только внутри нашей компании, и удобную схему оплаты опробовала даже Lamoda, онлайн-ритейлер одежды, обуви и аксессуаров.


Чекам и бумажкам — бой

Если в вашей компании практикуются разные целевые компенсации, вам наверняка знакомы связанные с этим неудобства. Все же я напомню:


  • Нужно не забыть получить «чеки» или «талоны». Обычно, это происходит в строго определенное время, удобное выдающему.


  • Приходится отчитываться по расходам чеками или брать предоплаченные талоны.


  • В некоторых случаях используются отдельные для каждого ресторана или сервисной организации карты, по которым можно оплатить какую-то часть счета. Сразу вспоминаются топливные карты и фирменные карточки какой-нибудь сети кафе.

Помимо неудобств для сотрудника, дедовские методы учета усложняют жизнь и финансистам. Выплаты сотрудникам нужно проводить как доходы физлиц, не забывать каждый раз рассчитывать налоги, собирать ворох доказательств расходов теми же чеками и т.д.


Можно было бы просто переводить какую-то сумму для корпоративных расходов прямо на зарплатную карту сотрудника. Это снимает с бухгалтерии большую часть проблем, но может привести к нецелевым тратам. Например, никто не помешает израсходовать деньги не на бензин, а на что-то другое — это портит всю идею компенсаций и превращает деньги в некое подобие премии. Кроме того, добросовестному работнику может быть неудобно, когда его личные деньги перемешаны с корпоративными.


Как это реализовано у нас? И в большом Яндексе, и в Яндекс.Деньгах компенсация питания издавна зачислялась на офисный пропуск, которым можно было бесконтактно платить во всех столовых офиса и в ближайших кафе. Но в один прекрасный момент в Яндекс.Деньгах решились на эксперимент с оплатой еды собственными картами. Чтобы все взлетело как надо, потребовалось разработать отдельный «питательный» счет для кошелька в Я.Деньгах.


image alt text


Лимит на питание никак не учитывается и не отображается в общем балансе счета — его можно увидеть только в отдельном поле.


Задача была сделать так, чтобы при платеже в конкретных заведениях деньги автоматически списывались с этого специального счета, а при оплате в любых других местах — с основного счета кошелька. Используя для оплаты обычную банковскую карту вместо пропуска, мы также упрощали задачу интеграции сторонних кафе в систему питания.


Метки и атомарные платежи

Так как целевые расходы должны быть максимально прозрачны для торговой точки, мы построили всю работу вокруг обыкновенного карточного платежа, спрятав магию на стороне платежного сервиса Яндекс.Денег. То есть продавец может даже не знать, что вы оплатили обед или парковку с какого-то специального счета — для него это обычная оплата картой MasterCard.


На стороне Яндекс.Денег каждая оплата с целевого счета выглядит так:


image alt text


Прелесть атомарной операции в том, что деньги переводятся куда-либо только при успешном выполнении всех этапов.


Если в Яндекс.Деньгах эта схема используется для компенсации питания, то в Lamoda — для оплаты парковок курьерами, которые развозят заказы. На момент публикации этой статьи в Lamoda работает около 400 торговых представителей в одной лишь Москве. Согласитесь, подсчитывать и компенсировать расходы стольких людей каждый месяц традиционными способами слишком трудоемко.


Разберем сценарий подробнее:


  1. Курьер припарковался и запустил оплату парковки в приложении Яндекс.Парковки.


  2. Модуль общения с магазинами (парковка — это магазин в терминах Яндекс.Денег) выставляет контракт на оплату и снабжает его признаком «возможно использование заемных средств».


  3. Курьер видит стоимость парковки и подтверждает платеж.


  4. В платежном сервисе каждая транзакция проходит через набор правил, которые контролируют лимиты по выплатам и дают «добро» на целевые расходы в магазинах. Чтобы курьер смог оплатить парковку с целевого счета, необходим признак «магазин парковок» у точки оплаты и метка «оплата парковок» на счете Яндекс.Денег курьера. Разумеется, лимит по целевым расходам также должен быть не израсходован.


  5. Средства зачисляются на счет пользователя, после чего происходит обычная оплата с помощью карты. Операции зачисления и списания осуществляются синхронно, то есть формируют одну атомарную операцию.

В зависимости от правил покупка может быть компенсирована целиком или частично. При частичной компенсации недостающие корпоративные деньги переводятся на счет пользователя непосредственно перед платежом.


При всем этом курьер может хранить личные средства в электронном кошельке Яндекс.Денег — при оплате парковки картой баланс личного счета не меняется, что позволяет не смешивать мух с котлетами. Компания тоже довольна, так как Яндекс.Парковки предоставляют весьма подробные корпоративные отчеты с указанием номера кошелька, даты и времени платежа, ID парковки и госномера корпоративного автомобиля.


Возвраты, хитрости и ошибки

Про истории с мелкими мошенничествами все в курсе, да и объявления «Сделаем ваучер на проживание в отеле, цена — 500 рублей» можно встретить довольно часто. Поэтому над защитой от злоупотреблений целевыми средствами тоже пришлось подумать:


  • В случае с атомарными операциями исключаются сценарии, когда такая операция отменяется после поступления денег на счет пользователя, но до их списания торговой точкой.


  • Банально снять денег с целевого счета через банкомат не получится, так как у него не будет метки «магазина парковок» в базе Яндекс.Денег.


  • Если провести возврат оплаты за те же парковки, то деньги синхронно вернутся на отдельный корпоративный счет, а не зависнут на карте пользователя. При использовании целевых средств в атрибутах операции указывается, какая сумма была собственностью пользователя, а какая переведена с определенного целевого счета.

Так как корпоративные средства появляются на счете пользователя только в момент платежа и для этого не нужно открывать дополнительных счетов, заметно упрощается финансовый учет.


Можно взять и клонировать для оплаты питания или связи

Что особенно приятно в прозрачной оплате с целевого счета, так это простота интеграции в любые сценарии. Так как от поставщика услуг не требуется совершенно никаких изменений в процессе приема оплаты, достаточно добавить метки на кошельки сотрудников и на идентификаторы площадок оплаты.


Это же мечта корпоративного интроверта-минималиста: никаких договоренностей с продавцами, никаких лишних платежных сущностей!


Интересно, а какими способами ваша компания оплачивает разные «блага»?

Комментарии (3)

  • 16 марта 2017 в 15:11

    0

    Реализация похожа на Prepaid карты с лимитами на определённые MCC.
    • 16 марта 2017 в 15:41

      0

      это не совсем так, лимиты на препайд не позволяют платить в указанные MCC больше лимитов, но при этом средства на карте должны быть. В нашей схеме средств на карте формально может не быть совсем, а лимиты есть. И лимиты можно настраивать гибче: по экваерам, мерчантам, терминальным точкам.
      • 16 марта 2017 в 15:43

        0

        »В нашей схеме средств на карте формально может не быть совсем» — если так, то, конечно, интереснее)

© Habrahabr.ru