Skip to content

feat(connector): [Adyen] receive incoming webhooks for pix expiry#8720

Merged
likhinbopanna merged 11 commits intomainfrom
8638-feature-add-payment_expired-outgoing-webhook
Jul 29, 2025
Merged

feat(connector): [Adyen] receive incoming webhooks for pix expiry#8720
likhinbopanna merged 11 commits intomainfrom
8638-feature-add-payment_expired-outgoing-webhook

Conversation

@kashif-m
Copy link
Contributor

@kashif-m kashif-m commented Jul 22, 2025

Type of Change

  • New feature

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:

  1. Adyen OFFER_CLOSED webhook:

    • Added OfferClosed to WebhookEventCode enum
    • Handle OfferClosed events as Expired status in AttemptStatus
    • Maps OFFER_CLOSED events to PaymentIntentExpired webhook
  2. Added Expired status support:

    • Added to both AttemptStatus and IntentStatus enums
    • Database migration for new enum values
    • Add PaymentExpired event type for outgoing webhooks
  3. Fixed next_action for terminal payments

    • Prevents showing QR codes/redirects data 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_action content.

How did you test it?

1. Create a Pix Payment (with expiry)

cURL

curl --location --request POST 'http://localhost:8080/payments' \
    --header 'Content-Type: application/json' \
    --header 'Accept: application/json' \
    --header 'api-key: dev_W8rGDzCct9xjU2Rqd8xxZubP9rRJ4u1Y42J1im7qplUxjOgWmJS4ZPq9lRfvOCnd' \
    --data-raw '{"amount":4500,"currency":"BRL","confirm":true,"profile_id":"pro_HvmsPUKxoCtI58mtCUhg","capture_on":"2022-09-10T10:11:12Z","connector":["adyen"],"customer_id":"cus_HXi1vEcMXQ74qsaNq57p","email":"abc@example.com","return_url":"https://google.com","payment_method":"bank_transfer","payment_method_type":"pix","payment_method_data":{"bank_transfer":{"pix":{"pix_key":"test","cpf":"test","cnpj":"test","expiry_date":"2025-07-22T14:58:00Z"}}},"billing":{"address":{"line1":"1467","line2":"Harrison Street","line3":"Harrison Street","city":"San Fransico","state":"California","zip":"94122","country":"BR","first_name":"joseph","last_name":"Doe"},"phone":{"number":"8056594427","country_code":"+91"},"email":"guest@example.com"},"metadata":{"Force-PSP":"Adyen","udf1":"value1","new_customer":"true","login_date":"2019-09-10T10:11:12Z"},"browser_info":{"user_agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36","accept_header":"text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8","language":"en-US","color_depth":32,"screen_height":1117,"screen_width":1728,"time_zone":-330,"java_enabled":true,"java_script_enabled":true,"ip_address":"127.0.0.1"},"customer_acceptance":{"acceptance_type":"online","accepted_at":"1963-05-03T04:07:52.723Z","online":{"ip_address":"127.0.0.1","user_agent":"amet irure esse"}},"session_expiry":60}'

Response

