@dalmore/api-contracts 0.0.0-dev.582cb9c → 0.0.0-dev.5e42638

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (201) hide show
  1. package/README.md +23 -19
  2. package/common/types/account-contact.types.ts +2 -1
  3. package/common/types/account-manager.types.ts +3 -7
  4. package/common/types/account-setting.types.ts +65 -0
  5. package/common/types/account.types.ts +1 -0
  6. package/common/types/auth.types.ts +7 -18
  7. package/common/types/bonus-tier.types.ts +33 -0
  8. package/common/types/cart.types.ts +4 -1
  9. package/common/types/common.types.ts +38 -6
  10. package/common/types/comply-advantage-api.types.ts +3 -3
  11. package/common/types/contact-us.types.ts +6 -2
  12. package/common/types/covered-person.types.ts +2 -1
  13. package/common/types/dashboard.types.ts +2 -9
  14. package/common/types/disbursements.types.ts +97 -3
  15. package/common/types/escrow-account.types.ts +3 -3
  16. package/common/types/individuals.types.ts +5 -17
  17. package/common/types/investor-account.types.ts +2 -1
  18. package/common/types/invite.types.ts +27 -1
  19. package/common/types/issuer-offering.types.ts +11 -17
  20. package/common/types/legal-entity.types.ts +3 -2
  21. package/common/types/mail-template.types.ts +34 -0
  22. package/common/types/note.types.ts +1 -1
  23. package/common/types/notification.types.ts +525 -29
  24. package/common/types/offering.types.ts +2 -9
  25. package/common/types/site-settings.types.ts +2 -1
  26. package/common/types/site.types.ts +2 -9
  27. package/common/types/{trade-line-item.type.ts → trade-line-item.types.ts} +2 -9
  28. package/common/types/trade.types.ts +48 -2
  29. package/common/types/transaction.types.ts +12 -1
  30. package/common/types/trusted-contact.types.ts +7 -7
  31. package/common/types/user.types.ts +17 -33
  32. package/common/types/webhook.types.ts +142 -0
  33. package/contracts/clients/cart/index.ts +21 -1
  34. package/contracts/clients/index.ts +2 -0
  35. package/contracts/clients/trade-line-items/index.ts +1 -1
  36. package/contracts/clients/trades/index.ts +1 -1
  37. package/contracts/{investors → clients}/transactions/index.ts +3 -3
  38. package/index.ts +10 -0
  39. package/package.json +23 -32
  40. package/contracts/compliance/account-contacts/index.ts +0 -82
  41. package/contracts/compliance/account-managers/index.ts +0 -142
  42. package/contracts/compliance/accounts/index.ts +0 -187
  43. package/contracts/compliance/activities/index.ts +0 -55
  44. package/contracts/compliance/aic/index.ts +0 -60
  45. package/contracts/compliance/api-keys/index.ts +0 -91
  46. package/contracts/compliance/assets/index.ts +0 -122
  47. package/contracts/compliance/auth/index.ts +0 -134
  48. package/contracts/compliance/batch-jobs/index.ts +0 -62
  49. package/contracts/compliance/bonus-tiers/index.ts +0 -55
  50. package/contracts/compliance/checklist/index.ts +0 -87
  51. package/contracts/compliance/checklist-items/index.ts +0 -86
  52. package/contracts/compliance/covered-persons/index.ts +0 -97
  53. package/contracts/compliance/dashboard/index.ts +0 -111
  54. package/contracts/compliance/data-records/index.ts +0 -116
  55. package/contracts/compliance/data-rooms/index.ts +0 -113
  56. package/contracts/compliance/default-theme-configs/index.ts +0 -95
  57. package/contracts/compliance/disbursement/index.ts +0 -165
  58. package/contracts/compliance/disbursement-approval-users/index.ts +0 -84
  59. package/contracts/compliance/disbursement-transactions/index.ts +0 -37
  60. package/contracts/compliance/domain-filters/index.ts +0 -117
  61. package/contracts/compliance/email-themes/index.ts +0 -284
  62. package/contracts/compliance/escrow-accounts/index.ts +0 -85
  63. package/contracts/compliance/exchange-api-keys/index.ts +0 -129
  64. package/contracts/compliance/exchange-imports/index.ts +0 -137
  65. package/contracts/compliance/files/index.ts +0 -267
  66. package/contracts/compliance/files-public/index.ts +0 -188
  67. package/contracts/compliance/health/index.ts +0 -26
  68. package/contracts/compliance/index.ts +0 -147
  69. package/contracts/compliance/individuals/index.ts +0 -57
  70. package/contracts/compliance/investor-accounts/index.ts +0 -141
  71. package/contracts/compliance/invites/index.ts +0 -137
  72. package/contracts/compliance/issuer-bank-accounts/index.ts +0 -81
  73. package/contracts/compliance/issuer-payment-methods/index.ts +0 -81
  74. package/contracts/compliance/issuers/index.ts +0 -97
  75. package/contracts/compliance/job-items/index.ts +0 -58
  76. package/contracts/compliance/jobs/index.ts +0 -59
  77. package/contracts/compliance/kyb/index.ts +0 -54
  78. package/contracts/compliance/kyc/index.ts +0 -77
  79. package/contracts/compliance/legal-entities/index.ts +0 -57
  80. package/contracts/compliance/login-histories/index.ts +0 -37
  81. package/contracts/compliance/notes/index.ts +0 -69
  82. package/contracts/compliance/notion-databases/index.ts +0 -107
  83. package/contracts/compliance/notion-pages/index.ts +0 -105
  84. package/contracts/compliance/offering-reports/index.ts +0 -149
  85. package/contracts/compliance/offerings/index.ts +0 -233
  86. package/contracts/compliance/pages/index.ts +0 -178
  87. package/contracts/compliance/payment-methods/index.ts +0 -57
  88. package/contracts/compliance/rejection-reasons/index.ts +0 -32
  89. package/contracts/compliance/review/index.ts +0 -169
  90. package/contracts/compliance/roles/index.ts +0 -34
  91. package/contracts/compliance/secondary-customers/index.ts +0 -77
  92. package/contracts/compliance/secondary-orders/index.ts +0 -60
  93. package/contracts/compliance/secondary-trades/index.ts +0 -100
  94. package/contracts/compliance/secure-requests/index.ts +0 -54
  95. package/contracts/compliance/signer/index.ts +0 -369
  96. package/contracts/compliance/site-links/index.ts +0 -128
  97. package/contracts/compliance/site-settings/index.ts +0 -669
  98. package/contracts/compliance/sites/index.ts +0 -56
  99. package/contracts/compliance/state-machine/index.ts +0 -94
  100. package/contracts/compliance/tasks/index.ts +0 -91
  101. package/contracts/compliance/third-parties/index.ts +0 -52
  102. package/contracts/compliance/trade-line-items/index.ts +0 -59
  103. package/contracts/compliance/trades/index.ts +0 -230
  104. package/contracts/compliance/transactions/index.ts +0 -161
  105. package/contracts/compliance/user-manuals/index.ts +0 -271
  106. package/contracts/compliance/user-settings/index.ts +0 -189
  107. package/contracts/compliance/users/index.ts +0 -200
  108. package/contracts/compliance/webhooks/index.ts +0 -41
  109. package/contracts/compliance-apikey/accounts/index.ts +0 -58
  110. package/contracts/compliance-apikey/index.ts +0 -14
  111. package/contracts/index.ts +0 -6
  112. package/contracts/investors/account-contacts/index.ts +0 -58
  113. package/contracts/investors/aic/index.ts +0 -59
  114. package/contracts/investors/assets/index.ts +0 -61
  115. package/contracts/investors/auth/index.ts +0 -116
  116. package/contracts/investors/bonus-tiers/index.ts +0 -37
  117. package/contracts/investors/cart/index.ts +0 -75
  118. package/contracts/investors/contact-us/index.ts +0 -48
  119. package/contracts/investors/data-records/index.ts +0 -113
  120. package/contracts/investors/data-rooms/index.ts +0 -96
  121. package/contracts/investors/files/index.ts +0 -167
  122. package/contracts/investors/files-public/index.ts +0 -185
  123. package/contracts/investors/index.ts +0 -72
  124. package/contracts/investors/individuals/index.ts +0 -121
  125. package/contracts/investors/investor-accounts/index.ts +0 -110
  126. package/contracts/investors/issuer-payment-methods/index.ts +0 -36
  127. package/contracts/investors/issuers/index.ts +0 -30
  128. package/contracts/investors/legal-entities/index.ts +0 -93
  129. package/contracts/investors/notes/index.ts +0 -69
  130. package/contracts/investors/offerings/index.ts +0 -93
  131. package/contracts/investors/pages/index.ts +0 -88
  132. package/contracts/investors/payment-methods/index.ts +0 -149
  133. package/contracts/investors/portfolios/index.ts +0 -53
  134. package/contracts/investors/sites/index.ts +0 -96
  135. package/contracts/investors/tasks/index.ts +0 -111
  136. package/contracts/investors/trade-line-items/index.ts +0 -75
  137. package/contracts/investors/trades/index.ts +0 -114
  138. package/contracts/investors/trusted-contacts/index.ts +0 -93
  139. package/contracts/investors/user-manuals/index.ts +0 -62
  140. package/contracts/investors/user-settings/index.ts +0 -170
  141. package/contracts/investors/users/index.ts +0 -45
  142. package/contracts/investors/webhooks/index.ts +0 -30
  143. package/contracts/issuers/account-contacts/index.ts +0 -76
  144. package/contracts/issuers/account-integrations/index.ts +0 -97
  145. package/contracts/issuers/accounts/index.ts +0 -97
  146. package/contracts/issuers/activities/index.ts +0 -54
  147. package/contracts/issuers/aic/index.ts +0 -39
  148. package/contracts/issuers/api-key-logs/index.ts +0 -53
  149. package/contracts/issuers/api-keys/index.ts +0 -93
  150. package/contracts/issuers/assets/index.ts +0 -122
  151. package/contracts/issuers/auth/index.ts +0 -152
  152. package/contracts/issuers/bonus-tiers/index.ts +0 -55
  153. package/contracts/issuers/contact-us/index.ts +0 -48
  154. package/contracts/issuers/covered-persons/index.ts +0 -136
  155. package/contracts/issuers/dashboard/index.ts +0 -72
  156. package/contracts/issuers/data-records/index.ts +0 -257
  157. package/contracts/issuers/data-rooms/index.ts +0 -134
  158. package/contracts/issuers/disbursement-approval-users/index.ts +0 -82
  159. package/contracts/issuers/disbursement-transactions/index.ts +0 -53
  160. package/contracts/issuers/disbursements/index.ts +0 -171
  161. package/contracts/issuers/email-themes/index.ts +0 -242
  162. package/contracts/issuers/escrow-accounts/index.ts +0 -81
  163. package/contracts/issuers/exchange-api-keys/index.ts +0 -144
  164. package/contracts/issuers/files/index.ts +0 -166
  165. package/contracts/issuers/files-public/index.ts +0 -166
  166. package/contracts/issuers/health/index.ts +0 -24
  167. package/contracts/issuers/index.ts +0 -112
  168. package/contracts/issuers/investor-accounts/index.ts +0 -148
  169. package/contracts/issuers/invites/index.ts +0 -129
  170. package/contracts/issuers/issuer/index.ts +0 -94
  171. package/contracts/issuers/issuer-bank-accounts/index.ts +0 -81
  172. package/contracts/issuers/issuer-payment-methods/index.ts +0 -136
  173. package/contracts/issuers/kyc/index.ts +0 -38
  174. package/contracts/issuers/login-histories/index.ts +0 -51
  175. package/contracts/issuers/notes/index.ts +0 -69
  176. package/contracts/issuers/offerings/index.ts +0 -206
  177. package/contracts/issuers/pages/index.ts +0 -138
  178. package/contracts/issuers/payment-methods/index.ts +0 -61
  179. package/contracts/issuers/portfolios/index.ts +0 -36
  180. package/contracts/issuers/rejection-reasons/index.ts +0 -32
  181. package/contracts/issuers/review/index.ts +0 -63
  182. package/contracts/issuers/secondary-customers/index.ts +0 -55
  183. package/contracts/issuers/secondary-orders/index.ts +0 -57
  184. package/contracts/issuers/secondary-trades/index.ts +0 -57
  185. package/contracts/issuers/secure-requests/index.ts +0 -34
  186. package/contracts/issuers/site-links/index.ts +0 -116
  187. package/contracts/issuers/site-settings/index.ts +0 -585
  188. package/contracts/issuers/sites/index.ts +0 -32
  189. package/contracts/issuers/tasks/index.ts +0 -111
  190. package/contracts/issuers/trades/index.ts +0 -132
  191. package/contracts/issuers/transactions/index.ts +0 -158
  192. package/contracts/issuers/user-manuals/index.ts +0 -62
  193. package/contracts/issuers/user-settings/index.ts +0 -170
  194. package/contracts/issuers/users/index.ts +0 -126
  195. package/contracts/secondaries/accounts/index.ts +0 -58
  196. package/contracts/secondaries/index.ts +0 -23
  197. package/contracts/secondaries/secondary-customers/index.ts +0 -55
  198. package/contracts/secondaries/secondary-issuers/index.ts +0 -94
  199. package/contracts/secondaries/secondary-orders/index.ts +0 -56
  200. package/contracts/secondaries/secondary-securities/index.ts +0 -95
  201. package/contracts/secondaries/secondary-trades/index.ts +0 -56
