feat(connector): [Adyen] receive incoming webhooks for pix expiry#8720
Merged
likhinbopanna merged 11 commits intomainfrom Jul 29, 2025
Merged
feat(connector): [Adyen] receive incoming webhooks for pix expiry#8720likhinbopanna merged 11 commits intomainfrom
likhinbopanna merged 11 commits intomainfrom
Conversation
kashif-m
commented
Jul 22, 2025
| } else { | ||
| let mut next_action_response = None; | ||
|
|
||
| let bank_transfer_next_steps = bank_transfer_next_steps_check(payment_attempt.clone())?; |
Contributor
Author
There was a problem hiding this comment.
Note: all this diff is due to adding a tab space
deepanshu-iiitu
previously approved these changes
Jul 23, 2025
Contributor
deepanshu-iiitu
left a comment
There was a problem hiding this comment.
connector changes look good
crates/hyperswitch_connectors/src/connectors/adyen/transformers.rs
Outdated
Show resolved
Hide resolved
jarnura
previously approved these changes
Jul 25, 2025
Contributor
sai-harsha-vardhan
left a comment
There was a problem hiding this comment.
Outgoing webhook even type should also say payment_expired, we can't use payment_cancelled @kashif-m
sai-harsha-vardhan
previously approved these changes
Jul 25, 2025
sai-harsha-vardhan
previously approved these changes
Jul 25, 2025
Sarthak1799
approved these changes
Jul 28, 2025
jarnura
approved these changes
Jul 28, 2025
sai-harsha-vardhan
approved these changes
Jul 28, 2025
pixincreate
added a commit
that referenced
this pull request
Jul 29, 2025
…acilitapay-webhooks * 'main' of github.com:juspay/hyperswitch: fix(connector): [Worldpay] handle multiple ddc submission for CompleteAuthorize (#8741) feat(connector): [Adyen] receive incoming webhooks for pix expiry (#8720) feat(connector): [FISERV] Added GooglePay Payment Method - Connector Decryption Flow (#8658) feat(connector): [BLUECODE] Added Template Code (#8756) chore(version): 2025.07.29.0
pixincreate
added a commit
that referenced
this pull request
Aug 1, 2025
…rver * 'main' of github.com:juspay/hyperswitch: (25 commits) chore: `xof` currency to cybersource cards (#8799) chore(version): 2025.08.01.0 feat(core): Implement UCS based upi for paytm and phonepe (#8732) feat(connector): [katapult]add template code for katapult (#8783) feat(router): introduce `feature` and `feature_data` to gsm (#7771) feat(connector): [cybersource] add changes for field CybersourceConsumerAuthInformation (#8768) feat(authentication): added authentication sync api (#8596) feat(connector): [facilitapay] fix refunds, add webhook and void support (#8778) feat(connector): [payload] add recurring payments (#8597) chore(version): 2025.07.31.0 feat(connector): [Flexiti]Add support for flexiti connector (#8743) chore(router): events enhancement for kafka (#8780) ci(cypress): Making a mandate payment with large customer user agents (#8790) fix(openapi): update create_platform endpoint in api-reference docs (#8782) chore(version): 2025.07.30.0 fix(connector): [GLOBALPAY] Added Tokenization Flow for CITs (#8568) feat(routing): Add api-refs for new decision engine endpoints (#8709) fix: replace xtrim with xdel to support older redis version (#8515) fix(connector): [Worldpay] handle multiple ddc submission for CompleteAuthorize (#8741) feat(connector): [Adyen] receive incoming webhooks for pix expiry (#8720) ...
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Type of Change
Description
This PR implements payment expiration handling for QR code-based payments through Adyen's OFFER_CLOSED webhook and fixes next_action display for terminal payment states.
Changes:
Adyen
OFFER_CLOSEDwebhook:OfferClosedtoWebhookEventCodeenumOfferClosedevents asExpiredstatus in AttemptStatusOFFER_CLOSEDevents toPaymentIntentExpiredwebhookAdded
Expiredstatus support:AttemptStatusandIntentStatusenumsPaymentExpiredevent type for outgoing webhooksFixed next_action for terminal payments
Motivation and Context
QR code payments (like PIX) have expiration times. When they expire, Adyen sends OFFER_CLOSED webhooks, but Hyperswitch wasn't handling these properly. Additionally, cancelled payments were still showing actionable
next_actioncontent.How did you test it?
1. Create a Pix Payment (with expiry)
cURL
Response
Wait for it to expire
Receive incoming webhooks for OFFER_CLOSED
2. Verify outgoing webhook
It should have
next_actionshould be null3. Verify payments retrieve
cURL
Response
Checklist
cargo +nightly fmt --allcargo clippy