All notable changes to HyperSwitch will be documented here.
- db: Merchant_account cache invalidation based on publishable_key (#2365) (
22a8291
) - router: Allow address updates in payments update flow (#2375) (
0d3dd00
)
Full Changelog: v1.47.0...v1.48.0
- connector:
- merchant_connector_account: Use appropriate key when redacting (#2363) (
54645cd
) - router:
- [stripe] Add customer balance in StripePaymentMethodDetailsResponse (#2369) (
67a3e8f
)
- connector:
- [bluesnap]Enhance currency Mapping with ConnectorCurrencyCommon Trait (#2193) (
6db60b8
) - [Zen] Enhance currency Mapping with ConnectorCurrencyCommon Trait (#2196) (
7fd79e0
) - [Paypal]Enhance currency Mapping with ConnectorCurrencyCommon Trait (#2191) (
2e97869
) - [Cryptopay]Enhance currency Mapping with ConnectorCurrencyCommon Trait (#2195) (
d8c3845
)
- [bluesnap]Enhance currency Mapping with ConnectorCurrencyCommon Trait (#2193) (
Full Changelog: v1.46.0...v1.47.0
- payment_attempt: Add kv for find last successful attempt (#2206) (
d3157f0
) - payments: Add api locking for payments core (#1898) (
5d66156
)
- compatibility: Update BillingDetails mappings in SCL (#1926) (
a48f986
) - connector: [stripe] use display impl for expiry date (#2359) (
35622af
) - drainer: Ignore errors in case the stream is empty (#2261) (
53de86f
) - Add health metric to drainer (#2217) (
4e8471b
)
- postman: Update postman collection files (
d7affab
)
Full Changelog: v1.45.0...v1.46.0
- connector:
- core: Eliminate business profile database queries in payments confirm flow (#2190) (
90e4392
)
Full Changelog: v1.44.0...v1.45.0
- connector: [Trustpay] Add descriptor for card payment method for trustpay (#2256) (
b9ddc4f
) - db: Add find_config_by_key_unwrap_or (#2214) (
2bd2526
)
- connector: Fix dispute webhook failure bug in checkout during get_webhook_resource_object (#2257) (
1d73be0
)
- connector:
- CODEOWNERS: Update CODEOWNERS (#2254) (
7af4c92
) - deps: Bump phonenumber from 0.3.2+8.13.9 to 0.3.3+8.13.9 (#2255) (
8f3721d
)
Full Changelog: v1.43.1...v1.44.0
Full Changelog: v1.43.0...v1.43.1
- connector: [Gocardless] add support for Ach, Sepa, Becs payment methods (#2180) (
3efce90
) - core: Add support for webhook additional source verification call for paypal (#2058) (
2a9e09d
) - db: Enable caching for merchant_account fetch using publishable key (#2186) (
eb10aca
) - router: Add kv implementation for address for payment flows (#2177) (
afff3e1
)
Full Changelog: v1.42.0...v1.43.0
- configs: Make TOML file an optional source of application configuration (#2185) (
69fbebf
) - core: Error thrown for wrong mca in applepay_verification flow change from 5xx to 4xx (#2189) (
656e710
)
Full Changelog: v1.41.0...v1.42.0
- core: Add merchant_id to gpay merchant info (#2170) (
5643ecf
) - Remove x-request-id from headers before connector calls (#2182) (
680505f
) - Handle 5xx during multiple capture call (#2148) (
e8d948e
)
- connector: [Adyen] psync validation check for adyen (#2160) (
386e820
) - core: Add additional parameters in AppState and refactor AppState references (#2123) (
a0a8ef2
) - router: Use billing address for payment method list filters as opposed to shipping address (#2176) (
b3d5d3b
) - Remove redundant validate_capture_method call (#2171) (
1ea823b
)
Full Changelog: v1.40.1+hotfix.1...v1.41.0
- connector: [Bluesnap] Enahnce 3ds Flow (#2115) (
272f5e4
) - Set merchant_id as
MERCHANT_ID_NOT_FOUND
for traces and metrics if not found (#2156) (d40fae8
)
Full Changelog: v1.40.0...v1.40.1
- connector: (adyen) add support for multiple partial capture adyen (#2102) (
9668a74
) - pm_auth: Add plaid to connector list (#2166) (
0bc99ad
)
- router: Move
get_connector_tokenization_action_when_confirm_true
abovecall_create_connector_customer_if_required
(#2167) (15418a6
) - Make amount_capturable zero when payment intent status is processing (#2163) (
d848b55
)
- postman: Update postman collection files (
b30d82d
)
Full Changelog: v1.39.2...v1.40.0
- connector: [BraintreeGraphQl] Enhance currency Mapping with ConnectorCurrencyCommon Trait (#2143) (
05696d3
) - router:
- Add instrument to trackers for payment_confirm (#2164) (
c804954
)
- postman: Update postman collection files (
089bb64
)
Full Changelog: v1.39.1+hotfix.1...v1.39.2
- connector: [SQUARE] Add uri authority in Webhooks (#2138) (
daa0759
) - core: Update amount_capturable in update trackers (#2142) (
bed8326
) - Payment status fix in trustpay for 3ds and wallets (#2146) (
9b92d04
)
- connector: [Stripe] add support for more incoming woocommerce Stripe disputes webhooks (#2150) (
e023eb8
) - masking: Move masking implementations to masking crate (#2135) (
9d74a75
) - Move
Request
andRequestBuilder
structs to common_utils crate (#2145) (21be67a
)
- postman: Update postman collection files (
be397de
)
Full Changelog: v1.39.0...v1.39.1
- connector: [SQUARE] Throw Error for Partial Capture of Payments (#2133) (
cc8847c
) - core: [Bluesnap] Add secondary_base_url for script (#2124) (
1407049
) - payment_methods: Default card fetch to locker call (#2125) (
ffe9009
) - refactor: [Paypal] refactor paypal not implemented payment methods errors (#1974) (
ca9fb0c
) - router: Move connector customer create flow to
call_connector_service
(#2137) (4d3e6bc
) - router/scheduler: Replace the occurrences of gen_range with a safer alternative (#2126) (
94ac5c0
) - webhooks: Fix database queries in webhook (#2139) (
eff280f
) - Eliminate recursive call while updating config in database (#2128) (
a3dd8b7
)
- connector: [Zen] refactor Zen payment methods not implemented errors (#1955) (
b0c4ee2
) - pm_list: Get profile_id from business_details in list pm (#2131) (
90868b9
)
- postman: Update postman collection files (
7e29adb
)
Full Changelog: v1.38.0...v1.39.0
- confirm: Reduce the database calls to 2 stages in case of non-retry (#2113) (
28b102d
) - core: Accept payment_confirm_source header in capture call and store in payment_intent (#2116) (
2f272d2
) - router: Saving verified domains to business_profile table (#2109) (
73da641
)
- router:
validate_psync_reference_id
only if call_connector_action is trigger in psync flow (#2106) (60c5fdb
) - Implement persistent caching for config table retrieval (#2044) (
25e82a1
)
- core: Use profile id to find connector (#2020) (
5b29c25
) - storage_impl: Split payment attempt models to domain + diesel (#2010) (
ad4b7de
)
Full Changelog: v1.37.0...v1.38.0
- connector:
- db: Implement
BusinessProfileInterface
forMockDb
(#2101) (0792605
) - payments: Make database calls parallel for
payments_confirm
operation (#2098) (fea075e
)
- connector: Revert checkout apple pay to tokenization flow (#2110) (
cc5add6
) - Null value in session token in next action (#2111) (
f015394
)
- connector:
Full Changelog: v1.36.0...v1.37.0
- deps: Bump webpki from 0.22.0 to 0.22.1 (#2104) (
81c6480
) - Address Rust 1.72 clippy lints (#2099) (
cbbebe2
)
Full Changelog: v1.35.0...v1.36.0
- connector:
- payment_methods: Store necessary payment method data in payment_methods table (#2073) (
3c93552
)
- connector: [STAX] Incoming amount will be processed in higher unit (#2091) (
de9e0fe
) - router: Send connection_closed errors as 5xx instead of 2xx (#2093) (
4d58bdb
)
- refunds: Add success RefundStatus in should_call_refund check (#2081) (
9cae5de
) - scheduler: Move scheduler to new crate to support workflows in multiple crates (#1681) (
d4221f3
)
- postman: Update postman collection files (
25f8c35
)
Full Changelog: v1.34.1...v1.35.0
Full Changelog: v1.34.0...v1.34.1
- frm:
Full Changelog: v1.33.0...v1.34.0
- api: Use
ApiClient
trait in AppState (#2067) (29fd2ea
) - connector:
- pm_list: Add card - credit pm type required field info for connectors (#2075) (
a882d76
) - webhooks: Webhook source verification (#2069) (
8b22f38
)
- connector: [Shift4] refactor connector authorize request struct (#1888) (
e44c32d
) - router: Return generic message for UnprocessableEntity in make_pm_data (#2050) (
38ab6e5
)
Full Changelog: v1.32.0...v1.33.0
- connector: [Square] Implement Card Payments for Square (#1902) (
c9fe389
) - core: Connector specific validation for Payment Sync (#2005) (
098dc89
) - router:
- connector: [Bluesnap] make error_name as optional field (#2045) (
ab85617
) - mock_db: Insert merchant for mock_db (#1984) (
fb39795
)
Full Changelog: v1.31.0...v1.32.0
- configs: Fix supported connectors in
multiple_api_version_supported_connectors
table (#2051) (416ad8f
) - connector: [Cryptopay] fix amount to its currency base unit (#2049) (
d3f1858
)
Full Changelog: v1.30.0...v1.31.0
Full Changelog: v1.29.0...v1.30.0
- connector: [Payme] populate error message in case of 2xx payment failures (#2037) (
aeebc5b
) - router: Remove
attempt_count
in payments list response and add it in payments response (#2008) (23b8d34
)
- creds: Update connector API credentials (#2034) (
f04bee2
) - Address Rust 1.72 clippy lints (#2011) (
eaefa6e
)
Full Changelog: v1.28.1...v1.29.0
Full Changelog: v1.28.0...v1.28.1
Full Changelog: v1.27.2...v1.28.0
Full Changelog: v1.27.1...v1.27.2
- locker: Accept the incoming token as the basilisk token if it is a mandate payment (#2013) (
ac63794
) - payment: Fix max limit on payment intents list (#2014) (
a888953
)
Full Changelog: v1.27.0...v1.27.1
- api_client: Add api client trait (#1919) (
97b2747
) - connector: [Braintree] Add Authorize, Capture, Void, PSync, Refund, Rsync for Braintree GraphQL API (#1962) (
820f615
)
- connector:
Full Changelog: v1.26.0...v1.27.0
- business_profile: Add profile id in affected tables and modify api contract (#1971) (
fe8d4c2
) - connector: Fail payment authorize when capture_method is manual_method (#1893) (
bca9d50
) - core: Add psync for multiple partial captures (#1934) (
5657ad6
) - pm_list: Add card pm required field info for connectors (#1918) (
52e0176
) - router:
Full Changelog: v1.25.1...v1.26.0
Full Changelog: v1.25.0...v1.25.1
Full Changelog: v1.24.0...v1.25.0
Full Changelog: v1.23.0...v1.24.0
- connector: [CashToCode] Transform minor units to major units (#1964) (
ff2efe8
) - payment_methods: Return parent_payment_method_token for other payment methods (BankTransfer, Wallet, BankRedirect) (#1951) (
156430a
)
Full Changelog: v1.22.0...v1.23.0
- router: Send 2xx payments response for all the connector http responses (2xx, 4xx etc.) (#1924) (
0ab6827
)
Full Changelog: v1.21.2...v1.22.0
- connector: [Braintree] fix status mapping for braintree (#1941) (
d30fefb
) - frm: Added fraud_check_last_step field in fraud_check table to support 3DS transaction in frm (#1944) (
9a39345
)
Full Changelog: v1.21.1...v1.21.2
Full Changelog: v1.21.0...v1.21.1
- frm: Add new column frm_config instead of alterning the existing… (#1925) (
8d916fe
) - Add diesel migration to update local db (#1812) (
97a495c
)
Full Changelog: v1.20.0...v1.21.0
- connector: [PayMe] Implement preprocessing flow for cards (#1904) (
38b9c07
) - router: Add webhook source verification support for multiple mca of the same connector (#1897) (
3554fec
)
Full Changelog: v1.19.0...v1.20.0
- connector: [Adyen] implement Japanese convenience stores (#1819) (
a6fdf6d
) - docs: Add multiple examples support and webhook schema (#1864) (
f8ef52c
)
- connector: Update the
connector_template
(#1895) (5fe96d4
) - Remove unnecessary debug logs from payment method list api (#1884) (
ba82f17
)
- configs: Add
payout_connector_list
config to toml (#1909) (c1e5626
) - Add connector functionality validation based on connector_type (#1849) (
33c6d71
) - Remove spaces at beginning of commit messages when generating changelogs (#1906) (
7d13226
)
Full Changelog: v1.18.0...v1.19.0
- connector:
- [Adyen] Add support for card redirection (KNET, BENEFIT) (#1816) (
62461f1
) - [Checkout] unify error code, message and reason in error response (#1855) (
e8a51c2
) - Unified error message & errorCode for blueSnap connector (#1856) (
222afee
) - [Adyen] Implement Open Banking Uk in Bank Redirects (#1802) (
b9f1270
) - [Adyen] Implement Momo Atm(Napas) in Card Redirects (#1820) (
8ae6737
) - [Stax] Implement Bank Debits and Webhooks for Connector Stax (#1832) (
0f2bb6c
)
- [Adyen] Add support for card redirection (KNET, BENEFIT) (#1816) (
- pm_list: Add pm required field info for crypto pay (#1891) (
c205f06
) - router: Add support for multiple partial capture (#1721) (
c333fb7
)
- router:
- access_token: Handle timeout errors gracefully (#1882) (
cc4136f
) - authorize_flow: Suppress error while saving a card to locker after successful payment (#1874) (
3cc4548
)
Full Changelog: v1.17.1...v1.18.0
- connector: [DummyConnector] add new icons and fix
we_chat_pay
(#1845) (985ff6b
) - kms: Fix kms decryption for jwe keys (#1872) (
ddc0302
)
Full Changelog: v1.17.0...v1.17.1
- config: Add config support to pt_mapping along with redis (#1861) (
b03dd24
) - connector: [Payme] Add Sync, RSync & webhook flow support (#1862) (
8057980
)
- core: If frm is not called, send None in frm_message instead of initial values in update tracker (#1867) (
3250204
)
Full Changelog: v1.16.0...v1.17.0
- connector:
- connector: Use utility function to raise payment method not implemented errors (#1847) (
f2fcc25
) - payment_methods: Add
requires_cvv
field to customer payment method list api object (#1852) (2dec2ca
)
Full Changelog: v1.15.0...v1.16.0
- connector:
- [Boku] Implement Authorize, Psync, Refund and Rsync flow (#1699) (
9cba7da
) - add support for bank redirect for Paypal (#1107) (
57887bd
) - [Adyen] implement Adyen bank transfers and voucher payments in Indonesia (#1804) (
9977f9d
) - Unified errorCode and errorMessage map error reason as errorMessage in Stripe Connector (#1797) (
c464cc5
)
- [Boku] Implement Authorize, Psync, Refund and Rsync flow (#1699) (
- common_enums: Added derive for additional traits in FutureU… (#1848) (
8f6583f
) - config: Add new type for kms encrypted values (#1823) (
73ed7ae
)
Full Changelog: v1.14.1...v1.15.0
Full Changelog: v1.14.0...v1.14.1
- Connector: [Stripe] Implement Cashapp Wallet (#1103) (
dadd13e
) - connector:
- [iatapay] fix refund amount, hardcode IN for UPI, send merchant payment id (#1824) (
505aa21
) - [Adyen] implement Swish for Adyen (#1701) (
cf30255
) - [Trustpay] unify error_code, error_message and error_reason in error response (#1817) (
8a638e4
) - [Stax] Implement Cards for Connector Stax (#1773) (
f492d0a
) - [Adyen] Implement Boleto Bancario in Vouchers and Add support for Voucher in Next Action (#1657) (
801946f
) - [Adyen] Add support for Blik (#1727) (
30e41a9
)
- [iatapay] fix refund amount, hardcode IN for UPI, send merchant payment id (#1824) (
- core: Added key should_cancel_transaction in update trackers to support Frm Pre flow cancellation (#1811) (
5d6510e
) - payment_methods: Added value Field in required Field for Pre-filling (#1827) (
e047a11
) - pii: Implement a masking strategy for UPI VPAs (#1641) (
e3a33bb
)
- multiple_mca: Make
primary_business_detail
optional and remove default values (#1677) (9c7ac62
) - redis: Invoke
redis_conn()
method instead of cloningredis_conn
property inStorageInterface
(#1552) (f32fdec
) - router: Include currency conversion utility functions as
Currency
methods (#1790) (2c9c8f0
) - ui_tests: Move ui_tests to test_utils crate to reduce development time (#1822) (
5773faf
)
Full Changelog: v1.13.2...v1.14.0
Full Changelog: v1.13.1...v1.13.2
- connector: [Trustpay] send billing address name as cardholder name (#1806) (
71b75c6
) - logs: Remove request from logs (#1810) (
5ad3950
)
Full Changelog: v1.13.0...v1.13.1
- dummy_connector: Add 3DS Flow, Wallets and Pay Later for Dummy Connector (#1781) (
8186c77
) - router: Validate payment method type in payments request against given payment method data for non-card flows (#1236) (
7607b6b
)
- Connector: [Noon] Update ApplePay Payment Struct (#1794) (
b96687c
) - router: Add validation for all the connector auth type (#1748) (
1cda7ad
)
Full Changelog: v1.12.0...v1.13.0
- connector: [Zen] Add Latam Payment Methods (#1670) (
4df67ad
) - core: Changed frm_config format type in merchant_connector_account and added frm_message in payments response (#1543) (
c284f41
) - errors: Add
GenericDuplicateError
inApiErrorResponse
(#1792) (7f94716
) - router:
- Api contract for gift cards (#1634) (
8369626
)
Full Changelog: v1.11.0...v1.12.0
- compatibility: Add wallet mandate support setup intent and connector_metadata field (#1767) (
af9a458
) - connector:
- db: Implement
MerchantKeyStoreInterface
forMockDb
(#1772) (f3baf2f
) - macro: Add config validation macro for connectors (#1755) (
37a0651
) - router: Add merchant_id check for manual_retry_allowed flag sent in payments response (#1785) (
435c939
)
- fix: [Mollie] Add support for both HeaderKey and BodyKey AuthType (#1761) (
07c60f8
) - redis_interface: Remove the
Drop
implementation onRedisConnectionPool
(#1786) (ac17b11
)
- UI-tests: Allow ignoring connector tests at runtime (#1766) (
884f284
) - connector: [Nexinets] Add UI test for Nexinets Payment methods (#1784) (
bf62a7c
)
Full Changelog: v1.10.2...v1.11.0
Full Changelog: v1.10.1...v1.10.2
- config: Detect duplicate config insert and throw appropriate error (#1777) (
1ab4226
) - connector:
- core: Address 500 when deleting payment method and add logs to postman collections (#1695) (
df3970f
) - router:
- postman: Added a note about how postman now requires you to fork a collection in order to send a request (#1769) (
1afc548
)
Full Changelog: v1.10.0...v1.10.1
- connector:
- compatibility: Map connector_metadata to core request (#1753) (
f340860
) - connector:
- router: Add additional card info in payment response (#1745) (
a891708
) - template: Address add_connector.sh throwing errors when creating new connector template (#1679) (
3951561
) - Remove payout test cases from connector-template (#1757) (
d433a98
)
Full Changelog: v1.9.0...v1.10.0
- connector:
- metrics: Add pod information in metrics pipeline (#1710) (
cf145a3
) - Add payout service (#1665) (
763e2df
)
- adyen_ui: Ignore tests failing from connector side (#1751) (
e0f4507
) - connector:
- [PowerTranz] error message from response_code in absence of errors object & comment billing and shipping as it is optional (#1738) (
54f7ab7
) - Update amount captured after webhook call and parse error responses from connector properly (#1680) (
cac9f50
) - Deserialization error due to latest_charge stripe (#1740) (
c53631e
) - Stripe mandate failure and other ui tests failures (#1742) (
ea119eb
)
- [PowerTranz] error message from response_code in absence of errors object & comment billing and shipping as it is optional (#1738) (
- connector:
Full Changelog: v1.8.0...v1.9.0
- connector:
- webhook: Do not fail webhook verification if merchant_secret is not set by merchant (#1732) (
374f2c2
)
Full Changelog: v1.7.0...v1.8.0
- connector:
- build: Add a standalone Redis mode in docker-compose installation (#1661) (
ee1f6cc
) - router: Add parsing for
connector_request_reference_id
env (#1731) (110fbe9
)
- router: Remove
WebhookApiErrorSwitch
and implement error mapping usingErrorSwitch
(#1660) (a7c66dd
)
Full Changelog: v1.6.0...v1.7.0
- compatibility:
- connector:
- [Adyen] Implement Bizum in Bank Redirects (#1589) (
c654d76
) - [Globepay] Add Refund and Refund Sync flow (#1706) (
c72a592
) - [Mollie] Implement card 3ds (#1421) (
91f969a
) - [PowerTranz] Add cards 3ds support for PowerTranz connector (#1722) (
95a45e4
) - [Tsys] Add cards for Payments and Refunds flow (#1716) (
714cd27
) - [Adyen] Implement Clearpay in BNPL (#1546) (
abed197
) - [Adyen] implement Gopay for Adyen (#1557) (
de2d9bd
)
- [Adyen] Implement Bizum in Bank Redirects (#1589) (
- mandates: Recurring payment support for bank redirect and bank debit payment method for stripe (#1119) (
14c2d72
) - router:
- ci: Run UI tests only for 15mins max in case of build failure (#1718) (
16a2c46
) - connector:
- payments: Populate mandate_data in the response body of the PaymentsCreate endpoint (#1715) (
fb149cb
) - refunds: Modify refund fields to process updating of refund_reason (#1544) (
9890570
) - router: Convert ephemeral to client secret auth list payment_method_customer (#1602) (
5fbd1cc
)
Full Changelog: v1.5.0...v1.6.0
- connector:
- router: Add expand attempts support in payments retrieve response (#1678) (
8572f1d
) - Filter out payment_methods which does not support mandates during list api call (#1318) (
07aef53
) - Add
organization_id
to merchant account (#1611) (7025b78
)
- api_keys: Fix API key being created for non-existent merchant account (#1712) (
c9e20dc
) - router: Decrease payment method token time based on payment_intent creation time (#1682) (
ce1d205
) - ui-test: Run UI tests only on merge-queue (#1709) (
cb0ca0c
) - Store and retrieve merchant secret from MCA table for webhooks source verification (#1331) (
a6645bd
)
- CI-push: Move merge_group to CI-push (#1696) (
08cca88
) - payment_methods: Remove legacy locker code as it is not been used (#1666) (
8832dd6
)
- connector:
Full Changelog: v1.4.0...v1.5.0
- connector:
- payments: Add client secret in redirect response (#1693) (
f7d369a
) - router: Add connector_response_reference_id in payments response (#1664) (
a3ea5dc
)
- compatibility:
- enums: Move enums from
storage_models
andapi_models
crates tocommon_enums
crate (#1265) (c0e1d4d
) - payment_methods: Fix db insert for payment method create (#1651) (
73f91a5
) - storage: Update crate name to diesel models (#1685) (
5a0e8be
)
Full Changelog: v1.3.0...v1.4.0
- payments: Dont delete client secret on success status (#1692) (
5216d22
) - Convert QrData into Qr data image source url (#1674) (
55ff761
)
Full Changelog: v1.2.0...v1.3.0
- connector: [PowerTranz] Add template code for PowerTranz connector (#1650) (
f56f9d6
) - payments: Add client_secret auth for payments retrieve (#1663) (
b428298
) - pm_list: Add required field info for crypto pay (#1655) (
6d4943d
) - router: Add connector_request_reference_id in router_data based on merchant config (#1627) (
865db94
)
- CI: Fix msrv checks on github run on push to main (#1645) (
05ea08b
) - core:
- locker: Remove delete_locker_payment_method_by_lookup_key from payments_operation_core (#1636) (
b326c18
) - middleware: Include
x-request-id
header inaccess-control-expose-headers
header value (#1673) (b1ae981
) - router:
- Map not found error properly in db_not found (#1671) (
fbd40b5
)
Full Changelog: v1.1.1...v1.2.0
- connector:
- router: Get filters for payments (#1600) (
d5891ec
) - Add cache for api_key and mca tables (#1212) (
fc9057e
)
Full Changelog: v1.0.5...v1.1.0
- connector: [Stripe] Add support for WeChat Pay and Qr code support in next action (#1555) (
a15a77d
) - test: Add support to run UI tests in CI pipeline (#1539) (
21f5e20
)
Full Changelog: v1.0.4...v1.0.5
- connector: [DummyConnector] add new dummy connectors (#1609) (
cf7b672
) - payments: Add connector_metadata, metadata and feature_metadata fields in payments, remove udf field (#1595) (
e713b62
) - router:
- List payment_methods with the required fields in each method (#1310) (
6447b04
)
- payment_methods: Return an empty array when the merchant does not have any payment methods (#1601) (
04c60d7
)
- fix: [Nuvei] fix currency conversion issue in nuvei cards (#1605) (
1b22638
) - redis_interface: Changed the in the get_options value from true to false (#1606) (
737aeb6
) - router: Add psync task to process tracker after building connector request in payments flow (#1603) (
e978e9d
)
Full Changelog: v1.0.3...v1.0.4
- compatibility: Add straight through routing and udf mapping in setup intent (#1536) (
1e87f3d
) - connector:
- [Adyen] implement Alipay HK for Adyen (#1547) (
2f9c289
) - [Mollie] Implement Przelewy24 and BancontactCard Bank Redirects for Mollie connector (#1303) (
f091be6
) - [Multisafepay] implement Googlepay for Multisafepay (#1456) (
2136326
) - [TrustPay] Add Google Pay support (#1515) (
47cd08a
) - [Airwallex] Implement Google Pay in Wallets (#1316) (
7489c87
) - [Multisafepay] implement Paypal for Multisafepay (#1459) (
2c10e0b
)
- [Adyen] implement Alipay HK for Adyen (#1547) (
- db: Implement
ConfigInterface
forMockDb
(#1586) (2ac1f2e
) - email: Implement process_tracker for scheduling email when api_key is about to expire (#1233) (
ee7cdef
) - payment_method: [upi] add new payment method and use in iatapay (#1528) (
2d11bf5
) - payments: Add field manual_retry_allowed in payments response (#1298) (
44b8da4
) - router:
- Add requeue support for payments and fix duplicate entry error in process tracker for requeued payments (#1567) (
b967d23
) - Add metrics for webhooks (#1266) (
d528132
) by [email protected]
- Add requeue support for payments and fix duplicate entry error in process tracker for requeued payments (#1567) (
- Feat: add
merchant_name
field in the response body (#1280) (dd4ba63
) - Add
GenericNotFoundError
error response andset_key_if_not_exists_with_expiry
Redis command (#1526) (9a88a32
)
- disputes: Update 4xx error for Files - Delete endpoint (#1531) (
eabe16c
) - payment_method: Do not save card in locker in case of error from connector (#1341) (
9794079
) by [email protected] - Return nick name for each card while listing saved cards (#1391) (
4808af3
) - Add appropriate printable text for Result returned from delete_tokenized_data() (#1369) (
cebe993
)
- connector: [ACI] Use verbose names for
InstructionSource
variants (#1575) (df01f8f
) - payment_methods: Added clone derivation for PaymentMethodId (#1568) (
6739b59
) - payments_start: Remove redundant call to fetch payment method data (#1574) (
6dd61b6
) - Add payment id and merchant id to logs (#1548) (
9a48c9e
)
Full Changelog: v1.0.1...v1.0.2
- connector:
- Add connector cashtocode (#1429) (
784847b
) - [Adyen] Add support for Samsung Pay (#1525) (
33309da
) - [Noon] add error response handling in payments response (#1494) (
8254555
) - [Stripe] Add support for refund webhooks (#1488) (
e6529b6
) - [Payme] Add template code for Payme connector (#1486) (
5305a7b
) - [Mollie] Implement Sepa Direct Debit (#1301) (
b4b6440
) - Add refund and dispute webhooks for Rapyd (#1313) (
db011f3
)
- Add connector cashtocode (#1429) (
- db: Implement
EphemeralKeyInterface
forMockDb
(#1285) (8c93904
) - router:
- connector:
- payment_methods: Return appropriate error when basilisk locker token expires (#1517) (
9969c93
) - routes: Register handler for retrieve disput evidence endpoint (#1516) (
6bc4188
) - Invalidate all cache on invalidate cache route (#1498) (
2c6cc6a
) - Add 3ds card_holder_info and 2 digit expiry year (#1560) (
5f83fae
) - Add config create route back (#1559) (
379d1d1
)
- connector:
- [Checkout] Add tests for 3DS and Gpay (#1267) (
218803a
) - [Adyen] Add test for bank debits, bank redirects, and wallets (#1260) (
eddcc34
) - [Bambora] Add tests for 3DS (#1254) (
295d41a
) - [Mollie] Add tests for PayPal, Sofort, Ideal, Giropay and EPS (#1246) (
9ea9e55
) - Add tests for Globalpay and Bluesnap (#1281) (
c5ff6ed
) - [Shift4] Add tests for 3DS and Bank Redirect (#1250) (
041ecbb
)
- [Checkout] Add tests for 3DS and Gpay (#1267) (
Full Changelog: v1.0.0...v1.0.1
- connector: Enforce logging for connector requests (#1467) (
e575fde
) - router: Add route to invalidate cache entry (#1100) (
21f2ccd
) - Fetch merchant key store only once per session (#1400) (
d321aa1
) - Add default pm_filters (#1493) (
69e9e51
)
- compatibility: Add metadata object in both payment_intent and setup_intent request (#1519) (
6ec6272
) - configs: Remove pix and twint from pm_filters for adyen (#1509) (
c1e8ad1
) - connector:
- [NMI] Fix Psync flow (#1474) (
2fdd14c
) - [DummyConnector] change dummy connector names (#1328) (
6645c4d
) - [ACI] fix cancel and refund request encoder (#1507) (
cf72dcd
) - Convert state of US and CA in ISO format for cybersource connector (#1506) (
4a047ce
) - [Trustpay] handle errors fields as optional in TrustpayErrorResponse object (#1514) (
efe1ed9
) - [TrustPay] change the request encoding (#1530) (
692d370
) - Fix url_encode issue for paypal and payu (#1534) (
e296a49
)
- [NMI] Fix Psync flow (#1474) (
- core:
payment_method_type
not set in the payment attempt when making a recurring mandate payment (#1415) (38b9e59
) - encryption: Do not log encrypted binary data (#1352) (
b0c103a
) - errors: Use
format!()
forRefundNotPossibleError
(#1518) (1da411e
) - payments: Fix client secret parsing (#1358) (
2b71d4d
) - process_tracker: Log and ignore the duplicate entry error (#1502) (
424e77c
) - update_trackers: Handle preprocessing steps status update (#1496) (
b452314
) - Add requires_customer_action status to payment confirm (#1500) (
6944415
) - Update adyen payment method supported countries and currencies in development.toml (#1401) (
5274f53
)
- core: Rename
MandateTxnType
toMandateTransactionType
(#1322) (1069172
) - fix: [Stripe] Fix bug in Stripe (#1505) (
957d5e0
) - refunds: Refactor refunds create to check for unintended 5xx (#1332) (
ff17b62
) - Add serde rename_all for refund enums (#1520) (
0c86243
)
Full Changelog: v0.6.0...v1.0.0
- compatibility:
- connector:
- [Noon] Add Card Payments, Capture, Void and Refund (#1207) (
2761036
) - [Noon] Add Card Mandates and Webhooks Support (#1243) (
ba8a17d
) - [Noon] Add reference id in Order Struct (#1371) (
f0cd5ee
) - [Zen] add apple pay redirect flow support for zen connector (#1383) (
b3b16fc
) - Mask pii information in connector request and response for stripe, bluesnap, checkout, zen (#1435) (
5535159
) - Add request & response logs for top 4 connector (#1427) (
1e61f39
) - [Noon] Add GooglePay, ApplePay, PayPal Support (#1450) (
8ebcc1c
) - [Zen] add google pay redirect flow support (#1454) (
3a225b2
)
- [Noon] Add Card Payments, Capture, Void and Refund (#1207) (
- core: Add signature to outgoing webhooks (#1249) (
3534cac
) - db:
- headers: Add optional header masking feature to outbound request (#1320) (
fc6acd0
) - kms: Reduce redundant kms calls (#1264) (
71a17c6
) - logging: Logging the request payload during
BeginRequest
(#1247) (253eead
) - metrics:
- order_details: Adding order_details both inside and outside of metadata, in payments request, for backward compatibility (#1344) (
913b833
) - payment: Customer ip field inclusion (#1370) (
11a827a
) - response-log:
- router:
- Use subscriber client for subscription in pubsub (#1297) (
864d855
) - Encrypt PII fields before saving it in the database (#1043) (
fa392c4
) - Add error type for empty connector list (#1363) (
b2da920
) - Add new error response for 403 (#1330) (
49d5ad7
) - Applepay through trustpay (#1422) (
8032e02
)
- api_models: Fix bank namings (#1315) (
a8f2494
) - config: Fix docker compose local setup (#1372) (
d21fcc7
) - connector:
- [Authorizedotnet] Fix webhooks (#1261) (
776c833
) - [Checkout] Fix error message in error handling (#1221) (
22b2fa3
) - [coinbase] remove non-mandatory fields (#1252) (
bfd7dad
) - [Rapyd] Fix payment response structure (#1258) (
3af3a3c
) - [Adyen] Address Internal Server Error when calling PSync without redirection (#1311) (
b966525
) - [opennode] webhook url fix (#1364) (
e484193
) - [Zen] fix additional base url required for Zen apple pay checkout integration (#1394) (
7955007
) - [Bluesnap] Throw proper error message for redirection scenario (#1367) (
4a8de77
) - [coinbase][opennode][bitpay] handle error response (#1406) (
301c3dc
) - [Zen][ACI] Error handling and Mapping (#1436) (
8a4f4a4
) - [Bluesnap] fix expiry year (#1426) (
92c8222
) - [Shift4]Add Refund webhooks (#1307) (
1691bea
) - [Shift4] validate pretask for threeds cards (#1428) (
2c1dcff
) - Fix trustpay error response for transaction status api (#1445) (
7db94a6
) - Fix for sending refund_amount in connectors refund request (#1278) (
016857f
) - Use reference as payment_id in trustpay (#1444) (
3645c49
) - Implement ConnectorErrorExt for error_stack::Result<T, ConnectorError> (#1382) (
3ef1d29
) - [Adyen] fix charged status for Auto capture payment (#1462) (
6c818ef
) - [Adyen] fix unit test (#1469) (
6e581c6
) - [Airwallex] Fix refunds (#1468) (
1b2841b
) - [Zen] Convert the amount to base denomination in order_details (#1477) (
7ca62d3
) - [Shift4] Fix incorrect deserialization of webhook event type (#1463) (
b44f35d
) - [Trustpay] add missing failure status (#1485) (
ecf16b0
) - [Trustpay] add reason to all the error responses (#1482) (
1d216db
)
- [Authorizedotnet] Fix webhooks (#1261) (
- core:
- Remove
missing_required_field_error
being thrown inshould_add_task_to_process_tracker
function (#1239) (3857d06
) - Return an empty array when the customer does not have any payment methods (#1431) (
6563587
) - Fix amount capturable in payments response (#1437) (
5bc1aab
) - Save payment_method_type when creating a record in the payment_method table (#1378) (
76cb15e
) - Add validation for card expiry month, expiry year and card cvc (#1416) (
c40617a
)
- Remove
- currency: Add RON and TRY currencies (#1455) (
495a98f
) - error: Propagate MissingRequiredFields api_error (#1244) (
798881a
) - kms: Add metrics to external_services kms (#1237) (
28f0d1f
) - list: Add mandate type in payment_method_list (#1238) (
9341191
) - locker: Remove unnecessary assertions for locker_id on BasiliskLocker when saving cards (#1337) (
23458bc
) - logging: Fix traces export through opentelemetry (#1355) (
b2b9dc0
) - payments: Do not delete client secret on payment failure (#1226) (
c1b631b
) - refund: Change amount to refund_amount (#1268) (
24c3a42
) - router:
- Subscriber return type (#1292) (
55bb117
) - Hotfixes for stripe webhook event mapping and reference id retrieval (#1368) (
5c2232b
) - [Trustpay] fix email & user-agent information as mandatory fields in trustpay card payment request (#1414) (
7ef011a
) - [Trustpay] fix email & user-agent information as mandatory fields in trustpay card payment request (#1418) (
c596d12
) - Fix payment status updation for 2xx error responses (#1457) (
a7ac4af
)
- Subscriber return type (#1292) (
- router/webhooks:
- session_token: Log error only when it occurs (#1136) (
ebf3de4
) - stripe: Fix logs on stripe connector integration (#1448) (
c42b436
) - Remove multiple call to locker (#1230) (
b3c6b1f
) - Populate meta_data in payment_intent (#1240) (
1ac3eb0
) - Merchant webhook config should be looked up in config table instead of redis (#1241) (
48e5375
) - Invalidation of in-memory cache (#1270) (
e78b3a6
) - Customer id is not mandatory during confirm (#1317) (
1261791
) - Certificate decode failed when creating the session token for applepay (#1385) (
8497c55
) - Update customer data if passed in payments (#1402) (
86f679a
) - Fix some fields not being updated during payments create, update and confirm (#1451) (
1764085
)
- api_models: Follow naming convention for wallets & paylater payment method data enums (#1338) (
6c0d136
) - auth_type: Updated auth type in
update tracker
and also changed the default flow tonon-3ds
from3ds
(#1424) (1616051
) - compatibility: Map connector to routing in payments request for backward compatibility (#1339) (
166688a
) - compatibility, connector: Add holder name and change trust pay merchant_ref id to payment_id (
d091549
) - configs: Make kms module and KmsDecrypt pub (#1274) (
f0db993
) - connector:
- connector_customer: Incorrect mapping of connector customer (#1275) (
ebdfde7
) - core:
- Generate response hash key if not specified in create merchant account request (#1232) (
7b74cab
) - Add 'redirect_response' field to CompleteAuthorizeData (#1222) (
77e60c8
) - Use HMAC-SHA512 to calculate payments response hash (#1302) (
7032ea8
) - Accept customer data in customer object (#1447) (
cff1ce6
) - Move update trackers after build request (#1472) (
6114fb6
) - Update trackers for preprocessing steps (#1481) (
8fffc16
)
- Generate response hash key if not specified in create merchant account request (#1232) (
- disputes: Resolve incorrect 5xx error mappings for disputes (#1360) (
c9b400e
) - errors:
- fix:
- mca: Use separate struct for connector metadata (#1465) (
8d20578
) - payments:
- process_tracker: Attempt to identify unintended 5xx in process_tracker (#1359) (
d8adf4c
) - router:
- Router_parameters field inclusion (#1251) (
16cd325
) - Remove
pii-encryption-script
feature and use of timestamps for decryption (#1350) (9f2832f
) - Infer ip address for online mandates from request headers if absent (#1419) (
a1a009d
) - Send 200 response for 5xx status codes received from connector (#1440) (
1e5d2a2
)
- Router_parameters field inclusion (#1251) (
- webhook: Added the unknown field to the webhook_event_status of every connector (#1343) (
65d4a95
) - Make NextAction as enum (#1234) (
a359b76
) - Make bank names optional in payment method data (#1483) (
8198559
)
- connector:
- postman-collection: Add Github action to run postman collection (#1272) (
92c7767
) - selenium: Read config from
CONNECTOR_AUTH_FILE_PATH
environment variable and fix bugs in UI tests (#1225) (d9a16ed
)
- CONTRIBUTING: Update commit guidelines (#1351) (
5d8895c
) - Add changelog to 0.5.15 (#1216) (
0be900d
) - Add
ApplePayRedirectionData
to OpenAPI schema (#1386) (d0d3254
)
- common_utils: Apply the new type pattern for phone numbers (#1286) (
98e73e2
) - config:
- migrations: Shrink
merchant_id
column ofmerchant_key_store
to 64 characters (#1476) (0fdd6ec
) - Address Rust 1.70 clippy lints (#1334) (
b681f78
)
- deps:
- docker: Use
debian:bookworm-slim
as base image for builder and runner stages (#1473) (5eb0333
) - Unify
sandbox
andproduction
cargo features asrelease
(#1356) (695d3cd
)
Full Changelog: v0.5.15...v0.6.0
- connector:
- db: Implement
AddressInterface
forMockDb
(#968) (39405bb
) - documentation: Add polymorphic
generate_schema
macro (#1183) (53aa5ac
) - email: Integrate email service using AWS SES (#1158) (
07e0fcb
) - frm_routing_algorithm: Added frm_routing_algorithm to merchant_account table, to be consumed for frm selection (#1161) (
ea98145
) - payments: Add support for manual retries in payments confirm call (#1170) (
1f52a66
) - redis_interface: Implement
MGET
command (#1206) (93dcd98
) - router:
- traces: Add support for aws xray (#1194) (
8947e1c
) - ACH transfers (#905) (
23bca66
) - SEPA and BACS bank transfers through stripe (#930) (
cf00059
)
- connector: [Checkout] Fix incoming webhook event mapping (#1197) (
912a108
) - core: Add ephemeral key to payment_create response when customer_id is mentioned (#1133) (
f394c4a
) - mandate: Throw DuplicateMandate Error if mandate insert fails (#1201) (
186bd72
) - merchant_connector_account: Add validation for the
disabled
flag (#1141) (600dc33
) - router:
- utils: Fix bug in email validation (#1180) (
5e51b6b
) - Fix(connector) : Added signifyd to routableconnectors for frm (#1182) (
2ce5d5f
) - Handle unique constraint violation error gracefully (#1202) (
b3fd174
)
- mandate: Allow merchant to pass the mandate details and customer acceptance separately (#1188) (
6c41cdb
) - Use
strum::EnumString
implementation for connector name conversions (#1052) (2809425
)
- CODEOWNERS: Add hyperswitch-maintainers as default owners for all files (#1210) (
985670d
) - git-cliff: Simplify
git-cliff
config files (#1213) (bd0069e
)
- connector: Fix stripe status to attempt status map (#1179) (
bd8868e
) - Fix(connector): Added signifyd to routableconnectors for frm (#1203) (
dbc5bc5
)
- connector:
- router: Add retrieve dispute evidence API (#1114) (
354ee01
) - Add accounts in-memory cache (#1086) (
da4d721
)
- connector:
- connector: Update error handling for Paypal, Checkout, Mollie to include detailed messages (#1150) (
e044c2f
)
- config: Add API route
set_config
(#1144) (f31926b
) - connector:
- Add payment, refund urls for dummy connector (#1084) (
fee0e9d
) - [ACI] Implement Trustly Bank Redirect (#1130) (
46b40ec
) - Add multiple dummy connectors and enable them (#1147) (
8a35f7c
) - [ACI] Implement Alipay and MB WAY Wallets (#1140) (
d7cfb4a
) - [Stripe] Implement Przelewy24 bank redirect (#1111) (
54ff02d
)
- Add payment, refund urls for dummy connector (#1084) (
- error:
- payment_request: Add field
amount
toOrderDetails
and makeorder_details
aVec
inpayments_create
request (#964) (60e8c73
) - router:
- connector:
- mandate: Allow card details to be provided in case of network transaction id (#1138) (
cc121d0
)
- Connector: [ACI] Implement Przelewy24 Bank Redirect (#1064) (
cef8914
) - connector:
- [Iatapay] Implement AccessTokenAuth, Authorize, PSync, Refund, RSync and testcases (#1034) (
a2527b5
) - [bitpay] Add new crypto connector bitpay & testcases for all crypto connectors (#919) (
f70f10a
) - Add connector nmi with card, applepay and googlepay support (#771) (
baf5fd9
) - [ACI] Implement Interac Online Bank Redirect (#1108) (
0177f1d
)
- [Iatapay] Implement AccessTokenAuth, Authorize, PSync, Refund, RSync and testcases (#1034) (
- pm_list: Add pm list support for bank_debits (#1120) (
dfc6be4
)
- connector: Fix checkout error response type (#1124) (
5fd1614
) - connector_customer: Create connector_customer on requirement basis (#1097) (
e833a1d
) - google_pay: Allow custom fields in
GpayTokenParameters
for google pay via stripe (#1125) (f790099
) - mandate: Only trigger mandate procedure on successful connector call (#1122) (
a904d2b
) - payments: Fix address_insert error propagation in get_address_for_payment_request function (#1079) (
da3b520
) - router: Fix webhooks flow for checkout connector (#1126) (
7f3ceb4
)
- Refactor(merchant_account): add back
api_key
field for backward compatibility (#761) (#1062) (f481abb
)
- Connector:
- cards: Add credit card number validation (#889) (
d6e71b9
) - connector:
- Mandates for alternate payment methods via Adyen (#1046) (
4403634
) - Add klarna, afterpay support in Nuvei (#1081) (
0bb0437
) - Add dispute and refund webhooks for Airwallex (#1021) (
8c34114
) - Add bank redirect support for worldline (#1060) (
bc4ac52
) - [Adyen] Implement SEPA Direct debits for Adyen (#1055) (
7f796a6
)
- Mandates for alternate payment methods via Adyen (#1046) (
- refunds: Add connector field in refund response (#1059) (
3fe24b3
) - router:
- Allow payment cancels for more statuses (#1027) (
a2a6bab
)
- applepay: Rename applepay_session_response to lowercase (#1090) (
736a236
) - router: Fix recursion bug in straight through algorithm (#1080) (
aa610c4
) - tests: Remove ui tests from ci pipeline (#1082) (
2ab7f83
) - Connector-customer-id missing bug fix (#1085) (
c5db5c3
)
- common_utils:
- connector:
- Add authorize, capture, void, psync, refund, rsync for Forte connector (#955) (
f0464bc
) - Add dummy connector template code (#970) (
e5cc0d9
) - Add payment routes for dummy connector (#980) (
4ece376
) - [Bluesnap] add cards 3DS support (#1057) (
9c331e4
) - Mandates for alternate payment methods via Stripe (#1041) (
64721b8
)
- Add authorize, capture, void, psync, refund, rsync for Forte connector (#955) (
- errors: Add reverse errorswitch trait for foreign errors (#909) (
ab55d21
)
- common_utils: Manually implement diesel queryable for email newtype (#1072) (
3519649
) - connector:
- mandate:
- redis: Fix recreation on redis connection pool (#1063) (
982c27f
) - Impl
Drop
forRedisConnectionPool
(#1051) (3d05e50
) - Throw PreconditionFailed error when routing_algorithm is not configured (#1017) (
8853702
)
- compatibility: Refactor stripe compatibility routes using
web::resource
(#1022) (92ae2d9
) - router:
- Use newtype pattern for email addresses (#819) (
b8e2b1c
)
- api_models: Derive
Serialize
,Eq
,PartialEq
,strum::Display
onRefundStatus
(#989) (22a5372
) - cards: Validate card security code and expiration (#874) (
0b7bc7b
) - connector:
- pm_list: Add available capture methods filter (#999) (
36cc13d
) - router: Added support for optional defend dispute api call and added evidence submission flow for checkout connector (#979) (
4728d94
) - PG Agnostic mandate using network_txns_id (Adyen, Authorizedotnet, Stripe) (#855) (
ed99655
) - Expire client secret after a merchant configurable intent fufliment time (#956) (
03a9643
)
- refund_list: Updated refund list response status code when no refunds found. (#974) (
4e0489c
) - refund_sync: Add validation for missing
connector_refund_id
(#1013) (4397c8e
) - storage_models: Fix incorrect field order in
MerchantConnectorAccount
(#976) (c9e8a9b
) - Fix internal server errors on merchant connector account creation (#1026) (
c31b4b4
) - Remove old data while deserialization error from cache (#1010) (
23b5647
) - Passing connector_name instead of ConnectorCallType (#1050) (
c888635
)
- config: Add independent toggles for enabling traces and metrics (#1020) (
af71828
) - stripe: Return all the missing fields in a request (#935) (
e9fc34f
) - Use
CountryAlpha2
instead ofCountryCode
for country codes (#904) (2cff019
)
- connector-sanity-tests: run tests on being queued for merge (#960) (067dc709)
- manual-release: fix
EXTRA_FEATURES
not being passed correctly (#912) (9c9c52f9)
- connector:
- router:
- compatibility: add refund retrieve endpoint which accepts gateway creds (#958) (bcbf4c88)
- Core: gracefully shutdown router/scheduler if Redis is unavailable (#891) (13185999)
- core: [Stripe] add bank debits payment method to stripe (#906) (f624eb52)
- support gpay and applepay session response for all connectors (#839) (d23e14c5)
- add relevant ids for payment calls & make json logs (#908) (93b69e74)
- [Bluesnap] add GooglePay, ApplePay support (#985) (897250e)
- [Zen] add Cards 3DS, Non-3DS, GooglePay, ApplePay and Webhooks support (#962) (71c39b)
- different parent payment method token for different payment me… (#982) (2f378345)
- config: fix Tempo config for Tempo 2.0 (#959) (811cd523)
- stripe: add setup intent sync for stripe (#953) (ab7fc23a)
- connector:
- connector-template: Address unused import and mismatched types in connector-template (#910) (891683e0)
- try_local_system: replace Postman collection links with development collection (#937) (ccc0c3f9)
- pr-template: add API contract changes and update contributing docs with recent labels (#936) (3e2a7eae)
- errors: make StorageErrorExt generic on errors (#928) (e161d92c)
- db: remove
connector_transaction_id
from PaymentAttemptNew (#949) (57327b82) - api_keys: use
merchant_id
andkey_id
to query the table (#939) (40898c0a)
- connector:
- [Shift4] add support for card 3DS payment (#828) (29999fe5)
- [Nuvei] add support for card mandates (#818) (298a0a49)
- bank_redirects: modify api contract for sofort (#880) (fc2e4514)
- add template code for connector forte (#854) (7a581a6)
- add template code for connector nexinets (#852) (dee5f61)
- connector: [coinbase] make metadata as option parameter (#887) (f5728955)
- Update events table after notifying merchant (#871) (013026)
- stripe: remove cancel reason validation for stripe (#876) (fa44c1f6)
- payments: make TokenizationAction clonable (#895)
- Frm integration with hyperswitch (#857)
- use lowercase names for run environment and config files (#801) (ffaa8da0)
- derive
Serialize
andDeserialize
toCountry
enum (#882) (456c16fb) - storage_models, errors: impl StorageErrorExt for error_stack::Result<T, errors::StorageError> (#886) (b4020294)
- router: KMS decrypt secrets when kms feature is enabled (#868) (8905e663)
- deps: bump
fred
from5.2.0
to6.0.0
(#869) (01bc162d)
- manual_release: add
multiple_mca
feature in ci (#872) (aebb4dca)
- core: add backwards compatibility for multiple mca (#866) (cf902f19)
- router:
- added dispute retrieve and dispute list apis (#842) (acab7671)
- separate straight through algorithm in separate column in payment attempt (#863) (01f86c49)
- connector:
- [Airwallex] add multiple redirect support for 3DS (#811) (d1d58e33)
- [Worldpay] add support for webhook (#820) (23511166)
- [Coinbase] [Opennode] Add support for crypto payments via PG redirection (#834) (b3d14737)
- multiple connector account support for the same
country
(#816) (6188d515) - connector tokenization flow (#750) (29da1dfa)
- process_tracker: changing runner selection to dyn dispatch (#853) (18b84c42)
- merchant_account: change
primary_business_details
to vec in update (#877) (396d24fe) - redis deserialization issue in tokenization call (#878) (5e9d7d6b)
- duplication check fix in basilisk-hs (#881) (b12762e7)
- Tokenization: remove ConnectorCallType from tokenization call (#862) (0d047e08)
- router_env: improve logging setup (#847) (1b94d25f)
- refund_type: Feat/add copy derive (#849) (ccf03273)
- api_models: derive
strum::Display
forRefundStatus
(#846) (4524d4f5) - allow (de)serializing countries to/from alpha-2, alpha-3 and numeric country codes (#836) (899767cf)
- connector: add authorize, capture, void, psync, refund, rsync for PayPal connector (#747) (36049c13)
- Add locker sign keyid in env (#844) (70dff140)
- common_utils: put the async ext trait behind a feature (#835) (de29eb68)
- update ci workflows for common_enums crate (#843) (45111337)
- scheduler: remove scheduler options & adding graceful shutdown to producer (#840) (11df8436)
- router: refactor amount in PaymentsCaptureData from Option to i64 (#821) (b8bcba4e)
- request: add
RequestBuilder
method to attach default request headers (#826) (6f61f830) - middleware: add middleware to attach default response headers (#824) (6d7b11a0)
- core: added multiple payment_attempt support for payment_intent (#439) (35d3e277)
- router: added incoming dispute webhooks flow (#769) (a733eafb)
- cards_info: add extra columns to cards_info struct (#813) (442bed0f)
- connector: [Mollie] remove unsupported implementation of Void flow from mollie connector (#808) (eee8304b)
- common_utils: put the signals module behind a feature flag (#814) (fb4ec431)
- core: replace string with enum for country (#735) (e18bfb2a)
- api_models: put the errors module behind a feature flag (#815) (f14f87a1)
- storage_models: delete client secret when status is succeeded, failed, cancelled (#724) (a05059b7)
- drainer, router: KMS decrypt database password when
kms
feature is enabled (#733) (9d6e4ee3)
- rfc: add rfc template & first RFC (#806) (01a5e0a0)
- cards info api (#749) (b15b8f7b)
- connector: [Nuvei] add webhook support (#795) (20b4372b)
- compatibility: add last_payment_error in stripe payment response (#803) (97b95f0e)
- api_models: enhance accepted countries/currencies types (#807) (f9ef3135)
- services: make AppState impl generic using AppStateInfo (#805) (642c3f3a)
- prepare for building production Docker images (#794) (6ddc30eb)
- connector: [Airwallex] Change Session Token to Init Payment (#798) (a3c00339)
- router: change MAX_ID_LENGTH to 64 (#792) (346bd954)
- extract kms module to
external_services
crate (#793) (029e3894)
- try_local_system:
- add Ubuntu on WSL2 setup instructions (#767) (1d2166cf)
- add API key creation step (#765) (4b268068)
- pm_list: handle client secret check (#759) (82344fc4)
- add in-memory cache support for config table (#751) (abedaae4)
- compile time optimization (#775) (5b5557b7)
- router:
- add support for stateful straight through routing (#752) (568bf01a)
- adding metrics for tracking behavior throughout the
router
crate (#768) (d302b286)
- router_env:
- making metric flow as a trait for extensibility (#797) (df699e2b)
- core: accept gateway credentials in the request body in payments and refunds (#766) (cb188f92)
- connector:
- Add support to provide connector_payment_meta for capture and void request (#770) (6c008ae6)
- [Trustpay] add webhooks (payment and refund events) (#746) (853dfa16)
- process delete response from basilisk-v3 as plaintext instead of JWE (#791) (699ca4f)
- storage: add serialization for primitivedatetime for diesel structs (#764) (f27732a6)
- get connection pool based on olap/oltp features (#743) (a392fb16)
- deps: update deps (#734) (16bc886c)
- merchant_account: remove
api_key
field (#713) (230fcdd4) - config: move connector base URLs under the
[connectors]
table (#723) (df8c8b5a) - address Rust 1.68 clippy lints (#728) (1ffabb40)
- release: specify
fetch-depth
for code checkout and use official Docker GitHub actions (#722) (c451368f)
- Update naming conventions and added examples (#709) (98415193)
- openapi: document path parameters for API keys endpoints (#702) (9062dc80)
- connector:
- [Mollie]: add authorize, void, refund, psync, rsync support for mollie connector (#740) (168fa32)
- [worldline] add webhook support for connector (#721) (13a8ce8e)
- [Trustpay] add authorize (cards 3ds, no3ds and bank redirects), refund, psync, rsync (#717) (e102cae7)
- [Fiserv] add Refunds, Cancel and Wallets flow along with Unit Tests (#593) (cd1c5409)
- Add support for complete authorize payment after 3DS redirection (#741) (ec2b1b18)
- removing unnecessary logs from console (#753) (1021d1ae)
- Time based deletion of temp card (#729) (db3d3164)
- populate fields from payment attempt in payment list (#736) (b5b3d57c)
- add generic in-memory cache interface (#737) (7f5e5d86)
- Add HSTS headers to response (#725) (7ed665ec)
- cache reverse lookup fetches on redis (#719) (1a27faca)
- compatibility: add webhook support for stripe compatibility (#710) (79160504)
- docker-compose: remove port for hyperswitch-server-init in docker-compose.yml (#763) (20b93276)
- fixing docker compose setup & adding redisinsight (#748) (5c9bec9f)
- kms: log KMS SDK errors using the
Debug
impl (#720) (468aa87f) - errors:
- Replace PaymentMethod with PaymentModethodData in test.rs (#716) (763ee094)
- use
Debug
impl instead ofDisplay
for error types wrappingerror_stack::Report
(#714) (45484752)
- card_fingerprint not sent by basilisk_hs (#754) (5ae2f63f)
- merchant_account: add back
api_key
field for backward compatibility (#761) (661dd48a) - connector: update add_connector script (#762) (78794ed6)
- metrics: use macros for constructing counter and histogram metrics (#755) (58106d91)
- kms: share a KMS client for all KMS operations (#744) (a3ff2e8d)
- Basilisk hs integration (#704) (585618e5)
- Add service_name to get and delete request (#738) (8b7ae9c3)
- Add secret to metadata (#706) (d36afbed)
- client:
- simplify HTTP client construction (#731) (1756d1c4)
- remove dependence on
ROUTER_HTTP_PROXY
andROUTER_HTTPS_PROXY
env vars (#730) (c085e460)
- authentication: authenticate merchant by API keys from API keys table (#712) (afd08d42)
- api_keys: use a KMS encrypted API key hashing key and remove key ID prefix from plaintext API keys (#639) (3a3b33ac)
- masking: add suitable feature gates for basic tests (#745) (4859b6e4)
- connectors: log connector request and response at debug level (#624) (6a487b19)
- workflow: adding build only sandbox feature to reduce build time (#664) (d1c9305e)
- workflow: run cargo hack only for code changes (#663) (f931c427)
- openapi: document security schemes (#676) (c5fda7ac)
- session_token: create session token only if pmt is enabled (#703) (e1afeb64)
- router:
- serve OpenAPI docs at
/docs
(#698) (ed2907e1) - added incoming refund webhooks flow (#683) (f12abbce)
- serve OpenAPI docs at
- list: global filter mapping for payment methods via card network (#694) (adca6bca)
- store card network for cards (#687) (bfca26d9)
- add support for
ANG
currency (#681) (03096eff) - Add bank redirect mapping to adyen and stripe (#680) (e6f627d9)
- api contract change for wallet (#628) (ff86417e)
- Add support for a redis pubsub interface (#614) (aaf37250)
- initial
nix
setup usingcargo2nix
(#599) (73d0538d) - connector:
- [Bambora] Add support for cards Authorize, psync, capture, void, refund, Rsync (#677) (0de5d441)
- [MultiSafePay] Add support for cards Authorize, psync, capture, void, refund, Rsync (#658) (79aa8f3d)
- [Dlocal] Add support for authorize, capture, void, refund, psync, rsync (#650) (7792de55)
- pm_list: support for sending bank names (#678) (576f8e1f)
- card_network: add additional enum variants in card network (#671) (db8bc164)
- stripe:
- eps, giropay and ideal using stripe (#529) (028e1401)
- get error message for failed redirect payments (#615) (12f25f05)
- Populate amount_captured in case of success (#700) (d622b743)
- Error Mapping for Bluensap & Card Number for Airwallex (#686) (35a74baf)
- add currency in verify request data (#619) (32de632d)
- add zero-padded formatting for error code (#627) (63f9b612)
- check if bank_pm exists and then send request (#679) (76a9b557)
- connector:
- convert cents to dollar before sending to connector (#699) (3e883192)
- fix wordline card number validation issue (#695) (1a875348)
- fix wordline tests and visa card issuer support (#688) (d0c9dded)
- adyen: adyen psync fail fix (#691) (2e99152d)
- customer: populate email from customer table if not present in request (#692) (cf71d7aa)
- list:
- remove enabled payment methods from list customer payment method (#689) (5c29f37a)
- fix card network filtering (#684) (718c8a42)
- adding config changes for filtering
pm
based on countries & currencies (#669) (060c5419)
- compatibility:
- change next_action type and customer request type (#675) (7f22c22c)
- map stripe country_code to payment_request country code (#667) (7044b80b)
- core: send metadata in payments response (#670) (b80f19e2)
- router: allow setup future usage to be updated in payment update and confirm requests (#610) (7fd82211)
- stripe: send statement descriptor to stripe (#707) (641c4d6d)
- use connector error handler for 500 error messages. (#696) (9fe20932)
- populate failed status and add bank_redirect (#674)
- refunds: skip validate refunds for card (#672) (5cdbef04)
- router/webhooks: expose additional incoming request details to webhooks flow (#637) (1b3b7f5b)
- braintree: create basic auth for braintree (#602) (c47619b5)
- add better log to parse struct (#621) (275155a8)
- Pass country and currency as json format in MCA (#523) (d27e6be5)
- use simple uuid instead of hyphens (#605) (c467a47a)
- add payment_issuer and payment_experience in pa (#491) (66563595)
- router: remove foreign wrapper type (#616) (7bd2008a)
- core:
- add payment method list route to payment_methods (#682) (5449ce46)
- make attempt id as mandatory in router_data (#604) (626e467e)
- pm_list:
- pm_list for bank redirects (#685) (2701cceb)
- modify pm list to support new api contract (#657) (a2616d87)
- connector: remove
peek()
on PII info (#642) (46f77d07) - connector-template: raise errors instead of using
todo!()
(#620) (b1a6be5a) - redirection:
From
impl for redirection data for ease of use (#613) (e8255b4a)
- docker-compose: increase docker health check interval for hyperswitch-server (#534)
- release: port release bug fixes to main branch (#612) (a8d6ce83)
- run CI checks on merge queue events (#530) (c7b9e9c1)
- add_connector: fix typo (#584) (a4f3abf3)
- router:
- include eligible connectors list in list payment methods (#644) (92771b3b)
- API endpoints for managing API keys (#511) (1bdc8955)
- connector:
- [Airwallex] add authorize, capture, void, psync, Webhooks support (#646) (6a67dd8b)
- [Bluesnap] add authorize, capture, void, refund, psync, rsync and Webhooks support (#649) (7efdc3c5)
- add authorize, capture, void, refund, psync support for Nuvei (#645) (03a9f5a9)
- Added applepay feature (#636) (1e84c07c)
- add
track_caller
to functions that performchange_context
(#592) (8d2e573a) - Redis cache for MCA fetch and update (#515) (963cb528)
- api_models: add error structs (#532) (d107b44f)
- connector: update Bluesnap in routable connectors (#654) (64cb2ffc)
- allow errors with status code 200 to pass (#601) (8a8767e9)
- don't call connector if connector transaction id doesn't exist (#525) (326d6beb)
- throw 500 error when redis goes down (#531) (aafb115a)
- router:
- allow setup future usage to be updated in payment update and confirm requests (#610) (#638) (6c128f82)
- feature gate openssl deps for basilisk feature (#536) (e4956820)
- checkout: Error Response when wrong api key is passed (#596) (55b6d88a)
- core: use guard for access token result (#522) (903b4521)
- router:
- webhooks enhancement (#637) (#641) (3bc9feb0)
- api keys path params (#609) (effa7a00)
- router:
- update payments api contract to accept a list of connectors (#643) (8f1f626c)
- api-key routes refactoring (#600) (e6408276)
- appstate as trait in authentication (#588) (eaf98e66)
- compatibility: add additional fields to stripe payment and refund response types (#618) (2ea09e34)
- Throw 500 error on database connection error instead of panic (#527) (f1e3bf48)
- send full payment object for payment sync (#526) (6c2a1fea)
- middleware: change visibility to
pub
(#587) (4884a24d)
- fix payment_status not updated when adding payment method ([#446])
- Decide connector only when the payment method is confirm (10ea4919ba07d3198a6bbe3f3d4d817a23605924)
- Fix panics caused with empty diesel updates (448595498114cd15158b4a78fc32d8e6dc1b67ee)
- ACI
- Adyen
- Authorize.net
- Braintree
- Checkout.com
- Cybersource
- Fiserv
- Global Payments
- Klarna
- PayU
- Rapyd
- Shift4
- Stripe
- Wordline
- Cards No 3DS
- Cards 3DS*
- Apple Pay*
- Google Pay*
- Klarna*
- PayPal*
- Payments (Authorize/Sync/Capture/Cancel)
- Refunds (Execute/Sync)
- Saved Cards
- Mandates (No 3DS)*
- Customers
- Merchants
- ConnectorAccounts
* May not be supported on all connectors