So this seems to be abso<censored>lutely undocumented (and it shouldn't be) - but i am looking at "Manage Test Users" dev.panel section.
Because i am zo "en-tele-gent", perhaps i am able to guess the meaning of it - but could somebody confirm or correct my guesses?
I can add test users by email. That means said email addy would have to have a proper "Roku owner" account created separately and linked to a player, so that tests can be done from said player as the test user?
I can select one (say "A") or more of my channels per user. That means the user gets a waiver on any and all fees for paid transactions while inside channel A? I
Does the above mean the workflow is exactly the same, incl. PIN code and payment method required - but only at the very last moment the actual charge will be skipped - yet purchase confirmation returned? (I.e. full workout but the money)
Does a channel (say "B") not being selected for the user mean they are non-excepted? I.e. they are just "regular" regarding B, while "tester" for A.
"No time machine" clause: selecting/deselecting channels per user and adding/removing users has no retro-active nor futuristic effect? In other words, the combo (userID, channelID) is checked against the DB only for transactions happening at present time; bygone expenditures be bygones; or user can later be "fired" as a tester
You are correct on 1-4. For #3, everything will look exactly like a normal non-test user, so as far as the user is concerned, it'll look like they're paying, but they won't be charged. This can catch some users out, so make sure you notify them in advance.
For #5, I think the channel and products remain as purchased on the user's Roku account even after being removed from the test users, but I'm not 100% sure on that.
(what follows is my own experience and is not a predictor of future results) Again, yes 1-4. There are a couple of small things to look out for - like "amounts" sent in push notifications (if you are using them) will always be zero for free users. I recommend doing a few real $$ transactions once you think you have everything working. You can always refund yourself using the API calls.
For 5: there is no time machine. Once a "free" user purchases a product, it remains in their account even if they are removed from the list of free users. You can void transactions from the manage test users page (after selecting a specific user's transactions). "Voiding" is a bit of a misnomer, since the transaction still exists (you can check using the API). It just stops showing up on the user's end, leaving them free to purchase the product again.
Since we're on the subject - if you are using getpartialuserdata, don't assume Roku validated that all fields were present or filled out when a customer creates an account. We had issues with a number of customers who had '' for their first and last names.