Skip to content

Releases: juspay/hyperswitch

Hyperswitch v1.121.2

19 May 16:58
Immutable release. Only release title and notes can be modified.

Choose a tag to compare

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

  • analytics: Fix for SQL Injection vulnerability in analytics endpoints (#12312) (#12359)

Compatibility

This version of the Hyperswitch App server is compatible with the following versions of the other components:

Full Changelog: v1.121.1...v1.121.2

Hyperswitch v1.123.1

19 May 14:14
Immutable release. Only release title and notes can be modified.
233117e

Choose a tag to compare

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:
    • [Stripe] Googlepay Predecrypted flow stripe (#11919)
    • [ACI] Add Apple Pay and Google Pay wallet support (#12209)
    • [Cybersource] added 3ds support to setup mandate flow in Cybersource (#12329)

Bug Fixes

  • analytics: Fix for SQL Injection vulnerability in analytics endpoints (#12316)
  • connector:
    • [Nmi] add first name and last name for payments (#12003)
    • [Worldpayxml] update status mapping (#11749) (#12167)
  • Add client_secret validation 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:

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...
Read more

Hyperswitch v1.123.0

14 Apr 17:30
Immutable release. Only release title and notes can be modified.

Choose a tag to compare

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:
    • Add processing account id in payload MITs (#11578)
    • [Nmi] googlepay decryptedflow with mandates (#11629)
    • [Noon] Add support for configurable region_based_endpoint while creating mca (#11675)
    • Add MIT category mapping for Checkout.com mandate payments (#11731)
  • core:
    • Implement NTID flow for Decrypted Wallet Token and also Implement for checkout connector (#11720)
    • Enable config-based UAS eligibility at org and merchant level (#11729)

Bug Fixes

  • connector:
    • [Worldpayxml] correctly map authenticate_shopper_id and scheme transaction id (#11525)
    • [Adyen] Remove recurringProcessingModel for CIT transactions (#11622)
    • [Adyen] Add Subscription to AdyenRecurringProcessingModel enum (#11605)
  • 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:

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

26 Mar 12:45
Immutable release. Only release title and notes can be modified.

Choose a tag to compare

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:
    • Fix Payload PSync headers handling (#11083)
    • [Worldpayxml] Implement mandates for ApplePay and GooglePay (#11356)
    • [Peachpayments] Perform PSync and RSync using reference_id (#11457)
  • 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:
    • Add modular payment method retrieve transformer (#10994)
    • Add modular payment method create api (#11031)
    • Add modular payment method update api (#11044)
    • Add modular customer pml transformer (#11064)
    • Add support to fetch raw payment method data in v2 payment methods retrieve api (#11015)
  • 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:
    • Deprecate Implicit Customer Update in Payments (#10982)
    • [stripe connect] prevent creation of payment method for afterpay clearpay (#11051)
    • Introduce duplication check for bank debit (#11371)
  • Mandate data passage to ucs (#11053)

Bug Fixes

  • connector:
    • Fix PreAuth Conditions in NMI, Nuvei and Redsys (#11041)
    • Map Ds_State to status in Redsys PSync when Ds_Response is 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:
    • Made payment account reference optional for visa click to pay (#11350)
    • Use V1VaultEntityId to create fingerprint request (#11372)
  • 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_step function to authorize_flow and bloat redsys with authenticate flow (#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:

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...
Read more

Hyperswitch v1.121.0

24 Feb 15:03
Immutable release. Only release title and notes can be modified.

Choose a tag to compare

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:
    • Added CardDetailsForNetworkTransactionId & NetworkToken payments support for Hyperswitch<>UCS tunnel (#10796)
    • Added wallets, bankredirect, banktransfer, bnpl payment methods in HS<>UCS tunnel (#10760)
    • Enable Trustly and Interact in HS<>UCS (#10838)
    • Enable Bank Debit in HS<>UCS (#10914)
  • Wallets: APPLEPAY AND GOOGLE PAY DECRYPTED FLOW support (#10329)
  • analytics:
    • Add compatibility for payout with anaylitics api (#10479)
    • Infer payout_audit table for payout analytics (#10842)
  • auth:
    • Implemented embedded tokens (#10424)
    • Distinguish platform self-operations from connected-scope operations (#10913)
  • 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:
    • Tesouro recurring wallets & store expiry-date for decrypted Apple&Googlepay (#10122)
    • [payload] add source verification and handle webhook response (#10204)
    • [worldpayxml] add browser, shipping, shopper and billing data to the connector's payment request (#10357)
  • 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...
Read more

Hyperswitch v1.120.0

27 Nov 14:01

Choose a tag to compare

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:
    • Diesel and domain model changes to support multiple outgoing webhooks (#9816)
    • Add Smithy Annotations for Payments and Refunds Payloads (#9911)
    • Implement centralized request ID management framework (#9554)
  • 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:
    • Apple pay decrypt payout (#9857)
    • Add organization_id to payouts (#9938)
    • Add payout through psp token (#9831)
    • Add payout report generation endpoints and configuration (#10073)
  • revenue_recovery:
    • Add token active status filtering and account update history tracking (#10056)
    • Add account updater support in revenue recovery flow for worldpayvantiv connector (#10112)
    • Schedule the unretried invoices in immediate next slot (#10206)
  • 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_action in 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:
    • Call pre-authentication during authorize as per connector (#9949)
    • Add UCS authentication and post-authentication flows for payment processing (#9959)
  • 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

  • connector:
    • Add WASM Changes for Finix Google Pay (#9845)
    • [CALIDA] Treat Bluecode as an alias for Calida (#9817)
    • Map Redsys Response Codes (#9934)
    • [NOVALNET] Address Deserilization Failure due to missing enum variant in Redirection params (#9832)
    • [ADYE...
Read more

Hyperswitch v1.119.0

07 Nov 09:54

Choose a tag to compare

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_rebilling should 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:
    • Add cache redaction for cgraph (#9629)
    • Introduce new field cardFundingSource to GooglePayPaymentMethodData (#9571)
    • Add webhook_url for v2 tunnel (#9625)
  • 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:

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...
Read more

Hyperswitch v1.118.0

15 Oct 08:48

Choose a tag to compare

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:
    • NTID Support + googlepay & applepay mandate support (#9081)
    • Add mandate support for integ,prod,and sbx for googlepay applepay (#9256)
    • Map NTID for nuvei payment responses (#9261)
    • Applepay decrypt at hyperswitch flow (#9431)
  • payments: Add tokenization action handling to payment flow for braintree (#9506)
  • payouts:
    • Mapped Default Values to Unified Error Code and Message (#9262)
    • Add payout currency in wasm crate (#9626)
    • [Nuvei] add payout flows (#9618)
  • revenue_recovery:
    • Add support for updating additional card info data from csv to redis (#9233)
    • Implement redis API to update the lock status for connector customer id (#9403)
  • 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 threeDSMethodData for three_ds_invoke next 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:
    • Add route for creating subscription intent (#9123)
    • Add Subscription confirm handler (#9353)
  • ucs:
    • Add event logging for UCS operations (#9058)
    • Transmit merchant order reference id to unified connector service (#9352)
    • Add profile ID to lineage tracking in Unified Connector Service (#9559)
  • 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...
Read more

Hyperswitch v1.117.0

15 Sep 10:01

Choose a tag to compare

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:
    • Update traditional chinese local (#8935)
    • Update traditional chinese paymentlink exp msg (#9007)
    • Handle locale in payment links (#9064)
  • payment-methods:
    • Add filtering logic for payment method list v2 (#8606)
    • [Proxy] add saved card flow for proxy payments (#8964)
  • 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:
    • Add redis-based payment processor token tracking for revenue recovery (#8846)
    • Introducing new calculate job for card switching and invoice queueing (#8848)
  • router:
    • Introduce feature and feature_data to 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...
Read more

Hyperswitch v1.116.0

11 Aug 09:58

Choose a tag to compare

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)
    • multisafepay added 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:
    • [Worldpayvantiv] add NTI flow and refactor sync flows (#8495)
    • [worldpayvantiv] add connector mandate support (#8546)
  • core:
    • Accept merchant_connector_details in Refunds create and retrieve flow (#8441)
    • Allow setting up status across payments, refunds and payouts for triggering webhooks in core resource flows (#8433)
    • Populate connector raw response and connector_response_reference_id for razorpay (#8499)
  • data-migration: Add connector customer and mandate details support for multiple profiles (#8473)
  • debit_routing:
    • Add debit_routing_savings in analytics payment attempt (#8519)
    • Add debit routing support for apple pay (#8673)
  • 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:
    • Propagate additional payment method data for apple pay during MIT (#7170)
    • Add feature_metadata in the payments response for v2 (#8667)
  • payouts: Add domain type for PayoutId (#8395)
  • revenue_recovery: Invoke attempt list instead of payment get in recovery webhooks flow (#8393)
  • router:
    • Add v2 endpoint to list payment attempts by intent_id (#8368)
    • Add apply_three_ds_strategy in payments confirm flow (#8357)
    • Add confirm flag in kafka payment intent events (#8432)
    • Add webhooks for network tokenization (#6695)
    • Deduplicate PML response and populate bank details (V2) (#8583)
  • routing:
    • Add profile config to switch between HS routing and DE routing result (#8350)
    • Add support to pass fallback connectors to decision engine (#8615)
    • Add routing evaluation rule endpoint and related flow (#8656)
    • Add API key auth for decision engine endpoints (#8640)

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:
    • Move Customer PML endpoint to OLAP (v2) (#8303)
    • Make v2 endpoints follow standard naming conventions (#8630)
    • Add payment method Wallet check for decrypted wallet payment method token logic (#8747)
  • 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:
    • Update add connector script with new connector features (#8213)
    • [Worldpayvantiv] refactor void flow and handle transaction status (#8540)
    • Move connector mappings and endpoints to dedicated modules (#8562)
    • [Adyen] map ssn and session validity for Pix (#8702)
  • 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_v2 feature flag (#8310)
    • Decrypt the wallet token before...
Read more