@moovio/sdk 26.7.0-dev.5 → 26.7.0

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 (182) hide show
  1. package/README.md +121 -59
  2. package/bin/mcp-server.js +520 -187
  3. package/bin/mcp-server.js.map +38 -28
  4. package/funcs/avatarsDelete.d.ts +23 -0
  5. package/funcs/avatarsDelete.d.ts.map +1 -0
  6. package/funcs/avatarsDelete.js +135 -0
  7. package/funcs/avatarsDelete.js.map +1 -0
  8. package/funcs/avatarsUpload.d.ts +23 -0
  9. package/funcs/avatarsUpload.d.ts.map +1 -0
  10. package/funcs/avatarsUpload.js +155 -0
  11. package/funcs/avatarsUpload.js.map +1 -0
  12. package/funcs/productsList.js +1 -0
  13. package/funcs/productsList.js.map +1 -1
  14. package/funcs/productsListCategories.d.ts +14 -0
  15. package/funcs/productsListCategories.d.ts.map +1 -0
  16. package/funcs/productsListCategories.js +107 -0
  17. package/funcs/productsListCategories.js.map +1 -0
  18. package/hooks/oauth2scopes.d.ts +5 -0
  19. package/hooks/oauth2scopes.d.ts.map +1 -0
  20. package/hooks/oauth2scopes.js +6 -0
  21. package/hooks/oauth2scopes.js.map +1 -0
  22. package/jsr.json +1 -1
  23. package/lib/config.d.ts +3 -3
  24. package/lib/config.d.ts.map +1 -1
  25. package/lib/config.js +3 -3
  26. package/lib/config.js.map +1 -1
  27. package/lib/http.d.ts +1 -1
  28. package/lib/http.d.ts.map +1 -1
  29. package/lib/http.js +1 -1
  30. package/lib/http.js.map +1 -1
  31. package/lib/security.d.ts +5 -4
  32. package/lib/security.d.ts.map +1 -1
  33. package/lib/security.js +6 -7
  34. package/lib/security.js.map +1 -1
  35. package/mcp-server/mcp-server.js +1 -1
  36. package/mcp-server/mcp-server.js.map +1 -1
  37. package/mcp-server/server.d.ts.map +1 -1
  38. package/mcp-server/server.js +3 -1
  39. package/mcp-server/server.js.map +1 -1
  40. package/mcp-server/tools/productsListCategories.d.ts +3 -0
  41. package/mcp-server/tools/productsListCategories.d.ts.map +1 -0
  42. package/mcp-server/tools/productsListCategories.js +24 -0
  43. package/mcp-server/tools/productsListCategories.js.map +1 -0
  44. package/models/components/avataruploadrequest.d.ts +35 -0
  45. package/models/components/avataruploadrequest.d.ts.map +1 -0
  46. package/models/components/avataruploadrequest.js +88 -0
  47. package/models/components/avataruploadrequest.js.map +1 -0
  48. package/models/components/capabilityid.d.ts +1 -0
  49. package/models/components/capabilityid.d.ts.map +1 -1
  50. package/models/components/capabilityid.js +1 -0
  51. package/models/components/capabilityid.js.map +1 -1
  52. package/models/components/cardbrandfees.d.ts +5 -0
  53. package/models/components/cardbrandfees.d.ts.map +1 -1
  54. package/models/components/cardbrandfees.js +2 -0
  55. package/models/components/cardbrandfees.js.map +1 -1
  56. package/models/components/createtransfer.d.ts +6 -0
  57. package/models/components/createtransfer.d.ts.map +1 -1
  58. package/models/components/createtransfer.js +3 -0
  59. package/models/components/createtransfer.js.map +1 -1
  60. package/models/components/feepaidby.d.ts +18 -0
  61. package/models/components/feepaidby.d.ts.map +1 -0
  62. package/models/components/feepaidby.js +52 -0
  63. package/models/components/feepaidby.js.map +1 -0
  64. package/models/components/filedetails.d.ts +1 -1
  65. package/models/components/filepurpose.d.ts +2 -2
  66. package/models/components/filepurpose.js +1 -1
  67. package/models/components/incurredfee.d.ts +6 -0
  68. package/models/components/incurredfee.d.ts.map +1 -1
  69. package/models/components/incurredfee.js +3 -0
  70. package/models/components/incurredfee.js.map +1 -1
  71. package/models/components/index.d.ts +5 -0
  72. package/models/components/index.d.ts.map +1 -1
  73. package/models/components/index.js +5 -0
  74. package/models/components/index.js.map +1 -1
  75. package/models/components/issuingintervallimit.d.ts +2 -2
  76. package/models/components/issuingintervallimit.js +1 -1
  77. package/models/components/issuingvelocitylimit.d.ts +1 -1
  78. package/models/components/onboardinginvite.d.ts +1 -1
  79. package/models/components/paymentlinkpayoutdetails.d.ts +14 -0
  80. package/models/components/paymentlinkpayoutdetails.d.ts.map +1 -1
  81. package/models/components/paymentlinkpayoutdetails.js +3 -0
  82. package/models/components/paymentlinkpayoutdetails.js.map +1 -1
  83. package/models/components/paymentlinkpayoutdetailsupdate.d.ts +14 -0
  84. package/models/components/paymentlinkpayoutdetailsupdate.d.ts.map +1 -1
  85. package/models/components/paymentlinkpayoutdetailsupdate.js +3 -0
  86. package/models/components/paymentlinkpayoutdetailsupdate.js.map +1 -1
  87. package/models/components/payoutdetailserror.d.ts +2 -0
  88. package/models/components/payoutdetailserror.d.ts.map +1 -1
  89. package/models/components/payoutdetailserror.js +2 -0
  90. package/models/components/payoutdetailserror.js.map +1 -1
  91. package/models/components/product.d.ts +6 -0
  92. package/models/components/product.d.ts.map +1 -1
  93. package/models/components/product.js +3 -0
  94. package/models/components/product.js.map +1 -1
  95. package/models/components/productcategories.d.ts +21 -0
  96. package/models/components/productcategories.d.ts.map +1 -0
  97. package/models/components/productcategories.js +59 -0
  98. package/models/components/productcategories.js.map +1 -0
  99. package/models/components/productcategory.d.ts +43 -0
  100. package/models/components/productcategory.d.ts.map +1 -0
  101. package/models/components/productcategory.js +67 -0
  102. package/models/components/productcategory.js.map +1 -0
  103. package/models/components/productrequest.d.ts +5 -0
  104. package/models/components/productrequest.d.ts.map +1 -1
  105. package/models/components/productrequest.js +2 -0
  106. package/models/components/productrequest.js.map +1 -1
  107. package/models/components/transferfeepaidby.d.ts +24 -0
  108. package/models/components/transferfeepaidby.d.ts.map +1 -0
  109. package/models/components/transferfeepaidby.js +60 -0
  110. package/models/components/transferfeepaidby.js.map +1 -0
  111. package/models/errors/productrequestvalidationerror.d.ts +3 -0
  112. package/models/errors/productrequestvalidationerror.d.ts.map +1 -1
  113. package/models/errors/productrequestvalidationerror.js +4 -0
  114. package/models/errors/productrequestvalidationerror.js.map +1 -1
  115. package/models/operations/deleteavatar.d.ts +52 -0
  116. package/models/operations/deleteavatar.d.ts.map +1 -0
  117. package/models/operations/deleteavatar.js +102 -0
  118. package/models/operations/deleteavatar.js.map +1 -0
  119. package/models/operations/index.d.ts +3 -0
  120. package/models/operations/index.d.ts.map +1 -1
  121. package/models/operations/index.js +3 -0
  122. package/models/operations/index.js.map +1 -1
  123. package/models/operations/listproductcategories.d.ts +24 -0
  124. package/models/operations/listproductcategories.d.ts.map +1 -0
  125. package/models/operations/listproductcategories.js +72 -0
  126. package/models/operations/listproductcategories.js.map +1 -0
  127. package/models/operations/listproducts.d.ts +9 -0
  128. package/models/operations/listproducts.d.ts.map +1 -1
  129. package/models/operations/listproducts.js +2 -0
  130. package/models/operations/listproducts.js.map +1 -1
  131. package/models/operations/uploadavatar.d.ts +55 -0
  132. package/models/operations/uploadavatar.d.ts.map +1 -0
  133. package/models/operations/uploadavatar.js +113 -0
  134. package/models/operations/uploadavatar.js.map +1 -0
  135. package/package.json +1 -1
  136. package/sdk/avatars.d.ts +24 -0
  137. package/sdk/avatars.d.ts.map +1 -1
  138. package/sdk/avatars.js +30 -0
  139. package/sdk/avatars.js.map +1 -1
  140. package/sdk/products.d.ts +4 -0
  141. package/sdk/products.d.ts.map +1 -1
  142. package/sdk/products.js +7 -0
  143. package/sdk/products.js.map +1 -1
  144. package/src/funcs/avatarsDelete.ts +194 -0
  145. package/src/funcs/avatarsUpload.ts +231 -0
  146. package/src/funcs/productsList.ts +1 -0
  147. package/src/funcs/productsListCategories.ts +149 -0
  148. package/src/hooks/oauth2scopes.ts +8 -0
  149. package/src/lib/config.ts +3 -4
  150. package/src/lib/http.ts +3 -1
  151. package/src/lib/security.ts +10 -5
  152. package/src/mcp-server/mcp-server.ts +1 -1
  153. package/src/mcp-server/server.ts +3 -1
  154. package/src/mcp-server/tools/productsListCategories.ts +29 -0
  155. package/src/models/components/avataruploadrequest.ts +113 -0
  156. package/src/models/components/capabilityid.ts +1 -0
  157. package/src/models/components/cardbrandfees.ts +7 -0
  158. package/src/models/components/createtransfer.ts +13 -0
  159. package/src/models/components/feepaidby.ts +32 -0
  160. package/src/models/components/filedetails.ts +1 -1
  161. package/src/models/components/filepurpose.ts +2 -2
  162. package/src/models/components/incurredfee.ts +12 -0
  163. package/src/models/components/index.ts +5 -0
  164. package/src/models/components/issuingintervallimit.ts +2 -2
  165. package/src/models/components/issuingvelocitylimit.ts +1 -1
  166. package/src/models/components/onboardinginvite.ts +1 -1
  167. package/src/models/components/paymentlinkpayoutdetails.ts +16 -0
  168. package/src/models/components/paymentlinkpayoutdetailsupdate.ts +16 -0
  169. package/src/models/components/payoutdetailserror.ts +4 -0
  170. package/src/models/components/product.ts +13 -0
  171. package/src/models/components/productcategories.ts +60 -0
  172. package/src/models/components/productcategory.ts +84 -0
  173. package/src/models/components/productrequest.ts +7 -0
  174. package/src/models/components/transferfeepaidby.ts +63 -0
  175. package/src/models/errors/productrequestvalidationerror.ts +6 -0
  176. package/src/models/operations/deleteavatar.ts +154 -0
  177. package/src/models/operations/index.ts +3 -0
  178. package/src/models/operations/listproductcategories.ts +69 -0
  179. package/src/models/operations/listproducts.ts +11 -0
  180. package/src/models/operations/uploadavatar.ts +167 -0
  181. package/src/sdk/avatars.ts +50 -0
  182. package/src/sdk/products.ts +13 -0