@@ -12,12 +12,11 @@ import {
12
12
  InvestorAccountType,
13
13
  SetupStatusType,
14
14
  SetupStepType,
15
- ComplianceReview,
16
15
  RetirementAccountType,
17
- TradeStatus,
18
16
  EmploymentStatus,
19
17
  SourceOfIncome,
20
18
  AMLProvider,
19
+ EmailSchema,
21
20
  } from './common.types';
22
21
  import { IBaseEntity } from './entity.types';
23
22
  import { IInvestorAccount } from './investor-account.types';
@@ -60,8 +59,8 @@ export enum aicQuestionnaireQuestionType {
60
59
  }
61
60
 
62
61
  export enum FilterBy {
63
- TRADE = 'TRADE',
64
- INVESTOR = 'INVESTOR',
62
+ ALL = 'ALL',
63
+ PENDING_TRADES = 'PENDING_TRADES',
65
64
  }
66
65
 
67
66
  export const aicQuestionnaireQuestion = z.object({
@@ -243,17 +242,6 @@ export const IndividualFiltersZod = z.object({
243
242
 
244
243
  export const ComplianceIndividualFiltersZod = IndividualFiltersZod.extend({
245
244
  filterBy: z.nativeEnum(FilterBy).optional(),
246
- tradeStatus: z.nativeEnum(TradeStatus).optional(),
247
- complianceReview: z.nativeEnum(ComplianceReview).optional(),
248
- hasPendingTrades: z.preprocess(
249
- (val) =>
250
- val === 'true' || val === '1'
251
- ? true
252
- : val === 'false' || val === '0'
253
- ? false
254
- : val,
255
- z.boolean().optional(),
256
- ),
257
245
  });
258
246
 
259
247
  /**
@@ -301,7 +289,7 @@ export const PostIndividualBodySchema = z
301
289
  .string()
302
290
  .length(3, 'currencyCode must be 3 digits')
303
291
  .optional(),
304
- email: z.string().email().optional(),
292
+ email: EmailSchema.optional(),
305
293
  role: z.nativeEnum(IndividualRole),
306
294
  phone: PhoneZodSchema.openapi({ example: '+12124567890' }).optional(),
307
295
  ownership: z.coerce
@@ -400,7 +388,7 @@ export const UpdateIndividualBodySchema = z
400
388
  .length(3, 'currencyCode must be 3 digits')
401
389
  .optional(),
402
390
  phone: PhoneZodSchema.openapi({ example: '+12124567890' }).optional(),
403
- email: z.string().email().optional(),
391
+ email: EmailSchema.optional(),
404
392
  ownership: z.coerce
405
393
  .number()
406
394
  .min(0, 'Ownership is less than 0')
@@ -24,6 +24,7 @@ import {
24
24
  SortBy,
25
25
  SortOrder,
26
26
  AMLProvider,
27
+ EmailSchema,
27
28
  } from './common.types';
28
29
  import { accountIdSchema } from './account.types';
29
30
  import { SaStatus, tradeIdSchema, TradeZod } from './trade.types';
@@ -131,7 +132,7 @@ export type PostClientInvestorAccountBody = z.infer<
131
132
 
132
133
  export const UpdateInvestorAccountBodySchema = z.object({
133
134
  name: z.string().optional(),
134
- email: z.string().email().optional(),
135
+ email: EmailSchema.optional(),
135
136
  });
136
137
  export type UpdateInvestorAccountBody = z.infer<
137
138
  typeof UpdateInvestorAccountBodySchema
@@ -3,7 +3,9 @@ import {
3
3
  AccountZod,
4
4
  IPaginationMeta,
5
5
  IssuerRole,
6
+ PortalType,
6
7
  UserRole,
8
+ EmailSchema,
7
9
  } from './common.types';
8
10
  import { extendZodWithOpenApi } from '@anatine/zod-openapi';
9
11
  import { TypeID } from 'typeid-js';
@@ -48,7 +50,7 @@ export const InviteWithUrl = InviteWithoutSecretZod.extend({
48
50
  export type InviteWithUrl = z.infer<typeof InviteWithUrl>;
49
51
 
50
52
  export const PostIssuerInviteZod = z.object({
51
- email: z.string().email(),
53
+ email: EmailSchema,
52
54
  role: z.nativeEnum(IssuerRole),
53
55
  });
54
56
 
@@ -131,3 +133,27 @@ export const PatchInviteForComplianceZod = PatchInviteRoleZod.extend({
131
133
  export type PatchInviteForComplianceZod = z.infer<
132
134
  typeof PatchInviteForComplianceZod
133
135
  >;
136
+
137
+ export const PostInviteZod = z.object({
138
+ email: EmailSchema,
139
+ role: z.nativeEnum(UserRole).openapi({
140
+ example: UserRole.ADMIN,
141
+ }),
142
+ accountId: z.string().optional().openapi({
143
+ example: 'account_01j5y5ghx5fg68d663j1fvy2x7',
144
+ }),
145
+ portalType: z.nativeEnum(PortalType).optional().openapi({
146
+ example: PortalType.ISSUER,
147
+ }),
148
+ });
149
+
150
+ export type PostInviteZod = z.infer<typeof PostInviteZod>;
151
+
152
+ export const CompliancePostInviteZod = z.object({
153
+ email: EmailSchema,
154
+ role: z.nativeEnum(UserRole).openapi({
155
+ example: UserRole.ADMIN,
156
+ }),
157
+ });
158
+
159
+ export type CompliancePostInviteZod = z.infer<typeof CompliancePostInviteZod>;
@@ -10,6 +10,7 @@ import {
10
10
  ComplianceReview,
11
11
  DurationType,
12
12
  AssetType,
13
+ StringToBooleanSchema,
13
14
  } from './common.types';
14
15
  import { IBaseEntity } from './entity.types';
15
16
  import { IIssuer, issuerIdSchema } from './issuer.types';
@@ -193,38 +194,39 @@ export const PatchIssuerOffering = z.object({
193
194
  .max(100)
194
195
  .optional()
195
196
  .openapi({ example: 'Airbnb IPO' }),
197
+ type: z
198
+ .nativeEnum(OfferingType)
199
+ .optional()
200
+ .openapi({ example: OfferingType.REG_D }),
196
201
  targetAmount: z
197
202
  .number()
198
203
  .min(0)
199
204
  .max(10000000000)
200
205
  .optional()
201
206
  .openapi({ example: 120000 }),
202
- raiseAmount: z
203
- .number()
204
- .min(0)
205
- .max(10000000000)
206
- .optional()
207
- .openapi({ example: 200000 }),
208
207
  minInvestment: z
209
208
  .number()
210
209
  .min(0)
211
210
  .max(10000000000)
211
+ .nullable()
212
212
  .optional()
213
213
  .openapi({ example: 1000 }),
214
214
  maxInvestment: z
215
215
  .number()
216
216
  .min(0)
217
217
  .max(10000000000)
218
+ .nullable()
218
219
  .optional()
219
220
  .openapi({ example: 20000 }),
220
221
  contingencyAmount: z
221
222
  .number()
222
223
  .min(0)
223
224
  .max(10000000000)
225
+ .nullable()
224
226
  .optional()
225
227
  .openapi({ example: 5000 }),
226
- startAt: dateSchema.optional().openapi({ example: '10/20/2024' }),
227
- endAt: dateSchema.optional().openapi({ example: '10/27/2024' }),
228
+ startAt: dateSchema.nullable().optional().openapi({ example: '10/20/2024' }),
229
+ endAt: dateSchema.nullable().optional().openapi({ example: '10/27/2024' }),
228
230
  cancellationPeriod: z
229
231
  .number()
230
232
  .min(1)
@@ -370,15 +372,7 @@ export const IssuerOfferingsFilterZod = z.object({
370
372
  issuerId: z.lazy(() => issuerIdSchema).optional(),
371
373
  type: z.nativeEnum(OfferingType).optional(),
372
374
  status: z.nativeEnum(ComplianceReview).optional(),
373
- enabled: z.preprocess(
374
- (val) =>
375
- val === 'true' || val === '1'
376
- ? true
377
- : val === 'false' || val === '0'
378
- ? false
379
- : val,
380
- z.boolean().optional(),
381
- ),
375
+ enabled: StringToBooleanSchema.optional(),
382
376
  managedBy: z.nativeEnum(ManagedByType).optional(),
383
377
  versioningType: z.nativeEnum(OfferingVersioningType).optional(),
384
378
  combinedStatus: z.nativeEnum(OfferingStatus).optional(),
@@ -2,6 +2,7 @@ import { z } from 'zod';
2
2
  import { IBaseEntity } from './entity.types';
3
3
  import {
4
4
  dateSchema,
5
+ EmailSchema,
5
6
  IPaginationMeta,
6
7
  KYBStatus,
7
8
  SanctionsStatus,
@@ -138,7 +139,7 @@ export const PostLegalEntitySchema = z
138
139
  investorAccountId: investorAccountIdSchema,
139
140
  name: CompanyNameSchema,
140
141
  ein: EINSchema,
141
- email: z.string().email().optional(),
142
+ email: EmailSchema.optional(),
142
143
  companyType: CompanyTypeSchema.optional(),
143
144
  phone: PhoneZodSchema.openapi({ example: '+12124567890' }).optional(),
144
145
  dateOfIncorporation: z.lazy(() => dateSchema).optional(),
@@ -153,7 +154,7 @@ export const UpdateLegalEntitySchema = z
153
154
  id: legalEntityIdSchema.optional(),
154
155
  name: CompanyNameSchema.optional(),
155
156
  ein: EINSchema,
156
- email: z.string().email().optional(),
157
+ email: EmailSchema.optional(),
157
158
  companyType: CompanyTypeSchema.optional(),
158
159
  phone: PhoneZodSchema.openapi({ example: '+12124567890' }).optional(),
159
160
  dateOfIncorporation: z.lazy(() => dateSchema).optional(),
@@ -434,3 +434,37 @@ export type EmailThemeSetting = z.infer<typeof EmailThemeSettingZod>;
434
434
 
435
435
  export const EmailThemeSettingsZod = z.array(EmailThemeSettingZod);
436
436
  export type EmailThemeSettingsZod = z.infer<typeof EmailThemeSettingsZod>;
437
+
438
+ /**
439
+ * Response from a successful email send operation.
440
+ * Based on SendGrid SDK's ClientResponse structure.
441
+ */
442
+ export const EmailSendResponseSchema = z.object({
443
+ /** HTTP status code from SendGrid (e.g., 202 for accepted) */
444
+ statusCode: z.number(),
445
+ /** SendGrid's x-message-id header for tracking emails in their dashboard */
446
+ messageId: z.string().optional(),
447
+ /** Full response headers, available for debugging if needed */
448
+ headers: z.record(z.string(), z.unknown()).optional(),
449
+ });
450
+ export type EmailSendResponse = z.infer<typeof EmailSendResponseSchema>;
451
+
452
+ /**
453
+ * Error from a failed email send operation.
454
+ * Fields are optional because error shapes vary depending on failure type
455
+ * (network errors vs SendGrid API errors).
456
+ */
457
+ export const EmailSendErrorSchema = z.object({
458
+ /** Human-readable error message */
459
+ message: z.string(),
460
+ /** Network-level error code (e.g., 'ECONNREFUSED', 'ETIMEDOUT') */
461
+ code: z.string().optional(),
462
+ /** HTTP status code if request reached SendGrid (e.g., 400, 401, 403, 413, 500) */
463
+ statusCode: z.number().optional(),
464
+ /**
465
+ * SendGrid's error response body. Structure: { errors: [{ message, field, help, id }] }
466
+ * @see https://www.twilio.com/docs/sendgrid/api-reference/mail-send/mail-send#responses
467
+ */
468
+ response: z.unknown().optional(),
469
+ });
470
+ export type EmailSendError = z.infer<typeof EmailSendErrorSchema>;
@@ -79,7 +79,7 @@ export const PostNoteBody = z.object({
79
79
  export type PostNoteBody = z.infer<typeof PostNoteBody>;
80
80
 
81
81
  export const CompliancePostNoteBody = PostNoteBody.extend({
82
- accountId: accountIdSchema,
82
+ accountId: accountIdSchema.nullable().default(null),
83
83
  });
84
84
 
85
85
  export type CompliancePostNoteBody = z.infer<typeof CompliancePostNoteBody>;