diff --git a/src/_zkapauthorizer/tests/test_client_resource.py b/src/_zkapauthorizer/tests/test_client_resource.py
index e816998925eb6a9bf2878178d333a6d897fecef7..f81098452c95682eac683f12d7cb1bc6020d974f 100644
--- a/src/_zkapauthorizer/tests/test_client_resource.py
+++ b/src/_zkapauthorizer/tests/test_client_resource.py
@@ -54,6 +54,7 @@ from testtools.matchers import (
     ContainsDict,
     AfterPreprocessing,
     Equals,
+    NotEquals,
     Always,
     GreaterThan,
 )
@@ -648,6 +649,10 @@ class VoucherTests(TestCase):
                 ).decode("utf-8"),
             ).encode("ascii"),
         )
+        if redeemed:
+            token_count_comparison = NotEquals
+        else:
+            token_count_comparison = Equals
 
         self.assertThat(
             getting,
@@ -655,13 +660,17 @@ class VoucherTests(TestCase):
                 MatchesAll(
                     ok_response(headers=application_json()),
                     AfterPreprocessing(
-                        json_content,
+                        readBody,
                         succeeded(
-                            Equals(Voucher(
-                                voucher,
-                                created=now,
-                                redeemed=redeemed,
-                            ).marshal()),
+                            AfterPreprocessing(
+                                Voucher.from_json,
+                                MatchesStructure(
+                                    number=Equals(voucher),
+                                    created=Equals(now),
+                                    redeemed=Equals(redeemed),
+                                    token_count=token_count_comparison(None),
+                                ),
+                            ),
                         ),
                     ),
                 ),
@@ -721,6 +730,10 @@ class VoucherTests(TestCase):
                                         voucher,
                                         created=now,
                                         redeemed=True,
+                                        # Value duplicated from
+                                        # PaymentController.redeem default.
+                                        # Should do this better.
+                                        token_count=100,
                                     ).marshal()
                                     for voucher
                                     in vouchers