package/src/lib/config.ts CHANGED
@@ -73,8 +73,7 @@ export function serverURLFromOptions(options: SDKOptions): URL | null {
73
73
  export const SDK_METADATA = {
74
74
  language: "typescript",
75
75
  openapiDocVersion: "v2026.07.00",
76
- sdkVersion: "26.7.0-dev.5",
77
- genVersion: "2.916.2",
78
- userAgent:
79
- "speakeasy-sdk/typescript 26.7.0-dev.5 2.916.2 v2026.07.00 @moovio/sdk",
76
+ sdkVersion: "26.7.0",
77
+ genVersion: "2.924.0",
78
+ userAgent: "speakeasy-sdk/typescript 26.7.0 2.924.0 v2026.07.00 @moovio/sdk",
80
79
  } as const;
package/src/lib/http.ts CHANGED
@@ -45,8 +45,10 @@ export class HTTPClient {
45
45
  private requestHooks: BeforeRequestHook[] = [];
46
46
  private requestErrorHooks: RequestErrorHook[] = [];
47
47
  private responseHooks: ResponseHook[] = [];
48
+ private options: HTTPClientOptions;
48
49
 
49
- constructor(private options: HTTPClientOptions = {}) {
50
+ constructor(options: HTTPClientOptions = {}) {
51
+ this.options = options;
50
52
  this.fetcher = options.fetcher || DEFAULT_FETCHER;
51
53
  }
52
54
 
@@ -12,17 +12,22 @@ type OAuth2PasswordFlow = {
12
12
  tokenURL: string;
13
13
  };
14
14
 
15
- export enum SecurityErrorCode {
16
- Incomplete = "incomplete",
17
- UnrecognisedSecurityType = "unrecognized_security_type",
18
- }
15
+ export const SecurityErrorCode = {
16
+ Incomplete: "incomplete",
17
+ UnrecognisedSecurityType: "unrecognized_security_type",
18
+ } as const;
19
+ export type SecurityErrorCode =
20
+ (typeof SecurityErrorCode)[keyof typeof SecurityErrorCode];
19
21
 
20
22
  export class SecurityError extends Error {
23
+ public code: SecurityErrorCode;
24
+
21
25
  constructor(
22
- public code: SecurityErrorCode,
26
+ code: SecurityErrorCode,
23
27
  message: string,
24
28
  ) {
25
29
  super(message);
30
+ this.code = code;
26
31
  this.name = "SecurityError";
27
32
  }
28
33
 
@@ -19,7 +19,7 @@ const routes = buildRouteMap({
19
19
  export const app = buildApplication(routes, {
20
20
  name: "mcp",
21
21
  versionInfo: {
22
- currentVersion: "26.7.0-dev.5",
22
+ currentVersion: "26.7.0",
23
23
  },
24
24
  });
25
25
 
@@ -134,6 +134,7 @@ import { tool$productsCreate } from "./tools/productsCreate.js";
134
134
  import { tool$productsDisable } from "./tools/productsDisable.js";
135
135
  import { tool$productsGet } from "./tools/productsGet.js";
136
136
  import { tool$productsList } from "./tools/productsList.js";
137
+ import { tool$productsListCategories } from "./tools/productsListCategories.js";
137
138
  import { tool$productsUpdate } from "./tools/productsUpdate.js";
138
139
  import { tool$receiptsCreate } from "./tools/receiptsCreate.js";
139
140
  import { tool$receiptsList } from "./tools/receiptsList.js";
@@ -215,7 +216,7 @@ export function createMCPServer(deps: {
215
216
  }) {
216
217
  const server = new McpServer({
217
218
  name: "Moov",
218
- version: "26.7.0-dev.5",
219
+ version: "26.7.0",
219
220
  });
220
221
 
221
222
  const client = new MoovCore({
@@ -338,6 +339,7 @@ export function createMCPServer(deps: {
338
339
  tool(tool$productsGet);
339
340
  tool(tool$productsUpdate);
340
341
  tool(tool$productsDisable);
342
+ tool(tool$productsListCategories);
341
343
  tool(tool$representativesCreate);
342
344
  tool(tool$representativesList);
343
345
  tool(tool$representativesDelete);
@@ -0,0 +1,29 @@
1
+ /*
2
+ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
3
+ */
4
+
5
+ import { productsListCategories } from "../../funcs/productsListCategories.js";
6
+ import { formatResult, ToolDefinition } from "../tools.js";
7
+
8
+ export const tool$productsListCategories: ToolDefinition = {
9
+ name: "products-list-categories",
10
+ description:
11
+ `Returns the full, read-only list of product categories from the product taxonomy.`,
12
+ tool: async (client, ctx) => {
13
+ const [result, apiCall] = await productsListCategories(
14
+ client,
15
+ { fetchOptions: { signal: ctx.signal } },
16
+ ).$inspect();
17
+
18
+ if (!result.ok) {
19
+ return {
20
+ content: [{ type: "text", text: result.error.message }],
21
+ isError: true,
22
+ };
23
+ }
24
+
25
+ const value = result.value.result;
26
+
27
+ return formatResult(value, apiCall);
28
+ },
29
+ };
@@ -0,0 +1,113 @@
1
+ /*
2
+ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
3
+ */
4
+
5
+ import * as z from "zod/v3";
6
+ import { safeParse } from "../../lib/schemas.js";
7
+ import { blobLikeSchema } from "../../types/blobs.js";
8
+ import { Result as SafeParseResult } from "../../types/fp.js";
9
+ import * as types from "../../types/primitives.js";
10
+ import { SDKValidationError } from "../errors/sdkvalidationerror.js";
11
+
12
+ export type AvatarUploadRequestFile = {
13
+ fileName: string;
14
+ content: ReadableStream<Uint8Array> | Blob | ArrayBuffer | Uint8Array;
15
+ };
16
+
17
+ export type AvatarUploadRequest = {
18
+ /**
19
+ * A JPEG, PNG, or WebP image file to upload as an avatar.
20
+ */
21
+ file: AvatarUploadRequestFile | Blob;
22
+ };
23
+
24
+ /** @internal */
25
+ export const AvatarUploadRequestFile$inboundSchema: z.ZodType<
26
+ AvatarUploadRequestFile,
27
+ z.ZodTypeDef,
28
+ unknown
29
+ > = z.object({
30
+ fileName: types.string(),
31
+ content: z.union([
32
+ z.instanceof(ReadableStream<Uint8Array>),
33
+ z.instanceof(Blob),
34
+ z.instanceof(ArrayBuffer),
35
+ z.instanceof(Uint8Array),
36
+ ]),
37
+ });
38
+ /** @internal */
39
+ export type AvatarUploadRequestFile$Outbound = {
40
+ fileName: string;
41
+ content: ReadableStream<Uint8Array> | Blob | ArrayBuffer | Uint8Array;
42
+ };
43
+
44
+ /** @internal */
45
+ export const AvatarUploadRequestFile$outboundSchema: z.ZodType<
46
+ AvatarUploadRequestFile$Outbound,
47
+ z.ZodTypeDef,
48
+ AvatarUploadRequestFile
49
+ > = z.object({
50
+ fileName: z.string(),
51
+ content: z.union([
52
+ z.instanceof(ReadableStream<Uint8Array>),
53
+ z.instanceof(Blob),
54
+ z.instanceof(ArrayBuffer),
55
+ z.instanceof(Uint8Array),
56
+ ]),
57
+ });
58
+
59
+ export function avatarUploadRequestFileToJSON(
60
+ avatarUploadRequestFile: AvatarUploadRequestFile,
61
+ ): string {
62
+ return JSON.stringify(
63
+ AvatarUploadRequestFile$outboundSchema.parse(avatarUploadRequestFile),
64
+ );
65
+ }
66
+ export function avatarUploadRequestFileFromJSON(
67
+ jsonString: string,
68
+ ): SafeParseResult<AvatarUploadRequestFile, SDKValidationError> {
69
+ return safeParse(
70
+ jsonString,
71
+ (x) => AvatarUploadRequestFile$inboundSchema.parse(JSON.parse(x)),
72
+ `Failed to parse 'AvatarUploadRequestFile' from JSON`,
73
+ );
74
+ }
75
+
76
+ /** @internal */
77
+ export const AvatarUploadRequest$inboundSchema: z.ZodType<
78
+ AvatarUploadRequest,
79
+ z.ZodTypeDef,
80
+ unknown
81
+ > = z.object({
82
+ file: z.lazy(() => AvatarUploadRequestFile$inboundSchema),
83
+ });
84
+ /** @internal */
85
+ export type AvatarUploadRequest$Outbound = {
86
+ file: AvatarUploadRequestFile$Outbound | Blob;
87
+ };
88
+
89
+ /** @internal */
90
+ export const AvatarUploadRequest$outboundSchema: z.ZodType<
91
+ AvatarUploadRequest$Outbound,
92
+ z.ZodTypeDef,
93
+ AvatarUploadRequest
94
+ > = z.object({
95
+ file: z.lazy(() => AvatarUploadRequestFile$outboundSchema).or(blobLikeSchema),
96
+ });
97
+
98
+ export function avatarUploadRequestToJSON(
99
+ avatarUploadRequest: AvatarUploadRequest,
100
+ ): string {
101
+ return JSON.stringify(
102
+ AvatarUploadRequest$outboundSchema.parse(avatarUploadRequest),
103
+ );
104
+ }
105
+ export function avatarUploadRequestFromJSON(
106
+ jsonString: string,
107
+ ): SafeParseResult<AvatarUploadRequest, SDKValidationError> {
108
+ return safeParse(
109
+ jsonString,
110
+ (x) => AvatarUploadRequest$inboundSchema.parse(JSON.parse(x)),
111
+ `Failed to parse 'AvatarUploadRequest' from JSON`,
112
+ );
113
+ }
@@ -27,6 +27,7 @@ export const CapabilityID = {
27
27
  SendFundsAch: "send-funds.ach",
28
28
  SendFundsRtp: "send-funds.rtp",
29
29
  SendFundsInstantBank: "send-funds.instant-bank",
30
+ SendFundsWire: "send-funds.wire",
30
31
  CollectFunds: "collect-funds",
31
32
  CollectFundsCardPayments: "collect-funds.card-payments",
32
33
  MoneyTransferPullFromCard: "money-transfer.pull-from-card",
@@ -57,6 +57,10 @@ export type CardBrandFees = {
57
57
  * Details of refunded transactions.
58
58
  */
59
59
  refunds?: BillingCountAndAmount | undefined;
60
+ /**
61
+ * Details of card cancellations.
62
+ */
63
+ cardCancellations?: BillingCountAndAmount | undefined;
60
64
  /**
61
65
  * Total fees for this card brand.
62
66
  */
@@ -86,6 +90,7 @@ export const CardBrandFees$inboundSchema: z.ZodType<
86
90
  ),
87
91
  declines: types.optional(BillingCountAndAmount$inboundSchema),
88
92
  refunds: types.optional(BillingCountAndAmount$inboundSchema),
93
+ cardCancellations: types.optional(BillingCountAndAmount$inboundSchema),
89
94
  total: BillingCountAndAmount$inboundSchema,
90
95
  });
91
96
  /** @internal */
@@ -101,6 +106,7 @@ export type CardBrandFees$Outbound = {
101
106
  completedInternationalInPerson?: BillingCountAndAmount$Outbound | undefined;
102
107
  declines?: BillingCountAndAmount$Outbound | undefined;
103
108
  refunds?: BillingCountAndAmount$Outbound | undefined;
109
+ cardCancellations?: BillingCountAndAmount$Outbound | undefined;
104
110
  total: BillingCountAndAmount$Outbound;
105
111
  };
106
112
 
@@ -121,6 +127,7 @@ export const CardBrandFees$outboundSchema: z.ZodType<
121
127
  .optional(),
122
128
  declines: BillingCountAndAmount$outboundSchema.optional(),
123
129
  refunds: BillingCountAndAmount$outboundSchema.optional(),
130
+ cardCancellations: BillingCountAndAmount$outboundSchema.optional(),
124
131
  total: BillingCountAndAmount$outboundSchema,
125
132
  });
126
133
 
@@ -43,6 +43,12 @@ import {
43
43
  FacilitatorFee$Outbound,
44
44
  FacilitatorFee$outboundSchema,
45
45
  } from "./facilitatorfee.js";
46
+ import {
47
+ TransferFeePaidBy,
48
+ TransferFeePaidBy$inboundSchema,
49
+ TransferFeePaidBy$Outbound,
50
+ TransferFeePaidBy$outboundSchema,
51
+ } from "./transferfeepaidby.js";
46
52
 
47
53
  export type CreateTransfer = {
48
54
  /**
@@ -78,6 +84,10 @@ export type CreateTransfer = {
78
84
  */
79
85
  lineItems?: CreateTransferLineItems | undefined;
80
86
  amountDetails?: CreateTransferAmountDetails | undefined;
87
+ /**
88
+ * Indicates which party bears fees for the transfer, keyed by fee type.
89
+ */
90
+ feePaidBy?: TransferFeePaidBy | undefined;
81
91
  };
82
92
 
83
93
  /** @internal */
@@ -95,6 +105,7 @@ export const CreateTransfer$inboundSchema: z.ZodType<
95
105
  foreignID: types.optional(types.string()),
96
106
  lineItems: types.optional(CreateTransferLineItems$inboundSchema),
97
107
  amountDetails: types.optional(CreateTransferAmountDetails$inboundSchema),
108
+ feePaidBy: types.optional(TransferFeePaidBy$inboundSchema),
98
109
  });
99
110
  /** @internal */
100
111
  export type CreateTransfer$Outbound = {
@@ -107,6 +118,7 @@ export type CreateTransfer$Outbound = {
107
118
  foreignID?: string | undefined;
108
119
  lineItems?: CreateTransferLineItems$Outbound | undefined;
109
120
  amountDetails?: CreateTransferAmountDetails$Outbound | undefined;
121
+ feePaidBy?: TransferFeePaidBy$Outbound | undefined;
110
122
  };
111
123
 
112
124
  /** @internal */
@@ -124,6 +136,7 @@ export const CreateTransfer$outboundSchema: z.ZodType<
124
136
  foreignID: z.string().optional(),
125
137
  lineItems: CreateTransferLineItems$outboundSchema.optional(),
126
138
  amountDetails: CreateTransferAmountDetails$outboundSchema.optional(),
139
+ feePaidBy: TransferFeePaidBy$outboundSchema.optional(),
127
140
  });
128
141
 
129
142
  export function createTransferToJSON(createTransfer: CreateTransfer): string {
@@ -0,0 +1,32 @@
1
+ /*
2
+ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
3
+ */
4
+
5
+ import * as z from "zod/v3";
6
+ import * as openEnums from "../../types/enums.js";
7
+ import { OpenEnum } from "../../types/enums.js";
8
+
9
+ /**
10
+ * Indicates which party to a money movement bears an incurred fee.
11
+ */
12
+ export const FeePaidBy = {
13
+ Source: "source",
14
+ Destination: "destination",
15
+ } as const;
16
+ /**
17
+ * Indicates which party to a money movement bears an incurred fee.
18
+ */
19
+ export type FeePaidBy = OpenEnum<typeof FeePaidBy>;
20
+
21
+ /** @internal */
22
+ export const FeePaidBy$inboundSchema: z.ZodType<
23
+ FeePaidBy,
24
+ z.ZodTypeDef,
25
+ unknown
26
+ > = openEnums.inboundSchema(FeePaidBy);
27
+ /** @internal */
28
+ export const FeePaidBy$outboundSchema: z.ZodType<
29
+ string,
30
+ z.ZodTypeDef,
31
+ FeePaidBy
32
+ > = openEnums.outboundSchema(FeePaidBy);
@@ -26,7 +26,7 @@ export type FileDetails = {
26
26
  fileName: string;
27
27
  accountID: string;
28
28
  /**
29
- * The file's purpose.
29
+ * The purpose of the file being uploaded.
30
30
  */
31
31
  filePurpose: FilePurpose;
32
32
  /**
@@ -7,7 +7,7 @@ import * as openEnums from "../../types/enums.js";
7
7
  import { OpenEnum } from "../../types/enums.js";
8
8
 
9
9
  /**
10
- * The file's purpose.
10
+ * The purpose of the file being uploaded.
11
11
  */
12
12
  export const FilePurpose = {
13
13
  BusinessVerification: "business_verification",
@@ -18,7 +18,7 @@ export const FilePurpose = {
18
18
  IdentityVerification: "identity_verification",
19
19
  } as const;
20
20
  /**
21
- * The file's purpose.
21
+ * The purpose of the file being uploaded.
22
22
  */
23
23
  export type FilePurpose = OpenEnum<typeof FilePurpose>;
24
24
 
@@ -13,6 +13,11 @@ import {
13
13
  AmountDecimal$Outbound,
14
14
  AmountDecimal$outboundSchema,
15
15
  } from "./amountdecimal.js";
16
+ import {
17
+ FeePaidBy,
18
+ FeePaidBy$inboundSchema,
19
+ FeePaidBy$outboundSchema,
20
+ } from "./feepaidby.js";
16
21
  import {
17
22
  GeneratedBy,
18
23
  GeneratedBy$inboundSchema,
@@ -60,6 +65,10 @@ export type IncurredFee = {
60
65
  * Unique identifier for this residual payment calculation.
61
66
  */
62
67
  residualID?: string | undefined;
68
+ /**
69
+ * Indicates which party to the money movement bore this fee.
70
+ */
71
+ feePaidBy?: FeePaidBy | undefined;
63
72
  };
64
73
 
65
74
  /** @internal */
@@ -77,6 +86,7 @@ export const IncurredFee$inboundSchema: z.ZodType<
77
86
  generatedBy: types.optional(GeneratedBy$inboundSchema),
78
87
  feeGroup: types.optional(types.string()),
79
88
  residualID: types.optional(types.string()),
89
+ feePaidBy: types.optional(FeePaidBy$inboundSchema),
80
90
  });
81
91
  /** @internal */
82
92
  export type IncurredFee$Outbound = {
@@ -89,6 +99,7 @@ export type IncurredFee$Outbound = {
89
99
  generatedBy?: GeneratedBy$Outbound | undefined;
90
100
  feeGroup?: string | undefined;
91
101
  residualID?: string | undefined;
102
+ feePaidBy?: string | undefined;
92
103
  };
93
104
 
94
105
  /** @internal */
@@ -106,6 +117,7 @@ export const IncurredFee$outboundSchema: z.ZodType<
106
117
  generatedBy: GeneratedBy$outboundSchema.optional(),
107
118
  feeGroup: z.string().optional(),
108
119
  residualID: z.string().optional(),
120
+ feePaidBy: FeePaidBy$outboundSchema.optional(),
109
121
  });
110
122
 
111
123
  export function incurredFeeToJSON(incurredFee: IncurredFee): string {
@@ -59,6 +59,7 @@ export * from "./asynccreatedrefund.js";
59
59
  export * from "./asynctransfer.js";
60
60
  export * from "./authtoken.js";
61
61
  export * from "./authtokenrequest.js";
62
+ export * from "./avataruploadrequest.js";
62
63
  export * from "./bankaccount.js";
63
64
  export * from "./bankaccountexception.js";
64
65
  export * from "./bankaccountholdertype.js";
@@ -248,6 +249,7 @@ export * from "./fednowinstitution.js";
248
249
  export * from "./fednowservices.js";
249
250
  export * from "./feecategory.js";
250
251
  export * from "./feemodel.js";
252
+ export * from "./feepaidby.js";
251
253
  export * from "./feeplan.js";
252
254
  export * from "./feeplanagreement.js";
253
255
  export * from "./feeplanagreementstatus.js";
@@ -413,6 +415,8 @@ export * from "./plaidpayload.js";
413
415
  export * from "./platformfees.js";
414
416
  export * from "./primaryregulator.js";
415
417
  export * from "./product.js";
418
+ export * from "./productcategories.js";
419
+ export * from "./productcategory.js";
416
420
  export * from "./productimagemetadata.js";
417
421
  export * from "./productoption.js";
418
422
  export * from "./productoptiongroup.js";
@@ -537,6 +541,7 @@ export * from "./transfercontrols.js";
537
541
  export * from "./transferdestination.js";
538
542
  export * from "./transferentrymode.js";
539
543
  export * from "./transferfailurereason.js";
544
+ export * from "./transferfeepaidby.js";
540
545
  export * from "./transferlineitem.js";
541
546
  export * from "./transferlineitemimagemetadata.js";
542
547
  export * from "./transferlineitemoption.js";
@@ -6,13 +6,13 @@ import * as z from "zod/v3";
6
6
  import { ClosedEnum } from "../../types/enums.js";
7
7
 
8
8
  /**
9
- * Specifies the time frame for the velocity limit. Currently supports only per-transaction limits.
9
+ * Specifies the time frame for a velocity limit. `per-transaction` applies to each individual authorization and never resets. Time-based intervals (where supported) reset at midnight ET.
10
10
  */
11
11
  export const IssuingIntervalLimit = {
12
12
  PerTransaction: "per-transaction",
13
13
  } as const;
14
14
  /**
15
- * Specifies the time frame for the velocity limit. Currently supports only per-transaction limits.
15
+ * Specifies the time frame for a velocity limit. `per-transaction` applies to each individual authorization and never resets. Time-based intervals (where supported) reset at midnight ET.
16
16
  */
17
17
  export type IssuingIntervalLimit = ClosedEnum<typeof IssuingIntervalLimit>;
18
18
 
@@ -19,7 +19,7 @@ export type IssuingVelocityLimit = {
19
19
  */
20
20
  amount: number;
21
21
  /**
22
- * Specifies the time frame for the velocity limit. Currently supports only per-transaction limits.
22
+ * Specifies the time frame for a velocity limit. `per-transaction` applies to each individual authorization and never resets. Time-based intervals (where supported) reset at midnight ET.
23
23
  */
24
24
  interval: IssuingIntervalLimit;
25
25
  };
@@ -40,7 +40,7 @@ export type OnboardingInvite = {
40
40
  */
41
41
  link: string;
42
42
  /**
43
- * The scopes requested by the inviter.
43
+ * Optional URL to redirect the user to after they complete the onboarding process.
44
44
  */
45
45
  returnURL?: string | undefined;
46
46
  /**
@@ -12,6 +12,11 @@ import {
12
12
  DisbursementPaymentMethodType$inboundSchema,
13
13
  DisbursementPaymentMethodType$outboundSchema,
14
14
  } from "./disbursementpaymentmethodtype.js";
15
+ import {
16
+ FeePaidBy,
17
+ FeePaidBy$inboundSchema,
18
+ FeePaidBy$outboundSchema,
19
+ } from "./feepaidby.js";
15
20
  import {
16
21
  PayoutRecipient,
17
22
  PayoutRecipient$inboundSchema,
@@ -52,6 +57,14 @@ export type PaymentLinkPayoutDetails = {
52
57
  * (`push-to-apple-pay`, `push-to-google-pay`) are always delivered instantly regardless of these options.
53
58
  */
54
59
  pushOptions?: PushOptions | undefined;
60
+ /**
61
+ * Indicates which party bears the fee, keyed by disbursement payment method (`DisbursementPaymentMethodType`).
62
+ *
63
+ * @remarks
64
+ *
65
+ * Sparse — include only the methods you want to attribute. Any method left unset defaults to `source`.
66
+ */
67
+ feePaidBy?: { [k: string]: FeePaidBy } | undefined;
55
68
  };
56
69
 
57
70
  /** @internal */
@@ -64,6 +77,7 @@ export const PaymentLinkPayoutDetails$inboundSchema: z.ZodType<
64
77
  recipient: PayoutRecipient$inboundSchema,
65
78
  metadata: types.optional(z.record(types.string())),
66
79
  pushOptions: types.optional(PushOptions$inboundSchema),
80
+ feePaidBy: types.optional(z.record(FeePaidBy$inboundSchema)),
67
81
  });
68
82
  /** @internal */
69
83
  export type PaymentLinkPayoutDetails$Outbound = {
@@ -71,6 +85,7 @@ export type PaymentLinkPayoutDetails$Outbound = {
71
85
  recipient: PayoutRecipient$Outbound;
72
86
  metadata?: { [k: string]: string } | undefined;
73
87
  pushOptions?: PushOptions$Outbound | undefined;
88
+ feePaidBy?: { [k: string]: string } | undefined;
74
89
  };
75
90
 
76
91
  /** @internal */
@@ -83,6 +98,7 @@ export const PaymentLinkPayoutDetails$outboundSchema: z.ZodType<
83
98
  recipient: PayoutRecipient$outboundSchema,
84
99
  metadata: z.record(z.string()).optional(),
85
100
  pushOptions: PushOptions$outboundSchema.optional(),
101
+ feePaidBy: z.record(FeePaidBy$outboundSchema).optional(),
86
102
  });
87
103
 
88
104
  export function paymentLinkPayoutDetailsToJSON(
@@ -12,6 +12,11 @@ import {
12
12
  DisbursementPaymentMethodType$inboundSchema,
13
13
  DisbursementPaymentMethodType$outboundSchema,
14
14
  } from "./disbursementpaymentmethodtype.js";
15
+ import {
16
+ FeePaidBy,
17
+ FeePaidBy$inboundSchema,
18
+ FeePaidBy$outboundSchema,
19
+ } from "./feepaidby.js";
15
20
  import {
16
21
  PayoutRecipient,
17
22
  PayoutRecipient$inboundSchema,
@@ -52,6 +57,14 @@ export type PaymentLinkPayoutDetailsUpdate = {
52
57
  * (`push-to-apple-pay`, `push-to-google-pay`) are always delivered instantly regardless of these options.
53
58
  */
54
59
  pushOptions?: PushOptionsUpdate | undefined;
60
+ /**
61
+ * Indicates which party bears the fee, keyed by disbursement payment method (`DisbursementPaymentMethodType`).
62
+ *
63
+ * @remarks
64
+ *
65
+ * Sparse — include only the methods you want to attribute. Any method left unset defaults to `source`.
66
+ */
67
+ feePaidBy?: { [k: string]: FeePaidBy } | undefined;
55
68
  };
56
69
 
57
70
  /** @internal */
@@ -66,6 +79,7 @@ export const PaymentLinkPayoutDetailsUpdate$inboundSchema: z.ZodType<
66
79
  recipient: types.optional(PayoutRecipient$inboundSchema),
67
80
  metadata: types.optional(z.record(types.string())),
68
81
  pushOptions: types.optional(PushOptionsUpdate$inboundSchema),
82
+ feePaidBy: types.optional(z.record(FeePaidBy$inboundSchema)),
69
83
  });
70
84
  /** @internal */
71
85
  export type PaymentLinkPayoutDetailsUpdate$Outbound = {
@@ -73,6 +87,7 @@ export type PaymentLinkPayoutDetailsUpdate$Outbound = {
73
87
  recipient?: PayoutRecipient$Outbound | undefined;
74
88
  metadata?: { [k: string]: string } | undefined;
75
89
  pushOptions?: PushOptionsUpdate$Outbound | undefined;
90
+ feePaidBy?: { [k: string]: string } | undefined;
76
91
  };
77
92
 
78
93
  /** @internal */
@@ -86,6 +101,7 @@ export const PaymentLinkPayoutDetailsUpdate$outboundSchema: z.ZodType<
86
101
  recipient: PayoutRecipient$outboundSchema.optional(),
87
102
  metadata: z.record(z.string()).optional(),
88
103
  pushOptions: PushOptionsUpdate$outboundSchema.optional(),
104
+ feePaidBy: z.record(FeePaidBy$outboundSchema).optional(),
89
105
  });
90
106
 
91
107
  export function paymentLinkPayoutDetailsUpdateToJSON(
@@ -25,6 +25,7 @@ export type PayoutDetailsError = {
25
25
  recipient?: PayoutRecipientError | undefined;
26
26
  metadata?: string | undefined;
27
27
  pushOptions?: PushOptionsError | undefined;
28
+ feePaidBy?: string | undefined;
28
29
  };
29
30
 
30
31
  /** @internal */
@@ -37,6 +38,7 @@ export const PayoutDetailsError$inboundSchema: z.ZodType<
37
38
  recipient: types.optional(PayoutRecipientError$inboundSchema),
38
39
  metadata: types.optional(types.string()),
39
40
  pushOptions: types.optional(PushOptionsError$inboundSchema),
41
+ feePaidBy: types.optional(types.string()),
40
42
  });
41
43
  /** @internal */
42
44
  export type PayoutDetailsError$Outbound = {
@@ -44,6 +46,7 @@ export type PayoutDetailsError$Outbound = {
44
46
  recipient?: PayoutRecipientError$Outbound | undefined;
45
47
  metadata?: string | undefined;
46
48
  pushOptions?: PushOptionsError$Outbound | undefined;
49
+ feePaidBy?: string | undefined;
47
50
  };
48
51
 
49
52
  /** @internal */
@@ -56,6 +59,7 @@ export const PayoutDetailsError$outboundSchema: z.ZodType<
56
59
  recipient: PayoutRecipientError$outboundSchema.optional(),
57
60
  metadata: z.string().optional(),
58
61
  pushOptions: PushOptionsError$outboundSchema.optional(),
62
+ feePaidBy: z.string().optional(),
59
63
  });
60
64
 
61
65
  export function payoutDetailsErrorToJSON(