{"_id":"56ad2e5b1c09150d00a183a6","version":{"_id":"56acd71213ac890d001c3c7d","project":"56acd71213ac890d001c3c7a","__v":15,"createdAt":"2016-01-30T15:30:26.928Z","releaseDate":"2016-01-30T15:30:26.928Z","categories":["56acd71313ac890d001c3c7e","56acd8f113ac890d001c3c81","56acd8f95ac4060d0027865e","56acd93a13ac890d001c3c82","56ad20660ab3c00d00ce3347","56ad356a2a7860170013f714","56ad47eb0ab3c00d00ce334f","56afd523bc304a0d00ace1df","56b29a019621f20d00efb37e","56b657e11bc6970d009feee7","5845cc3c39950c1b002afe77","5845cde163c11b250037967e","5846efd45d064323007b17b4","588604da4674e32300efd160","588627882393d50f00f1322c"],"is_deprecated":false,"is_hidden":false,"is_beta":false,"is_stable":true,"codename":"","version_clean":"1.0.0","version":"1.0"},"__v":1,"project":"56acd71213ac890d001c3c7a","user":"56acd6caa040860d00ac94a2","parentDoc":null,"category":{"_id":"56ad20660ab3c00d00ce3347","__v":11,"pages":["56ad21651c09150d00a183a0","56ad235c693f0a0d0085f0c3","56ad24afd21f1b0d00fd2f86","56ad2e5b1c09150d00a183a6","56ad305879011b0d00c32aaa","56ad30c81a7ee417009ced18","56ad31432a7860170013f711","56ad33b21a7ee417009ced1a","56ad34a0b9ac5517006b6962","56ad35503fc1020d009776e1","56e7266bdbc36117006a41ff"],"project":"56acd71213ac890d001c3c7a","version":"56acd71213ac890d001c3c7d","sync":{"url":"","isSync":false},"reference":false,"createdAt":"2016-01-30T20:43:18.400Z","from_sync":false,"order":9,"slug":"singularity-real-time-events","title":"Singularity: Real-Time Events"},"githubsync":"","updates":["5798fa1d5765390e0077c63a"],"next":{"pages":[],"description":""},"createdAt":"2016-01-30T21:42:51.148Z","link_external":false,"link_url":"","sync_unique":"","hidden":false,"api":{"results":{"codes":[]},"settings":"","auth":"required","params":[],"url":""},"isReference":false,"order":4,"body":"Using Socket.IO, this event can be listened to as follows:\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"socket.on('subscriber-benefits-change', function(data){\\n    //Do something\\n});\",\n      \"language\": \"javascript\"\n    }\n  ]\n}\n[/block]\nThis event fires whenever the status of a subscriber changes. This change can be the result of a subscriber cancelling, a subscriber’s recurring payment failing, etc. The event response has the following JSON structure:\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"{\\n   event: \\\"subscriber-status-change\\\",\\n   channel_id: \\\"channel identifier\\\",\\n   channel: {\\n      names: {\\n         gamewisp: \\\"GameWisp channel name\\\",\\n         twitch: \\\"twitch channel name\\\",\\n         youtube: \\\"youtube channel name\\\"\\n      },\\n      ids: {\\n         gamewisp: \\\"channel identifier\\\",\\n         twitch: \\\"12312312q\\\",\\n         youtube: \\\"UCiqp4J8asdkssssssssdfae\\\"\\n      }  \\n   },\\n   data: {\\n      ids: {\\n         gamewisp: \\\"123222\\\",\\n         twitch: \\\"95512221241604\\\"\\n      },\\n      usernames: {\\n         gamewisp: \\\"gamewisp_username\\\",\\n         twitch: \\\"twitch_username\\\"\\n      },\\n      status: \\\"trial\\\",\\n      amount: \\\"2.99\\\",\\n      subscribed_at: \\\"2015-12-31 18:44:07\\\",\\n      end_of_access: \\\"2016-01-30 18:44:07\\\",\\n      tier: {\\n         id: \\\"123\\\",\\n         title: \\\"Tier Title\\\",\\n         level: \\\"1\\\",\\n         cost: \\\"2.99\\\",\\n         description: \\\"Tier description.\\\",\\n         published: true\\n      }\\n    }    \\n}\",\n      \"language\": \"json\"\n    }\n  ]\n}\n[/block]\nThe response is similar to the [subscriber-new](https://gamewisp.readme.io/docs/subscriber-new) event, but the status field will contain the newly updated subscriber status. This event is not necessarily followed by a [subscriber-benefits-change](https://gamewisp.readme.io/docs/subscriber-benefits-change) event.","excerpt":"Fires whenever the status of a subscriber changes.","slug":"subscriber-status-change","type":"fn","title":"subscriber-status-change"}

subscriber-status-change

Fires whenever the status of a subscriber changes.

Using Socket.IO, this event can be listened to as follows: [block:code] { "codes": [ { "code": "socket.on('subscriber-benefits-change', function(data){\n //Do something\n});", "language": "javascript" } ] } [/block] This event fires whenever the status of a subscriber changes. This change can be the result of a subscriber cancelling, a subscriber’s recurring payment failing, etc. The event response has the following JSON structure: [block:code] { "codes": [ { "code": "{\n event: \"subscriber-status-change\",\n channel_id: \"channel identifier\",\n channel: {\n names: {\n gamewisp: \"GameWisp channel name\",\n twitch: \"twitch channel name\",\n youtube: \"youtube channel name\"\n },\n ids: {\n gamewisp: \"channel identifier\",\n twitch: \"12312312q\",\n youtube: \"UCiqp4J8asdkssssssssdfae\"\n } \n },\n data: {\n ids: {\n gamewisp: \"123222\",\n twitch: \"95512221241604\"\n },\n usernames: {\n gamewisp: \"gamewisp_username\",\n twitch: \"twitch_username\"\n },\n status: \"trial\",\n amount: \"2.99\",\n subscribed_at: \"2015-12-31 18:44:07\",\n end_of_access: \"2016-01-30 18:44:07\",\n tier: {\n id: \"123\",\n title: \"Tier Title\",\n level: \"1\",\n cost: \"2.99\",\n description: \"Tier description.\",\n published: true\n }\n } \n}", "language": "json" } ] } [/block] The response is similar to the [subscriber-new](https://gamewisp.readme.io/docs/subscriber-new) event, but the status field will contain the newly updated subscriber status. This event is not necessarily followed by a [subscriber-benefits-change](https://gamewisp.readme.io/docs/subscriber-benefits-change) event.