fix: convert PayKilla invoices to supported currency

This commit is contained in:
3252a8
2026-06-04 15:57:55 +03:00
parent 69985e44dd
commit bdf0622be5
5 changed files with 443 additions and 31 deletions
@@ -3974,13 +3974,38 @@
"section": "payments",
"section_order": 4,
"subsection": "PayKilla",
"label": "Invoice currency",
"description": "Fallback invoice currency when the payment flow does not provide one. Usually matches the tariff/default currency, e.g. RUB.",
"label": "Fallback invoice currency",
"description": "Currency used for PayKilla invoice creation when the tariff currency is not accepted by PayKilla as an invoice currency. Default: USD.",
"i18n_label_key": "admin_settings_field_paykilla_currency_label",
"i18n_description_key": "admin_settings_field_paykilla_currency_description",
"i18n_subsection_key": "admin_settings_subsection_paykilla",
"i18n_placeholder_key": "admin_settings_field_paykilla_currency_placeholder",
"placeholder": "RUB",
"placeholder": "USD",
"optional": true,
"secret": false,
"provider_id": "paykilla",
"provider_label": "PayKilla",
"webhook_provider_id": "paykilla",
"webhook_path": "/webhook/paykilla",
"webhook_requires_base_url": false,
"value": "",
"overridden": false,
"updated_at": null,
"webhook_base_url_configured": false
},
{
"key": "PAYKILLA_INVOICE_CURRENCIES",
"type": "string",
"section": "payments",
"section_order": 4,
"subsection": "PayKilla",
"label": "PayKilla invoice currencies",
"description": "Comma-separated currencies accepted by PayKilla as invoice currency. Payments in other tariff currencies are converted to PAYKILLA_CURRENCY.",
"i18n_label_key": "admin_settings_field_paykilla_invoice_currencies_label",
"i18n_description_key": "admin_settings_field_paykilla_invoice_currencies_description",
"i18n_subsection_key": "admin_settings_subsection_paykilla",
"i18n_placeholder_key": "admin_settings_field_paykilla_invoice_currencies_placeholder",
"placeholder": "USD,EUR",
"optional": true,
"secret": false,
"provider_id": "paykilla",
@@ -3999,8 +4024,8 @@
"section": "payments",
"section_order": 4,
"subsection": "PayKilla",
"label": "Supported invoice currencies",
"description": "Comma-separated invoice currencies allowed for PayKilla in this shop.",
"label": "Supported tariff currencies",
"description": "Comma-separated tariff/payment currencies that may use PayKilla. Unsupported PayKilla invoice currencies are converted before invoice creation.",
"i18n_label_key": "admin_settings_field_paykilla_supported_currencies_label",
"i18n_description_key": "admin_settings_field_paykilla_supported_currencies_description",
"i18n_subsection_key": "admin_settings_subsection_paykilla",
@@ -4025,12 +4050,12 @@
"section_order": 4,
"subsection": "PayKilla",
"label": "Accepted crypto tickers",
"description": "Comma-separated PayKilla tickers sent as paymentCurrencies, e.g. USDTTRC,BTC,ETH.",
"description": "Comma-separated PayKilla tickers sent as paymentCurrencies, e.g. USDTTRC. Add BTC/ETH only when enabled for the merchant account.",
"i18n_label_key": "admin_settings_field_paykilla_payment_currencies_label",
"i18n_description_key": "admin_settings_field_paykilla_payment_currencies_description",
"i18n_subsection_key": "admin_settings_subsection_paykilla",
"i18n_placeholder_key": "admin_settings_field_paykilla_payment_currencies_placeholder",
"placeholder": "USDTTRC,BTC,ETH",
"placeholder": "USDTTRC",
"optional": true,
"secret": false,
"provider_id": "paykilla",
@@ -4194,6 +4219,58 @@
"updated_at": null,
"webhook_base_url_configured": false
},
{
"key": "PAYKILLA_EXCHANGE_RATE_URL",
"type": "url",
"section": "payments",
"section_order": 4,
"subsection": "PayKilla",
"label": "Exchange rate URL",
"description": "No-key exchange rate endpoint used when tariff currency must be converted. Supports {source} and {target} placeholders.",
"i18n_label_key": "admin_settings_field_paykilla_exchange_rate_url_label",
"i18n_description_key": "admin_settings_field_paykilla_exchange_rate_url_description",
"i18n_subsection_key": "admin_settings_subsection_paykilla",
"i18n_placeholder_key": "admin_settings_field_paykilla_exchange_rate_url_placeholder",
"placeholder": "https://open.er-api.com/v6/latest/{source}",
"optional": true,
"secret": false,
"provider_id": "paykilla",
"provider_label": "PayKilla",
"webhook_provider_id": "paykilla",
"webhook_path": "/webhook/paykilla",
"webhook_requires_base_url": false,
"value": "",
"overridden": false,
"updated_at": null,
"webhook_base_url_configured": false
},
{
"key": "PAYKILLA_EXCHANGE_RATE_CACHE_SECONDS",
"type": "int",
"section": "payments",
"section_order": 4,
"subsection": "PayKilla",
"label": "Exchange rate cache (seconds)",
"description": "How long PayKilla currency conversion rates and PayKilla limits are cached.",
"i18n_label_key": "admin_settings_field_paykilla_exchange_rate_cache_seconds_label",
"i18n_description_key": "admin_settings_field_paykilla_exchange_rate_cache_seconds_description",
"i18n_subsection_key": "admin_settings_subsection_paykilla",
"i18n_placeholder_key": null,
"placeholder": "",
"optional": true,
"secret": false,
"min": 60,
"max": 86400,
"provider_id": "paykilla",
"provider_label": "PayKilla",
"webhook_provider_id": "paykilla",
"webhook_path": "/webhook/paykilla",
"webhook_requires_base_url": false,
"value": "",
"overridden": false,
"updated_at": null,
"webhook_base_url_configured": false
},
{
"key": "PAYKILLA_VERIFY_WEBHOOK_SIGNATURE",
"type": "bool",