JWS Webhooks
Send subscriptions events to a custom JWS (JSON Web Signature) webhook channel. Glassfy monitors the subscriptions and sends all relevant events to the custom Webhook even if the user does not have the app open.
- Open the JWS webhook connector setting in the Glassfy dashboard
- Set your webhook URL in the "JWS webhook URL" field
JWS response format
Sample event:
{
"event": {
"id": "21e8fe4ea29e4d699a5be432cf79dd9a",
"event_date": 1644933838,
"source": "SDK",
"type": 5008,
"environment": "S",
"store": "1",
"vendorid": "8NOV6FQBHHRJ4F9N2HV0HUXOQ5LL0QA3",
"appid": "SZ126UWWVGTH82UE9313EQQ5N1YM3QOA",
"subscriberid": "dfd29763e530470688a5741f419e7c07",
"productid": "ios_read_article_5",
"date_ms": 1644933832000,
"original_purchase_date_ms": 1644933832000,
"price": 0.99,
"price_usd": 1.3381319169279828,
"currency_code": "GBP",
"country_code": "GB",
"sub_platform": "1",
"system_version": "15.3.1",
"device": "iPhone14,2",
"sdk_version": "dev",
"bundle_version": "1",
"app_version": "1.0",
"is_trial_period": false,
"trial_status":0,
"userid":"custom user id"
},
"exp": 1644937438,
"iss": "glassfy"
}
Read the Webhooks documentation for details of the event
field.
Glassfy generates a signed JWS token for each event. You can use the Glassfy public key https://dashboard.glassfy.io/.well-known/jwks.json to verify it.
Sample JWS token event:
eyJhbGciOiJFUzI1NiIsInR5cCI6IkpXVCJ9.eyJldmVudCI6eyJzb3J0X2RhdGVfbXMiOjE2NDQ5MzM4MzIwMDAsIml
kIjoiMjFlOGZlNGVhMjllNGQ2OTlhNWJlNDMyY2Y3OWRkOWEiLCJldmVudF9kYXRlIjoxNjQ0OTMzODM4LCJzb3VyY2U
iOiJTREsiLCJ0eXBlIjo1MDA4LCJlbnZpcm9ubWVudCI6IlMiLCJzdG9yZSI6IjEiLCJ2ZW5kb3JpZCI6IjhOT1Y2RlF
CSEhSSjRGOU4ySFYwSFVYT1E1TEwwUUEzIiwiYXBwaWQiOiJTWjEyNlVXV1ZHVEg4MlVFOTMxM0VRUTVOMVlNM1FPQSI
sInN1YnNjcmliZXJpZCI6ImRmZDI5NzYzZTUzMDQ3MDY4OGE1NzQxZjQxOWU3YzA3Iiwib3JpZ2luYWxfdHJhbnNhY3R
pb25faWQiOiIxMDAwMDAwOTY5NDMxMTQ2IiwidHJhbnNhY3Rpb25faWQiOiIxMDAwMDAwOTY5NDMxMTQ2IiwicHJvZHV
jdGlkIjoiaW9zX3JlYWRfYXJ0aWNsZV81IiwiZGF0ZV9tcyI6MTY0NDkzMzgzMjAwMCwib3JpZ2luYWxfcHVyY2hhc2V
fZGF0ZV9tcyI6MTY0NDkzMzgzMjAwMCwicHJpY2UiOjAuOTksInByaWNlX3VzZCI6MS4zMzgxMzE5MTY5Mjc5ODI4LCJ
jdXJyZW5jeV9jb2RlIjoiR0JQIiwiY291bnRyeV9jb2RlIjoiR0IiLCJxdWFudGl0eSI6MSwid2ViX29yZGVyX2xpbmV
faXRlbV9pZCI6IiIsImRheXMiOjc3MTUsIndlZWtzIjoxMTAyLCJtb250aHMiOjI1MywiYXV0b19yZW5ld19wcm9kdWN
0X2lkIjoiIiwiYXV0b19yZW5ld19zdGF0dXMiOmZhbHNlLCJncmFjZV9wZXJpb2RfZXhwaXJlc19kYXRlX21zIjowLCJ
pc19pbl9iaWxsaW5nX3JldHJ5X3BlcmlvZCI6ZmFsc2UsInByaWNlX2NvbnNlbnRfc3RhdHVzIjoiIiwib2ZmZXJfY29
kZV9yZWZfbmFtZSI6IiIsIm9mZmVyaW5naWQiOiJjb25zdW1hYmxlX2FydGljbGVzIiwiZXhwaXJhdGlvbl9pbnRlbnQ
iOiIiLCJ1c2VydW5rbm93biI6ZmFsc2UsInN1Yl9wbGF0Zm9ybSI6IjEiLCJzeXN0ZW1fdmVyc2lvbiI6IjE1LjMuMSI
sImRldmljZSI6ImlQaG9uZTE0LDIiLCJzZGtfdmVyc2lvbiI6ImRldiIsImJ1bmRsZV92ZXJzaW9uIjoiMSIsImFwcF9
2ZXJzaW9uIjoiMS4wIn0sImV4cCI6MTY0NDkzNzQzOCwiaXNzIjoiZ2xhc3NmeSJ9.mOIfTrxy2LBQTq_TwpTzFnkQQ0
6KahgMUKsZO7GKJq_-e1a0nqEDraH_mRmosrxNSQqEnelHne0Jg7_EmkqTOg
The event is then POSTed to the "JWS webhook URL".
Retries
Glassfy will send POST requests to your server with the authentication header and a json with the details of the event. Your server must return a 200 status code. If the status code is not 200 Glassfy will retry 5 times (after 5, 15, 30 and 60 minutes). After all the retries Glassfy stops sending the event.
Updated almost 2 years ago