{"payment_id":"pay_8P2b5MuSkplj8d3U06Nj","merchant_id":"merchant_1753193103","status":"requires_customer_action","amount":4500,"net_amount":4500,"shipping_cost":null,"amount_capturable":4500,"amount_received":null,"connector":"adyen","client_secret":"pay_8P2b5MuSkplj8d3U06Nj_secret_px8ZGtda34okt5ngtFdb","created":"2025-07-22T14:57:52.108Z","currency":"BRL","customer_id":"cus_HXi1vEcMXQ74qsaNq57p","customer":{"id":"cus_HXi1vEcMXQ74qsaNq57p","name":"John Nether","email":"abc@example.com","phone":"6168205362","phone_country_code":"+1"},"description":null,"refunds":null,"disputes":null,"mandate_id":null,"mandate_data":null,"setup_future_usage":null,"off_session":null,"capture_on":null,"capture_method":null,"payment_method":"bank_transfer","payment_method_data":{"bank_transfer":{"pix":{"pix_key":"test","cpf":"test","cnpj":"test","source_bank_account_id":null,"destination_bank_account_id":null,"expiry_date":"2025-07-22T14:58:00.000Z"}},"billing":null},"payment_token":null,"shipping":null,"billing":{"address":{"city":"San Fransico","country":"BR","line1":"1467","line2":"Harrison Street","line3":"Harrison Street","zip":"94122","state":"California","first_name":"joseph","last_name":"Doe"},"phone":{"number":"8056594427","country_code":"+91"},"email":"guest@example.com"},"order_details":null,"email":"abc@example.com","name":"John Nether","phone":"6168205362","return_url":"https://google.com/","authentication_type":"no_three_ds","statement_descriptor_name":null,"statement_descriptor_suffix":null,"next_action":{"type":"qr_code_information","image_data_url":"data:image/png;base64,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","display_to_timestamp":1753196280000,"qr_code_url":"https://test.adyen.com/hpp/generateQRCodeImage.shtml?url=TestQRCodeEMVToken","display_text":null,"border_color":null},"cancellation_reason":null,"error_code":null,"error_message":null,"unified_code":null,"unified_message":null,"payment_experience":null,"payment_method_type":"pix","connector_label":null,"business_country":null,"business_label":"default","business_sub_label":null,"allowed_payment_method_types":null,"ephemeral_key":{"customer_id":"cus_HXi1vEcMXQ74qsaNq57p","created_at":1753196272,"expires":1753199872,"secret":"epk_7b539192a86b4d3baf83c0dcc93da9a6"},"manual_retry_allowed":null,"connector_transaction_id":"BGC4GRDTH5V3NDV5","frm_message":null,"metadata":{"udf1":"value1","Force-PSP":"Adyen","login_date":"2019-09-10T10:11:12Z","new_customer":"true"},"connector_metadata":null,"feature_metadata":null,"reference_id":"BGC4GRDTH5V3NDV5","payment_link":null,"profile_id":"pro_HvmsPUKxoCtI58mtCUhg","surcharge_details":null,"attempt_count":1,"merchant_decision":null,"merchant_connector_id":"mca_c5mj7ZUwHtsNKo5EfexQ","incremental_authorization_allowed":null,"authorization_count":null,"incremental_authorizations":null,"external_authentication_details":null,"external_3ds_authentication_attempted":false,"expires_on":"2025-07-22T14:58:52.108Z","fingerprint":null,"browser_info":{"language":"en-US","time_zone":-330,"ip_address":"127.0.0.1","user_agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36","color_depth":32,"java_enabled":true,"screen_width":1728,"accept_header":"text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8","screen_height":1117,"java_script_enabled":true},"payment_method_id":null,"payment_method_status":null,"updated":"2025-07-22T14:57:53.084Z","split_payments":null,"frm_metadata":null,"extended_authorization_applied":null,"capture_before":null,"merchant_order_reference_id":null,"order_tax_amount":null,"connector_mandate_id":null,"card_discovery":null,"force_3ds_challenge":false,"force_3ds_challenge_trigger":false,"issuer_error_code":null,"issuer_error_message":null,"is_iframe_redirection_enabled":null,"whole_connector_response":null}

Wait for it to expire
Receive incoming webhooks for OFFER_CLOSED

