News

PSA: Make sure your kid doesn’t sign up for Netflix with your TV voice remote

A Londoner just learned this the hard way after discovering that her nine-year-old added the streaming service to her Rogers bill months earlier

A London, Ont. woman says she was unknowingly charged several months of Netflix after her young child added the service to her Rogers bill.

In an interview with CBC News, Courteney Morris said that she noticed an extra $21 charge for Netflix on her March 2025 statement. After five hours of calls between Rogers and Netflix, she determined that her nine-year-old had been playing around with the voice functionality on her Rogers TV box’s remote control. This led her to the multiple steps to create a Netflix account and complete the sign up process for it and, eventually, her mother being charged for the streaming service. Ultimately, Morris says she’s been charged nearly $200 since July 2024 by the time she noticed the recurring subscription on her bill.

Morris says her daughter used a school email address to sign up for Netflix, but the subscription cost was automatically billed to her Rogers account that was linked to the TV box. She also admitted that she doesn’t generally look through each charge on her monthly Rogers bills since she pre-pays them in a lump sum at the start of the year.

A Rogers spokesperson told CBC News that Morris had been sent nine different billing emails since July. The company added that TV box customers are given information about setting up parental controls upon sign-up, and a four-digit purchase PIN can also be set up. In the end, though, the company still gave Morris a $60 credit to cover nearly three months of Netflix.

That said, Morris said she wants telecoms like Rogers to send notifications when subscriptions like Netflix are first added and implement a system to authorize purchases, like two-factor authentication. She did concede, though, that her story is a warning for other people. “You’re going to be paying for it if you’re not paying attention,” she said.

That’s the moral of the story, really. While honest mistakes happen, especially when kids are involved, the onus is ultimately on you to verify your bills to make sure everything is in order. This is good practice even without kids; maybe you forget to cancel a free trial that has auto-billing on or, god forbid, a food ordering app compromises your credit card and steals your money. It never hurts to thoroughly check your bills!

Source: CBC News

Update: 23/04/2025 at 11:54 a.m. ET — Updated to add another sentence stressing that it’s a multi-step process to sign up for Netflix beyond the voice functionality.

MobileSyrup may earn a commission from purchases made via our links, which helps fund the journalism we provide free on our website. These links do not influence our editorial content. Support us here.

Related Articles

Fatal error: Uncaught Aws\S3\Exception\PermanentRedirectException: Encountered a permanent redirect while requesting https://ms-staging-baselayer-static-assets.s3.ca-central-1.amazonaws.com/?list-type=2&delimiter=%2F&prefix=uploads%2Fwpcf7_uploads%2F. Are you sure you are using the correct region for this bucket? in /var/www/html/vendor/aws/aws-sdk-php/src/S3/PermanentRedirectMiddleware.php:49 Stack trace: #0 /var/www/html/vendor/guzzlehttp/promises/src/Promise.php(209): Aws\S3\PermanentRedirectMiddleware->Aws\S3\{closure}(Object(Aws\Result)) #1 /var/www/html/vendor/guzzlehttp/promises/src/Promise.php(158): GuzzleHttp\Promise\Promise::callHandler(1, Object(Aws\Result), NULL) #2 /var/www/html/vendor/guzzlehttp/promises/src/TaskQueue.php(52): GuzzleHttp\Promise\Promise::GuzzleHttp\Promise\{closure}() #3 /var/www/html/vendor/guzzlehttp/guzzle/src/Handler/CurlMultiHandler.php(163): GuzzleHttp\Promise\TaskQueue->run() #4 /var/www/html/vendor/guzzlehttp/guzzle/src/Handler/CurlMultiHandler.php(189): GuzzleHttp\Handler\CurlMultiHandler->tick() #5 /var/www/html/vendor/guzzlehttp/promises/src/Promise.php(251): GuzzleHttp\Handler\CurlMultiHandler->execute(true) #6 /var/www/html/vendor/guzzlehttp/promises/src/Promise.php(227): GuzzleHttp\Promise\Promise->invokeWaitFn() #7 /var/www/html/vendor/guzzlehttp/promises/src/Promise.php(272): GuzzleHttp\Promise\Promise->waitIfPending() #8 /var/www/html/vendor/guzzlehttp/promises/src/Promise.php(229): GuzzleHttp\Promise\Promise->invokeWaitList() #9 /var/www/html/vendor/guzzlehttp/promises/src/Promise.php(272): GuzzleHttp\Promise\Promise->waitIfPending() #10 /var/www/html/vendor/guzzlehttp/promises/src/Promise.php(229): GuzzleHttp\Promise\Promise->invokeWaitList() #11 /var/www/html/vendor/guzzlehttp/promises/src/Promise.php(69): GuzzleHttp\Promise\Promise->waitIfPending() #12 /var/www/html/vendor/aws/aws-sdk-php/src/AwsClientTrait.php(58): GuzzleHttp\Promise\Promise->wait() #13 /var/www/html/vendor/aws/aws-sdk-php/src/ResultPaginator.php(151): Aws\AwsClient->execute(Object(Aws\Command)) #14 /var/www/html/vendor/aws/aws-sdk-php/src/functions.php(52): Aws\ResultPaginator->valid() #15 /var/www/html/vendor/aws/aws-sdk-php/src/functions.php(69): Aws\map(Object(Aws\ResultPaginator), Object(Closure)) #16 [internal function]: Aws\flatmap(Object(Aws\ResultPaginator), Object(Closure)) #17 /var/www/html/wp-content/plugins/s3-uploads/inc/class-stream-wrapper.php(695): Generator->valid() #18 [internal function]: S3_Uploads\Stream_Wrapper->dir_readdir() #19 /var/www/html/wp-content/plugins/contact-form-7/includes/file.php(362): readdir(Resource id #734) #20 /var/www/html/wp-includes/class-wp-hook.php(322): wpcf7_cleanup_upload_files() #21 /var/www/html/wp-includes/class-wp-hook.php(348): WP_Hook->apply_filters(NULL, Array) #22 /var/www/html/wp-includes/plugin.php(517): WP_Hook->do_action(Array) #23 /var/www/html/wp-includes/load.php(1280): do_action('shutdown') #24 [internal function]: shutdown_action_hook() #25 {main} thrown in /var/www/html/vendor/aws/aws-sdk-php/src/S3/PermanentRedirectMiddleware.php on line 49