Releases: juspay/hyperswitch
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
v1.115.0
1.115.0 (2025-07-02)
Docker Images
-
v1.115.0(with AWS SES support):docker pull docker.juspay.io/juspaydotin/hyperswitch-router:v1.115.0 -
v1.115.0-standalone(without AWS SES support):docker pull docker.juspay.io/juspaydotin/hyperswitch-router:v1.115.0-standalone
✨ Features
Analytics & Intelligence
Business Profile & Configuration
- Add business_profile config to enable external vault (#7876)
- Add
merchant_category_codein business profile (#8296)
Payment Connectors
New Connectors & Templates
- Archipel connector (#7851)
- Add barclaycard template code (#8017)
- [nordea] template code (#8056)
- Introduce connector template code for WorldpayXML (#7968)
- [Template] add Worldpayvantiv (#8226)
- [Worldpayvantiv] add card support (#8219)
Connector Enhancements
- Add invoice number and email in AuthorizeDotNet connector (#7726)
- [chargebee] consumes required fields to support transaction monitoring (#7774)
- [Facilitapay] Add support for Pix Bank Transfers (#7704)
- [Recurly] add invoice sync support along with transaction monitoring (#7867)
- [stripebilling] consume necessary fields in stripe billing from webhooks for transaction monitoring support (#7722)
- Add coingate, paystack connector specifications (#7996)
- [CYBERSOURCE] add SEK currency for cybersource (#8048)
- [XENDIT] Added Integrity Check for Authorize, Capture, Refund & RSync flows (#8049)
- Stripe revolut pay wallet integration (#8066)
- [Worldpayxml] add card payment (#8076)
- [Barclaycard] Implement Cards - Non 3DS flow (#8068)
- [FISERV] Added Integrity Check support for all Payment & Refund Flows (#8075)
- [STRIPE] Added Connector Tokenization Flow for Cards (#8248)
- Added recurring payments support for split payments in Stripe (#8271)
- [TRUSTPAY] Added Integrity Checks for PSync & RSync flows & Added New Variants in AttemptStatus & IntentStatus (#8096)
- Implement Razorpay UPI Collect (#8009)
- [trustpay] introduce instant bank_transfer, finland and poland (#7925)
Connector Utilities
- Add dummy billing connector auth flow (#7819)
- Create API for cloning connectors between merchants and profiles (#7949)
- [dummy_connector] add upi collect (#8014)
Core Payment Features
Payment Processing
- Add support for updating metadata after payment has been authorized (#7776)
- Add Support for redirection inside Iframe (#7976)
- [Network Tokenization] pre network tokenization (#6873)
- Add all_keys_required in confirm and psync payload (#7998)
- Altered the amount field in DisputePayload to StringMinorUnit (#8131)
- Make installment_payment_enabled,recurring_enabled Optional (#8201)
- Consume card details from billing connectors and first error codes and store them in payment intent table (#8250)
- Accept merchant_connector_details in Payments and Psync flow (#8199)
Revenue Recovery
- Adds Billing Connector Invoice Sync flow in Revenue Recovery (#7799)
- Add psync support for recovery external payments (#7855)
- Add support for multiple retry algorithms in revenue recovery workflow (#7915)
- Add revenue recovery retry algorithm type and data columns to business_profile table (#7772)
Dynamic Routing & Decision Engine
- Add open router integration for success based routing (#7795)
- Integration of elimination routing for core flows (#6816)
- Add open router integration for elimination routing (#7896)
- Decision engine config API integration (#8044)
- Add get api for dynamic routing volume split (#8114)
- Integration with decision engine (#7930)
- Health check for Decision engine (#8243)
- Add open router integration for debit routing (#7907)
- Add support to update config for elimination routing (#7938)
- Add audit trail for routing (#8188)
- Add retry support for debit routing (#8220)
- List for dynamic routing (#8111)
- Migration api for migrating routing rules to decision_engine (#8233)
Payment Methods & Tokenization
- Add logic for setup_future_usage downgrade and add filter based on zero mandate config (#7775)
- Add v2 api for fetching token data (#7629)
- Add external vault connector service (#7917)
- Add
external_vault_detailsfor payments v2 sdk session call (#8003) - Populate connector_customer during customer creation step in payment methods migrate flow (#8319)
- Adding generic tokenization endpoint (#7905)
- Save payment method on payments confirm (V2) (#8090)
Payments V2 API
- Add support for connector testing (Adyen) (#7874)
- Implement routing in payments v2 (#7709)
- Add outgoing payment webhooks for v2 (#6613)
- Enable client_secret auth for payments_get_intent [v2] (#8119)
- Return payment_experience in PML for payment (v2) (#8255)
- Add merchantId authentication for Payments v2 (#8239)
Refunds V2 API
- Add refund create core flow (#7619)
- Add Refunds Retrieve and Refunds Sync Core flow (#7835)
- Add refunds list flow in v2 apis (#7966)
- Add refund update core flow in v2 apis (#7724)
3DS & Authentication
- Add three_ds_decision_rule_algorithm to the domain and diesel models of business_profile (#8106)
- Add three_ds_decision_rule support in routing apis (#8132)
- Add three_ds decision rule execute api (#8148)
- Add support for 3ds exemption rules in euclid crate (#8013)
Payment Links & UI
- Alternate text for manual captures (#7574)
- Expose configurations for payment links (#7742)
- Add ability to update email config for themes (#8033)
Infrastructure & Deployment
- Add one-click Docker setup script (#7804)
- Add webhook notifiers for installation tracking (#7653)
- Adding infra level components to api-events ([#8214](https://github.com/juspay/hyperswitch/pul...
Hyperswitch v1.114.0
1.114.0 (2025-04-29)
Important
For customers working with Hyperswitch v1.109.0 or older version are recommended to first to Hyperwitch v1.11.0, then upgrade to latest version. Direct upgradation from Hyperswitch v1.109.0 or older version to the latest version can result in failures.
Docker Images
-
v1.114.0(with AWS SES support):docker pull docker.juspay.io/juspaydotin/hyperswitch-router:v1.114.0 -
v1.114.0-standalone(without AWS SES support):docker pull docker.juspay.io/juspaydotin/hyperswitch-router:v1.114.0-standalone
Features
- analytics:
- authentication: Create authentications to fallback to ApiKeyAuth if AdminApiAuth fails (#7744)
- coingate:
- connector:
- Add Samsung pay mandate support for Cybersource (#7298)
- Add support for passive churn recovery webhooks (#7109)
- Introduce feature_matrix api to coinbase, iatapay, nexixpay and square (#7339)
- Add recovery support for stripebilling (#7461)
- [Moneris] Implement mandate for Moneris (#7322)
- Add record back connector integration flow (#7416)
- core:
- connectors:
- payment-methods:
- Add support to pass apple pay recurring details to obtain apple pay merchant token (#6770)
Bug Fixes
- connector:
- core:
- payment_methods: Card_network and card_scheme should be consistent (#6849)
- router:
- Card network for co-badged card and update regex (#6801)
Refactors
- authentication: Modify auth for profiles and mca routes to ApiKeyAuthWithMerchantIdFromRoute (#7656)
- connector:
- core:
- Add support for expand attempt list in psync v2 (#7209)
- payments_v2: Create customer at connector end and populate connector customer ID (#7246)
Documentation
- api-reference: Fix the content of the tip (#7387)
Miscellaneous Tasks
- analytics: Opensearch client creation based on config (#7881)
Compatibility
This version of the Hyperswitch App server is compatible with the following versions of the other components:
- Control Center: v1.37.1
- Web Client: v0.121.2
- WooCommerce Plugin: v1.6.1
- Card Vault: v 0.6.5
- Key Manager: v0.1.7
Database Migrations
-- DB Difference between v1.113.0 and v1.114.0
-- stores the flag send by the merchant during payments-create call
ALTER TABLE payment_intent
ADD COLUMN request_extended_authorization boolean;
ALTER TABLE payment_attempt
-- stores the flag sent to the connector
ADD COLUMN request_extended_authorization boolean;
ALTER TABLE payment_attempt
-- Set to true if extended authentication request was successfully processed by the connector
ADD COLUMN extended_authorization_applied boolean;
ALTER TABLE payment_attempt
-- stores the flag sent to the connector
ADD COLUMN capture_before timestamp;
ALTER TABLE business_profile
-- merchant can configure the default value for request_extended_authorization here
ADD COLUMN always_request_extended_authorization boolean;
-- Your SQL goes here
ALTER TABLE gateway_status_map ADD COLUMN IF NOT EXISTS clear_pan_possible BOOLEAN NOT NULL DEFAULT FALSE;
ALTER TABLE payment_attempt
ADD COLUMN charges JSONB
DEFAULT NULL;
-- Your SQL goes here
ALTER TABLE business_profile
ADD COLUMN card_testing_guard_config JSONB
DEFAULT NULL;
ALTER TABLE business_profile
ADD COLUMN card_testing_secret_key BYTEA
DEFAULT NULL;
-- This file contains queries to re-create the `id` column as a `VARCHAR` column instead of `SERIAL` column for tables that already have it.
-- It must be ensured that the deployed version of the application does not include the `id` column in any of its queries.
-- Drop the id column as this will be used later as the primary key with a different type
------------------------ Merchant Account -----------------------
ALTER TABLE merchant_account DROP COLUMN IF EXISTS id;
------------------------ Merchant Connector Account -----------------------
ALTER TABLE merchant_connector_account DROP COLUMN IF EXISTS id;
------------------------ Customers -----------------------
ALTER TABLE customers DROP COLUMN IF EXISTS id;
------------------------ Payment Intent -----------------------
ALTER TABLE payment_intent DROP COLUMN id;
------------------------ Payment Attempt -----------------------
ALTER TABLE payment_attempt DROP COLUMN id;
------------------------ Payment Methods -----------------------
ALTER TABLE payment_methods DROP COLUMN IF EXISTS id;
------------------------ Address -----------------------
ALTER TABLE address DROP COLUMN IF EXISTS id;
------------------------ Dispute -----------------------
ALTER TABLE dispute DROP COLUMN IF EXISTS id;
------------------------ Mandate -----------------------
ALTER TABLE mandate DROP COLUMN IF EXISTS id;
------------------------ Refund -----------------------
ALTER TABLE refund DROP COLUMN IF EXISTS id;
------------------------ BlockList -----------------------
ALTER TABLE blocklist DROP COLUMN IF EXISTS id;
------------------------ Roles -----------------------
ALTER TABLE roles DROP COLUMN IF EXISTS id;
------------------------ Users -----------------------
ALTER TABLE users DROP COLUMN IF EXISTS id;
-- Your SQL goes here
ALTER TABLE merchant_account
ADD COLUMN IF NOT EXISTS id VARCHAR(64);
-- Your SQL goes here
ALTER TABLE merchant_account
ADD COLUMN IF NOT EXISTS product_type VARCHAR(64);
-- Your SQL goes here
ALTER TABLE
process_tracker
ADD
COLUMN IF NOT EXISTS version "ApiVersion" NOT NULL DEFAULT 'v1';
ALTER TABLE events ADD COLUMN IF NOT EXISTS is_overall_delivery_successful BOOLEAN;
-- Your SQL goes here
ALTER TABLE business_profile ADD COLUMN IF NOT EXISTS is_clear_pan_retries_enabled BOOLEAN NOT NULL DEFAULT FALSE;
-- Your SQL goes here
ALTER TABLE organization
ADD COLUMN IF NOT EXISTS version "ApiVersion" NOT NULL DEFAULT 'v1';
ALTER TABLE business_profile
ADD COLUMN IF NOT EXISTS force_3ds_challenge boolean DEFAULT false;
ALTER TABLE payment_attempt
ADD COLUMN IF NOT EXISTS issuer_error_code VARCHAR(64) DEFAULT NULL,
ADD COLUMN IF NOT EXISTS issuer_error_message TEXT DEFAULT NULL;
ALTER TABLE refund
ADD COLUMN IF NOT EXISTS issuer_error_code VARCHAR(64) DEFAULT NULL,
ADD COLUMN IF NOT EXISTS issuer_error_message TEXT DEFAULT NULL;
-- Your SQL goes here
ALTER TABLE business_pro...Hyperswitch v1.113.0
1.113.0 (2025-03-04)
Docker Images
-
v1.113.0(with AWS SES support):docker pull docker.juspay.io/juspaydotin/hyperswitch-router:v1.113.0 -
v1.113.0-standalone(without AWS SES support):docker pull docker.juspay.io/juspaydotin/hyperswitch-router:v1.113.0-standalone
Features
- analytics:
- connectors:
- [Nexixpay] add mandates flow for cards (#6259)
- Added a new CaptureMethod SequentialAutomatic to Support CIT Mandates for Paybox (#6587)
- [DEUTSCHEBANK, FIUU ] Handle 2xx errors given by Connector (#6727)
- [AIRWALLEX] Add referrer data to whitelist hyperswitch (#6806)
- [JPMORGAN] add Payment flows for cards (#6668)
- [Novalnet] Add zero auth mandate (#6631)
- [Deutschebank] Implement Card 3ds (#6844)
- [Xendit] ADD Cards & Mandates Flow (#6966)
- [INESPAY] Integrate Sepa Bank Debit (#6755)
- [Deutschebank] Add Access Token Error struct (#7127)
- [DataTrans] ADD 3DS Flow (#6026)
- [DATATRANS] Add Support for External 3DS (#7226)
- Fiuu,novalnet,worldpay - extend NTI flows (#6946)
- [Adyen] Consume network_transaction_id from webhooks and update connector's network_transaction_id in payment_methods (#6738)
- [Stripe] Add Support for Amazon Pay Redirect and Amazon Pay payment (#7056)
- core:
- Add service details field in authentication table (#6757)
- Payment links - add support for custom background image and layout in details section (#6725)
- Implemented platform merchant account (#6882)
- Add columns unified error code and error message in refund table (#6933)
- Google pay decrypt flow (#6991)
- Add Authorize flow as fallback flow while fetching GSM for refund errors (#7129)
- events: Add audit event for CompleteAuthorize (#6310)
- klarna: Klarna Kustom Checkout Integration (#6839)
- opensearch: Add amount and customer_id as filters and handle name for different indexes (#7073)
- payment_methods: Add support to pass apple pay recurring details to obtain apple pay merchant token (#6770)
- payments:
- router:
- Add relay feature (#6870, #6879, #6918)
- Add endpoint for listing connector features (#6612)
- Add support for relay refund incoming webhooks (#6974)
- Add payment method-specific features to connector feature list (#6963)
- Add accept-language from request headers into browser-info (#7074)
- Add
organization_idin authentication table and add it in authentication events (#7168) - Add merchant_configuration_id in netcetera metadata and make other merchant configurations optional (#7348)
- routing:
- users:
Bug Fixes
- connectors:
- Add config cleanup on payment connector deletion (#5998)
- Handle 5xx error for Volt Payment Sync (#6846)
- Fix failures in Paypal BankRedirects (Ideal/EPS) (#6864)
- Fix Paybox 3DS failing issue (#7153)
- [BOA] throw unsupported error incase of 3DS cards and limit administrative area length to 20 characters (#7174)
- [Authorizedotnet] fix deserialization error for Paypal while canceling payment (#7141)
- [worldpay] remove threeDS data from Authorize request for NTI flows (#7097)
- Handle unexpected error response from bluesnap connector (#7120)
- [worldpay] send decoded token for ApplePay (#7069)
- [fiuu] zero amount mandate flow for wallets (#7261)
- core:
- Card_network details Missing in Customer Payment Methods List for External 3DS Authentication Payments (#6739)
- Add validation to check if routable connector supports network tokenization in CIT repeat flow (#6749)
- Payments - map billing first and last name to card holder name (#6791)
- Populate off_session based on payments request (#6855)
- Add payment_link_data in PaymentData for Psync (#7137)
- payment_methods: Card_network and card_scheme should be consistent (#6849)
- payments_list: Handle same payment/attempt ids for different merchants (#6917)
- router:
- Consider status of payment method before filtering wallets in list pm (#7004)
- Invalidate surcharge cache during update (#6907)
Refactors
Hyperswitch v1.112.0
1.112.0 (2024-11-25)
Docker Release
v1.112.0 (with AWS SES support)
v1.112.0-standalone (without AWS SES support)
Features
- Connector: Plaid connector configs (#5545)
- analytics:
- Add card_network as a field in payment_attempts clickhouse table (#5807)
- Add card network filter (#6087)
- Add metrics, filters and APIs for Analytics v2 Dashboard - Payments Page (#5870)
- Add
customer_idas filter for payment intents (#6344) - Implement currency conversion to power multi-currency aggregation (#6418)
- charges: Integrated PaymentSync for stripe connect (#4771)
- connector:
- Add support for Samsung Pay payment method (#5955)
- [WELLSFARGO] Implement Payment Flows (#5463)
- Create Taxjar connector (#5597)
- [Paybox] add paybox connector (#5575)
- [Adyen] add dispute flows for adyen connector (#5514)
- [FISERVEMEA] Integrate cards (#5672)
- [Fiuu] Add Card Flows (#5786)
- [Fiuu] Add DuitNow/FPX PaymentMethod (#5841)
- [Novalnet] add Payment flows for cards (#5726)
- [DEUTSCHEBANK] Integrate SEPA Payments (#5826)
- [Novalnet] add Recurring payment flow for cards (#5921)
- [DEUTSCHEBANK] Implement SEPA recurring payments (#5925)
- [Paybox] Add 3DS Flow (#6088)
- [Nexixpay] add Payment & Refunds flows for cards (#5864)
- [Novalnet] add webhooks for card (#6033)
- Integrate PAZE Wallet (#6030)
- Add 3DS flow for Worldpay (#6374)
- [Novalnet] Integrate wallets Paypal and Googlepay (#6370)
- [Fiuu] Add support for cards recurring payments (#6361)
- [Paybox] Add mandates Flow for Paybox (#6378)
- [Paypal] implement vaulting for paypal wallet and cards while purchasing (#5323)
- [worldpay] add support for mandates (#6479)
- core:
- Add network transaction id support for mit payments (#6245)
- Add support for payment links localization (#5530)
- Add mTLS certificates for each request (#5636)
- Add Support for Payments Dynamic Tax Calculation Based on Shipping Address (#5619)
- Add support for card network tokenization (#5599)
- Add payments post_session_tokens flow (#6202)
- opensearch:
- routing:
- users:
Bug Fixes
- analytics:
- Fix refund status filter on dashboard (#6431)
- connector:
- Fixed status mapping for Plaid (#5525)
- [Bambora Apac] failure on missing capture method and billing address requirement in mandates (#5539)
- Skip 3DS in
network_transaction_idflow for cybersource (#5781) - [Stripe] fix cashapp webhooks response deserialization failure (#5690)
- [Adyen] Add MYR currency config (#6442)
- Expiration Year Incorrectly Populated as YYYY Format in Paybox Mandates (#6474)
- [fiuu]fix mandates for fiuu (#6487)
- core:
- Fix connector mandate details for setup mandate (#6096)
- Fix setup mandate payments to store connector mandate details (#6446)
- PMD Not Getting Populated for Saved Card Transactions (#6497)
- Fixed deserialize logic in pm_auth core (#5615)
- [Adyen] prevent partial submission of billing address and add required fields for all payment methods (#5660)
- Skip external three_ds flow for recurring payments (#5730)
- Fix billing details path in required field (#5992)
- Persist card_network if present for non co-badged cards (#6212)
- Update nick_name only if card_token.card_holder_name is non empty and populate additional card_details from payment_attempt if not present in the locker (#6308)
- Set the eligible connector in the payment attempt for nti based mit flow (#6347)
- Get apple pay certificates only from metadata during the session call (#6514)
- Add card expiry check in the
network_transaction_id_and_card_detailsbasedMITflow (#6504) - Fix routing routes to deserialise correctly (#5724)
- Fix
status_codebeing logged as string instead of number in logs (#5850)
Refactors
- auth: Pass
profile_idfrom the auth to core functions (#5520) - business_profile:
- connector:
- core:
- Use hyperswitch_domain_models within the Payments Core instead of api_models (#5511)
- Update shipping_cost and order_tax_amount to net_amount of payment_attempt (#5844)
- Add connector mandate id in
payments_responsebased on merchant config (#5999) - Populate shipping_cost in payment response (#6351)
- Interpolate success_based_routing config params with their specific values (#6448)
- Unify locker api function call (#5863)
- Use the saved billing details in the recurring payments (#5631)
- Add domain type for merchant_connector_account id (#5685)
- Profile based routes for payouts (#5794)
- Add
phoneandcountry_codein dynamic fields ([#5968](https://github.com/juspa...
Hyperswitch v1.111.0
1.111.0 (2024-08-22)
Docker Release
v1.111.0 (with AWS SES support)
v1.111.0-standalone (without AWS SES support)
Features
- auth:
- business_profile: Introduce domain models for business profile v1 and v2 APIs (#5497)
- connector:
- core: Accept business profile in core functions for payments, refund, payout and disputes (#5498)
- opensearch: Updated status filter field name to match index and added time-range based search (#5468)
- payment_link: Add provision for secured payment links (#5357)
- payments: Support sort criteria in payments list (#5389)
- Add env variable for enable key manager service (#5442)
- Rename columns in organization for v2 (#5424)
Bug Fixes
- connector: [Pix] convert data type of pix fields (#5476)
- core: Update pm_status accordingly for the respective attempt status (#5560)
- open_payment_links: Send displaySavedPaymentMethods as false explicitly for open payment links (#5501)
- payment_link: Move redirection fn to global scope for open links (#5494)
- Added created at and modified at keys in PaymentAttemptResponse (#5412)
- [CYBERSOURCE] Update status handling for AuthorizedPendingReview (#5542)
Refactors
- configs: Include env for cybersource in integration_test (#5474)
- connector: Add amount conversion framework to placetopay (#4988)
- id_type: Use macros for defining ID types and implementing common traits (#5471)
- merchant_account_v2: Recreate id for
merchant_accountv2 (#5439) - opensearch: Add Error Handling for Empty Query and Filters in Request (#5432)
- role: Determine level of role entity (#5488)
- router:
- routing: Api v2 for routing create and activate endpoints (#5423)
Compatibility
This version of the Hyperswitch App server is compatible with the following versions of other components:
- Control Center Version: v1.33.0
- Web Client Version: v0.80.0
- WooCommerce Plugin Version: v1.6.1
- Card Vault Version: v0.4.0
- Key Manager: V0.1.3
Database Migrations
-- DB Difference between v1.110.0 and v1.111.0
-- Add a new column for allowed domains and secure link endpoint
ALTER table payment_link ADD COLUMN IF NOT EXISTS secure_link VARCHAR(255);
-- Your SQL goes here
ALTER TABLE organization
ADD COLUMN id VARCHAR(32);
ALTER TABLE organization
ADD COLUMN organization_name TEXT;
-- Your SQL goes here
ALTER TABLE roles ADD COLUMN entity_type VARCHAR(64);Configuration Changes
Diff of configuration changes between v1.110.0 and v1.111.0
diff --git a/config/deployments/sandbox.toml b/config/deployments/sandbox.toml
index 5fb7bfe0d..730f78291 100644
--- a/config/deployments/sandbox.toml
+++ b/config/deployments/sandbox.toml
@@ -30,7 +30,7 @@ airwallex.base_url = "https://api-demo.airwallex.com/"
applepay.base_url = "https://apple-pay-gateway.apple.com/"
authorizedotnet.base_url = "https://apitest.authorize.net/xml/v1/request.api"
bambora.base_url = "https://api.na.bambora.com"
-bamboraapac.base_url = "https://demo.ippayments.com.au/interface/api/dts.asmx"
+bamboraapac.base_url = "https://demo.ippayments.com.au/interface/api"
bankofamerica.base_url = "https://apitest.merchant-services.bankofamerica.com/"
billwerk.base_url = "https://api.reepay.com/"
billwerk.secondary_base_url = "https://card.reepay.com/"
@@ -70,6 +70,7 @@ noon.key_mode = "Test"
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"
payeezy.base_url = "https://api-cert.payeezy.com/"
payme.base_url = "https://sandbox.payme.io/"
payone.base_url = "https://payment.preprod.payone.com/"
Full Changelog: v1.110.0...v1.111.0