Releases: juspay/hyperswitch
Hyperswitch v1.108.0
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
ifmerchant_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
andfailed
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 theauthorize_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 ofcard_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 thepayment_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:
- Control Center Version: v1.30.0
- Web Client Version: [v0.35.4](https://gith...
Hyperswitch v1.107.0
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:
- Control Center Version: v1.29.9
- Web Client Version: v0.27.2
- WooCommerce Plugin Version: v1.5.1
- Card Vault Version: v0.4.0
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 hereCREATE 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 hereCREATE 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 hereCREATE 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,
...
Hyperswitch v1.105.1
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
1.86.0 (2023-11-21)
Features
- connector: [Prophetpay] Save card token for Refund and remove Void flow (#2927) (
15a255e
) by @Sakilmostak - Add support for 3ds and surcharge decision through routing rules (#2869) (
f8618e0
) by @hrithikesh026
Bug Fixes
- mca: Change the check for
disabled
field in mca create and update (#2938) (e66ccde
) by @ThisIsMani - Status goes from pending to partially captured in psync (#2915) (
3f3b797
) by @hrithikesh026
Testing
- postman: Update postman collection files (
245e489
) by @github-actions
Full Changelog: v1.85.0...v1.86.0
Hyperswitch v1.85.0
1.85.0 (2023-11-21)
Features
- mca: Add new
auth_type
and a status field for mca (#2883) (25cef38
) by @ThisIsMani - router: Add unified_code, unified_message in payments response (#2918) (
3954001
) by @sai-harsha-vardhan
Bug Fixes
- connector:
- [fiserv] fix metadata deserialization in merchant_connector_account (#2746) (
644709d
) by @srujanchikke - [CASHTOCODE] Fix Error Response Handling (#2926) (
938b63a
) by @deepanshu-iiitu
- [fiserv] fix metadata deserialization in merchant_connector_account (#2746) (
- router: Associate parent payment token with
payment_method_id
as hyperswitch token for saved cards (#2130) (efeebc0
) by @vspecky - Api lock on PaymentsCreate (#2916) (
cfabfa6
) by @dracarys18 - Merchant_connector_id null in KV flow (#2810) (
e566a4e
) by @dracarys18
Refactors
- connector: [Paypal] Add support for both BodyKey and SignatureKey (#2633) (
d8fcd3c
) by @swangi-kumari - core: Query business profile only once (#2830) (
44deeb7
) by @Narayanbhat166 - payment_methods: Added support for pm_auth_connector field in pm list response (#2667) (
be4aa3b
) by @Sarthak1799 - Add mapping for ConnectorError in payouts flow (#2608) (
5c4e7c9
) by @kashif-m
Testing
- postman: Update postman collection files (
ce725ef
) by @github-actions
Full Changelog: v1.84.0...v1.85.0
Hyperswitch v1.84.0
1.84.0 (2023-11-17)
Features
- connector: [BANKOFAMERICA] PSYNC Bugfix (#2897) (
bdcc138
) by @deepanshu-iiitu
Full Changelog: v1.83.1...v1.84.0
Hyperswitch v1.83.1
1.83.1 (2023-11-17)
Bug Fixes
- router: Add choice to use the appropriate key for jws verification (#2917) (
606daa9
) by @ShankarSinghC
Full Changelog: v1.83.0...v1.83.1
Hyperswitch v1.83.0
1.83.0 (2023-11-17)
Features
- events: Add incoming webhook payload to api events logger (#2852) (
aea390a
) by @prasunna09 - router: Custom payment link config for payment create (#2741) (
c39beb2
) by @sahkal
Bug Fixes
- router: Add rust locker url in proxy_bypass_urls (#2902) (
9a201ae
) by @ShankarSinghC
Documentation
- README: Replace cloudformation deployment template with latest s3 url. (#2891) (
375108b
) by @nitesh-balla
Full Changelog: v1.82.0...v1.83.0
Hyperswitch v1.82.0
1.82.0 (2023-11-17)
Features
- router: Add fallback while add card and retrieve card from rust locker (#2888) (
f735fb0
) by @ShankarSinghC
Bug Fixes
- core: Introduce new attempt and intent status to handle multiple partial captures (#2802) (
cb88be0
) by @hrithikesh026
Testing
- postman: Update postman collection files (
7d05b74
) by @github-actions
Full Changelog: v1.81.0...v1.82.0
Hyperswitch v1.81.0
1.81.0 (2023-11-16)
Features
- connector:
- [BANKOFAMERICA] Implement Cards for Bank of America (#2765) (
e8de3a7
) by @deepanshu-iiitu - [ProphetPay] Implement Card Redirect PaymentMethodType and flows for Authorize, CompleteAuthorize, Psync, Refund, Rsync and Void (#2641) (
8d4adc5
) by @Sakilmostak
- [BANKOFAMERICA] Implement Cards for Bank of America (#2765) (
Testing
- postman: Update postman collection files (
f829197
) by @github-actions
Full Changelog: v1.80.0...v1.81.0