diff --git a/crates/api/src/local_user/donation_dialog_shown.rs b/crates/api/src/local_user/donation_dialog_shown.rs
index 103d6382d..977121543 100644
--- a/crates/api/src/local_user/donation_dialog_shown.rs
+++ b/crates/api/src/local_user/donation_dialog_shown.rs
@@ -1,6 +1,6 @@
 use actix_web::web::{Data, Json};
-use chrono::Utc;
-use lemmy_api_common::{context::LemmyContext, SuccessResponse};
+use chrono::{DateTime, Utc};
+use lemmy_api_common::{context::LemmyContext, person::DonationDialogShown, SuccessResponse};
 use lemmy_db_schema::source::local_user::{LocalUser, LocalUserUpdateForm};
 use lemmy_db_views::structs::LocalUserView;
 use lemmy_utils::error::LemmyResult;
@@ -8,9 +8,15 @@ use lemmy_utils::error::LemmyResult;
 pub async fn donation_dialog_shown(
   context: Data<LemmyContext>,
   local_user_view: LocalUserView,
+  data: Json<DonationDialogShown>,
 ) -> LemmyResult<Json<SuccessResponse>> {
+  let last = if data.hide_permanently.unwrap_or_default() {
+    DateTime::<Utc>::MAX_UTC
+  } else {
+    Utc::now()
+  };
   let form = LocalUserUpdateForm {
-    last_donation_notification: Some(Utc::now()),
+    last_donation_notification: Some(last),
     ..Default::default()
   };
   LocalUser::update(&mut context.pool(), local_user_view.local_user.id, &form).await?;
diff --git a/crates/api_common/src/person.rs b/crates/api_common/src/person.rs
index ab7330ad1..212a3712d 100644
--- a/crates/api_common/src/person.rs
+++ b/crates/api_common/src/person.rs
@@ -567,3 +567,12 @@ pub struct ListLoginsResponse {
 pub struct ResendVerificationEmail {
   pub email: SensitiveString,
 }
+
+#[derive(Debug, Serialize, Deserialize, Clone, Default, PartialEq, Eq, Hash)]
+#[cfg_attr(feature = "full", derive(TS))]
+#[cfg_attr(feature = "full", ts(export))]
+/// Make a request to resend your verification email.
+pub struct DonationDialogShown {
+  #[cfg_attr(feature = "full", ts(optional))]
+  pub hide_permanently: Option<bool>,
+}
diff --git a/crates/api_common/src/site.rs b/crates/api_common/src/site.rs
index b921badd0..4fdb718fc 100644
--- a/crates/api_common/src/site.rs
+++ b/crates/api_common/src/site.rs
@@ -259,8 +259,6 @@ pub struct CreateSite {
   #[cfg_attr(feature = "full", ts(optional))]
   pub comment_downvotes: Option<FederationMode>,
   #[cfg_attr(feature = "full", ts(optional))]
-  pub disable_donation_dialog: Option<bool>,
-  #[cfg_attr(feature = "full", ts(optional))]
   pub disallow_nsfw_content: Option<bool>,
 }
 
@@ -392,10 +390,6 @@ pub struct EditSite {
   /// What kind of comment downvotes your site allows.
   #[cfg_attr(feature = "full", ts(optional))]
   pub comment_downvotes: Option<FederationMode>,
-  /// If this is true, users will never see the dialog asking to support Lemmy development with
-  /// donations.
-  #[cfg_attr(feature = "full", ts(optional))]
-  pub disable_donation_dialog: Option<bool>,
   /// Block NSFW content being created
   #[cfg_attr(feature = "full", ts(optional))]
   pub disallow_nsfw_content: Option<bool>,
diff --git a/crates/api_crud/src/site/create.rs b/crates/api_crud/src/site/create.rs
index 8fc2d9a8a..f06983c2e 100644
--- a/crates/api_crud/src/site/create.rs
+++ b/crates/api_crud/src/site/create.rs
@@ -103,7 +103,6 @@ pub async fn create_site(
     post_downvotes: data.post_downvotes,
     comment_upvotes: data.comment_upvotes,
     comment_downvotes: data.comment_downvotes,
-    disable_donation_dialog: data.disable_donation_dialog,
     disallow_nsfw_content: data.disallow_nsfw_content,
     ..Default::default()
   };
diff --git a/crates/api_crud/src/site/update.rs b/crates/api_crud/src/site/update.rs
index 3202295bf..d2c18e85c 100644
--- a/crates/api_crud/src/site/update.rs
+++ b/crates/api_crud/src/site/update.rs
@@ -112,7 +112,6 @@ pub async fn update_site(
     post_downvotes: data.post_downvotes,
     comment_upvotes: data.comment_upvotes,
     comment_downvotes: data.comment_downvotes,
-    disable_donation_dialog: data.disable_donation_dialog,
     disallow_nsfw_content: data.disallow_nsfw_content,
     ..Default::default()
   };
diff --git a/crates/db_schema/src/schema.rs b/crates/db_schema/src/schema.rs
index d955ae482..53d42e079 100644
--- a/crates/db_schema/src/schema.rs
+++ b/crates/db_schema/src/schema.rs
@@ -436,7 +436,6 @@ diesel::table! {
         post_downvotes -> FederationModeEnum,
         comment_upvotes -> FederationModeEnum,
         comment_downvotes -> FederationModeEnum,
-        disable_donation_dialog -> Bool,
         default_post_time_range_seconds -> Nullable<Int4>,
         disallow_nsfw_content -> Bool,
         users -> Int8,
diff --git a/crates/db_schema/src/source/local_site.rs b/crates/db_schema/src/source/local_site.rs
index 870a1536e..372e49483 100644
--- a/crates/db_schema/src/source/local_site.rs
+++ b/crates/db_schema/src/source/local_site.rs
@@ -83,9 +83,6 @@ pub struct LocalSite {
   pub comment_upvotes: FederationMode,
   /// What kind of comment downvotes your site allows.
   pub comment_downvotes: FederationMode,
-  /// If this is true, users will never see the dialog asking to support Lemmy development with
-  /// donations.
-  pub disable_donation_dialog: bool,
   #[cfg_attr(feature = "full", ts(optional))]
   /// A default time range limit to apply to post sorts, in seconds.
   pub default_post_time_range_seconds: Option<i32>,
@@ -163,8 +160,6 @@ pub struct LocalSiteInsertForm {
   #[new(default)]
   pub comment_downvotes: Option<FederationMode>,
   #[new(default)]
-  pub disable_donation_dialog: Option<bool>,
-  #[new(default)]
   pub default_post_time_range_seconds: Option<Option<i32>>,
   #[new(default)]
   pub disallow_nsfw_content: bool,
@@ -201,7 +196,6 @@ pub struct LocalSiteUpdateForm {
   pub post_downvotes: Option<FederationMode>,
   pub comment_upvotes: Option<FederationMode>,
   pub comment_downvotes: Option<FederationMode>,
-  pub disable_donation_dialog: Option<bool>,
   pub default_post_time_range_seconds: Option<Option<i32>>,
   pub disallow_nsfw_content: Option<bool>,
 }
diff --git a/migrations/2025-01-10-135505_donation-dialog/down.sql b/migrations/2025-01-10-135505_donation-dialog/down.sql
index 8956c15eb..7ee78595c 100644
--- a/migrations/2025-01-10-135505_donation-dialog/down.sql
+++ b/migrations/2025-01-10-135505_donation-dialog/down.sql
@@ -1,6 +1,3 @@
 ALTER TABLE local_user
     DROP COLUMN last_donation_notification;
 
-ALTER TABLE local_site
-    DROP COLUMN disable_donation_dialog;
-
diff --git a/migrations/2025-01-10-135505_donation-dialog/up.sql b/migrations/2025-01-10-135505_donation-dialog/up.sql
index 0f263e004..33e6ae834 100644
--- a/migrations/2025-01-10-135505_donation-dialog/up.sql
+++ b/migrations/2025-01-10-135505_donation-dialog/up.sql
@@ -3,6 +3,3 @@
 ALTER TABLE local_user
     ADD COLUMN last_donation_notification timestamptz NOT NULL DEFAULT (now() - (random() * (interval '12 months')));
 
-ALTER TABLE local_site
-    ADD COLUMN disable_donation_dialog boolean NOT NULL DEFAULT FALSE;
-