2. Verify outgoing webhook
{"merchant_id":"merchant_1753397156","event_id":"evt_019841219a907f8084065fb9d9e2842e","event_type":"payment_expired","content":{"type":"payment_details","object":{"payment_id":"pay_GE6MyVzON0EXIcyOFh5p","merchant_id":"merchant_1753397156","status":"expired","amount":4500,"net_amount":4500,"shipping_cost":null,"amount_capturable":0,"amount_received":null,"connector":"adyen","client_secret":"pay_GE6MyVzON0EXIcyOFh5p_secret_44s26p5R8wAp9cXOQ3Qt","created":"2025-07-25T10:26:23.600Z","currency":"BRL","customer_id":"cus_J2NWO1RbnwNdiEO6KdIt","customer":{"id":"cus_J2NWO1RbnwNdiEO6KdIt","name":null,"email":"abc@example.com","phone":null,"phone_country_code":null},"description":null,"refunds":null,"disputes":null,"mandate_id":null,"mandate_data":null,"setup_future_usage":null,"off_session":null,"capture_on":null,"capture_method":null,"payment_method":"bank_transfer","payment_method_data":{"bank_transfer":{"pix":{"pix_key":"test","cpf":"test","cnpj":"test","source_bank_account_id":null,"destination_bank_account_id":null,"expiry_date":"2025-07-25T10:28:00.000Z"}},"billing":null},"payment_token":null,"shipping":null,"billing":{"address":{"city":"San Fransico","country":"BR","line1":"1467","line2":"Harrison Street","line3":"Harrison Street","zip":"94122","state":"California","first_name":"joseph","last_name":"Doe"},"phone":{"number":"8056594427","country_code":"+91"},"email":"guest@example.com"},"order_details":null,"email":"abc@example.com","name":null,"phone":null,"return_url":"https://google.com/","authentication_type":"no_three_ds","statement_descriptor_name":null,"statement_descriptor_suffix":null,"next_action":null,"cancellation_reason":null,"error_code":null,"error_message":null,"unified_code":null,"unified_message":null,"payment_experience":null,"payment_method_type":"pix","connector_label":null,"business_country":null,"business_label":"default","business_sub_label":null,"allowed_payment_method_types":null,"ephemeral_key":null,"manual_retry_allowed":false,"connector_transaction_id":"BXSX5X9VLW5PB2V5","frm_message":null,"metadata":{"udf1":"value1","Force-PSP":"Adyen","login_date":"2019-09-10T10:11:12Z","new_customer":"true"},"connector_metadata":null,"feature_metadata":null,"reference_id":"pay_GE6MyVzON0EXIcyOFh5p_1","payment_link":null,"profile_id":"pro_zJpGj6xSodQqoBYltbzl","surcharge_details":null,"attempt_count":1,"merchant_decision":null,"merchant_connector_id":"mca_PTFqfuKnofhHIFDFLBsu","incremental_authorization_allowed":null,"authorization_count":null,"incremental_authorizations":null,"external_authentication_details":null,"external_3ds_authentication_attempted":false,"expires_on":"2025-07-25T10:27:23.600Z","fingerprint":null,"browser_info":{"language":"en-US","time_zone":-330,"ip_address":"127.0.0.1","user_agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36","color_depth":32,"java_enabled":true,"screen_width":1728,"accept_header":"text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8","screen_height":1117,"java_script_enabled":true},"payment_method_id":"pm_uHViByM1aRfvzf4cCKYH","payment_method_status":"inactive","updated":"2025-07-25T10:29:38.062Z","split_payments":null,"frm_metadata":null,"extended_authorization_applied":null,"capture_before":null,"merchant_order_reference_id":null,"order_tax_amount":null,"connector_mandate_id":null,"card_discovery":null,"force_3ds_challenge":false,"force_3ds_challenge_trigger":false,"issuer_error_code":null,"issuer_error_message":null,"is_iframe_redirection_enabled":null,"whole_connector_response":null}},"timestamp":"2025-07-25T10:29:38.064Z"}

It should have

  • event_type as payment_expired
  • status as expired
  • next_action should be null
3. Verify payments retrieve

cURL

curl --location --request GET 'http://localhost:8080/payments/pay_8P2b5MuSkplj8d3U06Nj?force_sync=true' \
    --header 'Accept: application/json' \
    --header 'api-key: dev_W8rGDzCct9xjU2Rqd8xxZubP9rRJ4u1Y42J1im7qplUxjOgWmJS4ZPq9lRfvOCnd'

Response

