Create a coupon instance.
This method should be used only internal. AssignCoupon should be used instead