Nest Changelog
1.1.55
7/7/2022
1.1.56
7/12/2022
6 changed endpoints Collapse changed endpoints
GET /users 
Get all users
Response Body
{
data: List<{
billingAddress?: {
city?: string,
country?: {
code?: string,
currency?: {
code?: string,
scale?: number,
symbol?: string,
},
dateCreated?: number,
dateUpdated?: number,
id?: number,
mediaNet?: {
code?: string,
territoryId?: number,
},
name?: string,
numberFormat?: {
decimalSeparator?: '.' | ',' | ' ',
thousandsSeparator?: '.' | ',' | ' ',
},
stripe?: {
id?: number,
},
},
postalCode?: string,
region?: {
code?: string,
name?: string,
},
streetLine1?: string,
streetLine2?: string,
},
birthdate: string,
createdBy?: {
id?: number,
},
dateActivated?: number,
dateCreated?: number,
dateUpdated?: number,
dealer?: {
id?: number,
},
email?: string,
firstName?: string,
forcePasswordChange?: bool,
gender?: {
text: string,
value?: 'm' | 'f' | 'o',
},
height?: {
text?: string,
units?: 'in' | 'cm',
value?: number,
},
id?: number,
image?: {
colors?: {
background?: {
hex?: string,
},
foreground?: {
hex?: string,
},
},
default: string,
initials?: string,
isPlaceholder?: bool,
large: string,
medium: string,
small: string,
url?: string,
},
lastName?: string,
mongoId?: string,
nickname?: string,
parent?: {
id?: number,
mongoId?: string,
},
phoneNumber?: string,
purchaseHistory?: List<{
datePurchased?: number,
name?: string,
retailer?: {
id?: number,
name?: string,
},
serialNumber?: string,
}>,
roles?: List<string>,
stripe?: {
customerId?: string,
},
tagline?: string,
updatedBy?: {
id?: number,
},
weight?: {
text?: string,
units?: 'lb' | 'kg',
value?: number,
},
}>,
pagination: {
page?: number,
skip?: number,
take?: number,
total: {
pages?: number,
rows?: number,
},
},
}GET /users 
Get all users
Response Body
{
data: List<{
billingAddress?: {
city?: string,
country?: {
code?: string,
currency?: {
code?: string,
scale?: number,
symbol?: string,
},
dateCreated?: number,
dateUpdated?: number,
id?: number,
mediaNet?: {
code?: string,
territoryId?: number,
},
name?: string,
numberFormat?: {
decimalSeparator?: '.' | ',' | ' ',
thousandsSeparator?: '.' | ',' | ' ',
},
stripe?: {
id?: number,
},
},
postalCode?: string,
region?: {
code?: string,
name?: string,
},
streetLine1?: string,
streetLine2?: string,
},
birthdate: string,
createdBy?: {
id?: number,
},
dateActivated?: number,
dateCreated?: number,
dateUpdated?: number,
dealer?: {
id?: number,
},
email?: string,
firstName?: string,
forcePasswordChange?: bool,
gender?: {
text: string,
value?: 'm' | 'f' | 'o',
},
height?: {
+ metricValue?: number,
text?: string,
units?: 'in' | 'cm',
value?: number,
},
id?: number,
image?: {
colors?: {
background?: {
hex?: string,
},
foreground?: {
hex?: string,
},
},
default: string,
initials?: string,
isPlaceholder?: bool,
large: string,
medium: string,
small: string,
url?: string,
},
lastName?: string,
mongoId?: string,
nickname?: string,
parent?: {
id?: number,
mongoId?: string,
},
phoneNumber?: string,
purchaseHistory?: List<{
datePurchased?: number,
name?: string,
retailer?: {
id?: number,
name?: string,
},
serialNumber?: string,
}>,
roles?: List<string>,
stripe?: {
customerId?: string,
},
tagline?: string,
updatedBy?: {
id?: number,
},
weight?: {
+ metricValue?: number,
text?: string,
units?: 'lb' | 'kg',
value?: number,
},
}>,
pagination: {
page?: number,
skip?: number,
take?: number,
total: {
pages?: number,
rows?: number,
},
},
}POST /users 
Response Body
{
data: {
billingAddress?: {
city?: string,
country?: {
code?: string,
currency?: {
code?: string,
scale?: number,
symbol?: string,
},
dateCreated?: number,
dateUpdated?: number,
id?: number,
mediaNet?: {
code?: string,
territoryId?: number,
},
name?: string,
numberFormat?: {
decimalSeparator?: '.' | ',' | ' ',
thousandsSeparator?: '.' | ',' | ' ',
},
stripe?: {
id?: number,
},
},
postalCode?: string,
region?: {
code?: string,
name?: string,
},
streetLine1?: string,
streetLine2?: string,
},
birthdate: string,
createdBy?: {
id?: number,
},
dateActivated?: number,
dateCreated?: number,
dateUpdated?: number,
dealer?: {
id?: number,
},
email?: string,
firstName?: string,
forcePasswordChange?: bool,
gender?: {
text: string,
value?: 'm' | 'f' | 'o',
},
height?: {
text?: string,
units?: 'in' | 'cm',
value?: number,
},
id?: number,
image?: {
colors?: {
background?: {
hex?: string,
},
foreground?: {
hex?: string,
},
},
default: string,
initials?: string,
isPlaceholder?: bool,
large: string,
medium: string,
small: string,
url?: string,
},
lastName?: string,
mongoId?: string,
nickname?: string,
parent?: {
id?: number,
mongoId?: string,
},
phoneNumber?: string,
purchaseHistory?: List<{
datePurchased?: number,
name?: string,
retailer?: {
id?: number,
name?: string,
},
serialNumber?: string,
}>,
roles?: List<string>,
stripe?: {
customerId?: string,
},
tagline?: string,
updatedBy?: {
id?: number,
},
weight?: {
text?: string,
units?: 'lb' | 'kg',
value?: number,
},
},
}POST /users 
Response Body
{
data: {
billingAddress?: {
city?: string,
country?: {
code?: string,
currency?: {
code?: string,
scale?: number,
symbol?: string,
},
dateCreated?: number,
dateUpdated?: number,
id?: number,
mediaNet?: {
code?: string,
territoryId?: number,
},
name?: string,
numberFormat?: {
decimalSeparator?: '.' | ',' | ' ',
thousandsSeparator?: '.' | ',' | ' ',
},
stripe?: {
id?: number,
},
},
postalCode?: string,
region?: {
code?: string,
name?: string,
},
streetLine1?: string,
streetLine2?: string,
},
birthdate: string,
createdBy?: {
id?: number,
},
dateActivated?: number,
dateCreated?: number,
dateUpdated?: number,
dealer?: {
id?: number,
},
email?: string,
firstName?: string,
forcePasswordChange?: bool,
gender?: {
text: string,
value?: 'm' | 'f' | 'o',
},
height?: {
+ metricValue?: number,
text?: string,
units?: 'in' | 'cm',
value?: number,
},
id?: number,
image?: {
colors?: {
background?: {
hex?: string,
},
foreground?: {
hex?: string,
},
},
default: string,
initials?: string,
isPlaceholder?: bool,
large: string,
medium: string,
small: string,
url?: string,
},
lastName?: string,
mongoId?: string,
nickname?: string,
parent?: {
id?: number,
mongoId?: string,
},
phoneNumber?: string,
purchaseHistory?: List<{
datePurchased?: number,
name?: string,
retailer?: {
id?: number,
name?: string,
},
serialNumber?: string,
}>,
roles?: List<string>,
stripe?: {
customerId?: string,
},
tagline?: string,
updatedBy?: {
id?: number,
},
weight?: {
+ metricValue?: number,
text?: string,
units?: 'lb' | 'kg',
value?: number,
},
},
}GET /users/{userId} 
Get a specific user by id
Response Body
{
data: {
billingAddress?: {
city?: string,
country?: {
code?: string,
currency?: {
code?: string,
scale?: number,
symbol?: string,
},
dateCreated?: number,
dateUpdated?: number,
id?: number,
mediaNet?: {
code?: string,
territoryId?: number,
},
name?: string,
numberFormat?: {
decimalSeparator?: '.' | ',' | ' ',
thousandsSeparator?: '.' | ',' | ' ',
},
stripe?: {
id?: number,
},
},
postalCode?: string,
region?: {
code?: string,
name?: string,
},
streetLine1?: string,
streetLine2?: string,
},
birthdate: string,
createdBy?: {
id?: number,
},
dateActivated?: number,
dateCreated?: number,
dateUpdated?: number,
dealer?: {
id?: number,
},
email?: string,
firstName?: string,
forcePasswordChange?: bool,
gender?: {
text: string,
value?: 'm' | 'f' | 'o',
},
height?: {
text?: string,
units?: 'in' | 'cm',
value?: number,
},
id?: number,
image?: {
colors?: {
background?: {
hex?: string,
},
foreground?: {
hex?: string,
},
},
default: string,
initials?: string,
isPlaceholder?: bool,
large: string,
medium: string,
small: string,
url?: string,
},
lastName?: string,
mongoId?: string,
nickname?: string,
parent?: {
id?: number,
mongoId?: string,
},
phoneNumber?: string,
purchaseHistory?: List<{
datePurchased?: number,
name?: string,
retailer?: {
id?: number,
name?: string,
},
serialNumber?: string,
}>,
roles?: List<string>,
stripe?: {
customerId?: string,
},
tagline?: string,
updatedBy?: {
id?: number,
},
weight?: {
text?: string,
units?: 'lb' | 'kg',
value?: number,
},
},
}GET /users/{userId} 
Get a specific user by id
Response Body
{
data: {
billingAddress?: {
city?: string,
country?: {
code?: string,
currency?: {
code?: string,
scale?: number,
symbol?: string,
},
dateCreated?: number,
dateUpdated?: number,
id?: number,
mediaNet?: {
code?: string,
territoryId?: number,
},
name?: string,
numberFormat?: {
decimalSeparator?: '.' | ',' | ' ',
thousandsSeparator?: '.' | ',' | ' ',
},
stripe?: {
id?: number,
},
},
postalCode?: string,
region?: {
code?: string,
name?: string,
},
streetLine1?: string,
streetLine2?: string,
},
birthdate: string,
createdBy?: {
id?: number,
},
dateActivated?: number,
dateCreated?: number,
dateUpdated?: number,
dealer?: {
id?: number,
},
email?: string,
firstName?: string,
forcePasswordChange?: bool,
gender?: {
text: string,
value?: 'm' | 'f' | 'o',
},
height?: {
+ metricValue?: number,
text?: string,
units?: 'in' | 'cm',
value?: number,
},
id?: number,
image?: {
colors?: {
background?: {
hex?: string,
},
foreground?: {
hex?: string,
},
},
default: string,
initials?: string,
isPlaceholder?: bool,
large: string,
medium: string,
small: string,
url?: string,
},
lastName?: string,
mongoId?: string,
nickname?: string,
parent?: {
id?: number,
mongoId?: string,
},
phoneNumber?: string,
purchaseHistory?: List<{
datePurchased?: number,
name?: string,
retailer?: {
id?: number,
name?: string,
},
serialNumber?: string,
}>,
roles?: List<string>,
stripe?: {
customerId?: string,
},
tagline?: string,
updatedBy?: {
id?: number,
},
weight?: {
+ metricValue?: number,
text?: string,
units?: 'lb' | 'kg',
value?: number,
},
},
}PATCH /users/{userId} 
Edit this user
Response Body
{
data: {
billingAddress?: {
city?: string,
country?: {
code?: string,
currency?: {
code?: string,
scale?: number,
symbol?: string,
},
dateCreated?: number,
dateUpdated?: number,
id?: number,
mediaNet?: {
code?: string,
territoryId?: number,
},
name?: string,
numberFormat?: {
decimalSeparator?: '.' | ',' | ' ',
thousandsSeparator?: '.' | ',' | ' ',
},
stripe?: {
id?: number,
},
},
postalCode?: string,
region?: {
code?: string,
name?: string,
},
streetLine1?: string,
streetLine2?: string,
},
birthdate: string,
createdBy?: {
id?: number,
},
dateActivated?: number,
dateCreated?: number,
dateUpdated?: number,
dealer?: {
id?: number,
},
email?: string,
firstName?: string,
forcePasswordChange?: bool,
gender?: {
text: string,
value?: 'm' | 'f' | 'o',
},
height?: {
text?: string,
units?: 'in' | 'cm',
value?: number,
},
id?: number,
image?: {
colors?: {
background?: {
hex?: string,
},
foreground?: {
hex?: string,
},
},
default: string,
initials?: string,
isPlaceholder?: bool,
large: string,
medium: string,
small: string,
url?: string,
},
lastName?: string,
mongoId?: string,
nickname?: string,
parent?: {
id?: number,
mongoId?: string,
},
phoneNumber?: string,
purchaseHistory?: List<{
datePurchased?: number,
name?: string,
retailer?: {
id?: number,
name?: string,
},
serialNumber?: string,
}>,
roles?: List<string>,
stripe?: {
customerId?: string,
},
tagline?: string,
updatedBy?: {
id?: number,
},
weight?: {
text?: string,
units?: 'lb' | 'kg',
value?: number,
},
},
}PATCH /users/{userId} 
Edit this user
Response Body
{
data: {
billingAddress?: {
city?: string,
country?: {
code?: string,
currency?: {
code?: string,
scale?: number,
symbol?: string,
},
dateCreated?: number,
dateUpdated?: number,
id?: number,
mediaNet?: {
code?: string,
territoryId?: number,
},
name?: string,
numberFormat?: {
decimalSeparator?: '.' | ',' | ' ',
thousandsSeparator?: '.' | ',' | ' ',
},
stripe?: {
id?: number,
},
},
postalCode?: string,
region?: {
code?: string,
name?: string,
},
streetLine1?: string,
streetLine2?: string,
},
birthdate: string,
createdBy?: {
id?: number,
},
dateActivated?: number,
dateCreated?: number,
dateUpdated?: number,
dealer?: {
id?: number,
},
email?: string,
firstName?: string,
forcePasswordChange?: bool,
gender?: {
text: string,
value?: 'm' | 'f' | 'o',
},
height?: {
+ metricValue?: number,
text?: string,
units?: 'in' | 'cm',
value?: number,
},
id?: number,
image?: {
colors?: {
background?: {
hex?: string,
},
foreground?: {
hex?: string,
},
},
default: string,
initials?: string,
isPlaceholder?: bool,
large: string,
medium: string,
small: string,
url?: string,
},
lastName?: string,
mongoId?: string,
nickname?: string,
parent?: {
id?: number,
mongoId?: string,
},
phoneNumber?: string,
purchaseHistory?: List<{
datePurchased?: number,
name?: string,
retailer?: {
id?: number,
name?: string,
},
serialNumber?: string,
}>,
roles?: List<string>,
stripe?: {
customerId?: string,
},
tagline?: string,
updatedBy?: {
id?: number,
},
weight?: {
+ metricValue?: number,
text?: string,
units?: 'lb' | 'kg',
value?: number,
},
},
}GET /users/{userId}/family 
Get child accounts of this user
Response Body
{
data: List<{
billingAddress?: {
city?: string,
country?: {
code?: string,
currency?: {
code?: string,
scale?: number,
symbol?: string,
},
dateCreated?: number,
dateUpdated?: number,
id?: number,
mediaNet?: {
code?: string,
territoryId?: number,
},
name?: string,
numberFormat?: {
decimalSeparator?: '.' | ',' | ' ',
thousandsSeparator?: '.' | ',' | ' ',
},
stripe?: {
id?: number,
},
},
postalCode?: string,
region?: {
code?: string,
name?: string,
},
streetLine1?: string,
streetLine2?: string,
},
birthdate: string,
createdBy?: {
id?: number,
},
dateActivated?: number,
dateCreated?: number,
dateUpdated?: number,
dealer?: {
id?: number,
},
email?: string,
firstName?: string,
forcePasswordChange?: bool,
gender?: {
text: string,
value?: 'm' | 'f' | 'o',
},
height?: {
text?: string,
units?: 'in' | 'cm',
value?: number,
},
id?: number,
image?: {
colors?: {
background?: {
hex?: string,
},
foreground?: {
hex?: string,
},
},
default: string,
initials?: string,
isPlaceholder?: bool,
large: string,
medium: string,
small: string,
url?: string,
},
lastName?: string,
mongoId?: string,
nickname?: string,
parent?: {
id?: number,
mongoId?: string,
},
phoneNumber?: string,
purchaseHistory?: List<{
datePurchased?: number,
name?: string,
retailer?: {
id?: number,
name?: string,
},
serialNumber?: string,
}>,
roles?: List<string>,
stripe?: {
customerId?: string,
},
tagline?: string,
updatedBy?: {
id?: number,
},
weight?: {
text?: string,
units?: 'lb' | 'kg',
value?: number,
},
}>,
pagination: {
page?: number,
skip?: number,
take?: number,
total: {
pages?: number,
rows?: number,
},
},
}GET /users/{userId}/family 
Get child accounts of this user
Response Body
{
data: List<{
billingAddress?: {
city?: string,
country?: {
code?: string,
currency?: {
code?: string,
scale?: number,
symbol?: string,
},
dateCreated?: number,
dateUpdated?: number,
id?: number,
mediaNet?: {
code?: string,
territoryId?: number,
},
name?: string,
numberFormat?: {
decimalSeparator?: '.' | ',' | ' ',
thousandsSeparator?: '.' | ',' | ' ',
},
stripe?: {
id?: number,
},
},
postalCode?: string,
region?: {
code?: string,
name?: string,
},
streetLine1?: string,
streetLine2?: string,
},
birthdate: string,
createdBy?: {
id?: number,
},
dateActivated?: number,
dateCreated?: number,
dateUpdated?: number,
dealer?: {
id?: number,
},
email?: string,
firstName?: string,
forcePasswordChange?: bool,
gender?: {
text: string,
value?: 'm' | 'f' | 'o',
},
height?: {
+ metricValue?: number,
text?: string,
units?: 'in' | 'cm',
value?: number,
},
id?: number,
image?: {
colors?: {
background?: {
hex?: string,
},
foreground?: {
hex?: string,
},
},
default: string,
initials?: string,
isPlaceholder?: bool,
large: string,
medium: string,
small: string,
url?: string,
},
lastName?: string,
mongoId?: string,
nickname?: string,
parent?: {
id?: number,
mongoId?: string,
},
phoneNumber?: string,
purchaseHistory?: List<{
datePurchased?: number,
name?: string,
retailer?: {
id?: number,
name?: string,
},
serialNumber?: string,
}>,
roles?: List<string>,
stripe?: {
customerId?: string,
},
tagline?: string,
updatedBy?: {
id?: number,
},
weight?: {
+ metricValue?: number,
text?: string,
units?: 'lb' | 'kg',
value?: number,
},
}>,
pagination: {
page?: number,
skip?: number,
take?: number,
total: {
pages?: number,
rows?: number,
},
},
}POST /users/{userId}/family 
Response Body
{
data: {
billingAddress?: {
city?: string,
country?: {
code?: string,
currency?: {
code?: string,
scale?: number,
symbol?: string,
},
dateCreated?: number,
dateUpdated?: number,
id?: number,
mediaNet?: {
code?: string,
territoryId?: number,
},
name?: string,
numberFormat?: {
decimalSeparator?: '.' | ',' | ' ',
thousandsSeparator?: '.' | ',' | ' ',
},
stripe?: {
id?: number,
},
},
postalCode?: string,
region?: {
code?: string,
name?: string,
},
streetLine1?: string,
streetLine2?: string,
},
birthdate: string,
createdBy?: {
id?: number,
},
dateActivated?: number,
dateCreated?: number,
dateUpdated?: number,
dealer?: {
id?: number,
},
email?: string,
firstName?: string,
forcePasswordChange?: bool,
gender?: {
text: string,
value?: 'm' | 'f' | 'o',
},
height?: {
text?: string,
units?: 'in' | 'cm',
value?: number,
},
id?: number,
image?: {
colors?: {
background?: {
hex?: string,
},
foreground?: {
hex?: string,
},
},
default: string,
initials?: string,
isPlaceholder?: bool,
large: string,
medium: string,
small: string,
url?: string,
},
lastName?: string,
mongoId?: string,
nickname?: string,
parent?: {
id?: number,
mongoId?: string,
},
phoneNumber?: string,
purchaseHistory?: List<{
datePurchased?: number,
name?: string,
retailer?: {
id?: number,
name?: string,
},
serialNumber?: string,
}>,
roles?: List<string>,
stripe?: {
customerId?: string,
},
tagline?: string,
updatedBy?: {
id?: number,
},
weight?: {
text?: string,
units?: 'lb' | 'kg',
value?: number,
},
},
embedded: {
jwt?: string,
},
}POST /users/{userId}/family 
Response Body
{
data: {
billingAddress?: {
city?: string,
country?: {
code?: string,
currency?: {
code?: string,
scale?: number,
symbol?: string,
},
dateCreated?: number,
dateUpdated?: number,
id?: number,
mediaNet?: {
code?: string,
territoryId?: number,
},
name?: string,
numberFormat?: {
decimalSeparator?: '.' | ',' | ' ',
thousandsSeparator?: '.' | ',' | ' ',
},
stripe?: {
id?: number,
},
},
postalCode?: string,
region?: {
code?: string,
name?: string,
},
streetLine1?: string,
streetLine2?: string,
},
birthdate: string,
createdBy?: {
id?: number,
},
dateActivated?: number,
dateCreated?: number,
dateUpdated?: number,
dealer?: {
id?: number,
},
email?: string,
firstName?: string,
forcePasswordChange?: bool,
gender?: {
text: string,
value?: 'm' | 'f' | 'o',
},
height?: {
+ metricValue?: number,
text?: string,
units?: 'in' | 'cm',
value?: number,
},
id?: number,
image?: {
colors?: {
background?: {
hex?: string,
},
foreground?: {
hex?: string,
},
},
default: string,
initials?: string,
isPlaceholder?: bool,
large: string,
medium: string,
small: string,
url?: string,
},
lastName?: string,
mongoId?: string,
nickname?: string,
parent?: {
id?: number,
mongoId?: string,
},
phoneNumber?: string,
purchaseHistory?: List<{
datePurchased?: number,
name?: string,
retailer?: {
id?: number,
name?: string,
},
serialNumber?: string,
}>,
roles?: List<string>,
stripe?: {
customerId?: string,
},
tagline?: string,
updatedBy?: {
id?: number,
},
weight?: {
+ metricValue?: number,
text?: string,
units?: 'lb' | 'kg',
value?: number,
},
},
embedded: {
jwt?: string,
},
}3 added endpoints Collapse added endpoints
Added endpoints
POST /webhooks/subscription-created 
Request Body
{
billingCycleAnchor?: number,
dateCancelled?: number,
dateExpires?: number,
datePausedUntil?: number,
dateTrialEnds?: number,
initiatedBy?: {
id?: number,
},
internalNote?: string,
planAmount?: number,
planCurrency?: string,
planId?: number,
planInterval?: string,
planName?: string,
publicNote?: string,
reason?: {
code?: 'competitor' | 'healthIssues' | 'notMetExpectations' | 'pricing' | 'noLongerHaveEquipment' | 'busy' | 'other',
message?: string,
},
renewedAt: number,
shopifyCustomerId: string,
sourceId?: number,
sourceName?: 'stripe' | 'ios' | 'android' | 'amazon',
status?: string,
stripeCustomerId?: string,
subscriptionCreatedAt?: number,
subscriptionOrderId?: string,
subscriptionPeriodEnd?: number,
subscriptionPeriodStart?: number,
subscriptionTrialEnd?: number,
subscriptionTrialStart?: number,
}POST /webhooks/subscription-deleted 
Request Body
{
billingCycleAnchor?: number,
dateCancelled?: number,
dateExpires?: number,
datePausedUntil?: number,
dateTrialEnds?: number,
initiatedBy?: {
id?: number,
},
internalNote?: string,
planAmount?: number,
planCurrency?: string,
planId?: number,
planInterval?: string,
planName?: string,
publicNote?: string,
reason?: {
code?: 'competitor' | 'healthIssues' | 'notMetExpectations' | 'pricing' | 'noLongerHaveEquipment' | 'busy' | 'other',
message?: string,
},
renewedAt: number,
shopifyCustomerId: string,
sourceId?: number,
sourceName?: 'stripe' | 'ios' | 'android' | 'amazon',
status?: string,
stripeCustomerId?: string,
subscriptionCreatedAt?: number,
subscriptionOrderId?: string,
subscriptionPeriodEnd?: number,
subscriptionPeriodStart?: number,
subscriptionTrialEnd?: number,
subscriptionTrialStart?: number,
}POST /webhooks/subscription-updated 
Request Body
{
billingCycleAnchor?: number,
dateCancelled?: number,
dateExpires?: number,
datePausedUntil?: number,
dateTrialEnds?: number,
initiatedBy?: {
id?: number,
},
internalNote?: string,
planAmount?: number,
planCurrency?: string,
planId?: number,
planInterval?: string,
planName?: string,
publicNote?: string,
reason?: {
code?: 'competitor' | 'healthIssues' | 'notMetExpectations' | 'pricing' | 'noLongerHaveEquipment' | 'busy' | 'other',
message?: string,
},
renewedAt: number,
shopifyCustomerId: string,
sourceId?: number,
sourceName?: 'stripe' | 'ios' | 'android' | 'amazon',
status?: string,
stripeCustomerId?: string,
subscriptionCreatedAt?: number,
subscriptionOrderId?: string,
subscriptionPeriodEnd?: number,
subscriptionPeriodStart?: number,
subscriptionTrialEnd?: number,
subscriptionTrialStart?: number,
}