{"payment_id":"pay_cqxjoA0Drk0NBgmCpbQf","merchant_id":"merchant_1753397156","status":"expired","amount":4500,"net_amount":4500,"shipping_cost":null,"amount_capturable":0,"amount_received":null,"connector":"adyen","client_secret":"pay_cqxjoA0Drk0NBgmCpbQf_secret_S3VytS4Ym1KOhpKRQvtV","created":"2025-07-24T22:51:17.081Z","currency":"BRL","customer_id":"cus_J2NWO1RbnwNdiEO6KdIt","customer":{"id":"cus_J2NWO1RbnwNdiEO6KdIt","name":null,"email":"abc@example.com","phone":null,"phone_country_code":null},"description":null,"refunds":null,"disputes":null,"mandate_id":null,"mandate_data":null,"setup_future_usage":null,"off_session":null,"capture_on":null,"capture_method":null,"payment_method":"bank_transfer","payment_method_data":{"bank_transfer":{"pix":{"pix_key":"test","cpf":"test","cnpj":"test","source_bank_account_id":null,"destination_bank_account_id":null,"expiry_date":"2025-07-24T22:54:00.000Z"}},"billing":null},"payment_token":null,"shipping":null,"billing":{"address":{"city":"San Fransico","country":"BR","line1":"1467","line2":"Harrison Street","line3":"Harrison Street","zip":"94122","state":"California","first_name":"joseph","last_name":"Doe"},"phone":{"number":"8056594427","country_code":"+91"},"email":"guest@example.com"},"order_details":null,"email":"abc@example.com","name":null,"phone":null,"return_url":"https://google.com/","authentication_type":"no_three_ds","statement_descriptor_name":null,"statement_descriptor_suffix":null,"next_action":null,"cancellation_reason":null,"error_code":null,"error_message":null,"unified_code":null,"unified_message":null,"payment_experience":null,"payment_method_type":"pix","connector_label":null,"business_country":null,"business_label":"default","business_sub_label":null,"allowed_payment_method_types":null,"ephemeral_key":null,"manual_retry_allowed":false,"connector_transaction_id":"BD7QBLW3MDSQNS65","frm_message":null,"metadata":{"udf1":"value1","Force-PSP":"Adyen","login_date":"2019-09-10T10:11:12Z","new_customer":"true"},"connector_metadata":null,"feature_metadata":null,"reference_id":"pay_cqxjoA0Drk0NBgmCpbQf_1","payment_link":null,"profile_id":"pro_zJpGj6xSodQqoBYltbzl","surcharge_details":null,"attempt_count":1,"merchant_decision":null,"merchant_connector_id":"mca_PTFqfuKnofhHIFDFLBsu","incremental_authorization_allowed":null,"authorization_count":null,"incremental_authorizations":null,"external_authentication_details":null,"external_3ds_authentication_attempted":false,"expires_on":"2025-07-24T22:52:17.081Z","fingerprint":null,"browser_info":{"language":"en-US","time_zone":-330,"ip_address":"127.0.0.1","user_agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36","color_depth":32,"java_enabled":true,"screen_width":1728,"accept_header":"text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8","screen_height":1117,"java_script_enabled":true},"payment_method_id":"pm_EN1YZr7i5sD4qHXH2uV5","payment_method_status":"inactive","updated":"2025-07-24T22:55:13.196Z","split_payments":null,"frm_metadata":null,"extended_authorization_applied":null,"capture_before":null,"merchant_order_reference_id":null,"order_tax_amount":null,"connector_mandate_id":null,"card_discovery":null,"force_3ds_challenge":false,"force_3ds_challenge_trigger":false,"issuer_error_code":null,"issuer_error_message":null,"is_iframe_redirection_enabled":null,"whole_connector_response":null}

Checklist

  • I formatted the code cargo +nightly fmt --all
  • I addressed lints thrown by cargo clippy
  • I reviewed the submitted code

@kashif-m kashif-m requested review from a team as code owners July 22, 2025 15:19
@semanticdiff-com
Copy link

semanticdiff-com bot commented Jul 22, 2025

Review changes with  SemanticDiff

