diff --git a/src/PaymentServer/Persistence.hs b/src/PaymentServer/Persistence.hs
index f3327860d61ea3a3746bd3386bb8f1f4074040b7..814a4ffbae83d0ca98545593e9edf026bb598084 100644
--- a/src/PaymentServer/Persistence.hs
+++ b/src/PaymentServer/Persistence.hs
@@ -113,8 +113,7 @@ memory = do
 
 instance VoucherDatabase Sqlite.Connection where
   -- payForVoucher :: Sqlite.Connection -> Voucher -> IO ()
-  payForVoucher dbConn voucher = do
-    undefined
+  payForVoucher = insertVoucher
   -- redeemVoucher :: Sqlite.Connection -> Voucher -> Fingerprint -> IO (Either RedeemError ())
   redeemVoucher dbConn voucher fingerprint = do
     unpaid <- isVoucherUnpaid dbConn voucher
@@ -145,6 +144,10 @@ getVoucherFingerprint :: Sqlite.Connection -> Voucher -> IO [Fingerprint]
 getVoucherFingerprint dbConn voucher = do
   Sqlite.query dbConn "SELECT redeemed.fingerprint FROM vouchers INNER JOIN redeemed ON vouchers.id = redeemed.voucher_id AND vouchers.name = ?" (Sqlite.Only voucher)
 
+insertVoucher :: Sqlite.Connection -> Voucher -> IO ()
+insertVoucher dbConn voucher =
+  Sqlite.execute dbConn "INSERT INTO vouchers (name) VALUES (?)" (Sqlite.Only voucher)
+
 getDBConnection :: Text -> IO ()
 getDBConnection name = do
   dbConn <- Sqlite.open (unpack name)