Issue: [FEATURE] [CONNECTOR] Nordea

Integrate a new connector Nordea. 

Developer Docs: https://developer.nordeaopenbanking.com/documentation
Login Dashboard: https://developer.nordeaopenbanking.com/login



Resolution: <think>
PR Context:
- Title: feat(connector): [nordea] template code
- Merged: 2025-05-21T07:49:27Z
- Files changed: 24 files
- Commits: 4 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
<!-- Describe your changes in detail -->

Connector template code for new connector `Nordea`.

Developer Docs: https://developer.nordeaopenbanking.com/documentation
Login Dashboard: https://developer.nordeaopenbanking.com/login

### Additional Changes

- [x] This PR modifies 
</think>

To implement this, you'll need to modify:


**Detailed Implementation:**


**Commit 1:** feat(connector): [nordea] template code (#8056)
Co-authored-by: hyperswitch-bot[bot] <148525504+hype
Files to modify:


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

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

**crates/hyperswitch_connectors/src/connectors.rs**
  Add:
    - mod: pub::nordea

**crates/hyperswitch_connectors/src/connectors/nordea.rs**
  Add:
    - function: pub::new
    - function: private::build_headers
    - function: private::id
    - function: private::get_currency_unit
    - function: private::common_get_content_type
    - function: private::base_url
    - function: private::get_auth_header
    - function: private::build_error_response
    - function: private::get_headers
    - function: private::get_content_type
    - function: private::get_url
    - function: private::get_request_body
    - function: private::build_request
    - function: private::handle_response
    - function: private::get_error_response
    - function: private::get_headers
    - function: private::get_content_type
    - function: private::get_url
    - function: private::build_request
    - function: private::handle_response
    - function: private::get_error_response
    - function: private::get_headers
    - function: private::get_content_type
    - function: private::get_url
    - function: private::get_request_body
    - function: private::build_request
    - function: private::handle_response
    - function: private::get_error_response
    - function: private::get_headers
    - function: private::get_content_type
    - function: private::get_url
    - function: private::get_request_body
    - function: private::build_request
    - function: private::handle_response
    - function: private::get_error_response
    - function: private::get_headers
    - function: private::get_content_type
    - function: private::get_url
    - function: private::build_request
    - function: private::handle_response
    - function: private::get_error_response
    - function: private::get_webhook_object_reference_id
    - function: private::get_webhook_event_type
    - function: private::get_webhook_resource_object
    - struct: pub::Nordea
    - impl: impl Nordea
    - impl: impl api::Payment for Nordea
    - impl: impl api::PaymentSession for Nordea
    - impl: impl api::ConnectorAccessToken for Nordea
    - impl: impl api::MandateSetup for Nordea
    - impl: impl api::PaymentAuthorize for Nordea
    - impl: impl api::PaymentSync for Nordea
    - impl: impl api::PaymentCapture for Nordea
    - impl: impl api::PaymentVoid for Nordea
    - impl: impl api::Refund for Nordea
    - impl: impl api::RefundExecute for Nordea
    - impl: impl api::RefundSync for Nordea
    - impl: impl api::PaymentToken for Nordea
    - impl: impl ConnectorIntegration<PaymentMethodToken, PaymentMethodTokenizationData, PaymentsResponseData> for Nordea
    - impl: impl ConnectorCommonExt<Flow, Request, Response> for Nordea
    - impl: impl ConnectorCommon for Nordea
    - impl: impl ConnectorValidation for Nordea
    - impl: impl ConnectorIntegration<Session, PaymentsSessionData, PaymentsResponseData> for Nordea
    - impl: impl ConnectorIntegration<AccessTokenAuth, AccessTokenRequestData, AccessToken> for Nordea
    - impl: impl ConnectorIntegration<SetupMandate, SetupMandateRequestData, PaymentsResponseData> for Nordea
    - impl: impl ConnectorIntegration<Authorize, PaymentsAuthorizeData, PaymentsResponseData> for Nordea
    - impl: impl ConnectorIntegration<PSync, PaymentsSyncData, 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 webhooks::IncomingWebhook for Nordea
    - impl: impl ConnectorSpecifications for Nordea
    - mod: pub::transformers

**crates/hyperswitch_connectors/src/connectors/nordea/transformers.rs**
  Add:
    - function: private::from
    - function: private::try_from
    - function: private::try_from
    - function: private::from
    - function: private::try_from
    - function: private::try_from
    - function: private::from
    - function: private::try_from
    - function: private::try_from
    - struct: pub::NordeaRouterData
    - struct: pub::NordeaPaymentsRequest
    - struct: pub::NordeaCard
    - struct: pub::NordeaAuthType
    - struct: pub::NordeaPaymentsResponse
    - struct: pub::NordeaRefundRequest
    - struct: pub::RefundResponse
    - struct: pub::NordeaErrorResponse
    - enum: pub::NordeaPaymentStatus
    - enum: pub::RefundStatus
    - impl: impl From<(StringMinorUnit, T)> for NordeaRouterData<T>
    - impl: impl TryFrom<&NordeaRouterData<&PaymentsAuthorizeRouterData>> for NordeaPaymentsRequest
    - impl: impl TryFrom<&ConnectorAuthType> for NordeaAuthType
    - impl: impl From<NordeaPaymentStatus> for common_enums::AttemptStatus
    - impl: impl TryFrom<ResponseRouterData<F, NordeaPaymentsResponse, T, PaymentsResponseData>> for RouterData<F, T, PaymentsResponseData>
    - impl: impl TryFrom<&NordeaRouterData<&RefundsRouterData<F>>> for NordeaRefundRequest
    - impl: impl From<RefundStatus> for enums::RefundStatus
    - impl: impl TryFrom<RefundsResponseRouterData<Execute, RefundResponse>> for RefundsRouterData<Execute>
    - impl: impl TryFrom<RefundsResponseRouterData<RSync, RefundResponse>> for RefundsRouterData<RSync>

**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/configs.rs**
  Modify existing code

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

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

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

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

**crates/router/tests/connectors/main.rs**
  Add:
    - mod: private::nordea

**crates/router/tests/connectors/nordea.rs**
  Add:
    - function: private::get_data
    - function: private::get_auth_token
    - function: private::get_name
    - function: private::get_default_payment_info
    - function: private::payment_method_details
    - function: private::should_only_authorize_payment
    - function: private::should_capture_authorized_payment
    - function: private::should_partially_capture_authorized_payment
    - function: private::should_sync_authorized_payment
    - function: private::should_void_authorized_payment
    - function: private::should_refund_manually_captured_payment
    - function: private::should_partially_refund_manually_captured_payment
    - function: private::should_sync_manually_captured_refund
    - function: private::should_make_payment
    - function: private::should_sync_auto_captured_payment
    - function: private::should_refund_auto_captured_payment
    - function: private::should_partially_refund_succeeded_payment
    - function: private::should_refund_succeeded_payment_multiple_times
    - function: private::should_sync_refund
    - function: private::should_fail_payment_for_incorrect_cvc
    - function: private::should_fail_payment_for_invalid_exp_month
    - function: private::should_fail_payment_for_incorrect_expiry_year
    - function: private::should_fail_void_payment_for_auto_capture
    - function: private::should_fail_capture_for_invalid_payment
    - function: private::should_fail_for_refund_amount_higher_than_payment_amount
    - struct: private::NordeaTest
    - impl: impl ConnectorActions for NordeaTest
    - impl: impl utils::Connector for NordeaTest

**crates/test_utils/src/connector_auth.rs**
  Modify existing code