zenmoney/ZenPlugins

[postal-savings-rs] Транзакции дублируются

Opened this issue · 4 comments

Использую Foreign currency (EUR) счёт.

Транзакции добавляется дважды:

  1. Первый раз в момент совершения. Транзакция подгружается как "ISPLATA VISA", без мерчанта.
  2. Второй раз через несколько дней (видимо когда проходит авторизация). Предыдущая версия транзакции исчезает из выдачи API, у новой транзакции есть мерчант (в редких случах нет), и сумма немного меняется в сторону уменьшения (так как пересчитывается по актуальному курсу, а в первый раз считается по среднему курсу плюс несколько процентов в качестве буфера).

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

Кажется, что связующим звеном может выступать выписка по карте, так как там указывается и дата платежа и дата авторизации транзакции. Но при этом сумма транзакции указывается только в валюте мерчанта, так что список транзакций по счёту всё равно понадобится.

Ещё один возможный источник - SMS. Так как они приходят тоже в момент транзакции и в них есть информация о мерчанте и сумма в валюте мерчанта. Но это, конечно, сделает синхронизацию более хрупкой.

Начал работу над поддержкой ручки с карточными транзакциями в #743

@osipxd чтобы транзакция обновлялась, надо чтобы у первой был статус hold: true, а последующего акцепта статус hold: false. И главное, чтобы совпадала либо sum операции (сумма в валюте счета), либо invoice: { sum, instrument } - валюта и сумма в валюте операции, а не счета.

главное, чтобы совпадала либо sum операции (сумма в валюте счета), либо invoice: { sum, instrument } - валюта и сумма в валюте операции, а не счета.

С этим есть сложность потому что в выдаче операций по счёту указана только валюта счёта, а в выдаче операций по карте только валюта транзакции. Чтобы определять соответствие транзакций, хотел конвертировать валюту транзакции в валюту счёта, и сравнивать с каким-то допущением, но не знаю возможно ли это.

О, нашёл в банке страницу kursl.jsp, где можно получить текущий банковский курс. Попробую через него сделать.