def METHOD_NAME(cls, root, info, *, id, amount=None, payment_gateways=None):
    manager = get_plugin_manager_promise(info.context).get()
    source_object = cls.clean_source_object(
        info,
        id,
        PaymentGatewayInitializeErrorCode.INVALID.value,
        PaymentGatewayInitializeErrorCode.NOT_FOUND.value,
        manager=manager,
    )
    payment_gateways_data = []
    if payment_gateways:
        payment_gateways_data = [
            PaymentGatewayData(
                app_identifier=gateway["id"], data=gateway.get("data")
            )
            for gateway in payment_gateways
        ]
    amount = cls.get_amount(source_object, amount)
    response_data = manager.payment_gateway_initialize_session(
        amount, payment_gateways_data, source_object
    )
    return cls(
        gateway_configs=cls.prepare_response(payment_gateways_data, response_data),
        errors=[],
    )