## Setup
- Version: 5.12.6
- Environment: Docker Alpina Linux based.
## Interfa…ce
- Flutter: []
- React: []
- Both: []
Not sure, the one that is in the Docker Image.
## Checklist
- Can you replicate the issue on our v5 demo site https://demo.invoiceninja.com or https://react.invoicing.co/demo?
I’m not able to recreate the specific conditions with the Mollie Payment gateway configured because the Mollie profile ID is confidential, and thus cannot be used on a public demo.
- Have you searched existing issues?
I have searched for existing issues, but I have not found any that are similar.
- Have you reported this to Slack/forum before posting?
Yes to the forum: https://forum.invoiceninja.com/t/cancelling-invoice-payment-via-mollie-payments-ideal-changes-invoice/22198/1
- Have you inspected the logs in storage/logs/laravel.log for any errors?
I have there are lines about e-mails with the payment cancellation.
## Describe the bug
When a client goes to the view invoice page, and gets redirected to iDeal via Mollie and then proceeds to not pay (after 15 min) or press cancel inside iDeal, then redirected to a failed payment page of Invoice Ninja. The initital invoice amount is reduced, there are items or tasks missing from the invoice. Even in the dashboard, the items are just gone, the history tab shows no changes.
### Steps To Reproduce
1. Add and setup Mollie Payments as payment provider.
2. Only configure iDeal
3. Create a sample client and invoice
4. When having received the invoice press the view button, you will be redirected to iDeal.
5. Choose a sample bank and press cancel, or set it as status in the Mollie test page.
6. In the client portal or dashboard look at the invoice, the amount should be decreased.
### Expected Behavior
I expect the invoice to remain unchanged when a client cancels the payment, they can even after cancelling press pay now again in Invoice Ninja client portal and pay the reduced amount.
## Additional context
I have already tried disabling the one page payment flow, but it didn’t help. Even tried enabling lock invoices, but the amount is still reduced.
I’ve recently updated Invoice Ninja to the latest version, and after that I configured Mollie as payment gateway. I don’t have an e-mail server configured, because I don’t want Invoice Ninja sending e-mail.
### Screenshots
### Logs
```
--Ta18-KJS--
[2025-06-30 22:47:49] production.DEBUG: From: Self Hosted User <[email protected]>
To: [redacted]
Reply-To: [redacted] <[redacted]>
Subject: Betaling mislukt voor factuur 20250015
X-Tag: rEwTZcGV6yAvQgPwZAfZ8DJhXcUcpFLz
x-invitation: IZ5oJzvW3lXJwb2IoNbIa2eWvb1OWtlo
MIME-Version: 1.0
Date: Mon, 30 Jun 2025 22:47:49 +0000
Message-ID: <[email protected]>
Content-Type: multipart/alternative; boundary=_zCAMusN
--_zCAMusN
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
Betaling voor factuur 20250015 voor een bedrag van €242,00 is mislukt.
--_zCAMusN
Content-Type: text/html; charset=utf-8
Content-Transfer-Encoding: quoted-printable
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
<meta name="color-scheme" content="light dark">
<meta name="supported-color-schemes" content="light dark">
<style>
@import url("https://use.typekit.net/zxn7pho.css");
</style>
<style type="text/css">
:root {
color-scheme: light dark;
supported-color-schemes: light dark;
}
.file_icon {
filter: invert(1);
}
/** Content-specific styles. **/
#content .button {
display: inline-block;
background-color: #298AAB;
color: #ffffff;
text-transform: uppercase;
letter-spacing: 2px;
text-decoration: none;
font-size: 13px;
padding: 15px 50px;
font-weight: 600;
margin-bottom: 5px;
margin-top: 10px;
}
#content h1 {
font-family: 'canada-type-gibson', 'roboto', Arial, Helvetica, sans-serif;
font-weight: 600;
font-size: 32px;
margin-top: 20px;
margin-bottom: 30px;
}
#content > p {
font-size: 16px;
font-family: 'roboto', Arial, Helvetica, sans-serif;
font-weight: 500;
}
#content .center {
text-align: center;
}
#content .left {
text-align: left !important;
}
.stamp {
transform: rotate(12deg);
color: #555;
font-size: 3rem;
font-weight: 700;
border: 0.25rem solid #555;
text-transform: uppercase;
border-radius: 1rem;
font-family: 'Courier';
mix-blend-mode: multiply;
z-index:200 !important;
position: relative;
}
.is-paid {
color: #D23;
border: 1rem double #D23;
transform: rotate(-5deg);
font-size: 6rem;
font-family: "Open sans", Helvetica, Arial, sans-serif;
border-radius: 0;
padding: 0.5rem;
opacity: 0.2;
z-index:200 !important;
position: relative;
}
a.doc_links {
text-decoration: none;
padding-bottom: 10px;
display: inline-block;
color: inherit !important;
}
.new_button a {
background-color: #298AAB;
}
.logo {
}
</style>
</head>
<body
style="margin: 0; padding: 0; font-family: 'roboto', Arial, Helvetica, sans-serif; color: #3b3b3b;-webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale;">
<table role="presentation" border="0" cellpadding="0" cellspacing="0" width="100%" >
<tr>
<td>
<table align="center" border="0" cellpadding="0" cellspacing="0" width="570"
style="border: 1px solid #c2c2c2;" class="dark-bg-base">
<tr>
<td align="center" cellpadding="20">
<div style="border: 1px solid #c2c2c2; border-bottom: none; padding-bottom: 10px; border-top-left-radius: 3px; border-top-right-radius: 3px; padding-top:10px;">
<img class="" src="https://[redacted]/storage/rEwTZcGV6yAvQgPwZAfZ8DJhXcUcpFLz/XcqRyYJlnQi0OKHocBD7JTtaKnvpHIUzQtSS3n3F.png" alt=" " border="0" style="display: block; width: auto; max-width: 300px; max-height: 100px; height: auto; margin: 0 auto;">
</div>
</td>
</tr>
<tr>
<td cellpadding="5">
<div style="border: 1px solid #c2c2c2; border-top: none; border-bottom: none; padding: 20px; text-align: left" id="content">
<div style="padding-top: 10px;"></div>
<p>[redacted]<br><br>Betaling voor factuur 20250015 voor een bedrag van €242,00 is mislukt.</p><div>Geannuleerd</div><br><div><a href="https://[redacted]/client/invoice/IZ5oJzvW3lXJwb2IoNbIa2eWvb1OWtlo" target="_blank">Bekijk factuur</a></div>
<div>
<a href="#"
style="display: inline-block;background-color: #298AAB; color: #ffffff; text-transform: uppercase;letter-spacing: 2px; text-decoration: none; font-size: 13px; font-weight: 600;">
</a>
</div>
</div>
</td>
</tr>
<tr>
<td height="0">
<div style="border: 1px solid #c2c2c2; border-top: none; border-bottom: none; padding: 5px; text-align: center" id="content"> </div>
</td>
</tr>
<tr>
<td cellpadding="20" bgcolor="#f9f9f9">
<div class="dark-bg dark-text-white"
style="text-align: center; padding-top: 10px; padding-bottom: 25px; background-color: #f9f9f9; border: 1px solid #c2c2c2; border-top: none; border-bottom-color: #f9f9f9;">
<p style="font-size: 15px; color: #2e2e2e; font-family: 'roboto', Arial, Helvetica, sans-serif; font-weight: 400; margin-bottom: 30px;">
Stan
</p>
</div>
</td>
</tr>
<tr>
<td bgcolor="#242424" cellpadding="20">
<div class="dark-bg-base"
style="padding-top: 10px;padding-bottom: 10px; background-color: #242424; border: 1px solid #c2c2c2; border-top-color: #242424; border-bottom-color: #242424;">
<p style="text-align: center; color: #ffffff; font-size: 10px;
font-family: Verdana, Geneva, Tahoma, sans-serif;">© 2025 [redacted], All Rights Reserved</p>
</div>
</td>
</tr>
</table>
</td>
</tr>
</table>
</body>
</html>
--_zCAMusN--
[2025-06-30 22:47:50] production.DEBUG: From: Self Hosted User <[email protected]>
To: [redacted]
Reply-To: [redacted] <[redacted]>
Subject: Betaling mislukt voor factuur 20250015
X-Tag: rEwTZcGV6yAvQgPwZAfZ8DJhXcUcpFLz
x-invitation: IZ5oJzvW3lXJwb2IoNbIa2eWvb1OWtlo
MIME-Version: 1.0
Date: Mon, 30 Jun 2025 22:47:50 +0000
Message-ID: <[email protected]>
Content-Type: multipart/alternative; boundary=g6ewc1hg
--g6ewc1hg
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
Betaling voor factuur 20250015 voor een bedrag van €242,00 is mislukt.
--g6ewc1hg
Content-Type: text/html; charset=utf-8
Content-Transfer-Encoding: quoted-printable
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
<meta name="color-scheme" content="light dark">
<meta name="supported-color-schemes" content="light dark">
<style>
@import url("https://use.typekit.net/zxn7pho.css");
</style>
<style type="text/css">
:root {
color-scheme: light dark;
supported-color-schemes: light dark;
}
.file_icon {
filter: invert(1);
}
/** Content-specific styles. **/
#content .button {
display: inline-block;
background-color: #298AAB;
color: #ffffff;
text-transform: uppercase;
letter-spacing: 2px;
text-decoration: none;
font-size: 13px;
padding: 15px 50px;
font-weight: 600;
margin-bottom: 5px;
margin-top: 10px;
}
#content h1 {
font-family: 'canada-type-gibson', 'roboto', Arial, Helvetica, sans-serif;
font-weight: 600;
font-size: 32px;
margin-top: 20px;
margin-bottom: 30px;
}
#content > p {
font-size: 16px;
font-family: 'roboto', Arial, Helvetica, sans-serif;
font-weight: 500;
}
#content .center {
text-align: center;
}
#content .left {
text-align: left !important;
}
.stamp {
transform: rotate(12deg);
color: #555;
font-size: 3rem;
font-weight: 700;
border: 0.25rem solid #555;
text-transform: uppercase;
border-radius: 1rem;
font-family: 'Courier';
mix-blend-mode: multiply;
z-index:200 !important;
position: relative;
}
.is-paid {
color: #D23;
border: 1rem double #D23;
transform: rotate(-5deg);
font-size: 6rem;
font-family: "Open sans", Helvetica, Arial, sans-serif;
border-radius: 0;
padding: 0.5rem;
opacity: 0.2;
z-index:200 !important;
position: relative;
}
a.doc_links {
text-decoration: none;
padding-bottom: 10px;
display: inline-block;
color: inherit !important;
}
.new_button a {
background-color: #298AAB;
}
.logo {
}
</style>
</head>
<body
style="margin: 0; padding: 0; font-family: 'roboto', Arial, Helvetica, sans-serif; color: #3b3b3b;-webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale;">
<table role="presentation" border="0" cellpadding="0" cellspacing="0" width="100%" >
<tr>
<td>
<table align="center" border="0" cellpadding="0" cellspacing="0" width="570"
style="border: 1px solid #c2c2c2;" class="dark-bg-base">
<tr>
<td align="center" cellpadding="20">
<div style="border: 1px solid #c2c2c2; border-bottom: none; padding-bottom: 10px; border-top-left-radius: 3px; border-top-right-radius: 3px; padding-top:10px;">
<img class="" src="https://[redacted]/storage/rEwTZcGV6yAvQgPwZAfZ8DJhXcUcpFLz/XcqRyYJlnQi0OKHocBD7JTtaKnvpHIUzQtSS3n3F.png" alt=" " border="0" style="display: block; width: auto; max-width: 300px; max-height: 100px; height: auto; margin: 0 auto;">
</div>
</td>
</tr>
<tr>
<td cellpadding="5">
<div style="border: 1px solid #c2c2c2; border-top: none; border-bottom: none; padding: 20px; text-align: left" id="content">
<div style="padding-top: 10px;"></div>
<p>[redacted]<br><br>Betaling voor factuur 20250015 voor een bedrag van €242,00 is mislukt.</p><div>Geannuleerd</div><br><div><a href="https://[redacted]/client/invoice/IZ5oJzvW3lXJwb2IoNbIa2eWvb1OWtlo" target="_blank">Bekijk factuur</a></div>
<div>
<a href="#"
style="display: inline-block;background-color: #298AAB; color: #ffffff; text-transform: uppercase;letter-spacing: 2px; text-decoration: none; font-size: 13px; font-weight: 600;">
</a>
</div>
</div>
</td>
</tr>
<tr>
<td height="0">
<div style="border: 1px solid #c2c2c2; border-top: none; border-bottom: none; padding: 5px; text-align: center" id="content"> </div>
</td>
</tr>
<tr>
<td cellpadding="20" bgcolor="#f9f9f9">
<div class="dark-bg dark-text-white"
style="text-align: center; padding-top: 10px; padding-bottom: 25px; background-color: #f9f9f9; border: 1px solid #c2c2c2; border-top: none; border-bottom-color: #f9f9f9;">
<p style="font-size: 15px; color: #2e2e2e; font-family: 'roboto', Arial, Helvetica, sans-serif; font-weight: 400; margin-bottom: 30px;">
Stan
</p>
</div>
</td>
</tr>
<tr>
<td bgcolor="#242424" cellpadding="20">
<div class="dark-bg-base"
style="padding-top: 10px;padding-bottom: 10px; background-color: #242424; border: 1px solid #c2c2c2; border-top-color: #242424; border-bottom-color: #242424;">
<p style="text-align: center; color: #ffffff; font-size: 10px;
font-family: Verdana, Geneva, Tahoma, sans-serif;">© 2025 [redacted], All Rights Reserved</p>
</div>
</td>
</tr>
</table>
</td>
</tr>
</table>
</body>
</html>
--g6ewc1hg--
[2025-06-30 22:48:07] production.DEBUG: From: Self Hosted User <[email protected]>
To: [redacted]
Reply-To: [redacted] <[redacted]>
Subject: Betaling mislukt voor factuur 20250015
X-Tag: rEwTZcGV6yAvQgPwZAfZ8DJhXcUcpFLz
x-invitation: IZ5oJzvW3lXJwb2IoNbIa2eWvb1OWtlo
MIME-Version: 1.0
Date: Mon, 30 Jun 2025 22:48:07 +0000
Message-ID: <[email protected]>
Content-Type: multipart/alternative; boundary=SdQG2RsY
--SdQG2RsY
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
Betaling voor factuur 20250015 voor een bedrag van €121,00 is mislukt.
--SdQG2RsY
Content-Type: text/html; charset=utf-8
Content-Transfer-Encoding: quoted-printable
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
<meta name="color-scheme" content="light dark">
<meta name="supported-color-schemes" content="light dark">
<style>
@import url("https://use.typekit.net/zxn7pho.css");
</style>
<style type="text/css">
:root {
color-scheme: light dark;
supported-color-schemes: light dark;
}
.file_icon {
filter: invert(1);
}
/** Content-specific styles. **/
#content .button {
display: inline-block;
background-color: #298AAB;
color: #ffffff;
text-transform: uppercase;
letter-spacing: 2px;
text-decoration: none;
font-size: 13px;
padding: 15px 50px;
font-weight: 600;
margin-bottom: 5px;
margin-top: 10px;
}
#content h1 {
font-family: 'canada-type-gibson', 'roboto', Arial, Helvetica, sans-serif;
font-weight: 600;
font-size: 32px;
margin-top: 20px;
margin-bottom: 30px;
}
#content > p {
font-size: 16px;
font-family: 'roboto', Arial, Helvetica, sans-serif;
font-weight: 500;
}
#content .center {
text-align: center;
}
#content .left {
text-align: left !important;
}
.stamp {
transform: rotate(12deg);
color: #555;
font-size: 3rem;
font-weight: 700;
border: 0.25rem solid #555;
text-transform: uppercase;
border-radius: 1rem;
font-family: 'Courier';
mix-blend-mode: multiply;
z-index:200 !important;
position: relative;
}
.is-paid {
color: #D23;
border: 1rem double #D23;
transform: rotate(-5deg);
font-size: 6rem;
font-family: "Open sans", Helvetica, Arial, sans-serif;
border-radius: 0;
padding: 0.5rem;
opacity: 0.2;
z-index:200 !important;
position: relative;
}
a.doc_links {
text-decoration: none;
padding-bottom: 10px;
display: inline-block;
color: inherit !important;
}
.new_button a {
background-color: #298AAB;
}
.logo {
}
</style>
</head>
<body
style="margin: 0; padding: 0; font-family: 'roboto', Arial, Helvetica, sans-serif; color: #3b3b3b;-webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale;">
<table role="presentation" border="0" cellpadding="0" cellspacing="0" width="100%" >
<tr>
<td>
<table align="center" border="0" cellpadding="0" cellspacing="0" width="570"
style="border: 1px solid #c2c2c2;" class="dark-bg-base">
<tr>
<td align="center" cellpadding="20">
<div style="border: 1px solid #c2c2c2; border-bottom: none; padding-bottom: 10px; border-top-left-radius: 3px; border-top-right-radius: 3px; padding-top:10px;">
<img class="" src="https://[redacted]/storage/rEwTZcGV6yAvQgPwZAfZ8DJhXcUcpFLz/XcqRyYJlnQi0OKHocBD7JTtaKnvpHIUzQtSS3n3F.png" alt=" " border="0" style="display: block; width: auto; max-width: 300px; max-height: 100px; height: auto; margin: 0 auto;">
</div>
</td>
</tr>
<tr>
<td cellpadding="5">
<div style="border: 1px solid #c2c2c2; border-top: none; border-bottom: none; padding: 20px; text-align: left" id="content">
<div style="padding-top: 10px;"></div>
<p>[redacted]<br><br>Betaling voor factuur 20250015 voor een bedrag van €121,00 is mislukt.</p><div>Geannuleerd</div><br><div><a href="https://[redacted]/client/invoice/IZ5oJzvW3lXJwb2IoNbIa2eWvb1OWtlo" target="_blank">Bekijk factuur</a></div>
<div>
<a href="#"
style="display: inline-block;background-color: #298AAB; color: #ffffff; text-transform: uppercase;letter-spacing: 2px; text-decoration: none; font-size: 13px; font-weight: 600;">
</a>
</div>
</div>
</td>
</tr>
<tr>
<td height="0">
<div style="border: 1px solid #c2c2c2; border-top: none; border-bottom: none; padding: 5px; text-align: center" id="content"> </div>
</td>
</tr>
<tr>
<td cellpadding="20" bgcolor="#f9f9f9">
<div class="dark-bg dark-text-white"
style="text-align: center; padding-top: 10px; padding-bottom: 25px; background-color: #f9f9f9; border: 1px solid #c2c2c2; border-top: none; border-bottom-color: #f9f9f9;">
<p style="font-size: 15px; color: #2e2e2e; font-family: 'roboto', Arial, Helvetica, sans-serif; font-weight: 400; margin-bottom: 30px;">
Stan
</p>
</div>
</td>
</tr>
<tr>
<td bgcolor="#242424" cellpadding="20">
<div class="dark-bg-base"
style="padding-top: 10px;padding-bottom: 10px; background-color: #242424; border: 1px solid #c2c2c2; border-top-color: #242424; border-bottom-color: #242424;">
<p style="text-align: center; color: #ffffff; font-size: 10px;
font-family: Verdana, Geneva, Tahoma, sans-serif;">© 2025 [redacted], All Rights Reserved</p>
</div>
</td>
</tr>
</table>
</td>
</tr>
</table>
</body>
</html>
--SdQG2RsY--
[2025-06-30 22:48:08] production.DEBUG: From: Self Hosted User <[email protected]>
To: [redacted]
Reply-To: [redacted] <[redacted]>
Subject: Betaling mislukt voor factuur 20250015
X-Tag: rEwTZcGV6yAvQgPwZAfZ8DJhXcUcpFLz
x-invitation: IZ5oJzvW3lXJwb2IoNbIa2eWvb1OWtlo
MIME-Version: 1.0
Date: Mon, 30 Jun 2025 22:48:08 +0000
Message-ID: <[email protected]>
Content-Type: multipart/alternative; boundary=WHL1cX1A
--WHL1cX1A
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
Betaling voor factuur 20250015 voor een bedrag van €121,00 is mislukt.
--WHL1cX1A
Content-Type: text/html; charset=utf-8
Content-Transfer-Encoding: quoted-printable
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
<meta name="color-scheme" content="light dark">
<meta name="supported-color-schemes" content="light dark">
<style>
@import url("https://use.typekit.net/zxn7pho.css");
</style>
<style type="text/css">
:root {
color-scheme: light dark;
supported-color-schemes: light dark;
}
.file_icon {
filter: invert(1);
}
/** Content-specific styles. **/
#content .button {
display: inline-block;
background-color: #298AAB;
color: #ffffff;
text-transform: uppercase;
letter-spacing: 2px;
text-decoration: none;
font-size: 13px;
padding: 15px 50px;
font-weight: 600;
margin-bottom: 5px;
margin-top: 10px;
}
#content h1 {
font-family: 'canada-type-gibson', 'roboto', Arial, Helvetica, sans-serif;
font-weight: 600;
font-size: 32px;
margin-top: 20px;
margin-bottom: 30px;
}
#content > p {
font-size: 16px;
font-family: 'roboto', Arial, Helvetica, sans-serif;
font-weight: 500;
}
#content .center {
text-align: center;
}
#content .left {
text-align: left !important;
}
.stamp {
transform: rotate(12deg);
color: #555;
font-size: 3rem;
font-weight: 700;
border: 0.25rem solid #555;
text-transform: uppercase;
border-radius: 1rem;
font-family: 'Courier';
mix-blend-mode: multiply;
z-index:200 !important;
position: relative;
}
.is-paid {
color: #D23;
border: 1rem double #D23;
transform: rotate(-5deg);
font-size: 6rem;
font-family: "Open sans", Helvetica, Arial, sans-serif;
border-radius: 0;
padding: 0.5rem;
opacity: 0.2;
z-index:200 !important;
position: relative;
}
a.doc_links {
text-decoration: none;
padding-bottom: 10px;
display: inline-block;
color: inherit !important;
}
.new_button a {
background-color: #298AAB;
}
.logo {
}
</style>
</head>
<body
style="margin: 0; padding: 0; font-family: 'roboto', Arial, Helvetica, sans-serif; color: #3b3b3b;-webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale;">
<table role="presentation" border="0" cellpadding="0" cellspacing="0" width="100%" >
<tr>
<td>
<table align="center" border="0" cellpadding="0" cellspacing="0" width="570"
style="border: 1px solid #c2c2c2;" class="dark-bg-base">
<tr>
<td align="center" cellpadding="20">
<div style="border: 1px solid #c2c2c2; border-bottom: none; padding-bottom: 10px; border-top-left-radius: 3px; border-top-right-radius: 3px; padding-top:10px;">
<img class="" src="https://[redacted]/storage/rEwTZcGV6yAvQgPwZAfZ8DJhXcUcpFLz/XcqRyYJlnQi0OKHocBD7JTtaKnvpHIUzQtSS3n3F.png" alt=" " border="0" style="display: block; width: auto; max-width: 300px; max-height: 100px; height: auto; margin: 0 auto;">
</div>
</td>
</tr>
<tr>
<td cellpadding="5">
<div style="border: 1px solid #c2c2c2; border-top: none; border-bottom: none; padding: 20px; text-align: left" id="content">
<div style="padding-top: 10px;"></div>
<p>[redacted]<br><br>Betaling voor factuur 20250015 voor een bedrag van €121,00 is mislukt.</p><div>Geannuleerd</div><br><div><a href="https://[redacted]/client/invoice/IZ5oJzvW3lXJwb2IoNbIa2eWvb1OWtlo" target="_blank">Bekijk factuur</a></div>
<div>
<a href="#"
style="display: inline-block;background-color: #298AAB; color: #ffffff; text-transform: uppercase;letter-spacing: 2px; text-decoration: none; font-size: 13px; font-weight: 600;">
</a>
</div>
</div>
</td>
</tr>
<tr>
<td height="0">
<div style="border: 1px solid #c2c2c2; border-top: none; border-bottom: none; padding: 5px; text-align: center" id="content"> </div>
</td>
</tr>
<tr>
<td cellpadding="20" bgcolor="#f9f9f9">
<div class="dark-bg dark-text-white"
style="text-align: center; padding-top: 10px; padding-bottom: 25px; background-color: #f9f9f9; border: 1px solid #c2c2c2; border-top: none; border-bottom-color: #f9f9f9;">
<p style="font-size: 15px; color: #2e2e2e; font-family: 'roboto', Arial, Helvetica, sans-serif; font-weight: 400; margin-bottom: 30px;">
Stan
</p>
</div>
</td>
</tr>
<tr>
<td bgcolor="#242424" cellpadding="20">
<div class="dark-bg-base"
style="padding-top: 10px;padding-bottom: 10px; background-color: #242424; border: 1px solid #c2c2c2; border-top-color: #242424; border-bottom-color: #242424;">
<p style="text-align: center; color: #ffffff; font-size: 10px;
font-family: Verdana, Geneva, Tahoma, sans-serif;">© 2025 [redacted], All Rights Reserved</p>
</div>
</td>
</tr>
</table>
</td>
</tr>
</table>
</body>
</html>
--WHL1cX1A--
[2025-06-30 22:48:16] production.ERROR: horstoeko\zugferd\ZugferdDocumentBuilder::addDocumentTax(): Argument #1 ($categoryCode) must be of type string, null given, called in /var/www/app/app/Services/EDocument/Standards/ZugferdEDocument.php on line 160 {"userId":1,"exception":"[object] (TypeError(code: 0): horstoeko\\zugferd\\ZugferdDocumentBuilder::addDocumentTax(): Argument #1 ($categoryCode) must be of type string, null given, called in /var/www/app/app/Services/EDocument/Standards/ZugferdEDocument.php on line 160 at /var/www/app/vendor/horstoeko/zugferd/src/ZugferdDocumentBuilder.php:2409)
[stacktrace]
#0 /var/www/app/app/Services/EDocument/Standards/ZugferdEDocument.php(160): horstoeko\\zugferd\\ZugferdDocumentBuilder->addDocumentTax(NULL, 'VAT', 0, 0, 0, NULL, NULL)
#1 /var/www/app/app/Services/EDocument/Standards/ZugferdEDocument.php(88): App\\Services\\EDocument\\Standards\\ZugferdEDocument->setDocumentTaxes()
#2 /var/www/app/app/Jobs/EDocument/CreateEDocument.php(92): App\\Services\\EDocument\\Standards\\ZugferdEDocument->run()
#3 /var/www/app/app/Jobs/EDocument/MergeEDocument.php(50): App\\Jobs\\EDocument\\CreateEDocument->handle()
#4 /var/www/app/app/Jobs/Entity/CreateRawPdf.php(154): App\\Jobs\\EDocument\\MergeEDocument->handle()
#5 /var/www/app/app/Jobs/Entity/CreateRawPdf.php(104): App\\Jobs\\Entity\\CreateRawPdf->generatePdf()
#6 /var/www/app/app/Http/Controllers/ClientPortal/InvoiceController.php(132): App\\Jobs\\Entity\\CreateRawPdf->handle()
#7 /var/www/app/vendor/laravel/framework/src/Illuminate/Routing/Controller.php(54): App\\Http\\Controllers\\ClientPortal\\InvoiceController->showBlob('EInoeWoWMs3OXiU...')
#8 /var/www/app/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php(44): Illuminate\\Routing\\Controller->callAction('showBlob', Array)
#9 /var/www/app/vendor/sentry/sentry-laravel/src/Sentry/Laravel/Tracing/Routing/TracingControllerDispatcherTracing.php(21): Illuminate\\Routing\\ControllerDispatcher->dispatch(Object(Illuminate\\Routing\\Route), Object(App\\Http\\Controllers\\ClientPortal\\InvoiceController), 'showBlob')
#10 /var/www/app/vendor/sentry/sentry-laravel/src/Sentry/Laravel/Tracing/Routing/TracingRoutingDispatcher.php(18): Sentry\\Laravel\\Tracing\\Routing\\TracingControllerDispatcherTracing->Sentry\\Laravel\\Tracing\\Routing\\{closure}()
#11 /var/www/app/vendor/sentry/sentry-laravel/src/Sentry/Laravel/Tracing/Routing/TracingControllerDispatcherTracing.php(20): Sentry\\Laravel\\Tracing\\Routing\\TracingRoutingDispatcher->wrapRouteDispatch(Object(Closure), Object(Illuminate\\Routing\\Route))
#12 /var/www/app/vendor/laravel/framework/src/Illuminate/Routing/Route.php(266): Sentry\\Laravel\\Tracing\\Routing\\TracingControllerDispatcherTracing->dispatch(Object(Illuminate\\Routing\\Route), Object(App\\Http\\Controllers\\ClientPortal\\InvoiceController), 'showBlob')
#13 /var/www/app/vendor/laravel/framework/src/Illuminate/Routing/Route.php(212): Illuminate\\Routing\\Route->runController()
#14 /var/www/app/vendor/laravel/framework/src/Illuminate/Routing/Router.php(808): Illuminate\\Routing\\Route->run()
#15 /var/www/app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(170): Illuminate\\Routing\\Router->Illuminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request))
#16 /var/www/app/app/Http/Middleware/QueryLogging.php(40): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#17 /var/www/app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(209): App\\Http\\Middleware\\QueryLogging->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#18 /var/www/app/vendor/laravel/framework/src/Illuminate/Routing/Middleware/SubstituteBindings.php(51): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#19 /var/www/app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(209): Illuminate\\Routing\\Middleware\\SubstituteBindings->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#20 /var/www/app/app/Http/Middleware/Locale.php(95): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#21 /var/www/app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(209): App\\Http\\Middleware\\Locale->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#22 /var/www/app/app/Http/Middleware/CheckClientExistence.php(32): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#23 /var/www/app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(209): App\\Http\\Middleware\\CheckClientExistence->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#24 /var/www/app/vendor/laravel/framework/src/Illuminate/Auth/Middleware/Authenticate.php(64): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#25 /var/www/app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(209): Illuminate\\Auth\\Middleware\\Authenticate->handle(Object(Illuminate\\Http\\Request), Object(Closure), 'contact')
#26 /var/www/app/app/Http/Middleware/SetDomainNameDb.php(40): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#27 /var/www/app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(209): App\\Http\\Middleware\\SetDomainNameDb->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#28 /var/www/app/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/VerifyCsrfToken.php(88): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#29 /var/www/app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(209): Illuminate\\Foundation\\Http\\Middleware\\VerifyCsrfToken->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#30 /var/www/app/vendor/laravel/framework/src/Illuminate/View/Middleware/ShareErrorsFromSession.php(49): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#31 /var/www/app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(209): Illuminate\\View\\Middleware\\ShareErrorsFromSession->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#32 /var/www/app/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/AddQueuedCookiesToResponse.php(37): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#33 /var/www/app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(209): Illuminate\\Cookie\\Middleware\\AddQueuedCookiesToResponse->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#34 /var/www/app/app/Http/Middleware/SessionDomains.php(31): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#35 /var/www/app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(209): App\\Http\\Middleware\\SessionDomains->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#36 /var/www/app/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php(121): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#37 /var/www/app/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php(64): Illuminate\\Session\\Middleware\\StartSession->handleStatefulRequest(Object(Illuminate\\Http\\Request), Object(Illuminate\\Session\\Store), Object(Closure))
#38 /var/www/app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(209): Illuminate\\Session\\Middleware\\StartSession->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#39 /var/www/app/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/EncryptCookies.php(75): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#40 /var/www/app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(209): Illuminate\\Cookie\\Middleware\\EncryptCookies->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#41 /var/www/app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(127): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#42 /var/www/app/vendor/laravel/framework/src/Illuminate/Routing/Router.php(807): Illuminate\\Pipeline\\Pipeline->then(Object(Closure))
#43 /var/www/app/vendor/laravel/framework/src/Illuminate/Routing/Router.php(786): Illuminate\\Routing\\Router->runRouteWithinStack(Object(Illuminate\\Routing\\Route), Object(Illuminate\\Http\\Request))
#44 /var/www/app/vendor/laravel/framework/src/Illuminate/Routing/Router.php(750): Illuminate\\Routing\\Router->runRoute(Object(Illuminate\\Http\\Request), Object(Illuminate\\Routing\\Route))
#45 /var/www/app/vendor/laravel/framework/src/Illuminate/Routing/Router.php(739): Illuminate\\Routing\\Router->dispatchToRoute(Object(Illuminate\\Http\\Request))
#46 /var/www/app/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(201): Illuminate\\Routing\\Router->dispatch(Object(Illuminate\\Http\\Request))
#47 /var/www/app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(170): Illuminate\\Foundation\\Http\\Kernel->Illuminate\\Foundation\\Http\\{closure}(Object(Illuminate\\Http\\Request))
#48 /var/www/app/vendor/sentry/sentry-laravel/src/Sentry/Laravel/Http/FlushEventsMiddleware.php(13): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#49 /var/www/app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(209): Sentry\\Laravel\\Http\\FlushEventsMiddleware->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#50 /var/www/app/vendor/sentry/sentry-laravel/src/Sentry/Laravel/Http/SetRequestIpMiddleware.php(45): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#51 /var/www/app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(209): Sentry\\Laravel\\Http\\SetRequestIpMiddleware->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#52 /var/www/app/vendor/sentry/sentry-laravel/src/Sentry/Laravel/Http/SetRequestMiddleware.php(31): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#53 /var/www/app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(209): Sentry\\Laravel\\Http\\SetRequestMiddleware->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#54 /var/www/app/vendor/livewire/livewire/src/Features/SupportDisablingBackButtonCache/DisableBackButtonCacheMiddleware.php(19): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#55 /var/www/app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(209): Livewire\\Features\\SupportDisablingBackButtonCache\\DisableBackButtonCacheMiddleware->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#56 /var/www/app/app/Http/Middleware/Cors.php(24): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#57 /var/www/app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(209): App\\Http\\Middleware\\Cors->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#58 /var/www/app/vendor/laravel/framework/src/Illuminate/Http/Middleware/TrustProxies.php(58): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#59 /var/www/app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(209): Illuminate\\Http\\Middleware\\TrustProxies->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#60 /var/www/app/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#61 /var/www/app/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ConvertEmptyStringsToNull.php(31): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#62 /var/www/app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(209): Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#63 /var/www/app/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#64 /var/www/app/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TrimStrings.php(51): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#65 /var/www/app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(209): Illuminate\\Foundation\\Http\\Middleware\\TrimStrings->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#66 /var/www/app/vendor/laravel/framework/src/Illuminate/Http/Middleware/ValidatePostSize.php(27): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#67 /var/www/app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(209): Illuminate\\Http\\Middleware\\ValidatePostSize->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#68 /var/www/app/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/PreventRequestsDuringMaintenance.php(110): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#69 /var/www/app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(209): Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#70 /var/www/app/vendor/sentry/sentry-laravel/src/Sentry/Laravel/Tracing/Middleware.php(79): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#71 /var/www/app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(209): Sentry\\Laravel\\Tracing\\Middleware->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#72 /var/www/app/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(127): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#73 /var/www/app/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(176): Illuminate\\Pipeline\\Pipeline->then(Object(Closure))
#74 /var/www/app/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(145): Illuminate\\Foundation\\Http\\Kernel->sendRequestThroughRouter(Object(Illuminate\\Http\\Request))
#75 /var/www/app/public/index.php(56): Illuminate\\Foundation\\Http\\Kernel->handle(Object(Illuminate\\Http\\Request))
#76 {main}
"}
```