i'm having a problem with my website sales not being fully posted. the invoices have attached payments and payment transactions that all look correct, but they don't count as paid. amusingly, i have MOTO payments functioning just fine from a MOTO payments module from a third party (and moto enabled on stripes end), and i have 3 BBpos Wise E card terminals from stripe which are also all functioning just fine, as far as i can tell. anyway, digging into the odoo server logs reveals errors when a website transaction takes place:
File "/usr/lib/python3/dist-packages/odoo/addons/payment_stripe/models/payment_transaction.py", line 346, in _get_tx_from_notification_data
raise ValidationError("Stripe: " + _("Received data with missing merchant reference"))
odoo.exceptions.ValidationError: Stripe: Received data with missing merchant reference
and indeed, examining the data both in stripes console and from odoo's server logs, it looks like it's not sending any merchant metadata ( i have a "
'metadata': {}," in the logs).
digging a little deeper, in the mentioned python file, it looks like it builds the data it wants to send to stripe with _stripe_prepare_payment_intent_payload, which indeed does not include any merchant metadata.
my payments still go through, but invoices never resolve properly and get flagged as paid, and my accounting world is getting uglier by the day. does anyone have any suggestions?
edit: odoo 18, enterprise, on-premise.