Skip to content

Releases: juspay/hyperswitch

Hyperswitch v1.116.0

11 Aug 09:58
Compare
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

v1.115.0

02 Jul 20:18
Compare
Choose a tag to compare

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

  • Add ckh columns for 3ds intelligence analytics (#8136)
  • Revamped 3ds auth analytics (#8163)

Business Profile & Configuration

  • Add business_profile config to enable external vault (#7876)
  • Add merchant_category_code in 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_details for 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

Read more

Hyperswitch v1.114.0

01 May 18:02
Compare
Choose a tag to compare

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:
    • Refactor and rewrite authentication related analytics (#7433)
    • Add new filters, dimensions and metrics for authentication analytics (#7451)
    • Modified authentication queries and added generate report for authentications (#7483)
    • Add issuer as filter for authentication analytics (#7535)
  • authentication: Create authentications to fallback to ApiKeyAuth if AdminApiAuth fails (#7744)
  • coingate:
    • Add Crypto Pay Flow (#7247)
    • Add Payment webhooks (#7489)
  • 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:
    • Add support for cards bin update (#7194)
    • Add additional revenue recovery call flow (#7402)
    • Add bulk tokenization flows (#7066)
    • Add V2 Authentication to all available endpoints (#7487)
    • Add profile level config for debit routing feature (#7470)
    • Add visa click to pay support (#7562)
  • connectors:
    • [Redsys] add 3D secure card payment support, including transaction capture, cancellation, and refunds (#7508)
    • [Redsys] add Psync and Rsync support (#7586)
  • payment-methods:
    • Add support to pass apple pay recurring details to obtain apple pay merchant token (#6770)

Bug Fixes

  • connector:
    • [fiuu] update PSync and webhooks response (#7211)
    • [NMI] Added enum for Void Reason (#7221)
  • core:
    • Payments - map billing first and last name to card holder name (#6791)
    • Add payment_link_data in PaymentData for Psync (#7137)
  • 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:
    • [Rapyd] fix amount conversion framework (#7466)
    • [FISERV, HELCIM] Add amount conversion framework to Fiserv, Helcim (#7336)
  • 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:

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

Hyperswitch v1.113.0

05 Mar 07:56
Compare
Choose a tag to compare

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:
    • Add refund sessionized metrics for Analytics V2 dashboard (#6616)
    • Add support for multiple emails as input to forward reports (#6776)
    • Add currency as dimension and filter for disputes (#7006)
  • 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:
    • [Payment links] Add support for traditional chinese locale for payment links (#6745)
    • [Payment links] Add locale case fix (#6789)
    • Add audit events for PaymentStatus update (#6520)
    • [Payment links] Add config for changing button text for payment links (#6860)
  • 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_id in authentication table and add it in authentication events (#7168)
    • Add merchant_configuration_id in netcetera metadata and make other merchant configurations optional (#7348)
  • routing:
    • Enable volume split for dynamic routing (#6662)
    • Build the gRPC interface for communicating with the external service to perform elimination routing (#6672)
    • Integrate global success rates (#6950)
    • Contract based routing integration (#6761)
  • users:
    • Incorporate themes in user APIs (#6772)
    • Add email domain based restriction for dashboard entry APIs (#6940)
    • Custom role at profile read (#6875)

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:
    • Card network for co-badged card and update regex (#6801)
    • Handle default case for card_network for co-badged cards (#6825)
    • [Cybersource] add flag to indicate final capture (#7085)
  • Consider status of payment method before filtering wallets in list pm (#7004)
  • Invalidate surcharge cache during update (#6907)

Refactors

  • authz: Make connector list accessible by operation groups (#6792)
  • connector:
    • [Airwallex] add device_data in payment request (#6881)
    • [AUTHORIZEDOTNET] Add metadata information to connector request (#7011)
  • constraint_graph:
    • Add setup_future_usage for mandate check in payments (#6744)
    • Handle PML for cases where setup_future_usage is not passed in payments (#6810)
  • core:
    • Structure of split payments (#6706)
    • Remove merchant return url from router_data (#6895)
    • Add recurring customer support for nomupay payouts. (#6687)
  • customer: Return redacted customer instead of error (#7122)
  • dynamic_fields:
    • Rename fields like ach, bacs and becs for bank debit payment me...
Read more

Hyperswitch v1.112.0

05 Dec 12:58
Compare
Choose a tag to compare

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_id as 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:
    • Restrict search view access based on user roles and permissions (#5932)
    • Add additional global search filters and create sessionizer indexes for local (#6352)
  • routing:
    • Add domain type for Routing id (#5733)
    • Build gRPC Client Interface to initiate communication with other gRPC services (#5835)
    • Success based routing metrics (#5951)
  • users:
    • Add list org, merchant and profile api (#5662)
    • Implement invitations api (#5769)
    • Add support for profile user delete (#5541)
    • Add profile level invites (#5793)

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_id flow 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_details based MIT flow (#6504)
    • Fix routing routes to deserialise correctly (#5724)
    • Fix status_code being logged as string instead of number in logs (#5850)

Refactors

  • auth: Pass profile_id from the auth to core functions (#5520)
  • business_profile:
    • Use concrete types for JSON fields (#5531)
    • Change id for business profile (#5748)
  • connector:
    • [Paypal] Add support for passing shipping_cost in Payment request (#6423)
    • Added amount conversion framework for klarna and change type of amount to MinorUnit for OrderDetailsWithAmount (#4979)
  • 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_response based 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 phone and country_code in dynamic fields ([#5968](https://github.com/juspa...
Read more

Hyperswitch v1.111.0

22 Aug 15:24
Compare
Choose a tag to compare

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:
    • Add support for partial-auth, by facilitating injection of authentication parameters in headers (#4802)
    • Add profile_id in AuthenticationData (#5492)
  • business_profile: Introduce domain models for business profile v1 and v2 APIs (#5497)
  • connector:
    • [FISERV] Move connector to hyperswitch_connectors (#5441)
    • [Bambora APAC] add mandate flow (#5376)
    • [BAMBORA, BITPAY, STAX] Move connector to hyperswitch_connectors (#5450)
    • [Paybox] add connector template code (#5485)
  • 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_account v2 (#5439)
  • opensearch: Add Error Handling for Empty Query and Filters in Request (#5432)
  • role: Determine level of role entity (#5488)
  • router:
    • Remove connector_account_details and connector_webhook_details in merchant_connector_account list response (#5457)
    • Domain and diesel model changes for merchant_connector_account create v2 flow (#5462)
  • 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:

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

Hyperswitch v1.110.0

02 Aug 14:43
Compare
Choose a tag to compare

1.110.0 (2024-08-02)

Docker Release

v1.110.0 (with AWS SES support)

v1.110.0-standalone (without AWS SES support)

Features

  • connector:
    • [BRAINTREE] Implement Card Mandates (#5204)
    • [RazorPay] Add new connector and Implement payment flows for UPI payment method (#5200)
    • [Bambora APAC] Add payment flows (#5193)
    • [DATATRANS] Implement card payments (#5028)
    • Plaid connector Integration (#3952)
    • [Itau Bank] Add payment and sync flow for Pix (#5342)
    • [Itaubank] Add refund and rsync flow (#5420)
    • [HELCIM] Move connector to hyperswitch_connectors (#5287)
  • FRM Analytics (#4880)
  • Customer_details storage in payment_intent (#5007)
  • Added integrity framework for Authorize and Sync flow with connector as Stripe (#5109)
  • Add merchant order reference id (#5197)
  • Billing_details inclusion in Payment Intent (#5090)
  • Constraint Graph for Payment Methods List (#5081)
  • Add retrieve flow for payouts (#4936)
  • Payments core modification for open banking connectors (#3947)
  • Add support to register api keys to proxy (#5168)
  • Add hashed customer_email and feature_metadata (#5220)
  • Forward the tenant configuration as part of the kafka message (#5224)
  • Implement tag-based filters in global search (#5151)
  • Added search_tags based filter for global search in dashboard (#5341)
  • Added recipient connector call for open banking connectors (#3758)
  • Add multiple custom css support in business level (#5137)
  • Add support to migrate existing customer PMs from processor to hyperswitch (#5306)
  • Secure payout links using server side validations and client side headers (#5219)
  • Add country, currency filters for payout methods (#5130)
  • Added balance check for PM auth bank account (#5054)
  • Add support to pass proxy bypass urls from configs (#5322)
  • Add refunds manual-update api (#5094)
  • Pass fields to indicate if the customer address details to be connector from wallets (#5210)
  • Pass the shipping email whenever the billing details are included in the session token response (#5228)
  • Add integrity check for refund refund sync and capture flow with stripe as connector (#5187)
  • Add an api to migrate the payment method (#5186)
  • Add support for passing the domain dynamically in the session call (#5347)
  • Add support for https in actix web (#5089)
  • Add support for custom outgoing webhook http headers (#5275)
  • Create key in encryption service for merchant and user (#4910)
  • Encryption service integration to support batch encryption and decryption (#5164)
  • Add create retrieve and update api endpoints for organization resource (#5361)
  • Create additional columns in organization table (#5380)
  • Add env variable for enable key manager service (#5465)

Refactors/Bug Fixes

  • Add checks for duplicate auth_method in create API (#5161)
  • Fetch customer id from customer object during MIT (#5218)
  • [payouts] failure of payout retrieve when token is expired (#5362)
  • Modified_at updated for every state change for Payment Attempts (#5312)
  • Set requires_cvv to false when either connector_mandate_details or network_transaction_id is present during MITs (#5331)
  • Save the customer_id in payments create (#5262)
  • Add aliases on refund status for backwards compatibility (#5216)
  • Mark retry payment as failure if connector_tokenization fails (#5114)
  • Update last used when the customer acceptance is passed in the recurring payment (#5116)
  • override setup_future_usage filed to on_session based on merchant config (#5195)
  • Fail refund with bad request error for duplicate refund_id in refunds create flow (#5282)
  • Fixed integrity check failures in case of 3ds flow in sync flow (#5279)
  • Store customer_acceptance in payment_attempt, use it in confirm flow for delayed authorizations like external 3ds flow (#5308)
  • Store network_transaction_id in stripe authorize flow (#5399)
  • Do not update perform_session_flow_routing output if the SessionRoutingChoice is none (#5336)
  • Make id option in auth select (#5213)
  • Clear cookie and alter parsing for sso (#5147)
  • Add offset and limit to key transfer API (#5358)
  • [Mifinity] fix redirection after payment completion and handle 5xx error (#5250)
  • [Mifinity] add a field language_preference in payment request for mifinity payment method data (#5326)
  • [Itaubank] add dynamic fields for pix (#5419)
  • [boa/cybs] add billing address to MIT request (#5068)
  • Change primary key of refund table (#5367)
  • Change primary keys in user, user_roles and roles tables (#5374)
  • Change primary keys in payment_methods table (#5393)
  • Removal of lifetime from the Constraint Graph framework (#5132)
  • Update helper functions for deciding whether or not to consume flows based on current status (#5248)
  • Changed payment method token TTL to api contract based config from const value (#5115)
  • Remove the locker call in the psync flow (#5348)
  • Remove id dependency from merchant connector account, dispute and mandate (#5330)
  • Use hashmap deserializer for generic_link options (#5157)
  • Adding millisecond to Kafka timestamp (#5202)

Compatibility

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

Database Migrations

---DB Difference between v1.1...
Read more

Hyperswitch v1.109.0

08 Jul 13:48
Compare
Choose a tag to compare

1.109.0 (2024-07-05)

Docker Release

v1.109.0 (with AWS SES support)

v1.109.0-standalone (without AWS SES support)

Features

  • connector:
    • [Stripe] - Stripe connect integration for payouts (#2041)
    • [Ebanx] Add payout flows (#4146)
    • [Paypal] Add payout flow for wallet(Paypal and Venmo) (#4406)
    • [Cybersource] Add payout flows for Card (#4511)
    • [AUTHORIZEDOTNET] Implement zero mandates (#4704)
    • [AUTHORIZEDOTNET] Implement non-zero mandates (#4758)
    • [Iatapay] add upi qr support (#4728)
    • [Cybersource] Add support for external authentication for cybersource (#4714)
    • [Klarna] Add support for Capture, Psync, Refunds and Rsync flows (#4799)
    • [Adyen] Add payouts integration for AdyenPlatform (#4874)
    • [MIFINITY] Implement payment flows and Mifinity payment method (#4592)
    • [BOA/CYB] Make state,zip optional for Non US CA Txns (#4915)
    • [Multisafepay] Add support for Ideal and Giropay (#4398)
    • [GPayments] Implement auth and post auth flows for gpayments (#4746)
    • [Iatapay] add payment methods (#4968)
    • [Payone] add payone connector (#4553)
    • [Paypal] Add session_token flow for Paypal sdk (#4697)
  • Add access_token flow for Payout Create and Fulfill flow (#4375)
  • Add an api to encrypt and migrate the apple pay certificates from connector metadata to connector_wallets_details column in merchant connector account (#4790)
  • Add profile level config to toggle extended card bin (#4445)
  • Add support for connectors having separate version call for pre authentication (#4603)
  • Create Payout Webhook Flow (#4696)
  • Add support for multitenancy and handle the same in router, producer, consumer, drainer and analytics (#4630)
  • Pass required_billing_contact_fields field in /session call based on dynamic fields (#4601)
  • Pass required shipping details field for wallets session call based on business_profile config (#4616)
  • Enable auto-retries for apple pay (#4721)
  • Use Ephemeral auth for pm list and pm delete (#4996)
  • Implement Process tracker workflow for Payment method Status update (#4668)
  • Add an api to enable connector_agnostic_mit feature (#4480)
  • Add support for googlepay step up flow (#2744)
  • Add payments manual-update api (#5045)
  • Add frm webhook support (#4662)
  • Add an api for toggle KV for all merchants (#4600)
  • Realtime user analytics (#5098)
  • Create API to Verify TOTP (#4597)
  • New routes to accept invite and list merchants (#4591)
  • Add support to verify 2FA using recovery code (#4737)
  • Implement force set and force change password (#4564)
  • Implemented openidconnect (#5124)
  • Add support for gauge metrics and include IMC metrics (#4939)
  • Add metadata info to events (#4875)
  • Add audit events payment confirm (#4763)
  • Add audit events payment capture (#4913)

Refactors/Bug Fixes

  • Add web client and control center services to docker compose setup (#4197)
  • Fix stack overflow for docker images (#4660)
  • Fix docker compose syntax (#4782)
  • Add max_amount validation in payment flows (#4645)
  • Make the constraint graph framework generic and move it into a separate crate (#3071)
  • Add visualization functionality to the constraint graph (#4701)
  • Rename crate data_models to hyperswitch_domain_models (#4504)
  • Move RouterData to crate hyperswitch_domain_models (#4524)
  • Move router data response and request models to hyperswitch domain models crate (#4789)
  • Move router data flow types to hyperswitch domain models crate (#4801)
  • Extract incoming and outgoing webhooks into separate modules (#4870)
  • Move trait ConnectorIntegration to crate hyperswitch_interfaces (#4946)
  • Introduce an interface to switch between old and new connector integration implementations on the connectors (#5013)
  • Add a new endpoint for Complete Authorize flow (#4686)
  • Refactor frm configs (#4581)
  • Rename Card struct for payouts to avoid overrides in auto generated open API spec (#4861)
  • Store payment_method_data_billing for recurring payments (#4513)
  • Refactor conditional_configs to use Moka Cache instead of Static Cache (#4814)
  • [Adyen] send browser_info for all the card and googlepay payments (#5173)
  • [Stripe] Pass optional browser_info to stripe for increased trust (#4374)
  • [NMI] Change fields for external auth due to API contract changes (#4531)
  • [Klarna] Refactor Authorize call and configs for prod (#4750)
  • [Adyen] handle redirection error response (#4862)
  • [Stripe] Changed amount to minor Unit for stripe (#4786)
  • Make save_payment_method as post_update_tracker trait function (#4307)
  • Add support to enable pm_data and pm_id in payments response (#4711)
  • Refactor the Knowledge Graph to include configs check, while eligibility analysis (#4687)
  • Move openapi to a separate folder (#4859)
  • Store card_network in locker (#4425)
  • Enable deletion of default Payment Methods (#4942)
  • Changed payment method token TTL to api contract based config from const value (#5209)
  • Deprecate Signin, Verify email and Invite v1 APIs (#4465)
  • Add password validations (#4555)

Compatibility

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

Database Migrations

-- DB Difference BETWEEN v1.108.0 AND v1.109.0
ALTER TABLE payouts ADD COLUMN IF NOT EXISTS confi...
Read more

Hyperswitch v1.108.0

06 May 10:14
Compare
Choose a tag to compare

1.108.0 (2024-05-03)

Docker Release

v1.108.0 (with KMS)

v1.108.0-standalone (without KMS)

Features

  • connector:
    • [3dsecure.io] Add threedsecureio three_ds authentication connector (#4004)
    • [Checkout] add support for external authentication for checkout connector (#4006)
    • [AUTHORIZEDOTNET] Audit Connector (#4035)
    • [billwerk] implement payment and refund flows (#4245)
    • [Netcetera] Integrate netcetera connector with pre authentication flow (#4293)
    • [NMI] External 3DS flow for Cards (#4385)
    • [Netcetera] Implement authentication flow for netcetera (#4334)
    • [Netcetera] Add webhook support for netcetera (#4382)
    • [BOA] implement mandates for cards and wallets (#4232)
    • [Ebanx] Add payout flows (#4146)
    • [Paypal] Add payout flow for wallet(Paypal and Venmo) (#4406)
    • [BOA/Cybersource] add avs_response and cvv validation result in the response (#4376)
    • [Cybersource] Add NTID flow for cybersource (#4193)
  • Add api_models for external 3ds authentication flow (#3858)
  • Add core functions for external authentication (#3969)
  • Confirm flow and authorization api changes for external authentication (#4015)
  • Add incoming header request logs (#3939)
  • Add payments authentication api flow (#3996)
  • Add routing support for token-based mit payments (#4012)
  • Add local bank transfer payment method (#4294)
  • Add external authentication webhooks flow (#4339)
  • Add retrieve poll status api (#4358)
  • Handle authorization for frictionless flow in external 3ds flow (#4471)
  • Customer kv impl (#4267)
  • Add cypress test cases (#4271)
  • Add audit events scaffolding (#3863)
  • Add APIs to list webhook events and webhook delivery attempts (#4131)
  • Add events framework for registering events (#4115)
  • Add payment cancel events (#4166)
  • Dashboard globalsearch apis (#3831)
  • Add kv support for mandate (#4275)
  • Allow off-session payments using payment_method_id (#4132)
  • Added display_sdk_only option for displaying only sdk without payment details (#4363)
  • Add support for saved payment method option for payment link (#4373)
  • API to list countries and currencies supported by a country and payment method type (#4126)
  • Added kv support for payment_methods table (#4311)
  • Implement Single Connector Retry for Payouts (#3908)
  • Implement KVRouterStore (#3889)
  • Implement list and filter APIs (#3651)
  • Support different pm types in PM auth (#3114)
  • Add new API get the user and role details of specific user (#3988)
  • Implement automatic retries for failed webhook deliveries using scheduler (#3842)
  • Allow manually retrying delivery of outgoing webhooks (#4176)
  • Store payment check codes and authentication data from processors (#3958)
  • Stripe connect integration for payouts (#2041)
  • Add support for merchant to pass public key and ttl for encrypting payload (#4456)
  • Add an api for retrieving the extended card info from redis (#4484)

Refactors/Bug Fixes

  • Use fallback to connector_name if merchant_connector_id is not present (#4503)
  • Use first_name if last_name is not passed (#4360)
  • Generate payment_id if not sent (#4125)
  • Send valid sdk information in authentication flow netcetera (#4474)
  • Fix wallet token deserialization error (#4133)
  • Amount received should be zero for pending and failed status (#4331)
  • Amount capturable remain same for processing status in capture (#4229)
  • Fix 3DS mandates, for the connector _mandate_details to be stored in the payment_methods table (#4323)
  • Handle card duplication in payouts flow (#4013)
  • Give higher precedence to connector mandate id over network txn id in mandates (#4073)
  • Store network transaction id only when pg_agnostic config is enabled in the authorize_flow (#4318)
  • Insert locker_id as null in case of payment method not getting stored in locker (#3919)
  • Update payment method status only if existing status is not active (#4149)
  • Fix token fetch logic in complete authorize flow for three ds payments (#4052)
  • Handle redirection to return_url from nested iframe in separate 3ds flow (#4164)
  • Capture billing country in payments request (#4347)
  • Make payment_instrument optional (#4389)
  • Remove enabled payment methods for payouts processor (#3913)
  • Pass payment method billing to the connector module (#3828)
  • Use billing.first_name instead of card_holder_name (#4239)
  • Updated payments response with payment_method_id & payment_method_status (#3883)
  • Log the appropriate error message if the card fails to get saved in locker (#4296)
  • Make performance optimisation for payment_link (#4092)
  • Decouple shimmer css from main payment_link css for better performance (#4286)
  • Add a trait to retrieve billing from payment method data (#4095)
  • Filter applepay payment method from mca based on customer pm (#3953)
  • Enable country currency filter for cards (#4056)
  • Add network_transaction_id column in the payment_methods table (#4005)
  • Revamp payment methods update endpoint (#4305)
  • Store card_network in locker (#4425)
  • Deprecate Signin, Verify email and Invite v1 APIs (#4465)
  • Use single purpose token and auth to accept invite (#4498)
  • [Checkout] change payment and webhooks API contract (#4023)

Compatibility

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

Read more

Hyperswitch v1.107.0

12 Mar 14:33
Compare
Choose a tag to compare

1.107.0 (2024-03-12)

Docker Release

v1.107.0 (with KMS)
v1.107.0-standalone (without KMS)

Features

  • connector: [Cybersource] Implement 3DS flow for cards (#3290)
  • connector: [Volt] Add support for Payments Webhooks (#3155)
  • connector: [Volt] Add support for refund webhooks (#3326)
  • connector: [BANKOFAMERICA] Implement 3DS flow for cards (#3343)
  • connector: [Adyen] Add support for PIX Payment Method (#3236)
  • connector: [Payme] Add Void flow to Payme (#3817)
  • Add support for PaymentAuthorized, PaymentCaptured webhook events (#3212)
  • Add outgoing webhook for manual partial_capture events (#3388)
  • Implement hashicorp secrets manager solution (#3297)
  • Add a logging middleware to log all api requests (#3437)
  • Added sdk layout option payment link (#3207)
  • Add capability to store bank details using /payment_methods endpoint (#3113)
  • Add Wallet to Payouts (#3502)
  • Extend routing capabilities to payout operation (#3531)
  • Implement Smart Retries for Payout (#3580)
  • Add recon APIs (#3345)
  • Payment_method block (#3056)
  • Add delete_evidence api for disputes (#3608)
  • Add support to delete user (#3374)
  • Support multiple invites (#3422)
  • Add support for resend invite (#3523)
  • Create apis for custom role (#3763)
  • Invite user without email (#3328)
  • Add transfer org ownership API (#3603)
  • Add deep health check (#3210)
  • Add support for card extended bin in payment attempt (#3312)

Refactors / Bug Fixes

  • Fix the error during surcharge with saved card (#3318)
  • Return surcharge in payment method list response if passed in create request (#3363)
  • Fix mandate_details to store some value only if mandate_data struct is present (#3525)
  • Add column mandate_data for storing the details of a mandate in PaymentAttempt (#3606)
  • Validate amount_to_capture in payment update (#3830)
  • Add merchant_connector_id in refund (#3303)
  • Update amount_capturable based on intent_status and payment flow (#3278)
  • Auto retry once for connection closed (#3426)
  • Add locker config to enable or disable locker (#3352)
  • Restrict requires_customer_action in confirm (#3235)
  • Inclusion of locker to store fingerprints (#3630)
  • Status mapping for Capture for 429 http code (#3897)
  • Change unique constraint to connector label (#3091)
  • Segregated payment link in html css js files, sdk over flow issue, surcharge bug, block SPM customer call for payment link (#3410)
  • Add Miscellaneous charges in cart for payment links (#3645)
  • Handle card duplication (#3146)
  • Restricted list payment method Customer to api-key based (#3100)

Compatibility

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

Database Migrations

Click to view database migrations
DB Difference between v1.105.1 and v1.107.0
-- Your SQL goes here
ALTER TABLE business_profile
ADD COLUMN IF NOT EXISTS payment_link_config JSONB DEFAULT NULL;
-- Your SQL goes here
ALTER TABLE payment_link ADD COLUMN IF NOT EXISTS  profile_id VARCHAR(64) DEFAULT NULL;
-- Your SQL goes here
ALTER TABLE merchant_connector_account
ADD UNIQUE (profile_id, connector_label);

DROP INDEX IF EXISTS "merchant_connector_account_profile_id_connector_id_index";
-- Your SQL goes here
ALTER TABLE payment_intent ADD COLUMN IF NOT EXISTS session_expiry TIMESTAMP DEFAULT NULL;
-- Your SQL goes here

CREATE TYPE "BlocklistDataKind" AS ENUM (
'payment_method',
'card_bin',
'extended_card_bin'
);

CREATE TABLE blocklist_fingerprint (
id SERIAL PRIMARY KEY,
merchant_id VARCHAR(64) NOT NULL,
fingerprint_id VARCHAR(64) NOT NULL,
data_kind "BlocklistDataKind" NOT NULL,
encrypted_fingerprint TEXT NOT NULL,
created_at TIMESTAMP NOT NULL
);

CREATE UNIQUE INDEX blocklist_fingerprint_merchant_id_fingerprint_id_index
ON blocklist_fingerprint (merchant_id, fingerprint_id);
-- Your SQL goes here

CREATE TABLE blocklist (
id SERIAL PRIMARY KEY,
merchant_id VARCHAR(64) NOT NULL,
fingerprint_id VARCHAR(64) NOT NULL,
data_kind "BlocklistDataKind" NOT NULL,
metadata JSONB,
created_at TIMESTAMP NOT NULL
);

CREATE UNIQUE INDEX blocklist_unique_fingerprint_id_index ON blocklist (merchant_id, fingerprint_id);
CREATE INDEX blocklist_merchant_id_data_kind_created_at_index ON blocklist (merchant_id, data_kind, created_at DESC);
-- Your SQL goes here
ALTER TABLE payment_intent ADD COLUMN IF NOT EXISTS fingerprint_id VARCHAR(64);
ALTER TABLE payment_attempt
ADD COLUMN IF NOT EXISTS net_amount BIGINT;
-- Backfill
UPDATE payment_attempt pa
SET net_amount = pa.amount + COALESCE(pa.surcharge_amount, 0) + COALESCE(pa.tax_amount, 0);
-- Your SQL goes here

CREATE TABLE blocklist_lookup (
id SERIAL PRIMARY KEY,
merchant_id VARCHAR(64) NOT NULL,
fingerprint TEXT NOT NULL
);

CREATE UNIQUE INDEX blocklist_lookup_merchant_id_fingerprint_index ON blocklist_lookup (merchant_id, fingerprint);
-- Your SQL goes here
ALTER TABLE business_profile ADD COLUMN IF NOT EXISTS session_expiry BIGINT DEFAULT NULL;
-- Your SQL goes here
ALTER TYPE "EventType" ADD VALUE IF NOT EXISTS 'payment_authorized';
ALTER TYPE "EventType" ADD VALUE IF NOT EXISTS 'payment_captured';
-- Your SQL goes here
ALTER TABLE users ADD COLUMN preferred_merchant_id VARCHAR(64);
-- Your SQL goes here
ALTER TYPE "DashboardMetadata" ADD VALUE IF NOT EXISTS 'integration_completed';
-- Your SQL goes here
ALTER TABLE payout_attempt
ALTER COLUMN connector TYPE JSONB USING jsonb_build_object (
'routed_through', connector, 'algorithm', NULL
);

ALTER TABLE payout_attempt ADD COLUMN routing_info JSONB;

UPDATE payout_attempt
SET
routing_info = connector -> 'algorithm'
WHERE
connector ->> 'algorithm' IS NOT NULL;

ALTER TABLE payout_attempt
ALTER COLUMN connector TYPE VARCHAR(64) USING connector ->> 'routed_through';

ALTER TABLE payout_attempt ALTER COLUMN connector DROP NOT NULL;

CREATE type "TransactionType" as ENUM('payment', 'payout');

ALTER TABLE routing_algorithm
ADD COLUMN algorithm_for "TransactionType" DEFAULT 'payment' NOT NULL;

ALTER TABLE routing_algorithm
ALTER COLUMN algorithm_for
DROP DEFAULT;
-- Your SQL goes here
ALTER TYPE "PayoutType" ADD VALUE IF NOT EXISTS 'wallet';
-- Your SQL goes here
ALTER TABLE payouts
ADD COLUMN attempt_count SMALLINT NOT NULL DEFAULT 1;

UPDATE payouts
SET attempt_count = payout_id_count.count
FROM (SELECT payout_id, count(payout_id) FROM payout_attempt GROUP BY payout_id) as payout_id_count
WHERE payouts.payout_id = payout_id_count.payout_id;
-- Your SQL goes here
ALTER TABLE payment_attempt
ADD COLUMN IF NOT EXISTS mandate_data JSONB DEFAULT NULL;
-- Your SQL goes here
ALTER TABLE payment_attempt ADD COLUMN IF NOT EXISTS fingerprint_id VARCHAR(64);
-- Your SQL goes here
CREATE TYPE "RoleScope" AS ENUM ('merchant','organization');

CREATE TABLE IF NOT EXISTS roles (
id SERIAL PRIMARY KEY,
...

Read more