Skip to content

feat(core): Add support for Void after Capture #8839

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 10 commits into from
Aug 6, 2025
Merged

Conversation

swangi-kumari
Copy link
Contributor

@swangi-kumari swangi-kumari commented Aug 5, 2025

Type of Change

  • Bugfix
  • New feature
  • Enhancement
  • Refactoring
  • Dependency updates
  • Documentation
  • CI/CD

Description

  • Add core flow for Void after Capture
  • Add PostCaptureVoid Flow in worldpayVantiv connector

Additional Changes

  • This PR modifies the API contract
  • This PR modifies the database schema
  • This PR modifies application configuration/environment variables

Motivation and Context

How did you test it?

Added in Mintlify API reference
Screenshot 2025-08-05 at 6 38 43 PM

  1. Create a Vantiv payment
{
    "amount": 100,
    "currency": "USD",
    "confirm": true,
    "capture_method": "automatic",
    "customer_id": "aaaa",
    "payment_method": "card",
    "payment_method_type": "credit",
    "payment_method_data": {
        "card": {
            "card_number": "4457000300000007", 
            "card_exp_month": "01",
            "card_exp_year": "50",
            // "card_holder_name": "Joseph",
            "card_cvc": "987"
            // "card_network":"M"
        }
    },
     "billing": {
        "address": {
            "line1": "Singapore Changi Airport. 2nd flr",
            "line2": "",
            "line3": "",
            "city": "Downtown Core",
            "state": "Central Indiana America",
            "zip": "039393",
            "country": "SG",
            "first_name": "박성준",
            "last_name": "박성준"
        },
        "phone": {
            "number": "8056594427",
            "country_code": "+91"
        }
    },
      "shipping": {
        "address": {
            "line1": "Singapore Changi Airport. 2nd flr",
            "line2": "",
            "line3": "",
            "city": "Downtown Core",
            "state": "Central Indiana America",
            "zip": "039393",
            "country": "SG",
            "first_name": "박성준",
            "last_name": "박성준"
        },
        "phone": {
            "number": "8056594427",
            "country_code": "+91"
        }
    }
}

response

