Your problem is that IAP cannot be used to purchase real world goods. In your case it's not 'to purchase' but rather 'to redeem'. So that does not violate the guidelines - but Apple would need to trust that all you are doing is 'redeeming' and not providing some real world item in exchange for the IAP currency.
But you have another problem (and I have the solution). You need to protect against a user purchasing the currency, creating a backup with the currency recorded, transferring the currency and then restoring from back-up. (And repeating over and over again.) To prevent that you need a permanent memory to record the transfer of currency into or out of their 'account'. You can do that with your server or with the public database in CloudKit.