diff --git a/installer/data/mysql/atomicupdate/bug_40659.pl b/installer/data/mysql/atomicupdate/bug_40659.pl
new file mode 100755
index 0000000000..3a943ace6a
--- /dev/null
+++ b/installer/data/mysql/atomicupdate/bug_40659.pl
@@ -0,0 +1,19 @@
+use Modern::Perl;
+use Koha::Installer::Output qw(say_warning say_success say_info);
+
+return {
+ bug_number => "40659",
+ description => "Add VIRTUALCARD default letter",
+ up => sub {
+ my ($args) = @_;
+ my ( $dbh, $out ) = @$args{qw(dbh out)};
+
+ $dbh->do(
+ q{
+ INSERT IGNORE INTO letter
+ (module, code, branchcode, name, is_html, title, content, message_transport_type, lang)
+ VALUES ('members','VIRTUALCARD','','OPAC virtual card',1,'OPAC virtual card','','email','default');
+ }
+ ) == 1 && say_success( $out, "Added VIRTUALCARD default letter" );
+ },
+};
diff --git a/installer/data/mysql/en/mandatory/sample_notices.yml b/installer/data/mysql/en/mandatory/sample_notices.yml
index 79bdc7389b..3ad265fe63 100644
--- a/installer/data/mysql/en/mandatory/sample_notices.yml
+++ b/installer/data/mysql/en/mandatory/sample_notices.yml
@@ -2721,3 +2721,13 @@ tables:
- "[% skipped %] records skipped"
- "[% in_error %] records in error"
- "[% total %] total"
+ - module: members
+ code: VIRTUALCARD
+ branchcode: ""
+ name: "OPAC virtual card"
+ is_html: 1
+ title: "OPAC virtual card"
+ message_transport_type: email
+ lang: default
+ content:
+ - ""
diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/opac.pref b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/opac.pref
index eb974797a8..c87397bca1 100644
--- a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/opac.pref
+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/opac.pref
@@ -600,7 +600,7 @@ OPAC:
industrial2of5: "Industrial 2 of 5"
iata2of5: "IATA 2 of 5"
coop2of5: "COOP 2 of 5"
- - " barcode in the patron's virtual card."
+ - " barcode in the patron's virtual card. To customize the card layout, see the VIRTUALCARD template in 'Tools > Notices and slips'"
OpenURL:
-
- 'Complete URL of OpenURL resolver (starting with http:// or https://):'
diff --git a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-virtual-card.tt b/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-virtual-card.tt
index 7448c0a9d1..5e235e3db9 100644
--- a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-virtual-card.tt
+++ b/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-virtual-card.tt
@@ -34,7 +34,7 @@