Nest Changelog
1.27.8
6/2/2023
1.28.0 PRE
5/30/2023
8 changed endpoints Collapse changed endpoints
POST /webhooks/invoice-upcoming
Request Body
{ amountDue?: number, amountPaid?: number, amountTax?: number, amountTotal?: number, attemptCount?: number, attempted?: bool, billingReason?: 'subscriptionRenewed' | 'subscriptionCreate' | 'subscriptionChanged' | 'manual' | 'subscriptionRenewalUpcoming', currencyCode?: string, dateCreated?: number, dateNextAttempt?: number, datePeriodEnd?: number, datePeriodStart?: number, initiatedBy: { id?: number, }, internalNote: string, invoiceId?: string, isAutomaticCollection?: bool, isManualPayment?: bool, isPaid?: bool, orderCode?: string, publicNote: string, reason: { code?: 'competitor' | 'healthIssues' | 'notMetExpectations' | 'pricing' | 'noLongerHaveEquipment' | 'busy' | 'other' | 'planChange', message?: string, }, sourceCode?: string, sourceName?: 'stripe' | 'apple' | 'google' | 'amazon', sourceUserCode?: string,status?: string, }
POST /webhooks/invoice-upcoming
Request Body
{ amountDue?: number, amountPaid?: number, amountTax?: number, amountTotal?: number, attemptCount?: number, attempted?: bool, billingReason?: 'subscriptionRenewed' | 'subscriptionCreate' | 'subscriptionChanged' | 'manual' | 'subscriptionRenewalUpcoming', currencyCode?: string, dateCreated?: number, dateNextAttempt?: number, datePeriodEnd?: number, datePeriodStart?: number, initiatedBy: { id?: number, }, internalNote: string, invoiceId?: string, isAutomaticCollection?: bool, isManualPayment?: bool, isPaid?: bool, orderCode?: string, publicNote: string, reason: { code?: 'competitor' | 'healthIssues' | 'notMetExpectations' | 'pricing' | 'noLongerHaveEquipment' | 'busy' | 'other' | 'planChange', message?: string, }, sourceCode?: string, sourceName?: 'stripe' | 'apple' | 'google' | 'amazon', sourceUserCode?: string, + sourceUserEmail: string, status?: string, }
POST /webhooks/invoice-updated
Request Body
{ amountDue?: number, amountPaid?: number, amountTax?: number, amountTotal?: number, attemptCount?: number, attempted?: bool, billingReason?: 'subscriptionRenewed' | 'subscriptionCreate' | 'subscriptionChanged' | 'manual' | 'subscriptionRenewalUpcoming', currencyCode?: string, dateCreated?: number, dateNextAttempt?: number, datePeriodEnd?: number, datePeriodStart?: number, initiatedBy: { id?: number, }, internalNote: string, invoiceId?: string, isAutomaticCollection?: bool, isManualPayment?: bool, isPaid?: bool, orderCode?: string, publicNote: string, reason: { code?: 'competitor' | 'healthIssues' | 'notMetExpectations' | 'pricing' | 'noLongerHaveEquipment' | 'busy' | 'other' | 'planChange', message?: string, }, sourceCode?: string, sourceName?: 'stripe' | 'apple' | 'google' | 'amazon', sourceUserCode?: string,status?: string, }
POST /webhooks/invoice-updated
Request Body
{ amountDue?: number, amountPaid?: number, amountTax?: number, amountTotal?: number, attemptCount?: number, attempted?: bool, billingReason?: 'subscriptionRenewed' | 'subscriptionCreate' | 'subscriptionChanged' | 'manual' | 'subscriptionRenewalUpcoming', currencyCode?: string, dateCreated?: number, dateNextAttempt?: number, datePeriodEnd?: number, datePeriodStart?: number, initiatedBy: { id?: number, }, internalNote: string, invoiceId?: string, isAutomaticCollection?: bool, isManualPayment?: bool, isPaid?: bool, orderCode?: string, publicNote: string, reason: { code?: 'competitor' | 'healthIssues' | 'notMetExpectations' | 'pricing' | 'noLongerHaveEquipment' | 'busy' | 'other' | 'planChange', message?: string, }, sourceCode?: string, sourceName?: 'stripe' | 'apple' | 'google' | 'amazon', sourceUserCode?: string, + sourceUserEmail: string, status?: string, }
POST /webhooks/invoice-paid
Request Body
{ amountDue?: number, amountPaid?: number, amountTax?: number, amountTotal?: number, attemptCount?: number, attempted?: bool, billingReason?: 'subscriptionRenewed' | 'subscriptionCreate' | 'subscriptionChanged' | 'manual' | 'subscriptionRenewalUpcoming', currencyCode?: string, dateCreated?: number, dateNextAttempt?: number, datePeriodEnd?: number, datePeriodStart?: number, initiatedBy: { id?: number, }, internalNote: string, invoiceId?: string, isAutomaticCollection?: bool, isManualPayment?: bool, isPaid?: bool, orderCode?: string, publicNote: string, reason: { code?: 'competitor' | 'healthIssues' | 'notMetExpectations' | 'pricing' | 'noLongerHaveEquipment' | 'busy' | 'other' | 'planChange', message?: string, }, sourceCode?: string, sourceName?: 'stripe' | 'apple' | 'google' | 'amazon', sourceUserCode?: string,status?: string, }
POST /webhooks/invoice-paid
Request Body
{ amountDue?: number, amountPaid?: number, amountTax?: number, amountTotal?: number, attemptCount?: number, attempted?: bool, billingReason?: 'subscriptionRenewed' | 'subscriptionCreate' | 'subscriptionChanged' | 'manual' | 'subscriptionRenewalUpcoming', currencyCode?: string, dateCreated?: number, dateNextAttempt?: number, datePeriodEnd?: number, datePeriodStart?: number, initiatedBy: { id?: number, }, internalNote: string, invoiceId?: string, isAutomaticCollection?: bool, isManualPayment?: bool, isPaid?: bool, orderCode?: string, publicNote: string, reason: { code?: 'competitor' | 'healthIssues' | 'notMetExpectations' | 'pricing' | 'noLongerHaveEquipment' | 'busy' | 'other' | 'planChange', message?: string, }, sourceCode?: string, sourceName?: 'stripe' | 'apple' | 'google' | 'amazon', sourceUserCode?: string, + sourceUserEmail: string, status?: string, }
POST /webhooks/payment-failure
Request Body
{ amountDue?: number, amountPaid?: number, amountTax?: number, amountTotal?: number, attemptCount?: number, attempted?: bool, billingReason?: 'subscriptionRenewed' | 'subscriptionCreate' | 'subscriptionChanged' | 'manual' | 'subscriptionRenewalUpcoming', currencyCode?: string, dateCreated?: number, dateNextAttempt?: number, datePeriodEnd?: number, datePeriodStart?: number, initiatedBy: { id?: number, }, internalNote: string, invoiceId?: string, isAutomaticCollection?: bool, isManualPayment?: bool, isPaid?: bool, orderCode?: string, publicNote: string, reason: { code?: 'competitor' | 'healthIssues' | 'notMetExpectations' | 'pricing' | 'noLongerHaveEquipment' | 'busy' | 'other' | 'planChange', message?: string, }, sourceCode?: string, sourceName?: 'stripe' | 'apple' | 'google' | 'amazon', sourceUserCode?: string,status?: string, }
POST /webhooks/payment-failure
Request Body
{ amountDue?: number, amountPaid?: number, amountTax?: number, amountTotal?: number, attemptCount?: number, attempted?: bool, billingReason?: 'subscriptionRenewed' | 'subscriptionCreate' | 'subscriptionChanged' | 'manual' | 'subscriptionRenewalUpcoming', currencyCode?: string, dateCreated?: number, dateNextAttempt?: number, datePeriodEnd?: number, datePeriodStart?: number, initiatedBy: { id?: number, }, internalNote: string, invoiceId?: string, isAutomaticCollection?: bool, isManualPayment?: bool, isPaid?: bool, orderCode?: string, publicNote: string, reason: { code?: 'competitor' | 'healthIssues' | 'notMetExpectations' | 'pricing' | 'noLongerHaveEquipment' | 'busy' | 'other' | 'planChange', message?: string, }, sourceCode?: string, sourceName?: 'stripe' | 'apple' | 'google' | 'amazon', sourceUserCode?: string, + sourceUserEmail: string, status?: string, }
POST /webhooks/subscription-created
Request Body
{ billingCycleAnchor?: number, createdAt?: number, dateCancelled?: number, dateExpire?: number, datePausedUntil?: number, dateStart?: number, dateTrialEnd?: number, dateTrialStart?: number, initiatedBy: { id?: number, }, internalNote: string, orderCode?: string, planId?: string, publicNote: string, reason: { code?: 'competitor' | 'healthIssues' | 'notMetExpectations' | 'pricing' | 'noLongerHaveEquipment' | 'busy' | 'other' | 'planChange', message?: string, }, renewedAt?: number, sourceCode?: string, sourceType?: 'stripe' | 'apple' | 'google' | 'amazon', sourceUserCode?: string,status?: string, }
POST /webhooks/subscription-created
Request Body
{ billingCycleAnchor?: number, createdAt?: number, dateCancelled?: number, dateExpire?: number, datePausedUntil?: number, dateStart?: number, dateTrialEnd?: number, dateTrialStart?: number, initiatedBy: { id?: number, }, internalNote: string, orderCode?: string, planId?: string, publicNote: string, reason: { code?: 'competitor' | 'healthIssues' | 'notMetExpectations' | 'pricing' | 'noLongerHaveEquipment' | 'busy' | 'other' | 'planChange', message?: string, }, renewedAt?: number, sourceCode?: string, sourceType?: 'stripe' | 'apple' | 'google' | 'amazon', sourceUserCode?: string, + sourceUserEmail: string, status?: string, }
POST /webhooks/subscription-deleted
Request Body
{ billingCycleAnchor?: number, createdAt?: number, dateCancelled?: number, dateExpire?: number, datePausedUntil?: number, dateStart?: number, dateTrialEnd?: number, dateTrialStart?: number, initiatedBy: { id?: number, }, internalNote: string, orderCode?: string, planId?: string, publicNote: string, reason: { code?: 'competitor' | 'healthIssues' | 'notMetExpectations' | 'pricing' | 'noLongerHaveEquipment' | 'busy' | 'other' | 'planChange', message?: string, }, renewedAt?: number, sourceCode?: string, sourceType?: 'stripe' | 'apple' | 'google' | 'amazon', sourceUserCode?: string,status?: string, }
POST /webhooks/subscription-deleted
Request Body
{ billingCycleAnchor?: number, createdAt?: number, dateCancelled?: number, dateExpire?: number, datePausedUntil?: number, dateStart?: number, dateTrialEnd?: number, dateTrialStart?: number, initiatedBy: { id?: number, }, internalNote: string, orderCode?: string, planId?: string, publicNote: string, reason: { code?: 'competitor' | 'healthIssues' | 'notMetExpectations' | 'pricing' | 'noLongerHaveEquipment' | 'busy' | 'other' | 'planChange', message?: string, }, renewedAt?: number, sourceCode?: string, sourceType?: 'stripe' | 'apple' | 'google' | 'amazon', sourceUserCode?: string, + sourceUserEmail: string, status?: string, }
POST /webhooks/subscription-updated
Request Body
{ billingCycleAnchor?: number, createdAt?: number, dateCancelled?: number, dateExpire?: number, datePausedUntil?: number, dateStart?: number, dateTrialEnd?: number, dateTrialStart?: number, initiatedBy: { id?: number, }, internalNote: string, orderCode?: string, planId?: string, publicNote: string, reason: { code?: 'competitor' | 'healthIssues' | 'notMetExpectations' | 'pricing' | 'noLongerHaveEquipment' | 'busy' | 'other' | 'planChange', message?: string, }, renewedAt?: number, sourceCode?: string, sourceType?: 'stripe' | 'apple' | 'google' | 'amazon', sourceUserCode?: string,status?: string, }
POST /webhooks/subscription-updated
Request Body
{ billingCycleAnchor?: number, createdAt?: number, dateCancelled?: number, dateExpire?: number, datePausedUntil?: number, dateStart?: number, dateTrialEnd?: number, dateTrialStart?: number, initiatedBy: { id?: number, }, internalNote: string, orderCode?: string, planId?: string, publicNote: string, reason: { code?: 'competitor' | 'healthIssues' | 'notMetExpectations' | 'pricing' | 'noLongerHaveEquipment' | 'busy' | 'other' | 'planChange', message?: string, }, renewedAt?: number, sourceCode?: string, sourceType?: 'stripe' | 'apple' | 'google' | 'amazon', sourceUserCode?: string, + sourceUserEmail: string, status?: string, }
POST /workouts/process
Process workout - Internal use only
Request Body
{ rideIndex?: { appversion: string, avgcadence: number, avgresistance: number, classimage: string, classname: string, datecreated: number, device: string, dnf: bool, finalrank: number, incline: number, instanceuuid?: string, instructorname: string, iscomplete: bool, osversion: string,- product?: string,rideid: number, ridetype?: string, source: string, totalcalories: number, totaldistance: number, totalhrpoints: number, totaloutput: number, totalriders: number, userid?: number, }, rideIndexById?: { appversion: string, avgcadence: number, avgheartrate: number, avgresistance: number, classimage: string, classname: string, device: string, dnf: bool, duration: number, encore: bool, finalrank: number, incline: number, instanceuuid?: string, instructorname: string, iscomplete: bool, osversion: string,- product?: string,rideid: number, ridetype: string, source: string, totalcalories: number, totaldistance: number, totalhrpoints: number, totaloutput: number, totalriders: number, userid: number, }, segment?: { activity_type: string, bike_statistics: { cadence?: number, calories?: number, distance?: number, output?: { average?: number, best?: number, total?: number, }, resistance?: { average?: number, maximum?: number, }, speed?: number, }, class_length: number, class_name: string, content_id: string, content_type: 'live' | 'vod' | 'encore' | 'freestyle', email?: string, equipment_type: 'bike' | 'fitpass' | 'reflect' | 'row' | 'stride', first_name?: string, fitpass_statistics: { calories?: number, heart_rate_points?: number, }, instructor_id: number, instructor_name: string, last_name?: string, metric_preference?: 'imperial' | 'metric', music_genre: string, place: number, platform?: string, reflect_statistics: { calories?: number, heart_rate_points?: number, }, rowing_statistics: { calories?: number, distance?: number, output?: { average?: number, best?: number, total?: number, }, resistance?: { average?: number, maximum?: number, }, speed?: number, stroke?: { average?: number, maximum?: number, }, }, stride_statistics: { calories?: number, distance?: number, incline?: { average?: number, maximum?: number, }, output?: { average?: number, best?: number, total?: number, }, speed?: { average?: number, maximum?: number, }, }, user_id?: number, }, workoutEntity?: { buffering?: number, commercialCode?: string, completion?: number, contentDuration?: number, contentGuid?: string, dateDeleted?: number, dateEnd?: number, dateStart?: number, duration?: number, format?: string, guid?: string, output?: number, rankingPlace?: number, rankingTotal?: number, stats?: record, timeOffset?: number, type?: 'live' | 'vod' | 'encore' | 'freestyle', userId?: number, }, }
POST /workouts/process
Process workout - Internal use only
Request Body
{ rideIndex?: { appversion: string, avgcadence: number, avgresistance: number, classimage: string, classname: string, datecreated: number, device: string, dnf: bool, finalrank: number, incline: number, instanceuuid?: string, instructorname: string, iscomplete: bool, osversion: string,rideid: number, ridetype?: string, source: string, totalcalories: number, totaldistance: number, totalhrpoints: number, totaloutput: number, totalriders: number, userid?: number, }, rideIndexById?: { appversion: string, avgcadence: number, avgheartrate: number, avgresistance: number, classimage: string, classname: string, device: string, dnf: bool, duration: number, encore: bool, finalrank: number, incline: number, instanceuuid?: string, instructorname: string, iscomplete: bool, osversion: string,
rideid: number, ridetype: string, source: string, totalcalories: number, totaldistance: number, totalhrpoints: number, totaloutput: number, totalriders: number, userid: number, }, segment?: { activity_type: string, bike_statistics: { cadence?: number, calories?: number, distance?: number, output?: { average?: number, best?: number, total?: number, }, resistance?: { average?: number, maximum?: number, }, speed?: number, }, class_length: number, class_name: string, content_id: string, content_type: 'live' | 'vod' | 'encore' | 'freestyle', email?: string, equipment_type: 'bike' | 'fitpass' | 'reflect' | 'row' | 'stride', first_name?: string, fitpass_statistics: { calories?: number, heart_rate_points?: number, }, instructor_id: number, instructor_name: string, last_name?: string, metric_preference?: 'imperial' | 'metric', music_genre: string, place: number, platform?: string, reflect_statistics: { calories?: number, heart_rate_points?: number, }, rowing_statistics: { calories?: number, distance?: number, output?: { average?: number, best?: number, total?: number, }, resistance?: { average?: number, maximum?: number, }, speed?: number, stroke?: { average?: number, maximum?: number, }, }, stride_statistics: { calories?: number, distance?: number, incline?: { average?: number, maximum?: number, }, output?: { average?: number, best?: number, total?: number, }, speed?: { average?: number, maximum?: number, }, }, user_id?: number, }, workoutEntity?: { buffering?: number, commercialCode?: string, completion?: number, contentDuration?: number, contentGuid?: string, dateDeleted?: number, dateEnd?: number, dateStart?: number, duration?: number, format?: string, guid?: string, output?: number, rankingPlace?: number, rankingTotal?: number, stats?: record, timeOffset?: number, type?: 'live' | 'vod' | 'encore' | 'freestyle', userId?: number, }, }