Skip to content

Releases: juspay/hyperswitch

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

Hyperswitch v1.105.1

11 Jan 16:07
v1.105.1
Compare
Choose a tag to compare

1.105.1 (2024-01-11)

Docker Release

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

New Features

  • connector: [BankofAmerica] Implement support for Google Pay and Applepay (#2940 ) (#3061)
  • connector: [Cybersource] Implement support for Google Pay and Applepay (#3139) (#3149)
  • connector: [NMI] Implement 3DS for Cards and webhooks for payments and refunds (#3143) (#3164)
  • connector: [Paypal]Add Preprocessing flow to complete authorization for Card 3DS Auth Verification (#2757)
  • connector: [Trustpay] Update dynamic fields for trustpay blik (#3042)
  • connector: [BOA] Populate merchant_defined_information with metadata (#3253)
  • Add support for Riskified FRM Connector (#2533)
  • Add ability to verify connector credentials before integrating the connector (#2986)
  • Enable surcharge support for all connectors (#3109)
  • Make core changes in payments flow to support incremental authorization (#3009)
  • Add support for tokenizing bank details and fetching masked details while listing (#2585)
  • Implement change password for user (#2959)
  • Add support to filter payment link based on merchant_id (#2805)
  • Add APIs for user roles (#3013 )
  • Receive card_holder_name in confirm flow when using token for payment (#2982)
  • payments: Add outgoing payments webhooks (#3133)
  • Use card bin to get additional card details (#3036)
  • Add support for passing card_cvc in payment_method_data object along with token (#3024)

Bug Fixes

  • Accept connector_transaction_id in error_response of connector flows (#2972)
  • Enable payment refund when payment is partially captured (#2991)
  • Make the billing country for apple pay as optional field (#3188)
  • Error propagation for not supporting partial refund (#2976)
  • Mark refund status as failure for not_implemented error from connector flows (#2978)
  • Allow zero amount for payment intent in list payment methods (#3090)
  • Validate refund amount with amount_captured instead of amount (#3120)
  • Make the card_holder_name as an empty string if not sent (#3173)

Database Migrations

Comparing v1.86.0..v1.105.1 · juspay/hyperswitch

Compatibility

This version of the Hyperswitch App server is compatible with the following versions of other components:
Control Center Version: v1.23.3
Web Client Version: v0.16.7
WooCommerce Plugin Version: v1.2.0
Card Vault Version: v0.2.0

Hyperswitch v1.86.0

21 Nov 16:21
Compare
Choose a tag to compare

1.86.0 (2023-11-21)

Features

Bug Fixes

Testing

  • postman: Update postman collection files (245e489) by @github-actions

Full Changelog: v1.85.0...v1.86.0

Hyperswitch v1.85.0

21 Nov 14:59
Compare
Choose a tag to compare

1.85.0 (2023-11-21)

Features

Bug Fixes

Refactors

Testing

  • postman: Update postman collection files (ce725ef) by @github-actions

Full Changelog: v1.84.0...v1.85.0

Hyperswitch v1.84.0

17 Nov 16:57
Compare
Choose a tag to compare

1.84.0 (2023-11-17)

Features

Full Changelog: v1.83.1...v1.84.0

Hyperswitch v1.83.1

17 Nov 15:51
Compare
Choose a tag to compare

1.83.1 (2023-11-17)

Bug Fixes

Full Changelog: v1.83.0...v1.83.1

Hyperswitch v1.83.0

17 Nov 12:21
Compare
Choose a tag to compare

1.83.0 (2023-11-17)

Features

Bug Fixes

Documentation

Full Changelog: v1.82.0...v1.83.0

Hyperswitch v1.82.0

17 Nov 06:44
Compare
Choose a tag to compare

1.82.0 (2023-11-17)

Features

Bug Fixes

Testing

  • postman: Update postman collection files (7d05b74) by @github-actions

Full Changelog: v1.81.0...v1.82.0

Hyperswitch v1.81.0

16 Nov 15:36
Compare
Choose a tag to compare

1.81.0 (2023-11-16)

Features

  • connector:

Testing

  • postman: Update postman collection files (f829197) by @github-actions

Full Changelog: v1.80.0...v1.81.0