Roku Developer Program

Developers and content creators—a complete solution for growing an audience directly.
cancel
Showing results for 
Search instead for 
Did you mean: 
MattBates
Level 7

In-Channel subscription billing questions

I've read


But there are still many unanswered questions.
I'm aware that after an order is completed in the channel, we should be calling /listen/transaction-service.svc/validate-transaction to verify the success of the transaction.

However,

  • How can we check if a customer has cancelled their subscription via roku.com? I don't see an option to verify subscription or verify customer, only verify the initial transaction.

  • When does Roku bill customers that purchase subscriptions?

  • Is a Monthly Subscription billed as a recurring monthly payment?
0 Kudos
7 Replies
TheEndless
Level 7

Re: In-Channel subscription billing questions

"MattBates" wrote:
I'm aware that after an order is completed in the channel, we should be calling /listen/transaction-service.svc/validate-transaction to verify the success of the transaction.

You only need to do this if you're querying from an external source. In-channel, you can either check the result of the roChannelStore.DoOrder() call, or call roChannelStore.GetPurchases().
"MattBates" wrote:
How can we check if a customer has cancelled their subscription via roku.com? I don't see an option to verify subscription or verify customer, only verify the initial transaction.

Again, in-channel, roChannelStore.GetPurchases() is the way to check this. Externally, I believe validate-transaction should return whether the transaction/subscription is still valid.
"MattBates" wrote:
When does Roku bill customers that purchase subscriptions?

At the time of purchase, unless you have a free trial period defined.
"MattBates" wrote:
Is a Monthly Subscription billed as a recurring monthly payment?

Yes.
My Channels: http://roku.permanence.com - Twitter: @TheEndlessDev
Instant Watch Browser (NetflixIWB), Aquarium Screensaver (AQUARIUM), Clever Clocks Screensaver (CLEVERCLOCKS), iTunes Podcasts (ITPC), My Channels (MYCHANNELS)
0 Kudos
MattBates
Level 7

Re: In-Channel subscription billing questions

Thanks for your response, let me make it more clear what my concern is.

In addition to the regular case of a user cancelling (which removes the subscription from GetPurchases), I need to cover ALL the different ways a subscriber can become a non subscriber, such as

  • customers payment method expires.

  • charge is rejected for any reason when Roku attempts to bill customer.


Are you saying validate-transaction be used to validate their subscription status after multiple separate charges are made to their card?
Does GetPurchases() stop returning the subscription product they purchased if they stop making payments (which is different from cancelling)? If so, what type of grace period is there?
Should GetPurchases() used on a regular basis to continue ensuring a customer is still valid?
0 Kudos
Roku Employee
Roku Employee

Re: In-Channel subscription billing questions

We also have a push-notification service which you can read about here in the web api documentation:

https://roku.box.com/s/20uqk4o2mjzzstt86ij1

- Joel
0 Kudos
MattBates
Level 7

Re: In-Channel subscription billing questions

Joel, thanks for the link!

Lots of useful stuff in there.
Was that documentation published somewhere I should have known about?


update:

I read through the documentation and I don't see a solution for my questions in my previous post about how to tell if a customer's subscription is still valid payment-wise.. What happens when a charge is declined?
The closest thing I found was /v2/user-service.svc/get-account-data but that appears to only return the user info for the one user assocciated with the api token.

Additionally, I couldn't find any information about push notifications in your link.

Please advise.
0 Kudos
Roku Employee
Roku Employee

Re: In-Channel subscription billing questions

Sorry, here's the doc with the push notifications:
https://roku.box.com/s/fdyi280hrd4vhwjagbxo

The closest thing I found was /v2/user-service.svc/get-account-data but that appears to only return the user info for the one user associated with the api token.


Likely that is the case if you are testing via a side-loaded channel. If it happens in a published private or public channel then that might be a bug.

- Joel
0 Kudos
MattBates
Level 7

Re: In-Channel subscription billing questions

"RokuJoel" wrote:

Likely that is the case if you are testing via a side-loaded channel. If it happens in a published private or public channel then that might be a bug.


Ah, but the documentation states that it "Returns account data for the user associated with the apitoken"
Since we generate the api tokens for our own access, how can this be used to retrieve customer information?

I still need to know what happens when a charge is declined. Do you cancel their subscription? Does this trigger a push notification?

Can we assume that all products listed by GetPurchases() are paid for in the current month? Are they still listed after a charge is declined?

What about validate-transaction API call? Can it be used to check a recurring subscription using the same transaction ID?
I noticed validate-transaction's expirationDate is set exactly one month out when a customer purchases a monthly sub. What happens when I hit the api with the same transaction ID after the expiration date (a month later)? Does it return new up-to-date information for the next month?
0 Kudos
joetesta
Level 10

Re: In-Channel subscription billing questions

Great questions Matt, I'm looking to integrate subscription for a channel and also wondering about how to validate the user (ie are they paid up to date?).

Would appreciate knowing what you've found about this - anything from docs or testing?

update: just found this, looks promising http://sdkdocs.roku.com/download/attach ... 9244648000
Note: Subscription transactions can
be verified using the initial
transaction for the subscrip>on
purchase. When verified Roku will
provide the most current state of the
subscription
aspiring
0 Kudos