Releases: juspay/hyperswitch
Hyperswitch v1.121.2
1.121.2 (2026-05-19)
Docker Images
-
v1.121.2(with AWS SES support):docker pull docker.juspay.io/juspaydotin/hyperswitch-router:v1.121.2 -
v1.121.2-standalone(without AWS SES support):docker pull docker.juspay.io/juspaydotin/hyperswitch-router:v1.121.2-standalone
Bug Fixes
Compatibility
This version of the Hyperswitch App server is compatible with the following versions of the other components:
- Control Center: v1.38.2
- Web Client: v0.129.0
- WooCommerce Plugin: v1.6.1
- Card Vault: v0.7.0
- Encryption Service: v0.1.12
Full Changelog: v1.121.1...v1.121.2
Hyperswitch v1.123.1
1.123.1 (2026-05-19)
Docker Images
-
v1.123.1(with AWS SES support):docker pull docker.juspay.io/juspaydotin/hyperswitch-router:v1.123.1 -
v1.123.1-standalone(without AWS SES support):docker pull docker.juspay.io/juspaydotin/hyperswitch-router:v1.123.1-standalone
Features
- Connector: [Peachpayments] Add COF Data For CardWithLimitedDetails CIT And No-3DS Cards CIT (#12001)
- blocking: Add profile-based payment method blocking with CardSubtype variants (#11796) (#11915)
- connector:
Bug Fixes
- analytics: Fix for SQL Injection vulnerability in analytics endpoints (#12316)
- connector:
- Add
client_secretvalidation in session and eligibility authentication apis (#11085)
Compatibility
This version of the Hyperswitch App server is compatible with the following versions of the other components:
- Control Center: v1.38.4
- Web Client: v0.131.0
- WooCommerce Plugin: v1.6.1
- Card Vault: v0.7.0
- Encryption Service: v0.1.12
Database Migration Changes
DB Difference between v1.123.0 and v1.123.1
-- Your SQL goes here
ALTER TABLE business_profile
ADD COLUMN IF NOT EXISTS payment_method_blocking JSONB;
-- Your SQL goes here
CREATE TABLE IF NOT EXISTS card_issuers (
id VARCHAR(64) PRIMARY KEY,
issuer_name VARCHAR NOT NULL UNIQUE,
created_at TIMESTAMP NOT NULL,
last_modified_at TIMESTAMP NOT NULL
);Configuration Changes
diff --git a/config/deployments/sandbox.toml b/config/deployments/sandbox.toml
index 57cd9688e7..e0f0c84fb8 100644
--- a/config/deployments/sandbox.toml
+++ b/config/deployments/sandbox.toml
@@ -226,47 +226,47 @@ adyen = "Star,Pulse,Accel,Nyce"
enabled = true
[zero_mandates.supported_payment_methods]
bank_debit.ach = { connector_list = "gocardless,adyen,payload" }
bank_debit.becs = { connector_list = "gocardless,adyen" }
bank_debit.bacs = { connector_list = "gocardless" }
bank_debit.sepa = { connector_list = "gocardless,adyen" }
card.credit.connector_list = "checkout,stripe,adyen,zift,authorizedotnet,cybersource,datatrans,worldpay,nmi,bankofamerica,wellsfargo,bamboraapac,nexixpay,novalnet,paypal,archipel,tesouro,mollie"
card.debit.connector_list = "checkout,stripe,adyen,zift,authorizedotnet,cybersource,datatrans,worldpay,nmi,bankofamerica,wellsfargo,bamboraapac,nexixpay,novalnet,paypal,archipel,tesouro,mollie"
pay_later.klarna.connector_list = "adyen"
-wallet.apple_pay.connector_list = "checkout,stripe,adyen,cybersource,bankofamerica,novalnet,nuvei,authorizedotnet,nmi,tesouro,worldpaymodular,worldpayxml"
-wallet.samsung_pay.connector_list = "cybersource"
-wallet.google_pay.connector_list = "checkout,stripe,adyen,cybersource,bankofamerica,novalnet,nuvei,authorizedotnet,nmi,tesouro,worldpaymodular,worldpayxml"
+wallet.apple_pay.connector_list = "aci,checkout,stripe,adyen,cybersource,bankofamerica,novalnet,nuvei,authorizedotnet,nmi,tesouro,worldpaymodular,worldpayxml"
+wallet.samsung_pay.connector_list = "aci,cybersource"
+wallet.google_pay.connector_list = "aci,checkout,stripe,adyen,cybersource,bankofamerica,novalnet,nuvei,authorizedotnet,nmi,tesouro,worldpaymodular,worldpayxml"
wallet.paypal.connector_list = "adyen,novalnet"
wallet.momo.connector_list = "adyen"
wallet.kakao_pay.connector_list = "adyen"
wallet.go_pay.connector_list = "adyen"
wallet.gcash.connector_list = "adyen"
wallet.dana.connector_list = "adyen"
wallet.twint.connector_list = "adyen"
wallet.vipps.connector_list = "adyen"
bank_redirect.ideal.connector_list = "adyen"
bank_redirect.bancontact_card.connector_list = "adyen"
bank_redirect.trustly.connector_list = "adyen"
bank_redirect.open_banking_uk.connector_list = "adyen"
[mandates.supported_payment_methods]
bank_debit.ach = { connector_list = "gocardless,adyen,stripe,payload" }
bank_debit.becs = { connector_list = "gocardless,stripe,adyen" }
bank_debit.bacs = { connector_list = "stripe,gocardless" }
bank_debit.sepa = { connector_list = "gocardless,adyen,stripe,deutschebank" }
-card.credit.connector_list = "aci,checkout,stripe,adyen,authorizedotnet,cybersource,datatrans,globalpay,worldpay,multisafepay,nmi,nexinets,noon,bankofamerica,braintree,nuvei,payme,wellsfargo,bamboraapac,elavon,fiuu,nexixpay,novalnet,paybox,paypal,xendit,moneris,archipel,worldpayvantiv,payload,paysafe,finix,tesouro,mollie,airwallex"
-card.debit.connector_list = "aci,checkout,stripe,adyen,authorizedotnet,cybersource,datatrans,globalpay,worldpay,multisafepay,nmi,nexinets,noon,bankofamerica,braintree,nuvei,payme,wellsfargo,bamboraapac,elavon,fiuu,nexixpay,novalnet,paybox,paypal,xendit,moneris,archipel,worldpayvantiv,payload,paysafe,finix,tesouro,mollie,airwallex"
+card.credit.connector_list = "aci,checkout,stripe,adyen,authorizedotnet,cybersource,datatrans,globalpay,worldpay,multisafepay,nmi,nexinets,noon,bankofamerica,braintree,nuvei,payme,wellsfargo,bamboraapac,elavon,fiuu,nexixpay,novalnet,paybox,paypal,xendit,moneris,archipel,worldpayvantiv,payload,paysafe,finix,tesouro,mollie,airwallex,peachpayments"
+card.debit.connector_list = "aci,checkout,stripe,adyen,authorizedotnet,cybersource,datatrans,globalpay,worldpay,multisafepay,nmi,nexinets,noon,bankofamerica,braintree,nuvei,payme,wellsfargo,bamboraapac,elavon,fiuu,nexixpay,novalnet,paybox,paypal,xendit,moneris,archipel,worldpayvantiv,payload,paysafe,finix,tesouro,mollie,airwallex,peachpayments"
pay_later.klarna.connector_list = "adyen,aci"
-wallet.apple_pay.connector_list = "checkout,stripe,adyen,braintree,cybersource,noon,bankofamerica,nexinets,novalnet,nuvei,authorizedotnet,wellsfargo,worldpaymodular,worldpayvantiv,finix,nmi,tesouro,worldpayxml"
-wallet.samsung_pay.connector_list = "cybersource"
-wallet.google_pay.connector_list = "checkout,stripe,adyen,cybersource,bankofamerica,noon,globalpay,multisafepay,novalnet,nuvei,authorizedotnet,wellsfargo,worldpaymodular,worldpayvantiv,finix,nmi,tesouro,worldpayxml"
+wallet.apple_pay.connector_list = "aci,checkout,stripe,adyen,braintree,cybersource,noon,bankofamerica,nexinets,novalnet,nuvei,authorizedotnet,wellsfargo,worldpaymodular,worldpayvantiv,finix,nmi,tesouro,worldpayxml"
+wallet.samsung_pay.connector_list = "aci,cybersource"
+wallet.google_pay.connector_list = "aci,checkout,stripe,adyen,cybersource,bankofamerica,noon,globalpay,multisafepay,novalnet,nuvei,authorizedotnet,wellsfargo,worldpaymodular,worldpayvantiv,finix,nmi,tesouro,worldpayxml"
wallet.paypal.connector_list = "adyen,globalpay,nexinets,novalnet,paypal,authorizedotnet"
wallet.momo.connector_list = "adyen"
wallet.kakao_pay.connector_list = "adyen"
wallet.go_pay.connector_list = "adyen"
wallet.gcash.connector_list = "adyen"
wallet.dana.connector_list = "adyen"
wallet.twint.connector_list = "adyen"
wallet.vipps.connector_list = "adyen"
bank_redirect.ideal.connector_list = "stripe,adyen,globalpay,multisafepay,nexinets,aci"
@@ -824,20 +824,23 @@ debit = { country = "AD,AE,AT,BE,BG,CH,CN,CO,CR,CY,CZ,DE,DK,DO,EE,EG,ES,ET,FI,FR
mb_way = { country = "EE,ES,PT", currency = "EUR" }
ali_pay = { country = "CN", currency = "CNY" }
eps = { country = "AT", currency = "EUR" }
ideal = { country = "NL", currency = "EUR" }
giropay = { country = "DE", currency = "EUR" }
sofort = { country = "AT,BE,CH,DE,ES,GB,IT,NL,PL", currency = "CHF,EUR,GBP,HUF,PLN"}
interac = { country = "CA", currency = "CAD,USD"}
przelewy24 = { country = "PL", currency = "CZK,EUR,GBP,PLN" }
trustly = { country = "ES,GB,SE,NO,AT,NL,DE,DK,FI,EE,LT,LV", currency = "CZK,DKK,EUR,GBP,NOK,SEK" }
klarna = { country = "AU,AT,BE,CA,CZ,DK,FI,FR,DE,GR,IE,IT,NL,NZ,NO,PL,PT,ES,SE,CH,GB,US", currency = "CHF,DKK,EUR,GBP,NOK,PLN,SEK,USD,AUD,NZD,CAD" }
+apple_pay = { country = "AU,CN,HK,JP,MO,MY,NZ,SG,TW,AM,AT,AZ,BY,BE,BG,HR,CY,CZ,DK,EE,FO,FI,FR,GE,DE,GR,GL,GG,HU,IS,IE,IM,IT,KZ,JE,LV,LI,LT,LU,MT,MD,MC,ME,NL,NO,PL,PT,RO,SM,RS,SK,SI,ES,SE,CH,UA,GB,AR,CO,CR,BR,MX,PE,BH,IL,JO,KW,PS,QA,SA,AE,CA,US,KR,VN,MA,ZA", currency = "AED,AUD,CAD,CHF,EUR,GBP,HKD,SGD,USD" }
+google_pay = { country = "AL,DZ,AS,AO,AG,AR,AU,AT,AZ,BH,BY,BE,BR,BG,CA,CL,CO,HR,CZ,DK,DO,EG,EE,FI,FR,DE,GR,HK,HU,IN,ID,IE,IL,IT,JP,JO,KZ,KE,KW,LV,LB,LT,LU,MY,MX,NL,NZ,NO,OM,PK,PA,PE,PH,PL,PT,QA,RO,SA,SG,SK,ZA,ES,LK,SE,CH,TW,TH,TR,UA,AE,GB,US,UY,VN" }
+samsung_pay = { country = "AU,BH,BR,CA,CN,DK,FI,FR,DE,HK,IN,IT,JP,KZ,KR,KW,MY,NZ,NO,OM,QA,SA,SG,ZA,ES,SE,CH,TW,AE,GB,US", currency = "AED,AUD,CAD,CHF,EUR,GBP,HKD,SGD,USD" }
[pm_filters.gigadat]
interac = { currency = "CAD"}
[pm_filters.loonio]
interac = { currency = "CAD"}
[pm_filters.coingate]
crypto_currency = { country = "AL, AD, AT, BE, BA, BG, HR, CZ, DK, EE, FI, FR, DE, GR...Hyperswitch v1.123.0
1.123.0 (2026-04-13)
Docker Images
-
v1.123.0(with AWS SES support):docker pull docker.juspay.io/juspaydotin/hyperswitch-router:v1.123.0 -
v1.123.0-standalone(without AWS SES support):docker pull docker.juspay.io/juspaydotin/hyperswitch-router:v1.123.0-standalone
Features
- connector:
- core:
Bug Fixes
- connector:
- connectors: [stripe] fix webhook event type mapping (#11687)
- payload: Update request structure and switch to JSON payload format (#11528)
Refactors
- connector: [Adyen] [paypal] fix error propogation in webhook flows (#11730)
- router: Handle dispute webhook validation failure with 4xx response (#11648)
Compatibility
This version of the Hyperswitch App server is compatible with the following versions of the other components:
- Control Center: v1.38.3
- Web Client: v0.130.0
- WooCommerce Plugin: v1.6.1
- Card Vault: v0.7.0
- Encryption Service: v0.1.12
Database Migration Changes
Important
Stripe Dispute Status Mapping Fix
We previously had a bug where incorrect dispute statuses were recorded (e.g., disputes marked as lost instead of opened) due to an incorrect mapping of Stripe's webhook events. This bug has been fixed in this release. Please run the following query to fix existing dispute records. This query uses Stripe's dispute states (stored in the connector_status column of the dispute table) for accurate state handling.
UPDATE dispute
SET dispute_status = CASE
WHEN LOWER(connector_status) = 'won' THEN 'dispute_won'
WHEN LOWER(connector_status) = 'lost' THEN 'dispute_lost'
WHEN LOWER(connector_status) IN ('needsresponse', 'warningneedsresponse') THEN 'dispute_opened'
WHEN LOWER(connector_status) IN ('underreview', 'warningunderreview') THEN 'dispute_challenged'
WHEN LOWER(connector_status) = 'warningclosed' THEN 'dispute_cancelled'
ELSE dispute_status
END
WHERE connector = 'stripe';Configuration Changes
diff --git a/config/deployments/sandbox.toml b/config/deployments/sandbox.toml
index 52dac46bc1..57cd9688e7 100644
--- a/config/deployments/sandbox.toml
+++ b/config/deployments/sandbox.toml
@@ -99,21 +99,21 @@ loonio.base_url = "https://integration.loonio.ca/"
mifinity.base_url = "https://demo.mifinity.com/"
mollie.base_url = "https://api.mollie.com/v2/"
mollie.secondary_base_url = "https://api.cc.mollie.com/v1/"
moneris.base_url = "https://api.sb.moneris.io"
mpgs.base_url = "https://test-gateway.mastercard.com"
multisafepay.base_url = "https://testapi.multisafepay.com/"
nexinets.base_url = "https://apitest.payengine.de/v1"
nexixpay.base_url = "https://xpaysandbox.nexigroup.com/api/phoenix-0.0/psp/api/v1"
nmi.base_url = "https://secure.nmi.com/"
nomupay.base_url = "https://payout-api.sandbox.nomupay.com"
-noon.base_url = "https://api-test.noonpayments.com/"
+noon.base_url = "https://api-test{{region}}.noonpayments.com/"
nordea.base_url = "https://api.nordeaopenbanking.com"
noon.key_mode = "Test"
novalnet.base_url = "https://payport.novalnet.de/v2"
nuvei.base_url = "https://ppp-test.nuvei.com/"
opayo.base_url = "https://pi-test.sagepay.com/"
opennode.base_url = "https://dev-api.opennode.com"
paybox.base_url = "https://preprod-ppps.paybox.com/PPPS.php"
paybox.secondary_base_url="https://preprod-tpeweb.paybox.com/"
payeezy.base_url = "https://api-cert.payeezy.com/"
payjustnow.base_url = "https://sandbox-checkout.payjustnow.io/v2"
@@ -228,21 +228,21 @@ enabled = true
[zero_mandates.supported_payment_methods]
bank_debit.ach = { connector_list = "gocardless,adyen,payload" }
bank_debit.becs = { connector_list = "gocardless,adyen" }
bank_debit.bacs = { connector_list = "gocardless" }
bank_debit.sepa = { connector_list = "gocardless,adyen" }
card.credit.connector_list = "checkout,stripe,adyen,zift,authorizedotnet,cybersource,datatrans,worldpay,nmi,bankofamerica,wellsfargo,bamboraapac,nexixpay,novalnet,paypal,archipel,tesouro,mollie"
card.debit.connector_list = "checkout,stripe,adyen,zift,authorizedotnet,cybersource,datatrans,worldpay,nmi,bankofamerica,wellsfargo,bamboraapac,nexixpay,novalnet,paypal,archipel,tesouro,mollie"
pay_later.klarna.connector_list = "adyen"
wallet.apple_pay.connector_list = "checkout,stripe,adyen,cybersource,bankofamerica,novalnet,nuvei,authorizedotnet,nmi,tesouro,worldpaymodular,worldpayxml"
wallet.samsung_pay.connector_list = "cybersource"
-wallet.google_pay.connector_list = "checkout,stripe,adyen,cybersource,bankofamerica,novalnet,nuvei,authorizedotnet,tesouro,worldpaymodular,worldpayxml"
+wallet.google_pay.connector_list = "checkout,stripe,adyen,cybersource,bankofamerica,novalnet,nuvei,authorizedotnet,nmi,tesouro,worldpaymodular,worldpayxml"
wallet.paypal.connector_list = "adyen,novalnet"
wallet.momo.connector_list = "adyen"
wallet.kakao_pay.connector_list = "adyen"
wallet.go_pay.connector_list = "adyen"
wallet.gcash.connector_list = "adyen"
wallet.dana.connector_list = "adyen"
wallet.twint.connector_list = "adyen"
wallet.vipps.connector_list = "adyen"
bank_redirect.ideal.connector_list = "adyen"
bank_redirect.bancontact_card.connector_list = "adyen"
@@ -252,21 +252,21 @@ bank_redirect.open_banking_uk.connector_list = "adyen"
[mandates.supported_payment_methods]
bank_debit.ach = { connector_list = "gocardless,adyen,stripe,payload" }
bank_debit.becs = { connector_list = "gocardless,stripe,adyen" }
bank_debit.bacs = { connector_list = "stripe,gocardless" }
bank_debit.sepa = { connector_list = "gocardless,adyen,stripe,deutschebank" }
card.credit.connector_list = "aci,checkout,stripe,adyen,authorizedotnet,cybersource,datatrans,globalpay,worldpay,multisafepay,nmi,nexinets,noon,bankofamerica,braintree,nuvei,payme,wellsfargo,bamboraapac,elavon,fiuu,nexixpay,novalnet,paybox,paypal,xendit,moneris,archipel,worldpayvantiv,payload,paysafe,finix,tesouro,mollie,airwallex"
card.debit.connector_list = "aci,checkout,stripe,adyen,authorizedotnet,cybersource,datatrans,globalpay,worldpay,multisafepay,nmi,nexinets,noon,bankofamerica,braintree,nuvei,payme,wellsfargo,bamboraapac,elavon,fiuu,nexixpay,novalnet,paybox,paypal,xendit,moneris,archipel,worldpayvantiv,payload,paysafe,finix,tesouro,mollie,airwallex"
pay_later.klarna.connector_list = "adyen,aci"
wallet.apple_pay.connector_list = "checkout,stripe,adyen,braintree,cybersource,noon,bankofamerica,nexinets,novalnet,nuvei,authorizedotnet,wellsfargo,worldpaymodular,worldpayvantiv,finix,nmi,tesouro,worldpayxml"
wallet.samsung_pay.connector_list = "cybersource"
-wallet.google_pay.connector_list = "checkout,stripe,adyen,cybersource,bankofamerica,noon,globalpay,multisafepay,novalnet,nuvei,authorizedotnet,wellsfargo,worldpaymodular,worldpayvantiv,finix,tesouro,worldpayxml"
+wallet.google_pay.connector_list = "checkout,stripe,adyen,cybersource,bankofamerica,noon,globalpay,multisafepay,novalnet,nuvei,authorizedotnet,wellsfargo,worldpaymodular,worldpayvantiv,finix,nmi,tesouro,worldpayxml"
wallet.paypal.connector_list = "adyen,globalpay,nexinets,novalnet,paypal,authorizedotnet"
wallet.momo.connector_list = "adyen"
wallet.kakao_pay.connector_list = "adyen"
wallet.go_pay.connector_list = "adyen"
wallet.gcash.connector_list = "adyen"
wallet.dana.connector_list = "adyen"
wallet.twint.connector_list = "adyen"
wallet.vipps.connector_list = "adyen"
bank_redirect.ideal.connector_list = "stripe,adyen,globalpay,multisafepay,nexinets,aci"Full Changelog: v1.122.0...v1.123.0
Hyperswitch v1.122.0
1.122.0 (2026-03-24)
Docker Images
-
v1.122.0(with AWS SES support):docker pull docker.juspay.io/juspaydotin/hyperswitch-router:v1.122.0 -
v1.122.0-standalone(without AWS SES support):docker pull docker.juspay.io/juspaydotin/hyperswitch-router:v1.122.0-standalone
Features
- connector:
- core:
- Add support for Guest Customer in v2 tunnel (#10973)
- Populate error_message for payments_list api (#11054)
- Braintree and Mifinity Form type in HS <> UCS Integration (#10989)
- Add webhook context support for event type determination (#11363)
- Add static routing to proxy payment core (#11387)
- Add Peachpayments Data Inside connector_metadata in Payments Request (#11389)
- interfaces: Add query_params functionality in microservice client (#11026)
- payload: Add merchant_secret to connector_webhook_details for all environments (#11364)
- payment-methods:
- payment_methods: Support bank_type, bank_holder_type, and bank_account_holder_name in ACH migration (#11375)
- platform: Support save payment method for platform payments (#11056)
- router:
- Mandate data passage to ucs (#11053)
Bug Fixes
- connector:
- Fix PreAuth Conditions in NMI, Nuvei and Redsys (#11041)
- Map
Ds_Stateto status in Redsys PSync whenDs_Responseis absent (#11096) - [REDSYS] add url safe base64 decoding support (#11024)
- [Peachpayments] Pass COF Data as None in MIT Using Limited Card Data Flow (#11139)
- [WorldpayWPG] Mandates Flow for Wallets When Authentication Type is three_ds (#11357)
- Fix PayJustNow In-Store Payments when merchant_order_reference_id is Same (#11391)
- [Peachpayments] Omit ECI field in Network Token Passthrough when its None (#11390)
- [ADYEN] Pass through split refund data when payment charges are unavailable (#11478)
- router:
- ucs: Handling Unspecified Payment status from UCS (#11057)
- Payment method population in pyament_method_token (#10843)
Refactors
- connector: [Worldpayxml] webhook body from xml to url encoded (#10991)
- core: Derive card_isin in payment_token flow for routing dsl input (#11100)
- ucs: Introduce
authentication_stepfunction toauthorize_flowand bloat redsys withauthenticateflow (#10490) - webhooks: Default to triggering webhooks for all the states in payments, refunds and payouts flow (#11028)
- Centralize timeout error constants and improve refund error handling (#11073)
Miscellaneous Tasks
- payments_v2: External vault payment v2 flow fix (#10927)
- Fix for setupmandate and complete authorize for granular flows (#11070)
Compatibility
This version of the Hyperswitch App server is compatible with the following versions of the other components:
- Control Center: v1.38.2
- Web Client: v0.129.0
- WooCommerce Plugin: v1.6.1
- Card Vault: v0.7.0
- Encryption Service: v0.1.12
Database Migration Changes
DB Difference between v1.121.0 and v1.122.0
ALTER TABLE payment_methods
ADD COLUMN IF NOT EXISTS locker_fingerprint_id VARCHAR(64);Configuration Changes
diff --git a/config/deployments/env_specific.toml b/config/deployments/env_specific.toml
index 8681ff8360..d2f7c193da 100644
--- a/config/deployments/env_specific.toml
+++ b/config/deployments/env_specific.toml
@@ -293,20 +293,26 @@ jwt_secret = "secret" # JWT secret used for user authenticati
# Server configuration
[server]
workers = 8
port = 8080
host = "127.0.0.1"
# This is the grace time (in seconds) given to the actix-server to stop the execution
# For more details: https://actix.rs/docs/server/#graceful-shutdown
shutdown_timeout = 30
# HTTP Request body limit. Defaults to 32kB
request_body_limit = 32_768
+# Keep-alive timeout in seconds
+keep_alive = 5
+# Client request timeout in milliseconds
+client_request_timeout = 5000
+# Client disconnect timeout in milliseconds
+client_disconnect_timeout = 1000
# HTTPS Server Configuration
# Self-signed Private Key and Certificate can be generated with mkcert for local development
[server.tls]
port = 8081
host = "127.0.0.1"
private_key = "/path/to/private_key.pem"
certificate = "/path/to/certificate.pem"
[secrets_management]diff --git a/config/deployments/sandbox.toml b/config/deployments/sandbox.toml
index 34d269c5db..52dac46bc1 100644
--- a/config/deployments/sandbox.toml
+++ b/config/deployments/sandbox.toml
@@ -178,21 +178,21 @@ zift.base_url = "https://sandbox-secure.zift.io/"
zen.base_url = "https://api.zen-test.com/"
zen.secondary_base_url = "https://secure.zen-test.com/"
zsl.base_url = "https://api.sitoffalb.net/"
threedsecureio.base_url = "https://service.sandbox.3dsecure.io"
netcetera.base_url = "https://{{merchant_endpoint_prefix}}.3ds-server.prev.netcetera-cloud-payment.ch"
[delayed_session_response]
connectors_with_delayed_session_response = "trustpay,payme" # List of connectors which have delayed session response
[save_payment_method_on_session.unsupported_payment_methods]
-pay_later = "klarna,affirm"
+pay_later = "klarna,affirm,afterpay_clearpay"
[dummy_connector]
enabled = true # Whether dummy connector is enabled or not
assets_base_url = "https://app.hyperswitch.io/assets/TestProcessor/" # Base url for dummy connector assets
authorize_ttl = 36000 # Time to live for dummy connector authorize request in redis
default_return_url = "https://app.hyperswitch.io/" # Default return url when no return url is passed while payment
discord_invite_url = "https://discord.gg/wJZ7DVW8mm" # Discord invite url for hyperswitch
payment_complete_duration = 500 # Fake delay duration for dummy connector payment complete
payment_complete_tolerance = 100 # Fake delay tolerance for dummy connector payment complete
payment_duration = 1000 # Fake delay duration for dummy connector payment
@@ -226,23 +226,23 @@ adyen = "Star,Pulse,Accel,Nyce"
enabled = true
[zero_mandates.supported_payment_methods]
bank_debit.ach = { connector_list = "gocardless,adyen,payload" }
bank_debit.becs = { connector_list = "gocardless,adyen" }
bank_debit.bacs = { connector_list = "gocardless" }
bank_debit.sepa = { connector_list = "gocardless,adye...Hyperswitch v1.121.0
1.121.0 (2026-02-24)
Docker Images
-
v1.121.0(with AWS SES support):docker pull docker.juspay.io/juspaydotin/hyperswitch-router:v1.121.0 -
v1.121.0-standalone(without AWS SES support):docker pull docker.juspay.io/juspaydotin/hyperswitch-router:v1.121.0-standalone
Features
- UCS:
- Wallets: APPLEPAY AND GOOGLE PAY DECRYPTED FLOW support (#10329)
- analytics:
- auth:
- authentication:
- Add force_3ds and exemption support for juspayThreeds Server (#10181)
- Add domain models for authentication and support kafka filters in dashboard (#10446)
- Add pending authentication status to authentication attempt count (#10833)
- Added VM for authentication ctp (#10803)
- Add webhook integration for Authentication Service (#10900)
- braintree: Add UCS wallet support for PaypalSdk, ApplePayThirdPartySdk, and GooglePayThirdPartySdk (#10513)
- business_profile: Add token field selector column to business profile (#10190)
- connector:
- [Envoy] template code for connector (#10220)
- [Peach Payments] Add Automatic Capture Flow for Peach Payments (#10270)
- [NOVALNET] Pass Payment Metadata fields to Connector (#10315)
- [Worldpayxml] add payout webhook impl for worldpay wpg (#10346)
- [BRAINTREE] apple pay mandate for braintree (#10273)
- Add client_unqiue_id in Nuvei Pyament Request (#10366)
- [Mollie] Add Recurring Payment and Manual Capture Flows (#10408)
- Payload ach recurring (#10412)
- [Dlocal] Implement oxxo voucher (#10450)
- [WorldpayWPG] Add google pay - connector decryption flow (#10460)
- [WorldpayXML] Implement webhooks for payments and refunds (#10496)
- Introduce Connector Customer Flow and Optional Billing Address Support (#10499)
- [Airwallex] Implemented Mandates (#10431)
- [WorldpayWPG] Implement cards and apple pay decrypt payout (#10545)
- [WorldpayWPG] Add 3DS flow for cards (#10442)
- Add transaction_code support across Zift payment flows (#10581)
- [WorldpayWPG] Add apple pay - connector decryption flow (#10482)
- [BRAINTREE] Add support for external 3DS pass-through authentication (#10591)
- [Zift] Remove billing address fields and add mandate setup (account verification) support (#10665)
- [Peach Payments] Add Pre-Auth Flow With Full Reversal (#10590)
- [NMI] Implement Apple Pay - hyperswitch decryption flow (#10686)
- Add Apple Pay HS-Decryption support for Braintree (#10734)
- [Payjustnowinstore] Add Connector Template Code (#10716)
- [NOVALNET] Make Billing Email a required field for SEPA (#10720)
- [PayJustNow In-Store] Implement PayJustNow Payment Method (#10745)
- [Shift4] Enhance error mapping to support issuer error codes (#10748)
- [Gigadat] store intearc customer_info in additional data (#10749)
- [Zift] use Ecommerce transaction_industry_type instead of card present/not present (#10775)
- [FINIX] webhook + statement descriptor (#10758)
- [ADYEN] Googlepay predecrypt (#10806)
- [worldpaymodular] worldpay modular connector (#10795)
- [Peachpayments] Extend Network Token Passthrough by Merchant (#10864)
- [xendit] add QRIS payment methods (#10759)
- Add support for processing_account_id via metadata across Payload flows (#10904)
- Enable order create for nordea (#10945)
- [CYBERSOURCE] pass merchant order reference id in payment request (#10723)
- Implement Payjustnowinstore Payments Webhooks (#11043)
- connectors:
- core:
- Add all_keys_required in Capture, Refund and RSync Flows (#10178)
- Support skipping PSP tokenization in payment and mandate flows (#10074)
- Implement ucs granular setup mandate flow (#10383)
- Get Access Token Redis Key From Connector (#10080)
- Added mandate_id flow support in HS<>UCS (#10399)
- Map Connector Customer Id Inside Connector Mandate Details inside Batch Migrations API (#10410)
- Add amount captured in payment attempt (#10498)
- Consume Card Holder Name in Payment Method Batch Migrations (#10551)
- Add Session flow support in Hyperswitch<>UCS tunnel (#10552)
- Add requires_capture to default payment webhook statuses (#10660)
- Bumped UCS Client dependency to bring latest changes (#10641)
- [Network Token] Passing Network Token in payments request (#9975)
- Added OpenBanking PaymentMethod for Hyperswitch <> UCS Integration (#10635)
- Propagate metadata from locker response to payment method response (#10645)
- Add connector_response_reference_id for ErrorResponse (#10816)
- Add intent_fulfillment_time configuration to temp locker (#10877)
- Changed Metadata Type in Hyperswitch<>UCS tunnel (#10911)
- Added Dual Refunds Validation - Chargeback+Refund (#10533)
- Added BankTransfer PaymentMethod for Hyperswitch <> UCS Integration (#10814)
- Extend Support for whole_connector_response in Cancel Flow (#10981)
- MIT using Limited Card Data (#10965)
- Bumped UCS dependency to bring latest changes (#10977)
- PSync Redirection Data in HS <> UCS Integration ([#11141](https://github.com/juspay/hypersw...
Hyperswitch v1.120.0
1.120.0 (2025-11-27)
Docker Images
-
v1.120.0(with AWS SES support):docker pull docker.juspay.io/juspaydotin/hyperswitch-router:v1.120.0 -
v1.120.0-standalone(without AWS SES support):docker pull docker.juspay.io/juspaydotin/hyperswitch-router:v1.120.0-standalone
Features
- authentication: Add click to pay support for modular authentication (#10004)
- connector:
- [Peachpayments] Add Webhook Flow and Support For merchant_order_reference_id (#9781)
- [Finix] Add support for Apple Pay (#9810)
- [NOVALNET] Implemented Sepa Direct Debit and Sepa Direct Debit with Payment Guarantee (#9700)
- Add amount conversion framework to Powertranz (#9752)
- Update supported currency for Adyen Payout and Cybersource (#9909)
- [Gigadat] payouts for gigadat (#9889)
- [checkout] Add additional fields in the request (#9888)
- [adyenplatform] extend states for incoming webhook events (#9900)
- [PEACHPAYMENTS] Refunds, RSync and Cypress added (#9850)
- Finix mandates implementation cards + Googlepay + Applepay (#9847)
- [PAYJUSTNOW] add Connector Template Code (#9958)
- [PAYJUSTNOW] Add payjustnow payment flow (#10025)
- [NOVALNET] Receive Chargeback Webhooks During Customer Dispute (#10051)
- [Zift] Add Template Code (#10104)
- Mandates + setup mandate for tesouro CARDS (#10063)
- Add cybersource to network_transaction_id_supported_connectors list in production config (#10008)
- [STRIPE] Add Support for MOTO Payments (#10119)
- [stripe] add split payment support to capture, void and Setupmandate flows v1 (#10165)
- [ADYEN] send platform_chargeback_logic in metadata (#10175)
- [WorldpayWPG] Implement Payouts - Cards and Apple Pay Predecrypt (#10200)
- core:
- Add profile-level configuration for L2/L3 data enablement (#9683)
- Added payment method type in uas for modular auth and payments api (#9852)
- Introduce new decide flow mechanism for payment authorization (#9808)
- Added two step payment webhooks processing for Hyperswitch <> UCS Integration (#9374)
- Added Capture flow support for Hyperswitch <> UCS Integration (#9735)
- Add amount_capturable field to manual update api (#10013)
- Added Refund flow support for Hyperswitch <> UCS Integration (#9862)
- Added BankRedirect PaymentMethod and AccessToken caching for Hyperswitch <> UCS Integration (#9421)
- Added Crypto and Mifinity Wallet PaymentMethod for Hyperswitch <> UCS Integration (#10076)
- Update PaymentsMethod Table based on IncomingWebhooks (#9453)
- Add billing_descriptor in the payment intent (#10077)
- Add all_keys_required in Capture, Refund and RSync Flows (#10322)
- core/connector: [ADYEN] Added Support For External Authentication By Merchant (#10281)
- customer_list: Add new API tests for customer list with count, pagination, and limit validation (#10183)
- customers: Add time range filtering and count functionality to customer list endpoints (#9767)
- euclid_wasm: Add wasm support for billing connectors (#10012)
- events: Taking request and response both for detail extraction for kafka events (#9993)
- feature: [Zift] Add Cards Support (#10171)
- framework:
- global_search: Add payouts configuration and update related structures in OpenSearch (#10081)
- nmi: Add support for apple pay mandates (#10241)
- payment: Add Noon connector details and update payment methods … (#10111)
- payouts:
- revenue_recovery:
- router:
- Add pre-confirm payments eligibility api (#9774)
- Add card testing check in payments eligibility flow (#9876)
- Add an endpoint for extending authorization (#9813)
- Add /apply-payment-method-data endpoint (v2) (#9868)
- Add
sdk_next_actionin payment method list response (#9922) - Add extended_authorization_last_applied_at to payments response (#9966)
- Add support for updating wallet pm_data to PM update API (#9388)
- Add api_models and openapi changes for modular auth eligibility apis (#10059)
- Add core changes for post and get eligibility check apis for modular authentication (#10131)
- Add is_split_payment field to payments response (v2) (#10140)
- routing: Validation for configs (#10133)
- connector: add Store id for adyen (#10108)
- subscription: Add estimate to subscriptions flow and remove amount and currency (#9835)
- subscriptions: Add support to pause, resume and cancel subscription (#10015)
- ucs:
- webhooks: Adding event search option in the webhooks page (#9907)
- Include response body for create_user_authentication_method (#9653)
- Add outgoing webhooks for subscriptions (#9859)
- Added HS<>UCS create_connector_customer flow support and populated router_data fields received from UCS (#9984)
- Add support to call ucs authorize function during complete authorize (#10091)
Bug Fixes
Hyperswitch v1.119.0
1.119.0 (2025-11-04)
Docker Images
-
v1.119.0(with AWS SES support):docker pull docker.juspay.io/juspaydotin/hyperswitch-router:v1.119.0 -
v1.119.0-standalone(without AWS SES support):docker pull docker.juspay.io/juspaydotin/hyperswitch-router:v1.119.0-standalone
Features
- Customer: Added search Feature to the Customer Page (#9619)
- connector:
- [Gigadat] Implement interac payouts (#9566)
- [BRAINTREE] Googlepay, Applepay wallets added (#8728)
- [Loonio] Add Webhooks support (#9707)
- [Loonio] implement payouts (#9718)
- [FINIX] add support for Card non3ds (#9680)
- [BRAINTREE] Add Paypal wallet support (#8984)
- [Finix] Add Google Pay Connector Tokenization Flow (#9734)
- [Gigadat] Add Payments Webhook (#9775)
- [Peach Payments] add network token support for connector (#9754)
- [Peachpayments] Add Webhook Flow and Support For merchant_order_reference_id (#9882)
- [PEACHPAYMENTS] Refunds, RSync and Cypress added (#9932)
- [Tesouro] Integrate no-threeds cards, apple pay, google pay (#9632) (#9648) (#9706)
- [Paysafe] implement non-3DS card mandates (#9560)
- core:
- Add authorized_amount in payment_attempt to support partial authorization for manual_multiple capture (#9594)
- Add MIT Types in payment Intent (#9585)
- Add support to update card exp in update payment methods api (#9688)
- Add masking support for form-data types request (#9496)
- [NETWORK TOKENIZATION] Check Network Token Status API (#9443)
- Add support for upi_intent and upi_qr (#9716)
- framework: Added diff-checker required code and running ucs in shadow mode (#9684)
- migration: Add connector_customer updation support to batch PM update API (#9791)
- payments: Add MIT payment functionality and update invoice handler (#9668)
- payouts: Apple pay decrypt payout (#9875)
- revenue_recovery: Add support to fetch data and update additional token data in redis (#9611)
- router: Add api models and openapi changes for payments submit eligibility api (#9568)
- security: Add XSS and sqli validation for dashboard metadata fields (#9104)
- subscription:
- Add support to call payments microservice from subscription service via payments API client (#9590)
- Get plans for subscription (#9251)
- Add endpoint to get Subscription estimate (#9637)
- Domain_model for subscription and invoice (#9640)
- Add support to create subscription with trial plans (#9721)
- Invoice record back workflow (#9529)
- Add client secret auth support in subscriptions APIs (#9713)
- Add update subscriptions APIs with payments update call (#9778)
- user_roles: Add parent group info based API to fetch permissions for user role (#9487)
- Dockerfile for building migration runner image (#9417)
- Implement subscriptions workflow and incoming webhook support (#9400)
- Introduce a framework to fetch configs from superposition (#9289)
Bug Fixes
- chat: Alter encryption logic for ai service (#9562)
- connector:
- Restrict preprocessing to only apple pay for paysafe (#9687)
- [CALIDA] Changed Connector Name From Bluecode to Calida (#9712)
- [Cryptopay] fix amount_captured population logic in response handling (#9674)
- [adyenplatform] use YYYY format for expiry year (#9823)
- [Peach Payments] fix connector metadata deserialization (#9826)
- [Nexixpay] MIT & order_id fix (#9644)
- [TSYS] change order of order_number in tsys auth request body (#9579)
- database: Percent-encode spaces in Postgres connection URI (#9685)
- nuvei: For NTID/proxy flow
is_rebillingshould always be sent 1 & pass customer_details in proxy flow + Add US as supported countries for GOOGLEPAY (#9738) - payment: Add connector_request_reference_id to PaymentAttemptUpdate in ConfirmIntentTokenized flow (#9597)
- payments: Update error handling for payment void v2 (#9595)
- payouts: Add should_continue flag for propagating error for each call (#9531)
- router:
- Fix wasm bug juspay three DS (#9757)
- routing: Cache redaction on updation of mca (#9729)
- ui: Hide visible scrollbar from checkout widget for windows (#9541)
- wasm_changes: Multisafepay wasm changes (#9746)
- Fixed the just install error in migration-runner (#9745)
Refactors
- connector: Fix wasm for Loonio (#9647)
- core:
- routing: Update configs on updation of mca (#9659)
- webhooks: Fix incoming webhooks failure (#9950)
- Refactored Response types for subscription APIs (#9788)
Miscellaneous Tasks
- webhooks: Add metric to track failed webhooks acknowledged with 200 (#9763)
- Create indexes on required id columns for v2 application (#9704)
Compatibility
This version of the Hyperswitch App server is compatible with the following versions of the other components:
- Control Center: v1.37.7
- Web Client: v0.127.0
- WooCommerce Plugin: v1.6.1
- Card Vault: v0.6.5
- Key Manager: v0.1.10
Database Migration Changes
DB Difference between v1.118.0 and v1.119.0
-- Add mit_category to payment_intent table
ALTER TABLE payment_intent
ADD COLUMN IF NOT EXISTS mit_category VARCHAR(64);
-- Your SQL goes here
ALTER TABLE payment_attempt
ADD COLUMN IF NOT EXISTS authorized_amount BIGINT;
-- Your SQL goes here
ALTER TYPE "PayoutType" ADD VALUE IF NOT EXISTS 'bank_redirect';
-- Your SQL goes here
ALTER TABLE invoice ADD COLUMN IF NOT EXISTS connector_invoice_id VARCHAR(64);
CREATE INDEX invoice_subscription_id_connector_invoice_id_index ON invoice (subscription_id, connector_invoice_id);
-- Your SQL goes here
ALTER TABLE subscription
ADD COLUMN IF NOT EXISTS plan_id VARCHAR(128),
ADD COLUMN IF NOT EXISTS item_price_id VARCHAR(128);
-- Your SQL goes here
ALTER TABLE invoice ADD CONSTRAINT invoice_subscription_id_connector_invoice_id_unique_index UNIQUE (subscription_id, conne...Hyperswitch v1.118.0
1.118.0 (2025-10-14)
Docker Images
-
v1.118.0(with AWS SES support):docker pull docker.juspay.io/juspaydotin/hyperswitch-router:v1.118.0 -
v1.118.0-standalone(without AWS SES support):docker pull docker.juspay.io/juspaydotin/hyperswitch-router:v1.118.0-standalone
Features
- Connector: [checkout] l2l3 data (#9446)
- celero: CIT-MIT for celero (ALPHA CONNECTOR) (#9026)
- connector:
- [AMAZONPAY] add Payment flows for Amazon Pay Wallet (#7062)
- Introduce setup mandate flow for payload (#9110)
- Add Connector Specifications (#8797)
- [SANTANDER] Added Boleto Payment Method (#9008)
- [ADYEN] Add Support for MOTO Payments (#9134)
- [SHIFT4] Pass metadata to connector (#9254)
- [Paysafe] Integrate no 3ds card (#9127)
- [Barclaycard] Add Apple Pay Flow (#8885)
- [checkout] Add mandate flow (#9248)
- Enhance ACI connector with comprehensive 3DS support - DRAFT (#8986)
- [checkout] add support for MOTO payments (#9327)
- [ADYEN] Add support to ideal Mandate Webhook (#9347)
- [Paysafe] Implement card 3ds flow (#9305)
- Add Peachpayments Template Code (#9363)
- [PeachPayments] Add Cards Flow (#9030)
- [Novalnet] read and send scheme_tid for NTI flows (#9337)
- [TRUSTPAYMENTS] Integrate cards non 3ds payments (#8705)
- [Paysafe] implement Skrill wallet Payment Method (#9396)
- Create Customer for Chargebee (#9304)
- Add support for get plan prices for Chargebee (#9300)
- [Paysafe] add wasm changes (#9455)
- [Tokenex] add template code (#9416)
- [Gigadat] Connector Template code (#9450)
- [Tokenex]Add external vault insert and retrieve flows (#9470)
- [ADYEN ]: send execute_three_d in no3ds adyen (#9339)
- [checkout] Add NTID flow (#9449)
- [paysafe] introduce applepay encrypt and predecrypt flow (#9358)
- [Gigadat] integrate interac bank redirect payment method (#9525)
- [Tesouro] Add template code (#9555)
- [Checkout] Add Google Pay Predecrypt Flow (#9130)
- [Loonio] Add template code (#9586)
- [Loonio] Implement interac Bank Redirect Payment Method (#9620)
- connectors: [Stripe] add extended authorization for cards (#9084)
- core:
- Add Merchant Tax ID in Merchant Profile (#8992)
- [proxy payments] send external vault proxy metadata to UCS (#9108)
- Update payment methods api (#9075)
- Add subscription table (#9133)
- Add Network Details in Payments Response (#9273)
- [Retry] MIT Retries (#8628)
- Add first_name and last_name as Secret Types. (#9326)
- Add manual retry cutoff duration (#9330)
- Juspay 3DS Server via Payments API (#9433)
- Add webhook setup event handler (#9420)
- Add referer field to browser_info (#9474)
- Confirm true mandatory when using stored payment method id in payouts (#9424)
- Update additional payment method data in psync response (#9519)
- [Nuvei] add stored credentials flag (#9515)
- crypto: Add RSA-SHA-256 signature verification (#9080)
- euclid_wasm: Add wasm changes for payout webhooks (#9524)
- finix: Template code (#9557)
- framework: Added smithy, smithy-core and smithy-generator crates (#9249)
- injector: Injector request formation changes (#9306)
- migration: Perform card validation only for allowed payment methods (#9131)
- nuvei:
- payments: Add tokenization action handling to payment flow for braintree (#9506)
- payouts:
- revenue_recovery:
- router:
- Add payment_type to Get Intent response (v2) (#9066)
- Payment Intent and MCA changes for split payments (#9049)
- Add support for overcapture (#8949)
- Add Connector changes for 3ds (v2) (#9117)
- Add gift card balance check endpoint (v2) (#9102)
- Handle incoming webhooks adyen (#9372)
- Add flag to wait for post message in
threeDSMethodDataforthree_ds_invokenext action in Payments Confirm (#9454) - Add v2 payment cancellation flow (#9083)
- Add external vault support in v1 payments flow (#9274)
- Add attempts_group DB changes for split payments (v2) (#9466)
- Add Confirm-Intent API contract changes for split payments (v2) (#9469)
- subscription: Add support to estimate for a subscription in chargebee (#9336)
- subscriptions:
- ucs:
- webhooks: Provide outgoing webhook support for revenue recovery (#9294)
- Customise default theme (#9243)
- Add hyperswitch ai chats table (#8831)
- Implement subscription create for Chargebee (#9303)
- Add invoice table (#9348)
Bug Fixes
- Nuvei: Post capture void , proper mapping for nuvei (#9292)
- **ap...
Hyperswitch v1.117.0
1.117.0 (2025-09-11)
Docker Images
-
v1.117.0(with AWS SES support):docker pull docker.juspay.io/juspaydotin/hyperswitch-router:v1.117.0 -
v1.117.0-standalone(without AWS SES support):docker pull docker.juspay.io/juspaydotin/hyperswitch-router:v1.117.0-standalone
Features
- api: Adds support to change reveue_recovery_retry_algorithm_type using UpdateProfileAPI (V2) (#8858)
- checkbook_io: Connector integrate ACH (#8730)
- connector:
- [SILVERFLOW] Integrate cards non 3ds payments (#8591)
- [TRUSTPAYMENTS] Add Template Code (#8672)
- [AIRWALLEX] Added Ideal & Skrill payment methods (#8535)
- [Breadpay]Add support for Breadpay connector (#8676)
- [Flexiti]template code for flexiti connector (#8714)
- [MPGS] template code (#8544)
- [BLUECODE] Added Template Code (#8756)
- [FISERV] Added GooglePay Payment Method - Connector Decryption Flow (#8658)
- [Adyen] receive incoming webhooks for pix expiry (#8720)
- [Flexiti]Add support for flexiti connector (#8743)
- [payload] add recurring payments (#8597)
- [facilitapay] fix refunds, add webhook and void support (#8778)
- [cybersource] add changes for field CybersourceConsumerAuthInformation (#8768)
- [katapult]add template code for katapult (#8783)
- [BLUECODE] Added Bluecode Wallet QR Code Redirect Payment Method (#8762)
- [NMI] Add mandates flow (#8652)
- [AUTHORIZEDOTNET] create connector customer flow added (#8774)
- [Barclaycard] Add Google Pay Payment Method (#8786)
- [WORLDPAYVANTIV] Populate Network Decline Error Code & Message (#8856)
- [FISERV] Added PayPal Redirect Payment Method (#8669)
- [SIFT] add Connector Template Code (#8488)
- Add support of passing metadata in adyen payment request (#8871)
- [STRIPE] Add Incremental Authorization Flow (#8569)
- [FISERV] Added ApplePay Wallet (#8670)
- [NUVEI] Added support for AVC CVV checks, post confirm void and 0$ txns (#8766)
- [Hyperwallet] template code (#8926)
- [DWOLLA] Connector integration (#8586)
- [CELERO] Integrate Card Payments (Alpha) (#8574)
- [barclaycard] Implement 3DS flow for cards (#8936)
- Add integration status to feature matrix (#8351)
- [BHN] Add BHN GiftCard Flow( Alpha) (#8701)
- [AFFIRM] BNPL flow added (Alpha) (#8795)
- Add VGS connector impls (#7942)
- [Adyenplatform] process payouts using PSP tokens (#9040)
- [Paysafe] add connector template code (#9011)
- [Nuvei] Implement setup mandate flow for cards (#9012)
- core:
- Consuming locale in PaymentsAuthorizeData from SessionState (#8731)
- Hyperswitch <|> UCS Mandate flow integration (#8738)
- Implement UCS based upi for paytm and phonepe (#8732)
- Populate UCS status_code in response headers (#8788)
- Add L2_L3 Data Support (#8828)
- Added additional authentication fields for 3ds external authentication (#8758)
- Add support for Void after Capture (#8839)
- Adding integration for webhooks through UCS (#8814)
- Fix Applepay/Gpay for Trustpay (#8881)
- Add support for api locking with multiple keys for a single api (#8887)
- Added Reward PaymentMethod & CurrencyAuthKey for Hyperswitch <> UCS Integration (#8767)
- Add network_transaction_id in payments Response (#9032)
- Added support for unified_connector_service CardNumber and Secret Type (#9044)
- Update payment methods api (#9242)
- core/connector: Introduce authentication token flow and add sepa bankdebit for nordea (#8133)
- external_services: Fixed Url for Unified Connector Service gRPC Client (#8587)
- feature_matrix: Add feature matrix for both paytm and phonepe (#8822)
- gRPC: Build gRPC client interface to initiate communication with recovery-decider service (#8178)
- injector: Add support for new crate - injector for external vault proxy (#8959)
- nuvei: Googlepay , applepay and partial authorization integration for nuvei (#8985)
- payment-link:
- payment-methods:
- payment_methods: Add payment-methods/filter endpoint to list countries and currencies for connector payment method in v2 (#8978)
- payments: Add PaymentListFilterConstraints and payments_list_by_filter endpoint for v2 (#8794)
- payouts: Add payout webhooks for Paypal and Wise (#8888)
- recovery: Add support for custom billing api for v2 (#8838)
- recovery-events: Add revenue recovery topic and vector config to push these events to s3 (#8285)
- revenue: Add support for hard-decline switch for revenue-recovery service (#8879)
- revenue_recovery:
- router:
- Introduce
featureandfeature_datato gsm (#7771) - [worldpayvantiv] add support for moto flag for v1 and extend vantiv api contract (#8800)
- Add support for apple pay pre-decrypted token in the payments confirm call (#8815)
- [worldpayvantiv] add dispute list sync and implement dispute (#8830)
- Add support for partial authorization (#8833)
- Add support for GooglePay pre-decrypted token in the payments confirm call (#8865)
- Add tokenization support for proxy and update the route for proxy (#8530)
- Add new api for delete tokenization record (#8361)
- Add support for confirm-intent external vault proxy flow (#8923)
- Verify service for applepay merchant registration v2 (#8999)
- Add support to use signature_network and is_issuer_regulated as filters ([#90...
- Introduce
Hyperswitch v1.116.0
1.116.0 (2025-08-05)
Docker Images
-
v1.116.0(with AWS SES support):docker pull docker.juspay.io/juspaydotin/hyperswitch-router:v1.116.0 -
v1.116.0-standalone(without AWS SES support):docker pull docker.juspay.io/juspaydotin/hyperswitch-router:v1.116.0-standalone
Features
- ai: Add endpoints to chat with ai service (#8585)
- analytics: Add RoutingApproach filter in payment analytics (#8408)
- business_profile: Added merchant country code in business profile (#8529)
- connector:
- [ARCHIPEL] fix Mastercard scheme string for Applepay payments (#8450)
- [jpmorgan] implement refund flow (#8436)
- Implement capture and webhook flow, fix some issues in ACI (#8349)
- [ADYENPLATFORM] add card payouts (#8504)
- [SANTANDER] Added Authorize, PSync, Void, Refund & RSync Flows for Pix QR Code Bank Transfer (#8463)
multisafepayadded payment methods | TRUSTLY | WeChatpay | Alipay (#8465)- [shift4] Boleto, Trustly, Alipay, Wechatpay PMs added (#8476)
- [AUTHORIZEDOTNET] Add AVS checks (#8511)
- [shift4] Blik, Klarna, Bitpay PMs added (#8478)
- [Redsys] Use merchant payment_id for ds_merchant_order with length check (#8485)
- [payload] introduce no-3ds cards (#8545)
- [AUTHIPAY] Integrate cards non 3ds payments (#8266)
- [AIRWALLEX] - Added Paypal, Trustly, Klarna , Atome, Blik Payment Methods (#8475)
- [payload] add webhook support (#8558)
- [AUTHORIZEDOTNET] Populated merchant required fields in setupmandate flow (#8618)
- [Multisafepay] Integrate EPS, MBWAY and SOFORT (#8506)
- Add Incremental Authorization flow for Paypal (#8517)
- Add apple pay decrypt support for Adyen (#8605)
- Added Supported Country and Currencies (#8383)
- [AUTHORIZEDOTNET] customer_id length validated and server-too-busy error handled (#8696)
- connectors:
- core:
- data-migration: Add connector customer and mandate details support for multiple profiles (#8473)
- debit_routing:
- kafka: Add payment_intent payment_attempt and refund kafka events for v2 (#8328)
- payment-methods: Create payment_token in vault confirm / do payment-confirm with temp token from session (#8525)
- payment_methods: [Paysera, Skrill] Add support to paysera and skrill wallets and in shift4 (#8487)
- payments:
- payouts: Add domain type for PayoutId (#8395)
- revenue_recovery: Invoke attempt list instead of payment get in recovery webhooks flow (#8393)
- router:
- routing:
Bug Fixes
- connector:
- [STRIPE] Retrieving Connect Account Id from Mandate Metadata in MITs (#8326)
- [NEXIXPAY] Add Validation Checks for Request Fields (#8345)
- Adyen connector creates connector's customer reference on the fly fixed (#8447)
- [TRUSTPAY] Consuming Amount in PSync Response (#8455)
- [CYBERSOURCE] Passing pares_status for MasterCard & Visa and transaction_type field (#8518)
- [Worldpayvantiv] Psync status mapping and add address lines to billing data (#8602)
- [AUTHORIZEDOTNET] Added Invoice Number Fix (#8685)
- [Cybersource] Add type_selection_indicator as 1 for all cards (#8663)
- Add Trustpay in Authentication Providers Config (#8622)
- connectors: [worldpayvantiv] change endpoint, add billing address and fix 5xx incase of psync (#8354)
- payment_method: Update entity id used for Vault to global customer id (#8380)
- payout: Use get_string_repr for formatting payout IDs (#8547)
- recovery: Populate connector request reference id in revenue recovery record attempt flow. (#8434)
- router:
- routing: Remove frm rule migration support as it is not supported in DE (#8448)
- users: Fallback to fresh lineage context if cached role_id no longer matches (#8593)
- Payments redirects for v2 (#8405)
- Update routing_approach for session_token flow (#8490)
Refactors
- connector:
- core: Make raw_connector_response as secret (#8565)
- dynamic_routing: Make the dynamo configs optional (#8589)
- payment-links: Use top redirection in status page (#8641)
- payments: Fetch payment method information in attempts list api v2 and add custom billing connector template (#8681)
- router:
- Remove
refunds_v2feature flag (#8310) - Decrypt the wallet token before...
- Remove