{"payment_id":"pay_6U7z9JffFphSvaHOa82X","merchant_id":"merchant_1754307959","status":"processing","amount":100,"net_amount":100,"shipping_cost":null,"amount_capturable":0,"amount_received":null,"connector":"worldpayvantiv","client_secret":"pay_6U7z9JffFphSvaHOa82X_secret_lrLWdp5mBXe337IX33p6","created":"2025-08-05T09:10:50.360Z","currency":"USD","customer_id":"aaaa","customer":{"id":"aaaa","name":null,"email":null,"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":"automatic","payment_method":"card","payment_method_data":{"card":{"last4":"0007","card_type":null,"card_network":null,"card_issuer":null,"card_issuing_country":null,"card_isin":"445700","card_extended_bin":null,"card_exp_month":"01","card_exp_year":"50","card_holder_name":null,"payment_checks":{"avs_result":"00","advanced_a_v_s_result":null,"authentication_result":null,"card_validation_result":"U"},"authentication_data":null},"billing":null},"payment_token":null,"shipping":{"address":{"city":"Downtown Core","country":"SG","line1":"Singapore Changi Airport. 2nd flr","line2":"","line3":"","zip":"039393","state":"Central Indiana America","first_name":"박성준","last_name":"박성준"},"phone":{"number":"8056594427","country_code":"+91"},"email":null},"billing":{"address":{"city":"Downtown Core","country":"SG","line1":"Singapore Changi Airport. 2nd flr","line2":"","line3":"","zip":"039393","state":"Central Indiana America","first_name":"박성준","last_name":"박성준"},"phone":{"number":"8056594427","country_code":"+91"},"email":null},"order_details":null,"email":null,"name":null,"phone":null,"return_url":null,"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":"credit","connector_label":null,"business_country":null,"business_label":"default","business_sub_label":null,"allowed_payment_method_types":null,"ephemeral_key":{"customer_id":"aaaa","created_at":1754385050,"expires":1754388650,"secret":"epk_e68679fd37f84775b725fa5a8058abb9"},"manual_retry_allowed":false,"connector_transaction_id":"83997345492141650","frm_message":null,"metadata":null,"connector_metadata":null,"feature_metadata":null,"reference_id":"pay_6U7z9JffFphSvaHOa82X_1","payment_link":null,"profile_id":"pro_39QoIo9WbzDFwm4iqtRI","surcharge_details":null,"attempt_count":1,"merchant_decision":null,"merchant_connector_id":"mca_8Skj4ar2yQ9GBKIGCdAZ","incremental_authorization_allowed":null,"authorization_count":null,"incremental_authorizations":null,"external_authentication_details":null,"external_3ds_authentication_attempted":false,"expires_on":"2025-08-05T09:25:50.360Z","fingerprint":null,"browser_info":null,"payment_channel":null,"payment_method_id":null,"payment_method_status":null,"updated":"2025-08-05T09:10:54.164Z","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":"manual","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}
  1. Do psync
curl --location 'http://localhost:8080/payments/pay_6U7z9JffFphSvaHOa82X?force_sync=true' \
--header 'Accept: application/json' \
--header 'api-key: dev_X4UzFm38nxtfI8vV2m1hPnJlW4AKkxYfjr4z9tNRjnxxIbLNok5xyLKKsIBoxaSQ'

Response

{
    "payment_id": "pay_6U7z9JffFphSvaHOa82X",
    "merchant_id": "merchant_1754307959",
    "status": "succeeded",
    "amount": 100,
    "net_amount": 100,
    "shipping_cost": null,
    "amount_capturable": 0,
    "amount_received": 100,
    "connector": "worldpayvantiv",
    "client_secret": "pay_6U7z9JffFphSvaHOa82X_secret_lrLWdp5mBXe337IX33p6",
    "created": "2025-08-05T09:10:50.360Z",
    "currency": "USD",
    "customer_id": "aaaa",
    "customer": {
        "id": "aaaa",
        "name": null,
        "email": null,
        "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": "automatic",
    "payment_method": "card",
    "payment_method_data": {
        "card": {
            "last4": "0007",
            "card_type": null,
            "card_network": null,
            "card_issuer": null,
            "card_issuing_country": null,
            "card_isin": "445700",
            "card_extended_bin": null,
            "card_exp_month": "01",
            "card_exp_year": "50",
            "card_holder_name": null,
            "payment_checks": {
                "avs_result": "00",
                "advanced_a_v_s_result": null,
                "authentication_result": null,
                "card_validation_result": "U"
            },
            "authentication_data": null
        },
        "billing": null
    },
    "payment_token": null,
    "shipping": {
        "address": {
            "city": "Downtown Core",
            "country": "SG",
            "line1": "Singapore Changi Airport. 2nd flr",
            "line2": "",
            "line3": "",
            "zip": "039393",
            "state": "Central Indiana America",
            "first_name": "박성준",
            "last_name": "박성준"
        },
        "phone": {
            "number": "8056594427",
            "country_code": "+91"
        },
        "email": null
    },
    "billing": {
        "address": {
            "city": "Downtown Core",
            "country": "SG",
            "line1": "Singapore Changi Airport. 2nd flr",
            "line2": "",
            "line3": "",
            "zip": "039393",
            "state": "Central Indiana America",
            "first_name": "박성준",
            "last_name": "박성준"
        },
        "phone": {
            "number": "8056594427",
            "country_code": "+91"
        },
        "email": null
    },
    "order_details": null,
    "email": null,
    "name": null,
    "phone": null,
    "return_url": null,
    "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": "credit",
    "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": "83997345492141650",
    "frm_message": null,
    "metadata": null,
    "connector_metadata": null,
    "feature_metadata": null,
    "reference_id": "pay_6U7z9JffFphSvaHOa82X_1",
    "payment_link": null,
    "profile_id": "pro_39QoIo9WbzDFwm4iqtRI",
    "surcharge_details": null,
    "attempt_count": 1,
    "merchant_decision": null,
    "merchant_connector_id": "mca_8Skj4ar2yQ9GBKIGCdAZ",
    "incremental_authorization_allowed": null,
    "authorization_count": null,
    "incremental_authorizations": null,
    "external_authentication_details": null,
    "external_3ds_authentication_attempted": false,
    "expires_on": "2025-08-05T09:25:50.360Z",
    "fingerprint": null,
    "browser_info": null,
    "payment_channel": null,
    "payment_method_id": null,
    "payment_method_status": null,
    "updated": "2025-08-05T09:12:15.057Z",
    "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": "manual",
    "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
}
  1. We will do cancel_post_capture
curl --location 'http://localhost:8080/payments/pay_6U7z9JffFphSvaHOa82X/cancel_post_capture' \
--header 'Content-Type: application/json' \
--header 'Accept: application/json' \
--header 'api-key: dev_X4UzFm38nxtfI8vV2m1hPnJlW4AKkxYfjr4z9tNRjnxxIbLNok5xyLKKsIBoxaSQ' \
--data '{
  "cancellation_reason": "requested_by_customer"
}'

Response

{
    "payment_id": "pay_6U7z9JffFphSvaHOa82X",
    "merchant_id": "merchant_1754307959",
    "status": "processing",
    "amount": 100,
    "net_amount": 100,
    "shipping_cost": null,
    "amount_capturable": 0,
    "amount_received": 100,
    "connector": "worldpayvantiv",
    "client_secret": "pay_6U7z9JffFphSvaHOa82X_secret_lrLWdp5mBXe337IX33p6",
    "created": "2025-08-05T09:10:50.360Z",
    "currency": "USD",
    "customer_id": null,
    "customer": 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": "automatic",
    "payment_method": "card",
    "payment_method_data": {
        "card": {
            "last4": "0007",
            "card_type": null,
            "card_network": null,
            "card_issuer": null,
            "card_issuing_country": null,
            "card_isin": "445700",
            "card_extended_bin": null,
            "card_exp_month": "01",
            "card_exp_year": "50",
            "card_holder_name": null,
            "payment_checks": {
                "avs_result": "00",
                "advanced_a_v_s_result": null,
                "authentication_result": null,
                "card_validation_result": "U"
            },
            "authentication_data": null
        },
        "billing": null
    },
    "payment_token": null,
    "shipping": {
        "address": {
            "city": "Downtown Core",
            "country": "SG",
            "line1": "Singapore Changi Airport. 2nd flr",
            "line2": "",
            "line3": "",
            "zip": "039393",
            "state": "Central Indiana America",
            "first_name": "박성준",
            "last_name": "박성준"
        },
        "phone": {
            "number": "8056594427",
            "country_code": "+91"
        },
        "email": null
    },
    "billing": {
        "address": {
            "city": "Downtown Core",
            "country": "SG",
            "line1": "Singapore Changi Airport. 2nd flr",
            "line2": "",
            "line3": "",
            "zip": "039393",
            "state": "Central Indiana America",
            "first_name": "박성준",
            "last_name": "박성준"
        },
        "phone": {
            "number": "8056594427",
            "country_code": "+91"
        },
        "email": null
    },
    "order_details": null,
    "email": null,
    "name": null,
    "phone": null,
    "return_url": null,
    "authentication_type": "no_three_ds",
    "statement_descriptor_name": null,
    "statement_descriptor_suffix": null,
    "next_action": null,
    "cancellation_reason": "requested_by_customer",
    "error_code": null,
    "error_message": null,
    "unified_code": null,
    "unified_message": null,
    "payment_experience": null,
    "payment_method_type": "credit",
    "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": "84085305358301450",
    "frm_message": null,
    "metadata": null,
    "connector_metadata": null,
    "feature_metadata": null,
    "reference_id": "pay_6U7z9JffFphSvaHOa82X_1",
    "payment_link": null,
    "profile_id": "pro_39QoIo9WbzDFwm4iqtRI",
    "surcharge_details": null,
    "attempt_count": 1,
    "merchant_decision": null,
    "merchant_connector_id": "mca_8Skj4ar2yQ9GBKIGCdAZ",
    "incremental_authorization_allowed": null,
    "authorization_count": null,
    "incremental_authorizations": null,
    "external_authentication_details": null,
    "external_3ds_authentication_attempted": false,
    "expires_on": "2025-08-05T09:25:50.360Z",
    "fingerprint": null,
    "browser_info": null,
    "payment_channel": null,
    "payment_method_id": null,
    "payment_method_status": null,
    "updated": "2025-08-05T09:13:07.054Z",
    "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": "manual",
    "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
}
  1. Do sync to check the status
curl --location 'http://localhost:8080/payments/pay_6U7z9JffFphSvaHOa82X?force_sync=true' \
--header 'Accept: application/json' \
--header 'api-key: dev_X4UzFm38nxtfI8vV2m1hPnJlW4AKkxYfjr4z9tNRjnxxIbLNok5xyLKKsIBoxaSQ'

Response - Status will be cancelled_post_capture

{
    "payment_id": "pay_6U7z9JffFphSvaHOa82X",
    "merchant_id": "merchant_1754307959",
    "status": "cancelled_post_capture",
    "amount": 100,
    "net_amount": 100,
    "shipping_cost": null,
    "amount_capturable": 0,
    "amount_received": 100,
    "connector": "worldpayvantiv",
    "client_secret": "pay_6U7z9JffFphSvaHOa82X_secret_lrLWdp5mBXe337IX33p6",
    "created": "2025-08-05T09:10:50.360Z",
    "currency": "USD",
    "customer_id": "aaaa",
    "customer": {
        "id": "aaaa",
        "name": null,
        "email": null,
        "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": "automatic",
    "payment_method": "card",
    "payment_method_data": {
        "card": {
            "last4": "0007",
            "card_type": null,
            "card_network": null,
            "card_issuer": null,
            "card_issuing_country": null,
            "card_isin": "445700",
            "card_extended_bin": null,
            "card_exp_month": "01",
            "card_exp_year": "50",
            "card_holder_name": null,
            "payment_checks": {
                "avs_result": "00",
                "advanced_a_v_s_result": null,
                "authentication_result": null,
                "card_validation_result": "U"
            },
            "authentication_data": null
        },
        "billing": null
    },
    "payment_token": null,
    "shipping": {
        "address": {
            "city": "Downtown Core",
            "country": "SG",
            "line1": "Singapore Changi Airport. 2nd flr",
            "line2": "",
            "line3": "",
            "zip": "039393",
            "state": "Central Indiana America",
            "first_name": "박성준",
            "last_name": "박성준"
        },
        "phone": {
            "number": "8056594427",
            "country_code": "+91"
        },
        "email": null
    },
    "billing": {
        "address": {
            "city": "Downtown Core",
            "country": "SG",
            "line1": "Singapore Changi Airport. 2nd flr",
            "line2": "",
            "line3": "",
            "zip": "039393",
            "state": "Central Indiana America",
            "first_name": "박성준",
            "last_name": "박성준"
        },
        "phone": {
            "number": "8056594427",
            "country_code": "+91"
        },
        "email": null
    },
    "order_details": null,
    "email": null,
    "name": null,
    "phone": null,
    "return_url": null,
    "authentication_type": "no_three_ds",
    "statement_descriptor_name": null,
    "statement_descriptor_suffix": null,
    "next_action": null,
    "cancellation_reason": "requested_by_customer",
    "error_code": null,
    "error_message": null,
    "unified_code": null,
    "unified_message": null,
    "payment_experience": null,
    "payment_method_type": "credit",
    "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": "84085305358301450",
    "frm_message": null,
    "metadata": null,
    "connector_metadata": null,
    "feature_metadata": null,
    "reference_id": "pay_6U7z9JffFphSvaHOa82X_1",
    "payment_link": null,
    "profile_id": "pro_39QoIo9WbzDFwm4iqtRI",
    "surcharge_details": null,
    "attempt_count": 1,
    "merchant_decision": null,
    "merchant_connector_id": "mca_8Skj4ar2yQ9GBKIGCdAZ",
    "incremental_authorization_allowed": null,
    "authorization_count": null,
    "incremental_authorizations": null,
    "external_authentication_details": null,
    "external_3ds_authentication_attempted": false,
    "expires_on": "2025-08-05T09:25:50.360Z",
    "fingerprint": null,
    "browser_info": null,
    "payment_channel": null,
    "payment_method_id": null,
    "payment_method_status": null,
    "updated": "2025-08-05T09:14:14.704Z",
    "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": "manual",
    "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
}

If we hit our \cancel (Void ) after a succeeded status,
that will give error

{
    "error": {
        "type": "invalid_request",
        "message": "You cannot cancel this payment because it has status succeeded",
        "code": "IR_16"
    }
}

Checklist

  • I formatted the code cargo +nightly fmt --all
  • I addressed lints thrown by cargo clippy
  • I reviewed the submitted code
  • I added unit tests for my changes where possible

@swangi-kumari swangi-kumari requested review from a team as code owners August 5, 2025 08:52
Copy link

semanticdiff-com bot commented Aug 5, 2025

Review changes with  SemanticDiff

Changed Files
File Status
  crates/router/src/types/api/payments.rs  89% smaller
  crates/router/src/types/api/payments_v2.rs  75% smaller
  crates/hyperswitch_connectors/src/default_implementations_v2.rs  71% smaller
  crates/router/src/compatibility/stripe/payment_intents/types.rs  63% smaller
  crates/router/src/compatibility/stripe/setup_intents/types.rs  63% smaller
  crates/router/src/core/payments/operations.rs  63% smaller
  crates/hyperswitch_domain_models/src/types.rs  49% smaller
  crates/router/src/core/revenue_recovery/transformers.rs  32% smaller
  crates/router/src/routes/lock_utils.rs  32% smaller
  crates/router/src/core/payments/retry.rs  29% smaller
  crates/hyperswitch_connectors/src/utils.rs  28% smaller
  crates/hyperswitch_connectors/src/connectors/chargebee/transformers.rs  27% smaller
  crates/hyperswitch_connectors/src/connectors/recurly/transformers.rs  27% smaller
  crates/router/src/core/payments/helpers.rs  26% smaller
  crates/hyperswitch_connectors/src/connectors/paypal/transformers.rs  24% smaller
  crates/router/src/types/transformers.rs  24% smaller
  crates/router/src/core/payments/operations/payment_attempt_record.rs  23% smaller
  crates/router/src/core/payments/operations/payment_capture_v2.rs  23% smaller
  crates/router/src/core/payments/operations/payment_confirm_intent.rs  23% smaller
  crates/router/src/core/payments/operations/payment_get.rs  23% smaller
  crates/router/src/core/payments/operations/payment_session_intent.rs  23% smaller
  crates/router/src/core/payments/operations/payment_update_intent.rs  23% smaller
  crates/router/src/core/payments/operations/proxy_payments_intent.rs  23% smaller
  crates/hyperswitch_domain_models/src/router_data.rs  23% smaller
  crates/router/src/routes/app.rs  22% smaller
  crates/router/src/connector/utils.rs  21% smaller
  crates/router/src/core/payments/payment_methods.rs  18% smaller
  crates/router/src/core/payments.rs  17% smaller
  crates/router_derive/src/macros/operation.rs  17% smaller
  crates/common_enums/src/enums.rs  16% smaller
  crates/router/src/compatibility/stripe/webhooks.rs  15% smaller
  crates/hyperswitch_interfaces/src/api/payments.rs  12% smaller
  crates/hyperswitch_interfaces/src/types.rs  11% smaller
  crates/hyperswitch_connectors/src/default_implementations.rs  10% smaller
  crates/router/src/types.rs  10% smaller
  crates/router/src/core/routing/helpers.rs  10% smaller
  crates/hyperswitch_connectors/src/connectors/worldpayvantiv.rs  8% smaller
  crates/hyperswitch_interfaces/src/api/payments_v2.rs  8% smaller
  crates/openapi/src/openapi.rs  5% smaller
  crates/hyperswitch_connectors/src/connectors/worldpayvantiv/transformers.rs  3% smaller
  crates/router/src/core/payments/operations/payment_response.rs  1% smaller
  crates/api_models/src/events/payment.rs  1% smaller
  api-reference/docs.json  0% smaller
  api-reference/v1/openapi_spec_v1.json  0% smaller
  api-reference/v1/payments/payments--cancel-post-capture.mdx Unsupported file format
  api-reference/v2/openapi_spec_v2.json  0% smaller
  crates/api_models/src/open_router.rs  0% smaller
  crates/api_models/src/payments.rs  0% smaller
  crates/common_enums/src/transformers.rs  0% smaller
  crates/hyperswitch_domain_models/src/router_flow_types/payments.rs  0% smaller
  crates/hyperswitch_domain_models/src/router_request_types.rs  0% smaller
  crates/openapi/src/routes/payments.rs  0% smaller
  crates/router/src/core/payments/flows.rs  0% smaller
  crates/router/src/core/payments/flows/cancel_post_capture_flow.rs  0% smaller
  crates/router/src/core/payments/operations/payment_cancel_post_capture.rs  0% smaller
  crates/router/src/core/payments/transformers.rs  0% smaller
  crates/router/src/routes/payments.rs  0% smaller
  crates/router/src/services/api.rs  0% smaller
  crates/router_env/src/logger/types.rs  0% smaller
  migrations/2025-08-04-143048_add-VoidedPostCharge/down.sql Unsupported file format
  migrations/2025-08-04-143048_add-VoidedPostCharge/up.sql Unsupported file format

@swangi-kumari swangi-kumari self-assigned this Aug 5, 2025
@swangi-kumari swangi-kumari added the C-feature Category: Feature request or enhancement label Aug 5, 2025
@hyperswitch-bot hyperswitch-bot bot added the M-database-changes Metadata: This PR involves database schema changes label Aug 5, 2025
@hyperswitch-bot hyperswitch-bot bot added the M-api-contract-changes Metadata: This PR involves API contract changes label Aug 5, 2025
@swangi-kumari swangi-kumari linked an issue Aug 5, 2025 that may be closed by this pull request
AkshayaFoiger
AkshayaFoiger previously approved these changes Aug 5, 2025
@swangi-kumari swangi-kumari changed the title feat(core) : Add support for Void after Capture feat(core): Add support for Void after Capture Aug 5, 2025
SanchithHegde
SanchithHegde previously approved these changes Aug 5, 2025
AkshayaFoiger
AkshayaFoiger previously approved these changes Aug 5, 2025
maverox
maverox previously approved these changes Aug 5, 2025
@likhinbopanna likhinbopanna added this pull request to the merge queue Aug 6, 2025
Merged via the queue into main with commit 57e92c9 Aug 6, 2025
18 of 22 checks passed
@likhinbopanna likhinbopanna deleted the cancel-post-capture branch August 6, 2025 08:04
pixincreate added a commit that referenced this pull request Aug 6, 2025
…ordea-sepa

* 'main' of github.com:juspay/hyperswitch: (89 commits)
  feat(router): [worldpayvantiv] add dispute list sync and implement dispute (#8830)
  feat(core): Add support for Void after Capture (#8839)
  fix(wasm): [FISERV] Added GooglePay Payment Method Type (#8832)
  feat(connector): [Barclaycard] Add Google Pay Payment Method (#8786)
  chore(version): 2025.08.06.0
  feat(core): Added additional authentication fields for 3ds external authentication (#8758)
  refactor(core): propagate network_transaction_id in response of payment (#8829)
  fix(core): add fix for stopping multiple event locking idempotent logs (#8034)
  feat(connector): [AUTHORIZEDOTNET] create connector customer flow added (#8774)
  feat(core): Add L2_L3 Data Support  (#8828)
  feat(connector): [NMI] Add mandates flow (#8652)
  fix(connector): [Wise] send uuid as connector_transaction_id (#8836)
  feat(core): populate UCS status_code in response headers (#8788)
  feat(external_services): Fixed Url for Unified Connector Service gRPC Client (#8587)
  chore: reorder v2 migrations folders (#8671)
  fix(router): Take merchant ID from headers in API Key - Revoke (v2) (#8808)
  fix(connector): (payload) currency auth key wasm changes (#8825)
  feat(payment-methods): add filtering logic for payment method list v2 (#8606)
  feat(router): add support for apple pay pre-decrypted token in the payments confirm call (#8815)
  chore(version): 2025.08.05.0
  ...
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
C-feature Category: Feature request or enhancement 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 support for Void after Capture
7 participants