Releases: juspay/hyperswitch
Hyperswitch v1.112.0
1.112.0 (2024-11-25)
Docker Release
v1.112.0 (with AWS SES support)
v1.112.0-standalone (without AWS SES support)
1.112.0 (2024-11-25)
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:
- routing:
- users:
Bug Fixes
- analytics:
- Fix refund status filter on dashboard (#6431)
- connector:
- Fixed status mapping for Plaid (#5525)
- [Bambora Apac] failure on missing capture method and billing address requirement in mandates (#5539)
- Skip 3DS in
network_transaction_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
basedMIT
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:
- connector:
- core:
- Use hyperswitch_domain_models within the Payments Core instead of api_models (#5511)
- Update shipping_cost and order_tax_amount to net_amount of payment_attempt (#5844)
- Add connector mandate id in
payments_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
andcountry_code
in dynamic fields ([#596...
Hyperswitch v1.111.0
1.111.0 (2024-08-22)
Docker Release
v1.111.0 (with AWS SES support)
v1.111.0-standalone (without AWS SES support)
Features
- auth:
- business_profile: Introduce domain models for business profile v1 and v2 APIs (#5497)
- connector:
- core: Accept business profile in core functions for payments, refund, payout and disputes (#5498)
- opensearch: Updated status filter field name to match index and added time-range based search (#5468)
- payment_link: Add provision for secured payment links (#5357)
- payments: Support sort criteria in payments list (#5389)
- Add env variable for enable key manager service (#5442)
- Rename columns in organization for v2 (#5424)
Bug Fixes
- connector: [Pix] convert data type of pix fields (#5476)
- core: Update pm_status accordingly for the respective attempt status (#5560)
- open_payment_links: Send displaySavedPaymentMethods as false explicitly for open payment links (#5501)
- payment_link: Move redirection fn to global scope for open links (#5494)
- Added created at and modified at keys in PaymentAttemptResponse (#5412)
- [CYBERSOURCE] Update status handling for AuthorizedPendingReview (#5542)
Refactors
- configs: Include env for cybersource in integration_test (#5474)
- connector: Add amount conversion framework to placetopay (#4988)
- id_type: Use macros for defining ID types and implementing common traits (#5471)
- merchant_account_v2: Recreate id for
merchant_account
v2 (#5439) - opensearch: Add Error Handling for Empty Query and Filters in Request (#5432)
- role: Determine level of role entity (#5488)
- router:
- routing: Api v2 for routing create and activate endpoints (#5423)
Compatibility
This version of the Hyperswitch App server is compatible with the following versions of other components:
- Control Center Version: v1.33.0
- Web Client Version: v0.80.0
- WooCommerce Plugin Version: v1.6.1
- Card Vault Version: v0.4.0
- Key Manager: V0.1.3
Database Migrations
-- DB Difference between v1.110.0 and v1.111.0
-- Add a new column for allowed domains and secure link endpoint
ALTER table payment_link ADD COLUMN IF NOT EXISTS secure_link VARCHAR(255);
-- Your SQL goes here
ALTER TABLE organization
ADD COLUMN id VARCHAR(32);
ALTER TABLE organization
ADD COLUMN organization_name TEXT;
-- Your SQL goes here
ALTER TABLE roles ADD COLUMN entity_type VARCHAR(64);
Configuration Changes
Diff of configuration changes between v1.110.0
and v1.111.0
diff --git a/config/deployments/sandbox.toml b/config/deployments/sandbox.toml
index 5fb7bfe0d..730f78291 100644
--- a/config/deployments/sandbox.toml
+++ b/config/deployments/sandbox.toml
@@ -30,7 +30,7 @@ airwallex.base_url = "https://api-demo.airwallex.com/"
applepay.base_url = "https://apple-pay-gateway.apple.com/"
authorizedotnet.base_url = "https://apitest.authorize.net/xml/v1/request.api"
bambora.base_url = "https://api.na.bambora.com"
-bamboraapac.base_url = "https://demo.ippayments.com.au/interface/api/dts.asmx"
+bamboraapac.base_url = "https://demo.ippayments.com.au/interface/api"
bankofamerica.base_url = "https://apitest.merchant-services.bankofamerica.com/"
billwerk.base_url = "https://api.reepay.com/"
billwerk.secondary_base_url = "https://card.reepay.com/"
@@ -70,6 +70,7 @@ noon.key_mode = "Test"
nuvei.base_url = "https://ppp-test.nuvei.com/"
opayo.base_url = "https://pi-test.sagepay.com/"
opennode.base_url = "https://dev-api.opennode.com"
+paybox.base_url = "https://preprod-ppps.paybox.com/PPPS.php"
payeezy.base_url = "https://api-cert.payeezy.com/"
payme.base_url = "https://sandbox.payme.io/"
payone.base_url = "https://payment.preprod.payone.com/"
Full Changelog: v1.110.0...v1.111.0
Hyperswitch v1.110.0
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 eitherconnector_mandate_details
ornetwork_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 stripeauthorize
flow (#5399) - Do not update
perform_session_flow_routing
output if theSessionRoutingChoice
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:
- Control Center Version: v1.32.0
- Web Client Version: v0.80.0
- WooCommerce Plugin Version: v1.6.1
- Card Vault Version: v0.4.0
- Key Manager: V0.1.3
Database Migrations
---DB Difference between v1.1...
Hyperswitch v1.109.0
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:
- Control Center Version: v1.31.0
- Web Client Version: v0.71.11
- WooCommerce Plugin Version: v1.6.1
- Card Vault Version: v0.4.0
Database Migrations
-- DB Difference BETWEEN v1.108.0 AND v1.109.0
ALTER TABLE payouts ADD COLUMN IF NOT EXISTS confi...
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