Changed Files
File Status
  crates/router/src/core/payments/transformers.rs  98% smaller
  crates/router/src/core/revenue_recovery/transformers.rs  90% smaller
  crates/router/src/types.rs  90% smaller
  crates/hyperswitch_connectors/src/connectors/chargebee/transformers.rs  89% smaller
  crates/hyperswitch_connectors/src/connectors/recurly/transformers.rs  89% smaller
  crates/hyperswitch_connectors/src/utils.rs  83% smaller
  crates/router/src/compatibility/stripe/webhooks.rs  82% smaller
  crates/router/src/core/payments/retry.rs  80% smaller
  crates/router/src/core/payments/operations/payment_get.rs  80% smaller
  crates/router/src/core/payments/operations/payment_response.rs  80% smaller
  crates/router/src/connector/utils.rs  79% smaller
  crates/hyperswitch_domain_models/src/router_data.rs  78% smaller
  crates/hyperswitch_connectors/src/connectors/paypal/transformers.rs  78% smaller
  crates/router/src/core/payments.rs  78% smaller
  crates/router/src/core/payments/operations/payment_attempt_record.rs  78% smaller
  crates/router/src/core/payments/operations/payment_capture_v2.rs  78% smaller
  crates/router/src/core/payments/operations/payment_confirm_intent.rs  78% smaller
  crates/router/src/core/payments/operations/payment_update_intent.rs  78% smaller
  crates/router/src/core/payments/operations/proxy_payments_intent.rs  78% smaller
  crates/router/src/core/payments/payment_methods.rs  76% smaller
  crates/router/src/core/routing/helpers.rs  68% smaller
  crates/router/src/core/payments/helpers.rs  65% smaller
  crates/common_enums/src/enums.rs  63% smaller
  crates/api_models/src/webhooks.rs  61% smaller
  api-reference/v1/openapi_spec_v1.json  58% smaller
  api-reference/v2/openapi_spec_v2.json  58% smaller
  crates/hyperswitch_connectors/src/connectors/adyen/transformers.rs  39% smaller
  crates/hyperswitch_domain_models/src/revenue_recovery.rs  22% smaller
  crates/router/src/compatibility/stripe/payment_intents/types.rs  3% smaller
  crates/router/src/compatibility/stripe/setup_intents/types.rs  3% smaller
  crates/router/src/core/payments/operations/payment_session_intent.rs  3% smaller
  crates/router/src/types/transformers.rs  3% smaller
  crates/common_enums/src/transformers.rs  0% smaller
  migrations/2025-07-24-214849_add_expired_to_intent_and_attempt_status_and_event/down.sql Unsupported file format
  migrations/2025-07-24-214849_add_expired_to_intent_and_attempt_status_and_event/up.sql Unsupported file format

@kashif-m kashif-m self-assigned this Jul 22, 2025
} else {
let mut next_action_response = None;

let bank_transfer_next_steps = bank_transfer_next_steps_check(payment_attempt.clone())?;
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Note: all this diff is due to adding a tab space

@kashif-m kashif-m linked an issue Jul 22, 2025 that may be closed by this pull request
Copy link
Contributor

@deepanshu-iiitu deepanshu-iiitu left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

connector changes look good

@kashif-m kashif-m requested review from a team as code owners July 24, 2025 23:10
@hyperswitch-bot hyperswitch-bot bot added the M-database-changes Metadata: This PR involves database schema changes label Jul 24, 2025
@hyperswitch-bot hyperswitch-bot bot added the M-api-contract-changes Metadata: This PR involves API contract changes label Jul 24, 2025
jarnura
jarnura previously approved these changes Jul 25, 2025
Copy link
Contributor

@sai-harsha-vardhan sai-harsha-vardhan left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Outgoing webhook even type should also say payment_expired, we can't use payment_cancelled @kashif-m

@likhinbopanna likhinbopanna added this pull request to the merge queue Jul 29, 2025
Merged via the queue into main with commit 4587564 Jul 29, 2025
16 of 20 checks passed
@likhinbopanna likhinbopanna deleted the 8638-feature-add-payment_expired-outgoing-webhook branch July 29, 2025 08:47
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)
  ...
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

M-api-contract-changes Metadata: This PR involves API contract changes M-database-changes Metadata: This PR involves database schema changes

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[FEATURE] add payment_expired outgoing webhook

6 participants