Skip to content

Releases: juspay/hyperswitch

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)

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:
    • 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 ([#596...
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

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