feat(core): add additional revenue recovery call flow

## Type of Change
<!-- Put an `x` in the boxes that apply -->

- [ ] Bugfix
- [ ] New feature
- [x] Enhancement
- [ ] Refactoring
- [ ] Dependency updates
- [ ] Documentation
- [ ] CI/CD

## Description
For some billing connectors, we get limited data in the webhook that is not sufficient to use. So we need to make an additional api call for this extra data. This pr adds that flow.



### Additional Changes

- [ ] This PR modifies the API contract
- [ ] This PR modifies the database schema
- [ ] This PR modifies application configuration/environment variables

<!--
Provide links to the files with corresponding changes.

Following are the paths where you can find config files:
1. `config`
2. `crates/router/src/configs`
3. `loadtest/config`
-->


## Motivation and Context
No testing required since its just defining the flow not using it.


## Checklist
<!-- Put an `x` in the boxes that apply -->

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

<think>
PR Context:
- Title: feat(connector): Add recovery support for stripebilling
- Merged: 2025-04-02T07:49:57Z
- Files changed: 30 files
- Commits: 30 commits

Implementation approach:
## Type of Change
<!-- Put an `x` in the boxes that apply -->

- [ ] Bugfix
- [x] New feature
- [x] Enhancement
- [ ] Refactoring
- [ ] Dependency updates
- [ ] Documentation
- [ ] CI/CD

## Description
Context: In case of some billing connectors we dont get the enough data in the webhook itself to support creation of payment intent and payment attempt in our system.  So previously we derived a flow named "AdditionalRevenuerecoveryDetails" in this PR:#7402 which name is now changed t
</think>

To implement this, you'll need to modify:


**Detailed Implementation:**


**Commit 1:** feat(connector): Add recovery support for stripebilling (#7461)
Co-authored-by: Nishanth Challa <nis
Files to modify:


**crates/api_models/src/webhooks.rs**
  Add:
    - function: pub::get_connector_transaction_id_as_string
    - impl: impl ObjectReferenceId

**crates/common_enums/src/connector_enums.rs**
  Modify existing code

**crates/connector_configs/src/connector.rs**
  Modify existing code

**crates/hyperswitch_connectors/src/connectors/stripebilling.rs**
  Add:
    - function: private::get_headers
    - function: private::get_content_type
    - function: private::get_revenue_recovery_attempt_details
    - function: private::get_revenue_recovery_invoice_details
    - impl: impl api::revenue_recovery::BillingConnectorPaymentsSyncIntegration for Stripebilling

**crates/hyperswitch_connectors/src/connectors/stripebilling/transformers.rs**
  Add:
    - function: pub::get_webhook_object_from_body
    - function: pub::get_invoice_webhook_data_from_body
    - function: private::try_from
    - function: private::from
    - struct: pub::StripebillingRecoveryDetailsData
    - impl: impl StripebillingWebhookBody
    - impl: impl StripebillingInvoiceBody
    - impl: impl TryFrom<StripebillingInvoiceBody> for revenue_recovery::RevenueRecoveryInvoiceData
    - impl: impl From<StripebillingFundingTypes> for common_enums::PaymentMethodType
    - mod: pub::auth_headers

**crates/hyperswitch_connectors/src/default_implementations.rs**
  Modify existing code

**crates/hyperswitch_connectors/src/default_implementations_v2.rs**
  Modify existing code

**crates/hyperswitch_domain_models/src/revenue_recovery.rs**
  Add:
    - function: private::from
    - function: private::from
    - impl: impl From<&BillingConnectorPaymentsSyncResponse> for RevenueRecoveryInvoiceData
    - impl: impl From<&BillingConnectorPaymentsSyncResponse> for RevenueRecoveryAttemptData

**crates/hyperswitch_domain_models/src/router_data_v2/flow_common_types.rs**
  Remove:
    - struct: pub::GetAdditionalRevenueRecoveryFlowCommonData
  Add:
    - struct: pub::BillingConnectorPaymentsSyncFlowData

**crates/hyperswitch_domain_models/src/router_flow_types/revenue_recovery.rs**
  Remove:
    - struct: pub::GetAdditionalRevenueRecoveryDetails
  Add:
    - struct: pub::BillingConnectorPaymentsSync

**crates/hyperswitch_domain_models/src/router_request_types/revenue_recovery.rs**
  Remove:
    - struct: pub::GetAdditionalRevenueRecoveryRequestData
  Add:
    - struct: pub::BillingConnectorPaymentsSyncRequest

**crates/hyperswitch_domain_models/src/router_response_types/revenue_recovery.rs**
  Remove:
    - struct: pub::GetAdditionalRevenueRecoveryResponseData
  Add:
    - struct: pub::BillingConnectorPaymentsSyncResponse

**crates/hyperswitch_domain_models/src/types.rs**
  Modify existing code

**crates/hyperswitch_interfaces/src/api.rs**
  Modify existing code

**crates/hyperswitch_interfaces/src/api/revenue_recovery.rs**
  Modify existing code

**crates/hyperswitch_interfaces/src/api/revenue_recovery_v2.rs**
  Remove:
    - trait: pub::RevenueRecoveryV2
  Add:
    - trait: pub::RevenueRecoveryV2

**crates/hyperswitch_interfaces/src/conversion_impls.rs**
  Add:
    - function: private::from_old_router_data
    - function: private::to_old_router_data
    - impl: impl RouterDataConversion<T, Req, Resp> for BillingConnectorPaymentsSyncFlowData

**crates/hyperswitch_interfaces/src/types.rs**
  Modify existing code

**crates/router/src/configs/secrets_transformers.rs**
  Modify existing code

**crates/router/src/configs/settings.rs**
  Remove:
    - struct: pub::GetAdditionalRevenueRecoveryDetailsCall
  Add:
    - struct: pub::BillingConnectorPaymentsSyncCall

**crates/router/src/core/admin.rs**
  Modify existing code

**crates/router/src/core/errors.rs**
  Modify existing code

**crates/router/src/core/payments/flows.rs**
  Modify existing code

**crates/router/src/core/webhooks/incoming_v2.rs**
  Modify existing code

**crates/router/src/core/webhooks/recovery_incoming.rs**
  Add:
    - function: private::get_recovery_invoice_details
    - function: private::get_recovery_invoice_transaction_details
    - function: private::get_recovery_payment_attempt
    - function: private::handle_billing_connector_payment_sync_call
    - function: private::get_billing_connector_payment_details
    - function: private::inner
    - function: private::construct_router_data_for_billing_connector_payment_sync_call
    - function: private::inner
    - struct: pub::BillingConnectorPaymentsSyncResponseData
    - struct: pub::BillingConnectorPaymentsSyncFlowRouterData
    - impl: impl BillingConnectorPaymentsSyncResponseData
    - impl: impl BillingConnectorPaymentsSyncFlowRouterData

**crates/router/src/services/api.rs**
  Modify existing code

**crates/router/src/types.rs**
  Modify existing code

**crates/router/src/types/api.rs**
  Modify existing code

**crates/router/src/types/transformers.rs**
  Modify existing code
{"issue_number": 7402, "pr_number": 7461, "commits_count": 1, "files_changed": 30, "response_length": 5731, "file_count": 31, "needs_breakdown": true}