[FEAT] [CONNECTOR: NORDEA] Implement SEPA Bank Debit

## Relevant Docs
 
- [Access Authorization API](https://developer.nordeaopenbanking.com/documentation?api=Access%20Authorization%20API) (To get Access Token)
- [Payments API SEPA Credit Transfer](https://developer.nordeaopenbanking.com/documentation?api=Payments%20API%20SEPA%20Credit%20Transfer)
- [Payment Common API](https://developer.nordeaopenbanking.com/documentation?api=Payments%20Common%20API) (I assume this doc gets updated first often)
- [Nordea developer FAQ](https://support.nordeaopenbanking.com/hc/en-us)

### Digest and Signature creation Docs

- [Digest creation and calculation FAQ](https://support.nordeaopenbanking.com/hc/en-us/articles/7951756726044-Digest-creation-calculation-FAQ)
- [eIDAS certificate](https://developer.nordeaopenbanking.com/documentation?api=Access%20Authorization%20API#authentication_with_eidas_certificate)
- [Generation of Signature](https://developer.nordeaopenbanking.com/documentation?api=Access%20Authorization%20API#testing_eidas_signature) (postman JavaScript code)

## Testing

- Nordea Playground (Try API Console): https://developer.nordeaopenbanking.com/console/
- [Personal API Postman collection v5](https://raw.githubusercontent.com/NordeaOB/swaggers/master/Nordea%20Open%20Banking%20v5%20Personal%20API.postman_collection.json)
- [Personal API Postman collection v4](https://raw.githubusercontent.com/NordeaOB/swaggers/master/Nordea%20Open%20Banking%20v4%20Personal%20API%20Example%20FI%2CDK%2CNO%20and%20SE.postman_collection.json)
<think>
PR Context:
- Title: feat(core/connector): introduce authentication token flow and add sepa bankdebit for nordea
- Merged: 2025-08-11T07:26:26Z
- 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
- [x] Documentation
- [ ] CI/CD

## Description
<!-- Describe your changes in detail -->

### Summary

This PR introduces Nordea as a new payment connector with support for SEPA bank debit payments. It also implements a new **Authentication Token Flow** mechanism that enables two-step OAuth authentication, which is required by 
</think>

To implement this, you'll need to modify:


**Detailed Implementation:**


**Commit 1:** feat(core/connector): introduce authentication token flow and add sepa bankdebit for nordea (#8133)
Files to modify:


**crates/api_models/src/admin.rs**
  Modify existing code

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

**crates/common_utils/src/lib.rs**
  Add:
    - function: pub::now_rfc7231_http_date

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

**crates/hyperswitch_connectors/src/connectors/nordea.rs**
  Remove:
    - function: private::get_auth_header
  Add:
    - function: pub::generate_digest_from_request
    - function: private::format_private_key
    - function: private::generate_signature
    - function: private::get_form_urlencoded_payload
    - function: private::build_request
    - function: private::get_http_method
    - function: private::get_http_method
    - function: private::build_request
    - function: private::build_request
    - function: private::build_request
    - function: private::get_connector_about
    - function: private::get_supported_payment_methods
    - function: private::get_supported_webhook_flows
    - function: private::authentication_token_for_token_creation
    - struct: private::SignatureParams
    - impl: impl api::ConnectorAuthenticationToken for Nordea
    - impl: impl api::PaymentsPreProcessing for Nordea
    - impl: impl ConnectorIntegration<Session, PaymentsSessionData, PaymentsResponseData> for Nordea
    - impl: impl ConnectorIntegration<SetupMandate, SetupMandateRequestData, PaymentsResponseData> for Nordea
    - impl: impl ConnectorIntegration<Capture, PaymentsCaptureData, PaymentsResponseData> for Nordea
    - impl: impl ConnectorIntegration<Void, PaymentsCancelData, PaymentsResponseData> for Nordea
    - impl: impl ConnectorIntegration<Execute, RefundsData, RefundsResponseData> for Nordea
    - impl: impl ConnectorIntegration<RSync, RefundsData, RefundsResponseData> for Nordea
    - impl: impl ConnectorSpecifications for Nordea
    - mod: private::requests
    - mod: private::responses

**crates/hyperswitch_connectors/src/connectors/nordea/requests.rs**
  Add:
    - struct: pub::NordeaRouterData
    - struct: pub::NordeaOAuthRequest
    - struct: pub::NordeaOAuthExchangeRequest
    - struct: pub::AccountNumber
    - struct: pub::CreditorAccountReference
    - struct: pub::NordeaAddress
    - struct: pub::CreditorBank
    - struct: pub::CreditorAccount
    - struct: pub::DebitorAccount
    - struct: pub::InstructedAmount
    - struct: pub::RecurringInformation
    - struct: pub::ThirdPartyMessages
    - struct: pub::NordeaPaymentsRequest
    - struct: pub::NordeaPaymentsConfirmRequest
    - enum: pub::GrantType
    - enum: pub::AccessScope
    - enum: pub::AccountType
    - enum: pub::RecurrenceType
    - enum: pub::FundsAvailabilityRequest
    - enum: pub::PaymentsUrgency
    - enum: pub::TppCategory
    - enum: pub::TppCode
    - enum: pub::NordeaAuthenticationMethod
    - enum: pub::NordeaConfirmLanguage

**crates/hyperswitch_connectors/src/connectors/nordea/responses.rs**
  Add:
    - struct: pub::NordeaOAuthExchangeResponse
    - struct: pub::NordeaGroupHeader
    - struct: pub::NordeaResponseLinks
    - struct: pub::TransactionFee
    - struct: pub::BankFee
    - struct: pub::ExchangeRate
    - struct: pub::MessagePagination
    - struct: pub::NordeaPaymentsInitiateResponseData
    - struct: pub::NordeaPaymentsInitiateResponse
    - struct: pub::NordeaPaymentsConfirmErrorObject
    - struct: pub::NordeaPaymentsResponseWrapper
    - struct: pub::NordeaPaymentsConfirmResponse
    - struct: pub::NordeaOriginalRequest
    - struct: pub::NordeaFailures
    - struct: pub::NordeaErrorBody
    - struct: pub::NordeaErrorResponse
    - enum: pub::NordeaPaymentStatus
    - enum: pub::FeesType
    - enum: pub::ChargeBearer

**crates/hyperswitch_connectors/src/connectors/nordea/transformers.rs**
  Remove:
    - function: private::try_from
    - struct: pub::NordeaRouterData
    - struct: pub::NordeaPaymentsRequest
    - struct: pub::NordeaCard
    - impl: impl TryFrom<&NordeaRouterData<&PaymentsAuthorizeRouterData>> for NordeaPaymentsRequest

**crates/hyperswitch_connectors/src/default_implementations.rs**
  Add:
    - impl: impl ConnectorAuthenticationToken for connectors::DummyConnector<T>
    - impl: impl ConnectorIntegration<
        AccessTokenAuthentication,
        AccessTokenAuthenticationRequestData,
        AccessTokenAuthenticationResponse,
    > for connectors::DummyConnector<T>

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

**crates/hyperswitch_connectors/src/utils.rs**
  Add:
    - function: private::get_ip_address

**crates/hyperswitch_domain_models/src/router_data.rs**
  Add:
    - struct: pub::AccessTokenAuthenticationResponse

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

**crates/hyperswitch_domain_models/src/router_data_v2/flow_common_types.rs**
  Add:
    - struct: pub::AuthenticationTokenFlowData

**crates/hyperswitch_domain_models/src/router_flow_types/access_token_auth.rs**
  Add:
    - struct: pub::AccessTokenAuthentication

**crates/hyperswitch_domain_models/src/router_request_types.rs**
  Add:
    - function: private::try_from
    - function: private::try_from
    - struct: pub::AccessTokenAuthenticationRequestData
    - impl: impl TryFrom<router_data::ConnectorAuthType> for AccessTokenAuthenticationRequestData
    - impl: impl TryFrom<(
        router_data::ConnectorAuthType,
        Option<AccessTokenAuthenticationResponse>,
    )> for AccessTokenRequestData

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

**crates/hyperswitch_interfaces/src/api.rs**
  Add:
    - trait: pub::ConnectorAuthenticationTokenV2

**crates/hyperswitch_interfaces/src/connector_integration_interface.rs**
  Add:
    - function: private::authentication_token_for_token_creation

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

**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 AuthenticationTokenFlowData

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

**crates/payment_methods/src/configs/payment_connector_required_fields.rs**
  Modify existing code

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

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

**crates/router/src/core/payments/access_token.rs**
  Add:
    - function: pub::execute_authentication_token

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

**crates/router/src/types.rs**
  Remove:
    - function: private::foreign_try_from
    - impl: impl ForeignTryFrom<ConnectorAuthType> for AccessTokenRequestData

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

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

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

**crates/test_utils/src/connector_auth.rs**
  Modify existing code
{"issue_number": 8134, "pr_number": 8133, "commits_count": 1, "files_changed": 30, "response_length": 9320, "file_count": 51, "needs_breakdown": true}