So prepayment relates to paying via what is technically the purchase order payment method on your checkout - so the customer doesn't actually pay anything on checking out - but you issue an invoice to them for them to pay - is that right?

If that's the case, you could simply apply the discount to the customers invoice that they pay.

If it's important that the discount is shown on the checkout and receipts the customer receives, you could conceivably dynamically add and remove a coupon depending on the customers choice to the payment options on the checkout - you'd also need to update cart totals and the likes to match.