@moovio/sdk 25.12.0 → 25.12.3
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.
- package/README.md +84 -80
- package/bin/mcp-server.js +566 -326
- package/bin/mcp-server.js.map +67 -68
- package/funcs/accountsCreate.d.ts +8 -10
- package/funcs/accountsCreate.d.ts.map +1 -1
- package/funcs/accountsCreate.js +8 -10
- package/funcs/accountsCreate.js.map +1 -1
- package/funcs/bankAccountsLink.d.ts +1 -1
- package/funcs/bankAccountsLink.js +1 -1
- package/funcs/capabilitiesDisable.d.ts +1 -1
- package/funcs/capabilitiesDisable.js +1 -1
- package/funcs/capabilitiesGet.d.ts +1 -1
- package/funcs/capabilitiesGet.js +1 -1
- package/funcs/capabilitiesList.d.ts +1 -1
- package/funcs/capabilitiesList.js +1 -1
- package/funcs/capabilitiesRequest.d.ts +1 -1
- package/funcs/capabilitiesRequest.js +1 -1
- package/funcs/cardIssuingGet.js +1 -1
- package/funcs/cardIssuingGet.js.map +1 -1
- package/funcs/cardIssuingGetFull.js +1 -1
- package/funcs/cardIssuingGetFull.js.map +1 -1
- package/funcs/cardIssuingList.js +1 -1
- package/funcs/cardIssuingList.js.map +1 -1
- package/funcs/cardIssuingRequest.js +1 -1
- package/funcs/cardIssuingRequest.js.map +1 -1
- package/funcs/cardIssuingUpdate.js +1 -1
- package/funcs/cardIssuingUpdate.js.map +1 -1
- package/funcs/transfersListCancellations.d.ts +17 -0
- package/funcs/transfersListCancellations.d.ts.map +1 -0
- package/funcs/transfersListCancellations.js +129 -0
- package/funcs/transfersListCancellations.js.map +1 -0
- package/hooks/types.d.ts +1 -0
- package/hooks/types.d.ts.map +1 -1
- package/jsr.json +1 -1
- package/lib/config.d.ts +3 -3
- package/lib/config.js +3 -3
- package/lib/encodings.js +12 -12
- package/lib/encodings.js.map +1 -1
- package/lib/http.d.ts +1 -1
- package/lib/http.d.ts.map +1 -1
- package/lib/http.js +1 -1
- package/lib/http.js.map +1 -1
- package/lib/matchers.js +3 -3
- package/lib/matchers.js.map +1 -1
- package/lib/primitives.d.ts +1 -0
- package/lib/primitives.d.ts.map +1 -1
- package/lib/primitives.js +18 -0
- package/lib/primitives.js.map +1 -1
- package/lib/retries.js +7 -0
- package/lib/retries.js.map +1 -1
- package/lib/sdks.d.ts.map +1 -1
- package/lib/sdks.js +50 -16
- package/lib/sdks.js.map +1 -1
- package/lib/security.d.ts +5 -4
- package/lib/security.d.ts.map +1 -1
- package/lib/security.js +6 -7
- package/lib/security.js.map +1 -1
- package/mcp-server/mcp-server.js +1 -1
- package/mcp-server/server.d.ts.map +1 -1
- package/mcp-server/server.js +3 -1
- package/mcp-server/server.js.map +1 -1
- package/mcp-server/tools/accountsCreate.d.ts.map +1 -1
- package/mcp-server/tools/accountsCreate.js +8 -10
- package/mcp-server/tools/accountsCreate.js.map +1 -1
- package/mcp-server/tools/bankAccountsLink.js +1 -1
- package/mcp-server/tools/capabilitiesDisable.js +1 -1
- package/mcp-server/tools/capabilitiesGet.js +1 -1
- package/mcp-server/tools/capabilitiesList.js +1 -1
- package/mcp-server/tools/capabilitiesRequest.js +1 -1
- package/mcp-server/tools/transfersListCancellations.d.ts +8 -0
- package/mcp-server/tools/transfersListCancellations.d.ts.map +1 -0
- package/{models/components/authorizeduser.js → mcp-server/tools/transfersListCancellations.js} +27 -22
- package/mcp-server/tools/transfersListCancellations.js.map +1 -0
- package/models/components/addcapabilities.d.ts +9 -0
- package/models/components/addcapabilities.d.ts.map +1 -1
- package/models/components/addcapabilities.js.map +1 -1
- package/models/components/capability.d.ts +7 -1
- package/models/components/capability.d.ts.map +1 -1
- package/models/components/capability.js.map +1 -1
- package/models/components/capabilityid.d.ts +15 -2
- package/models/components/capabilityid.d.ts.map +1 -1
- package/models/components/capabilityid.js +8 -1
- package/models/components/capabilityid.js.map +1 -1
- package/models/components/cardbrandfees.d.ts +5 -0
- package/models/components/cardbrandfees.d.ts.map +1 -1
- package/models/components/cardbrandfees.js +2 -0
- package/models/components/cardbrandfees.js.map +1 -1
- package/models/components/createaccount.d.ts +9 -0
- package/models/components/createaccount.d.ts.map +1 -1
- package/models/components/createaccount.js.map +1 -1
- package/models/components/createpaymentlink.d.ts +3 -3
- package/models/components/fullissuedcard.d.ts +26 -12
- package/models/components/fullissuedcard.d.ts.map +1 -1
- package/models/components/fullissuedcard.js +11 -5
- package/models/components/fullissuedcard.js.map +1 -1
- package/models/components/index.d.ts +1 -4
- package/models/components/index.d.ts.map +1 -1
- package/models/components/index.js +1 -4
- package/models/components/index.js.map +1 -1
- package/models/components/issuedcard.d.ts +26 -12
- package/models/components/issuedcard.d.ts.map +1 -1
- package/models/components/issuedcard.js +11 -5
- package/models/components/issuedcard.js.map +1 -1
- package/models/components/issuedcardstate.d.ts +2 -8
- package/models/components/issuedcardstate.d.ts.map +1 -1
- package/models/components/issuedcardstate.js +1 -5
- package/models/components/issuedcardstate.js.map +1 -1
- package/models/components/manualtermsofservice.d.ts +1 -1
- package/models/components/manualtermsofserviceupdate.d.ts +1 -1
- package/models/components/onboardinginvite.d.ts +1 -1
- package/models/components/onboardinginviterequest.d.ts +1 -1
- package/models/components/patchtransfer.d.ts +3 -0
- package/models/components/patchtransfer.d.ts.map +1 -1
- package/models/components/patchtransfer.js.map +1 -1
- package/models/components/paymentlink.d.ts +2 -2
- package/models/components/requestcard.d.ts +14 -17
- package/models/components/requestcard.d.ts.map +1 -1
- package/models/components/requestcard.js +9 -10
- package/models/components/requestcard.js.map +1 -1
- package/models/components/termsofservice.d.ts +1 -1
- package/models/components/updateissuedcard.d.ts +33 -8
- package/models/components/updateissuedcard.d.ts.map +1 -1
- package/models/components/updateissuedcard.js +35 -6
- package/models/components/updateissuedcard.js.map +1 -1
- package/models/components/webhookdata.d.ts +3 -2
- package/models/components/webhookdata.d.ts.map +1 -1
- package/models/components/webhookdata.js +7 -4
- package/models/components/webhookdata.js.map +1 -1
- package/models/components/webhookdataauthorizationexpiring.d.ts +23 -0
- package/models/components/webhookdataauthorizationexpiring.d.ts.map +1 -0
- package/models/components/{createauthorizedusererror.js → webhookdataauthorizationexpiring.js} +18 -17
- package/models/components/webhookdataauthorizationexpiring.js.map +1 -0
- package/models/components/webhookdatacapabilityrequested.d.ts +7 -1
- package/models/components/webhookdatacapabilityrequested.d.ts.map +1 -1
- package/models/components/webhookdatacapabilityrequested.js.map +1 -1
- package/models/components/webhookdatacapabilityupdated.d.ts +7 -1
- package/models/components/webhookdatacapabilityupdated.d.ts.map +1 -1
- package/models/components/webhookdatacapabilityupdated.js.map +1 -1
- package/models/components/webhookdatasweepcreated.d.ts +5 -0
- package/models/components/webhookdatasweepcreated.d.ts.map +1 -1
- package/models/components/webhookdatasweepcreated.js +2 -0
- package/models/components/webhookdatasweepcreated.js.map +1 -1
- package/models/components/webhookdatasweepupdated.d.ts +5 -0
- package/models/components/webhookdatasweepupdated.d.ts.map +1 -1
- package/models/components/webhookdatasweepupdated.js +2 -0
- package/models/components/webhookdatasweepupdated.js.map +1 -1
- package/models/components/webhookeventtype.d.ts +1 -0
- package/models/components/webhookeventtype.d.ts.map +1 -1
- package/models/components/webhookeventtype.js +1 -0
- package/models/components/webhookeventtype.js.map +1 -1
- package/models/errors/requestcarderror.d.ts +12 -12
- package/models/errors/requestcarderror.d.ts.map +1 -1
- package/models/errors/requestcarderror.js +17 -17
- package/models/errors/requestcarderror.js.map +1 -1
- package/models/errors/updateissuedcarderror.d.ts +9 -6
- package/models/errors/updateissuedcarderror.d.ts.map +1 -1
- package/models/errors/updateissuedcarderror.js +12 -9
- package/models/errors/updateissuedcarderror.js.map +1 -1
- package/models/operations/disablecapability.d.ts +7 -1
- package/models/operations/disablecapability.d.ts.map +1 -1
- package/models/operations/disablecapability.js.map +1 -1
- package/models/operations/getcapability.d.ts +7 -1
- package/models/operations/getcapability.d.ts.map +1 -1
- package/models/operations/getcapability.js.map +1 -1
- package/models/operations/index.d.ts +1 -0
- package/models/operations/index.d.ts.map +1 -1
- package/models/operations/index.js +1 -0
- package/models/operations/index.js.map +1 -1
- package/models/operations/linkbankaccount.d.ts +1 -1
- package/models/operations/listcancellations.d.ts +45 -0
- package/models/operations/listcancellations.d.ts.map +1 -0
- package/models/operations/listcancellations.js +90 -0
- package/models/operations/listcancellations.js.map +1 -0
- package/models/operations/listissuedcards.d.ts +1 -1
- package/package.json +1 -1
- package/sdk/accounts.d.ts +8 -10
- package/sdk/accounts.d.ts.map +1 -1
- package/sdk/accounts.js +8 -10
- package/sdk/accounts.js.map +1 -1
- package/sdk/bankaccounts.d.ts +1 -1
- package/sdk/bankaccounts.js +1 -1
- package/sdk/capabilities.d.ts +4 -4
- package/sdk/capabilities.js +4 -4
- package/sdk/transfers.d.ts +7 -0
- package/sdk/transfers.d.ts.map +1 -1
- package/sdk/transfers.js +10 -0
- package/sdk/transfers.js.map +1 -1
- package/src/funcs/accountsCreate.ts +8 -10
- package/src/funcs/bankAccountsLink.ts +1 -1
- package/src/funcs/capabilitiesDisable.ts +1 -1
- package/src/funcs/capabilitiesGet.ts +1 -1
- package/src/funcs/capabilitiesList.ts +1 -1
- package/src/funcs/capabilitiesRequest.ts +1 -1
- package/src/funcs/cardIssuingGet.ts +1 -1
- package/src/funcs/cardIssuingGetFull.ts +3 -3
- package/src/funcs/cardIssuingList.ts +1 -1
- package/src/funcs/cardIssuingRequest.ts +1 -1
- package/src/funcs/cardIssuingUpdate.ts +1 -1
- package/src/funcs/transfersListCancellations.ts +181 -0
- package/src/hooks/types.ts +1 -0
- package/src/lib/config.ts +3 -3
- package/src/lib/encodings.ts +1 -1
- package/src/lib/http.ts +3 -1
- package/src/lib/matchers.ts +1 -1
- package/src/lib/primitives.ts +16 -0
- package/src/lib/retries.ts +8 -0
- package/src/lib/sdks.ts +54 -17
- package/src/lib/security.ts +10 -5
- package/src/mcp-server/mcp-server.ts +1 -1
- package/src/mcp-server/server.ts +3 -1
- package/src/mcp-server/tools/accountsCreate.ts +8 -10
- package/src/mcp-server/tools/bankAccountsLink.ts +1 -1
- package/src/mcp-server/tools/capabilitiesDisable.ts +1 -1
- package/src/mcp-server/tools/capabilitiesGet.ts +1 -1
- package/src/mcp-server/tools/capabilitiesList.ts +1 -1
- package/src/mcp-server/tools/capabilitiesRequest.ts +1 -1
- package/src/mcp-server/tools/transfersListCancellations.ts +38 -0
- package/src/models/components/addcapabilities.ts +9 -0
- package/src/models/components/capability.ts +7 -1
- package/src/models/components/capabilityid.ts +15 -2
- package/src/models/components/cardbrandfees.ts +7 -0
- package/src/models/components/createaccount.ts +9 -0
- package/src/models/components/createpaymentlink.ts +3 -3
- package/src/models/components/fullissuedcard.ts +36 -20
- package/src/models/components/index.ts +1 -4
- package/src/models/components/issuedcard.ts +36 -20
- package/src/models/components/issuedcardstate.ts +2 -8
- package/src/models/components/manualtermsofservice.ts +1 -1
- package/src/models/components/manualtermsofserviceupdate.ts +1 -1
- package/src/models/components/onboardinginvite.ts +1 -1
- package/src/models/components/onboardinginviterequest.ts +1 -1
- package/src/models/components/patchtransfer.ts +3 -0
- package/src/models/components/paymentlink.ts +2 -2
- package/src/models/components/requestcard.ts +23 -34
- package/src/models/components/termsofservice.ts +1 -1
- package/src/models/components/updateissuedcard.ts +73 -17
- package/src/models/components/webhookdata.ts +18 -8
- package/src/models/components/webhookdataauthorizationexpiring.ts +65 -0
- package/src/models/components/webhookdatacapabilityrequested.ts +7 -1
- package/src/models/components/webhookdatacapabilityupdated.ts +7 -1
- package/src/models/components/webhookdatasweepcreated.ts +7 -0
- package/src/models/components/webhookdatasweepupdated.ts +7 -0
- package/src/models/components/webhookeventtype.ts +1 -0
- package/src/models/errors/requestcarderror.ts +26 -25
- package/src/models/errors/updateissuedcarderror.ts +18 -13
- package/src/models/operations/disablecapability.ts +7 -1
- package/src/models/operations/getcapability.ts +7 -1
- package/src/models/operations/index.ts +1 -0
- package/src/models/operations/linkbankaccount.ts +1 -1
- package/src/models/operations/listcancellations.ts +120 -0
- package/src/models/operations/listissuedcards.ts +1 -1
- package/src/sdk/accounts.ts +8 -10
- package/src/sdk/bankaccounts.ts +1 -1
- package/src/sdk/capabilities.ts +4 -4
- package/src/sdk/transfers.ts +18 -0
- package/src/types/async.ts +8 -7
- package/types/async.d.ts.map +1 -1
- package/types/async.js +8 -7
- package/types/async.js.map +1 -1
- package/lib/dlv.d.ts +0 -14
- package/lib/dlv.d.ts.map +0 -1
- package/lib/dlv.js +0 -49
- package/lib/dlv.js.map +0 -1
- package/lib/is-plain-object.d.ts +0 -2
- package/lib/is-plain-object.d.ts.map +0 -1
- package/lib/is-plain-object.js +0 -41
- package/lib/is-plain-object.js.map +0 -1
- package/models/components/authorizeduser.d.ts +0 -22
- package/models/components/authorizeduser.d.ts.map +0 -1
- package/models/components/authorizeduser.js.map +0 -1
- package/models/components/createauthorizeduser.d.ts +0 -25
- package/models/components/createauthorizeduser.d.ts.map +0 -1
- package/models/components/createauthorizeduser.js +0 -63
- package/models/components/createauthorizeduser.js.map +0 -1
- package/models/components/createauthorizedusererror.d.ts +0 -22
- package/models/components/createauthorizedusererror.d.ts.map +0 -1
- package/models/components/createauthorizedusererror.js.map +0 -1
- package/models/components/createauthorizeduserupdate.d.ts +0 -25
- package/models/components/createauthorizeduserupdate.d.ts.map +0 -1
- package/models/components/createauthorizeduserupdate.js +0 -63
- package/models/components/createauthorizeduserupdate.js.map +0 -1
- package/src/lib/dlv.ts +0 -53
- package/src/lib/is-plain-object.ts +0 -43
- package/src/models/components/authorizeduser.ts +0 -54
- package/src/models/components/createauthorizeduser.ts +0 -68
- package/src/models/components/createauthorizedusererror.ts +0 -65
- package/src/models/components/createauthorizeduserupdate.ts +0 -68
package/src/lib/encodings.ts
CHANGED
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(
|
|
50
|
+
constructor(options: HTTPClientOptions = {}) {
|
|
51
|
+
this.options = options;
|
|
50
52
|
this.fetcher = options.fetcher || DEFAULT_FETCHER;
|
|
51
53
|
}
|
|
52
54
|
|
package/src/lib/matchers.ts
CHANGED
|
@@ -6,7 +6,7 @@ import { APIError } from "../models/errors/apierror.js";
|
|
|
6
6
|
import { ResponseValidationError } from "../models/errors/responsevalidationerror.js";
|
|
7
7
|
import { ERR, OK, Result } from "../types/fp.js";
|
|
8
8
|
import { matchResponse, matchStatusCode, StatusCodePredicate } from "./http.js";
|
|
9
|
-
import { isPlainObject } from "./
|
|
9
|
+
import { isPlainObject } from "./primitives.js";
|
|
10
10
|
|
|
11
11
|
export type Encoding =
|
|
12
12
|
| "jsonl"
|
package/src/lib/primitives.ts
CHANGED
|
@@ -148,3 +148,19 @@ export function allRequired<V extends Record<string, unknown>>(
|
|
|
148
148
|
|
|
149
149
|
return v as ReturnType<typeof allRequired<V>>;
|
|
150
150
|
}
|
|
151
|
+
|
|
152
|
+
export function isPlainObject(
|
|
153
|
+
value: unknown,
|
|
154
|
+
): value is Record<string, unknown> {
|
|
155
|
+
if (value === null || typeof value !== "object") return false;
|
|
156
|
+
if (Object.prototype.toString.call(value) !== "[object Object]") return false;
|
|
157
|
+
const proto = Object.getPrototypeOf(value);
|
|
158
|
+
if (proto === null || proto === Object.prototype) return true;
|
|
159
|
+
// cross-realm plain objects (vm contexts, iframes) inherit from a
|
|
160
|
+
// different realm's Object.prototype, which itself has a null prototype
|
|
161
|
+
try {
|
|
162
|
+
return Object.getPrototypeOf(proto) === null;
|
|
163
|
+
} catch {
|
|
164
|
+
return false;
|
|
165
|
+
}
|
|
166
|
+
}
|
package/src/lib/retries.ts
CHANGED
|
@@ -194,6 +194,14 @@ async function retryBackoff(
|
|
|
194
194
|
}
|
|
195
195
|
|
|
196
196
|
function retryIntervalFromResponse(res: Response): number {
|
|
197
|
+
const retryAfterMsVal = res.headers.get("retry-after-ms");
|
|
198
|
+
if (retryAfterMsVal) {
|
|
199
|
+
const parsedMs = Number(retryAfterMsVal);
|
|
200
|
+
if (Number.isFinite(parsedMs) && parsedMs >= 0) {
|
|
201
|
+
return parsedMs;
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
|
|
197
205
|
const retryVal = res.headers.get("retry-after") || "";
|
|
198
206
|
if (!retryVal) {
|
|
199
207
|
return 0;
|
package/src/lib/sdks.ts
CHANGED
|
@@ -23,6 +23,7 @@ import {
|
|
|
23
23
|
matchContentType,
|
|
24
24
|
} from "./http.js";
|
|
25
25
|
import { Logger } from "./logger.js";
|
|
26
|
+
import { combineSignals } from "./primitives.js";
|
|
26
27
|
import { retry, RetryConfig } from "./retries.js";
|
|
27
28
|
import { SecurityState } from "./security.js";
|
|
28
29
|
|
|
@@ -127,27 +128,55 @@ export class ClientSDK {
|
|
|
127
128
|
if (path) {
|
|
128
129
|
baseURL.pathname = baseURL.pathname.replace(/\/+$/, "") + "/";
|
|
129
130
|
reqURL = new URL(path, baseURL);
|
|
131
|
+
if (!reqURL.search && baseURL.search) {
|
|
132
|
+
reqURL.search = baseURL.search;
|
|
133
|
+
}
|
|
130
134
|
} else {
|
|
131
135
|
reqURL = baseURL;
|
|
132
136
|
}
|
|
133
137
|
reqURL.hash = "";
|
|
134
138
|
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
const
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
if (typeof q !== "undefined") {
|
|
141
|
-
secQuery.push(q);
|
|
139
|
+
// Appends already-encoded query pairs to a query string, replacing any
|
|
140
|
+
// existing pairs with the same key so later sources take precedence.
|
|
141
|
+
const mergeQuery = (current: string, additions: string): string => {
|
|
142
|
+
if (!additions) {
|
|
143
|
+
return current;
|
|
142
144
|
}
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
145
|
+
const additionKeys = new Set(
|
|
146
|
+
additions
|
|
147
|
+
.split("&")
|
|
148
|
+
.filter((pair) => pair !== "")
|
|
149
|
+
.map((pair) => pair.split("=")[0] ?? ""),
|
|
150
|
+
);
|
|
151
|
+
const kept = current.split("&").filter((pair) => {
|
|
152
|
+
return pair !== "" && !additionKeys.has(pair.split("=")[0] ?? "");
|
|
153
|
+
});
|
|
154
|
+
return [...kept, additions].join("&");
|
|
155
|
+
};
|
|
156
|
+
|
|
157
|
+
const encodeQueryRecord = (record: Record<string, unknown>): string => {
|
|
158
|
+
return Object.entries(record)
|
|
159
|
+
.map(([k, v]) => {
|
|
160
|
+
if (v == null) {
|
|
161
|
+
return undefined;
|
|
162
|
+
}
|
|
163
|
+
const value = v;
|
|
164
|
+
return encodeForm(k, value, {
|
|
165
|
+
explode: Array.isArray(value),
|
|
166
|
+
charEncoding: "percent",
|
|
167
|
+
});
|
|
168
|
+
})
|
|
169
|
+
.filter((pair): pair is string => typeof pair !== "undefined")
|
|
170
|
+
.join("&");
|
|
171
|
+
};
|
|
172
|
+
|
|
173
|
+
const finalQuery = [
|
|
174
|
+
query || "",
|
|
175
|
+
encodeQueryRecord(security?.queryParams || {}),
|
|
176
|
+
].reduce(mergeQuery, reqURL.search.slice(1));
|
|
147
177
|
|
|
148
178
|
if (finalQuery) {
|
|
149
|
-
|
|
150
|
-
reqURL.search = `?${q}`;
|
|
179
|
+
reqURL.search = `?${finalQuery}`;
|
|
151
180
|
}
|
|
152
181
|
|
|
153
182
|
const headers = new Headers(opHeaders);
|
|
@@ -193,9 +222,8 @@ export class ClientSDK {
|
|
|
193
222
|
...options?.fetchOptions,
|
|
194
223
|
...options,
|
|
195
224
|
};
|
|
196
|
-
if (!fetchOptions?.signal && conf.timeoutMs && conf.timeoutMs > 0) {
|
|
197
|
-
|
|
198
|
-
fetchOptions.signal = timeoutSignal;
|
|
225
|
+
if (!fetchOptions?.signal && conf.timeoutMs != null && conf.timeoutMs > 0) {
|
|
226
|
+
context.timeoutMs = conf.timeoutMs;
|
|
199
227
|
}
|
|
200
228
|
|
|
201
229
|
if (conf.body instanceof ReadableStream) {
|
|
@@ -242,10 +270,19 @@ export class ClientSDK {
|
|
|
242
270
|
>
|
|
243
271
|
> {
|
|
244
272
|
const { context, isErrorStatusCode } = options;
|
|
273
|
+
const timeoutMs = context.timeoutMs;
|
|
245
274
|
|
|
246
275
|
return retry(
|
|
247
276
|
async () => {
|
|
248
|
-
const
|
|
277
|
+
const cloned = request.clone();
|
|
278
|
+
let attempt = cloned;
|
|
279
|
+
if (timeoutMs != null && timeoutMs > 0) {
|
|
280
|
+
const timeoutSignal = AbortSignal.timeout(timeoutMs);
|
|
281
|
+
const combined = combineSignals(cloned.signal, timeoutSignal)
|
|
282
|
+
?? timeoutSignal;
|
|
283
|
+
attempt = new Request(cloned, { signal: combined });
|
|
284
|
+
}
|
|
285
|
+
const req = await this.#hooks.beforeRequest(context, attempt);
|
|
249
286
|
await logRequest(this.#logger, req).catch((e) =>
|
|
250
287
|
this.#logger?.log("Failed to log request:", e)
|
|
251
288
|
);
|
package/src/lib/security.ts
CHANGED
|
@@ -12,17 +12,22 @@ type OAuth2PasswordFlow = {
|
|
|
12
12
|
tokenURL: string;
|
|
13
13
|
};
|
|
14
14
|
|
|
15
|
-
export
|
|
16
|
-
Incomplete
|
|
17
|
-
UnrecognisedSecurityType
|
|
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
|
-
|
|
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
|
|
package/src/mcp-server/server.ts
CHANGED
|
@@ -166,6 +166,7 @@ import { tool$transfersGetCancellation } from "./tools/transfersGetCancellation.
|
|
|
166
166
|
import { tool$transfersGetRefund } from "./tools/transfersGetRefund.js";
|
|
167
167
|
import { tool$transfersInitiateRefund } from "./tools/transfersInitiateRefund.js";
|
|
168
168
|
import { tool$transfersList } from "./tools/transfersList.js";
|
|
169
|
+
import { tool$transfersListCancellations } from "./tools/transfersListCancellations.js";
|
|
169
170
|
import { tool$transfersListRefunds } from "./tools/transfersListRefunds.js";
|
|
170
171
|
import { tool$transfersUpdate } from "./tools/transfersUpdate.js";
|
|
171
172
|
import { tool$underwritingGet } from "./tools/underwritingGet.js";
|
|
@@ -197,7 +198,7 @@ export function createMCPServer(deps: {
|
|
|
197
198
|
}) {
|
|
198
199
|
const server = new McpServer({
|
|
199
200
|
name: "Moov",
|
|
200
|
-
version: "25.12.
|
|
201
|
+
version: "25.12.3",
|
|
201
202
|
});
|
|
202
203
|
|
|
203
204
|
const client = new MoovCore({
|
|
@@ -346,6 +347,7 @@ export function createMCPServer(deps: {
|
|
|
346
347
|
tool(tool$transfersGet);
|
|
347
348
|
tool(tool$transfersUpdate);
|
|
348
349
|
tool(tool$transfersCreateCancellation);
|
|
350
|
+
tool(tool$transfersListCancellations);
|
|
349
351
|
tool(tool$transfersGetCancellation);
|
|
350
352
|
tool(tool$transfersInitiateRefund);
|
|
351
353
|
tool(tool$transfersListRefunds);
|
|
@@ -13,21 +13,19 @@ const args = {
|
|
|
13
13
|
export const tool$accountsCreate: ToolDefinition<typeof args> = {
|
|
14
14
|
name: "accounts-create",
|
|
15
15
|
description:
|
|
16
|
-
`You can create
|
|
17
|
-
information to Moov. Requirements differ per account type and requested [capabilities](https://docs.moov.io/guides/accounts/capabilities/requirements/).
|
|
16
|
+
`You can create business or individual accounts for your users (i.e., customers, merchants) by passing the required information to Moov. Requirements differ per account type and requested [capabilities](https://docs.moov.io/guides/accounts/capabilities/reference/).
|
|
18
17
|
|
|
19
|
-
If you
|
|
20
|
-
+ Send Moov the user [platform terms of service agreement](https://docs.moov.io/guides/accounts/requirements/platform-agreement/) acceptance.
|
|
21
|
-
|
|
22
|
-
|
|
18
|
+
The \`transfers\` capability is automatically requested for every account. If you request any capability beyond \`transfers\` (for example, \`send-funds.ach\`, \`collect-funds.card-payments\`), you'll need to:
|
|
19
|
+
+ Send Moov the user's [platform terms of service agreement](https://docs.moov.io/guides/accounts/requirements/platform-agreement/) acceptance. This can be done at account creation, or by [patching](https://docs.moov.io/api/moov-accounts/accounts/patch/) the account using the \`termsOfService\` field.
|
|
20
|
+
+ Fulfill the [verification and underwriting requirements](https://docs.moov.io/guides/accounts/requirements/) for each requested capability. A capability isn't enabled until its requirements pass — check the capability's status to see what's still outstanding.
|
|
21
|
+
|
|
22
|
+
If you're creating a business account, depending on the business type, you'll also need to:
|
|
23
23
|
+ Provide [business representatives](https://docs.moov.io/api/moov-accounts/representatives/) after creating the account.
|
|
24
24
|
+ [Patch](https://docs.moov.io/api/moov-accounts/accounts/patch/) the account to indicate that business representative ownership information is complete.
|
|
25
25
|
|
|
26
|
-
Visit our documentation to read more about [creating accounts](https://docs.moov.io/guides/accounts/create-accounts/) and [verification requirements](https://docs.moov.io/guides/accounts/requirements/identity-verification/).
|
|
27
|
-
Note that the \`mode\` field (for production or sandbox) is only required when creating a _facilitator_ account. All non-facilitator account requests will ignore the mode field and be set to the calling facilitator's mode.
|
|
26
|
+
Visit our documentation to read more about [creating accounts](https://docs.moov.io/guides/accounts/create-accounts/) and [verification requirements](https://docs.moov.io/guides/accounts/requirements/identity-verification/). Note that the \`mode\` field (for production or sandbox) is only required when creating a Partner account. All other account requests will ignore the mode field and be set to the calling Partner account's mode.
|
|
28
27
|
|
|
29
|
-
To access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/) you'll need
|
|
30
|
-
to specify the \`/accounts.write\` scope.`,
|
|
28
|
+
To access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/) you'll need to specify the \`/accounts.write\` scope.`,
|
|
31
29
|
args,
|
|
32
30
|
tool: async (client, args, ctx) => {
|
|
33
31
|
const [result, apiCall] = await accountsCreate(
|
|
@@ -16,7 +16,7 @@ export const tool$bankAccountsLink: ToolDefinition<typeof args> = {
|
|
|
16
16
|
`Link a bank account to an existing Moov account. Read our [bank accounts guide](https://docs.moov.io/guides/sources/bank-accounts/) to learn more.
|
|
17
17
|
|
|
18
18
|
It is strongly recommended that callers include the \`X-Wait-For\` header, set to \`payment-method\`, if the newly linked
|
|
19
|
-
bank
|
|
19
|
+
bank account is intended to be used right away. If this header is not included, the caller will need to poll the [List Payment
|
|
20
20
|
Methods](https://docs.moov.io/api/sources/payment-methods/list/)
|
|
21
21
|
endpoint to wait for the new payment methods to be available for use.
|
|
22
22
|
|
|
@@ -13,7 +13,7 @@ const args = {
|
|
|
13
13
|
export const tool$capabilitiesDisable: ToolDefinition<typeof args> = {
|
|
14
14
|
name: "capabilities-disable",
|
|
15
15
|
description:
|
|
16
|
-
`Disable a specific capability that an account has requested. Read our [capabilities
|
|
16
|
+
`Disable a specific capability that an account has requested. Read our [capabilities reference](https://docs.moov.io/guides/accounts/capabilities/reference/) to learn more.
|
|
17
17
|
|
|
18
18
|
To access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/)
|
|
19
19
|
you'll need to specify the \`/accounts/{accountID}/capabilities.write\` scope.`,
|
|
@@ -13,7 +13,7 @@ const args = {
|
|
|
13
13
|
export const tool$capabilitiesGet: ToolDefinition<typeof args> = {
|
|
14
14
|
name: "capabilities-get",
|
|
15
15
|
description:
|
|
16
|
-
`Retrieve a specific capability that an account has requested. Read our [capabilities
|
|
16
|
+
`Retrieve a specific capability that an account has requested. Read our [capabilities reference](https://docs.moov.io/guides/accounts/capabilities/reference/) to learn more.
|
|
17
17
|
|
|
18
18
|
To access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/)
|
|
19
19
|
you'll need to specify the \`/accounts/{accountID}/capabilities.read\` scope.`,
|
|
@@ -14,7 +14,7 @@ export const tool$capabilitiesList: ToolDefinition<typeof args> = {
|
|
|
14
14
|
name: "capabilities-list",
|
|
15
15
|
description: `Retrieve all the capabilities an account has requested.
|
|
16
16
|
|
|
17
|
-
Read our [capabilities
|
|
17
|
+
Read our [capabilities reference](https://docs.moov.io/guides/accounts/capabilities/reference/) to learn more.
|
|
18
18
|
|
|
19
19
|
To access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/)
|
|
20
20
|
you'll need to specify the \`/accounts/{accountID}/capabilities.read\` scope.`,
|
|
@@ -13,7 +13,7 @@ const args = {
|
|
|
13
13
|
export const tool$capabilitiesRequest: ToolDefinition<typeof args> = {
|
|
14
14
|
name: "capabilities-request",
|
|
15
15
|
description:
|
|
16
|
-
`Request capabilities for a specific account. Read our [capabilities
|
|
16
|
+
`Request capabilities for a specific account. Read our [capabilities reference](https://docs.moov.io/guides/accounts/capabilities/reference/) to learn more.
|
|
17
17
|
|
|
18
18
|
To access this endpoint using an [access token](https://docs.moov.io/api/authentication/access-tokens/)
|
|
19
19
|
you'll need to specify the \`/accounts/{accountID}/capabilities.write\` scope.`,
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
|
|
3
|
+
*/
|
|
4
|
+
|
|
5
|
+
import { transfersListCancellations } from "../../funcs/transfersListCancellations.js";
|
|
6
|
+
import * as operations from "../../models/operations/index.js";
|
|
7
|
+
import { formatResult, ToolDefinition } from "../tools.js";
|
|
8
|
+
|
|
9
|
+
const args = {
|
|
10
|
+
request: operations.ListCancellationsRequest$inboundSchema,
|
|
11
|
+
};
|
|
12
|
+
|
|
13
|
+
export const tool$transfersListCancellations: ToolDefinition<typeof args> = {
|
|
14
|
+
name: "transfers-list-cancellations",
|
|
15
|
+
description: ` Get a list of cancellations for a transfer.
|
|
16
|
+
|
|
17
|
+
To access this endpoint using a [token](https://docs.moov.io/api/authentication/access-tokens/) you'll need
|
|
18
|
+
to specify the \`/accounts/{accountID}/transfers.read\` scope.`,
|
|
19
|
+
args,
|
|
20
|
+
tool: async (client, args, ctx) => {
|
|
21
|
+
const [result, apiCall] = await transfersListCancellations(
|
|
22
|
+
client,
|
|
23
|
+
args.request,
|
|
24
|
+
{ fetchOptions: { signal: ctx.signal } },
|
|
25
|
+
).$inspect();
|
|
26
|
+
|
|
27
|
+
if (!result.ok) {
|
|
28
|
+
return {
|
|
29
|
+
content: [{ type: "text", text: result.error.message }],
|
|
30
|
+
isError: true,
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
const value = result.value.result;
|
|
35
|
+
|
|
36
|
+
return formatResult(value, apiCall);
|
|
37
|
+
},
|
|
38
|
+
};
|
|
@@ -13,6 +13,15 @@ import {
|
|
|
13
13
|
} from "./capabilityid.js";
|
|
14
14
|
|
|
15
15
|
export type AddCapabilities = {
|
|
16
|
+
/**
|
|
17
|
+
* Capabilities to request for the account. Request granular capability IDs that match your use case.
|
|
18
|
+
*
|
|
19
|
+
* @remarks
|
|
20
|
+
*
|
|
21
|
+
* Read our [capabilities reference](https://docs.moov.io/guides/accounts/capabilities/reference/) to choose the right capabilities for your integration.
|
|
22
|
+
*
|
|
23
|
+
* The `send-funds`, `collect-funds`, and `wallet` capability IDs are deprecated. Use granular values such as `send-funds.ach`, `collect-funds.card-payments`, or `wallet.balance` instead.
|
|
24
|
+
*/
|
|
16
25
|
capabilities: Array<CapabilityID>;
|
|
17
26
|
};
|
|
18
27
|
|
|
@@ -29,7 +29,13 @@ export type Capability = {
|
|
|
29
29
|
*
|
|
30
30
|
* @remarks
|
|
31
31
|
*
|
|
32
|
-
*
|
|
32
|
+
* **Deprecated capabilities**
|
|
33
|
+
*
|
|
34
|
+
* The `send-funds`, `collect-funds`, and `wallet` capability IDs are deprecated. Request granular capabilities instead (for example, `send-funds.ach`, `collect-funds.card-payments`, or `wallet.balance`). Deprecated values will be removed in a future API version.
|
|
35
|
+
*
|
|
36
|
+
* Read our [capabilities reference](https://docs.moov.io/guides/accounts/capabilities/reference/) to choose the right capabilities for your integration.
|
|
37
|
+
*
|
|
38
|
+
* The `production-app`, `platform.production-app`, and / or `platform.wallet-transfers` capabilities might appear in the list for your Partner account. These are read-only capabilities that Moov requests. These capabilities remain active with your account and require no additional action.
|
|
33
39
|
*/
|
|
34
40
|
capability: CapabilityID;
|
|
35
41
|
accountID: string;
|
|
@@ -10,7 +10,13 @@ import { ClosedEnum } from "../../types/enums.js";
|
|
|
10
10
|
*
|
|
11
11
|
* @remarks
|
|
12
12
|
*
|
|
13
|
-
*
|
|
13
|
+
* **Deprecated capabilities**
|
|
14
|
+
*
|
|
15
|
+
* The `send-funds`, `collect-funds`, and `wallet` capability IDs are deprecated. Request granular capabilities instead (for example, `send-funds.ach`, `collect-funds.card-payments`, or `wallet.balance`). Deprecated values will be removed in a future API version.
|
|
16
|
+
*
|
|
17
|
+
* Read our [capabilities reference](https://docs.moov.io/guides/accounts/capabilities/reference/) to choose the right capabilities for your integration.
|
|
18
|
+
*
|
|
19
|
+
* The `production-app`, `platform.production-app`, and / or `platform.wallet-transfers` capabilities might appear in the list for your Partner account. These are read-only capabilities that Moov requests. These capabilities remain active with your account and require no additional action.
|
|
14
20
|
*/
|
|
15
21
|
export const CapabilityID = {
|
|
16
22
|
Transfers: "transfers",
|
|
@@ -27,6 +33,7 @@ export const CapabilityID = {
|
|
|
27
33
|
Wallet: "wallet",
|
|
28
34
|
WalletBalance: "wallet.balance",
|
|
29
35
|
CardIssuing: "card-issuing",
|
|
36
|
+
IssuingCardholder: "issuing.cardholder",
|
|
30
37
|
ProductionApp: "production-app",
|
|
31
38
|
PlatformProductionApp: "platform.production-app",
|
|
32
39
|
PlatformWalletTransfers: "platform.wallet-transfers",
|
|
@@ -36,7 +43,13 @@ export const CapabilityID = {
|
|
|
36
43
|
*
|
|
37
44
|
* @remarks
|
|
38
45
|
*
|
|
39
|
-
*
|
|
46
|
+
* **Deprecated capabilities**
|
|
47
|
+
*
|
|
48
|
+
* The `send-funds`, `collect-funds`, and `wallet` capability IDs are deprecated. Request granular capabilities instead (for example, `send-funds.ach`, `collect-funds.card-payments`, or `wallet.balance`). Deprecated values will be removed in a future API version.
|
|
49
|
+
*
|
|
50
|
+
* Read our [capabilities reference](https://docs.moov.io/guides/accounts/capabilities/reference/) to choose the right capabilities for your integration.
|
|
51
|
+
*
|
|
52
|
+
* The `production-app`, `platform.production-app`, and / or `platform.wallet-transfers` capabilities might appear in the list for your Partner account. These are read-only capabilities that Moov requests. These capabilities remain active with your account and require no additional action.
|
|
40
53
|
*/
|
|
41
54
|
export type CapabilityID = ClosedEnum<typeof CapabilityID>;
|
|
42
55
|
|
|
@@ -56,6 +56,10 @@ export type CardBrandFees = {
|
|
|
56
56
|
* Details of refunded transactions.
|
|
57
57
|
*/
|
|
58
58
|
refunds?: BillingCountAndAmount | undefined;
|
|
59
|
+
/**
|
|
60
|
+
* Details of card cancellations.
|
|
61
|
+
*/
|
|
62
|
+
cardCancellations?: BillingCountAndAmount | undefined;
|
|
59
63
|
/**
|
|
60
64
|
* Total fees for this card brand.
|
|
61
65
|
*/
|
|
@@ -79,6 +83,7 @@ export const CardBrandFees$inboundSchema: z.ZodType<
|
|
|
79
83
|
.optional(),
|
|
80
84
|
declines: BillingCountAndAmount$inboundSchema.optional(),
|
|
81
85
|
refunds: BillingCountAndAmount$inboundSchema.optional(),
|
|
86
|
+
cardCancellations: BillingCountAndAmount$inboundSchema.optional(),
|
|
82
87
|
total: BillingCountAndAmount$inboundSchema,
|
|
83
88
|
});
|
|
84
89
|
/** @internal */
|
|
@@ -94,6 +99,7 @@ export type CardBrandFees$Outbound = {
|
|
|
94
99
|
completedInternationalInPerson?: BillingCountAndAmount$Outbound | undefined;
|
|
95
100
|
declines?: BillingCountAndAmount$Outbound | undefined;
|
|
96
101
|
refunds?: BillingCountAndAmount$Outbound | undefined;
|
|
102
|
+
cardCancellations?: BillingCountAndAmount$Outbound | undefined;
|
|
97
103
|
total: BillingCountAndAmount$Outbound;
|
|
98
104
|
};
|
|
99
105
|
|
|
@@ -114,6 +120,7 @@ export const CardBrandFees$outboundSchema: z.ZodType<
|
|
|
114
120
|
.optional(),
|
|
115
121
|
declines: BillingCountAndAmount$outboundSchema.optional(),
|
|
116
122
|
refunds: BillingCountAndAmount$outboundSchema.optional(),
|
|
123
|
+
cardCancellations: BillingCountAndAmount$outboundSchema.optional(),
|
|
117
124
|
total: BillingCountAndAmount$outboundSchema,
|
|
118
125
|
});
|
|
119
126
|
|
|
@@ -65,6 +65,15 @@ export type CreateAccount = {
|
|
|
65
65
|
* User provided settings to manage an account.
|
|
66
66
|
*/
|
|
67
67
|
settings?: Settings | undefined;
|
|
68
|
+
/**
|
|
69
|
+
* Capabilities to request when the account is created. Request granular capability IDs that match your use case.
|
|
70
|
+
*
|
|
71
|
+
* @remarks
|
|
72
|
+
*
|
|
73
|
+
* Read our [capabilities reference](https://docs.moov.io/guides/accounts/capabilities/reference/) to choose the right capabilities for your integration.
|
|
74
|
+
*
|
|
75
|
+
* The `send-funds`, `collect-funds`, and `wallet` capability IDs are deprecated. Use granular values such as `send-funds.ach`, `collect-funds.card-payments`, or `wallet.balance` instead.
|
|
76
|
+
*/
|
|
68
77
|
capabilities?: Array<CapabilityID> | undefined;
|
|
69
78
|
/**
|
|
70
79
|
* The operating mode for an account.
|
|
@@ -48,7 +48,7 @@ import {
|
|
|
48
48
|
*
|
|
49
49
|
* @remarks
|
|
50
50
|
*
|
|
51
|
-
* A payment link must include
|
|
51
|
+
* A payment link must include exactly one of `payment`, `payout`, or `customAmountPayment` details. For payout payment links,
|
|
52
52
|
* `maxUses` will automatically be set to 1, as these are intended for a one-time disbursement
|
|
53
53
|
* to a specific recipient.
|
|
54
54
|
*/
|
|
@@ -68,8 +68,8 @@ export type CreatePaymentLink = {
|
|
|
68
68
|
*
|
|
69
69
|
* In API versions before `2026.07.00`, this was a required field.
|
|
70
70
|
*
|
|
71
|
-
* In API version `2026.07.00` and beyond, this field is required for `
|
|
72
|
-
* for `
|
|
71
|
+
* In API version `2026.07.00` and beyond, this field is required for `payment` and `payout` links and must be
|
|
72
|
+
* omitted for `customAmountPayment` links, where the payor chooses the amount.
|
|
73
73
|
*/
|
|
74
74
|
amount: Amount;
|
|
75
75
|
/**
|
|
@@ -7,11 +7,11 @@ import { safeParse } from "../../lib/schemas.js";
|
|
|
7
7
|
import { Result as SafeParseResult } from "../../types/fp.js";
|
|
8
8
|
import { SDKValidationError } from "../errors/sdkvalidationerror.js";
|
|
9
9
|
import {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
} from "./
|
|
10
|
+
Address,
|
|
11
|
+
Address$inboundSchema,
|
|
12
|
+
Address$Outbound,
|
|
13
|
+
Address$outboundSchema,
|
|
14
|
+
} from "./address.js";
|
|
15
15
|
import {
|
|
16
16
|
CardBrand,
|
|
17
17
|
CardBrand$inboundSchema,
|
|
@@ -55,26 +55,32 @@ export type FullIssuedCard = {
|
|
|
55
55
|
*/
|
|
56
56
|
expiration: CardExpiration;
|
|
57
57
|
/**
|
|
58
|
-
*
|
|
58
|
+
* Unique identifier for the wallet funding the card.
|
|
59
59
|
*/
|
|
60
|
-
|
|
60
|
+
fundingWalletID: string;
|
|
61
61
|
/**
|
|
62
|
-
*
|
|
62
|
+
* Identifier for the account of the card's authorized user.
|
|
63
63
|
*/
|
|
64
|
-
|
|
64
|
+
authorizedUserAccountID?: string | undefined;
|
|
65
65
|
/**
|
|
66
|
-
*
|
|
66
|
+
* An optional descriptive name for the card.
|
|
67
67
|
*/
|
|
68
|
-
|
|
68
|
+
nickname?: string | undefined;
|
|
69
|
+
/**
|
|
70
|
+
* Free-form key-value pair list. Useful for storing information that is not captured elsewhere.
|
|
71
|
+
*/
|
|
72
|
+
metadata?: { [k: string]: string } | undefined;
|
|
73
|
+
/**
|
|
74
|
+
* Billing address associated with the card.
|
|
75
|
+
*/
|
|
76
|
+
billingAddress?: Address | undefined;
|
|
69
77
|
/**
|
|
70
78
|
* The `state` represents the operational status of an issued card. A card can only approve incoming authorizations if it is in an active state.
|
|
71
79
|
*
|
|
72
80
|
* @remarks
|
|
73
81
|
*
|
|
74
|
-
* - `active`: The card is operational and
|
|
75
|
-
* - `inactive`: The card cannot approve authorizations. This is currently a temporary state assigned post-creation during the activation process.
|
|
82
|
+
* - `active`: The card is operational and can approve authorizations.
|
|
76
83
|
* - `closed`: The card is permanently deactivated and cannot approve authorizations. A card can be closed by request or when it expires.
|
|
77
|
-
* - `pending-verification`: Awaiting additional authorized user verification before the card can be activated.
|
|
78
84
|
*/
|
|
79
85
|
state: IssuedCardState;
|
|
80
86
|
/**
|
|
@@ -83,6 +89,7 @@ export type FullIssuedCard = {
|
|
|
83
89
|
formFactor: IssuedCardFormFactor;
|
|
84
90
|
controls?: IssuingControls | undefined;
|
|
85
91
|
createdOn: Date;
|
|
92
|
+
updatedOn: Date;
|
|
86
93
|
/**
|
|
87
94
|
* The issued card's Primary Account Number (PAN)
|
|
88
95
|
*/
|
|
@@ -103,13 +110,16 @@ export const FullIssuedCard$inboundSchema: z.ZodType<
|
|
|
103
110
|
brand: CardBrand$inboundSchema,
|
|
104
111
|
lastFourCardNumber: z.string(),
|
|
105
112
|
expiration: CardExpiration$inboundSchema,
|
|
106
|
-
authorizedUser: AuthorizedUser$inboundSchema,
|
|
107
|
-
memo: z.string().optional(),
|
|
108
113
|
fundingWalletID: z.string(),
|
|
114
|
+
authorizedUserAccountID: z.string().optional(),
|
|
115
|
+
nickname: z.string().optional(),
|
|
116
|
+
metadata: z.record(z.string()).optional(),
|
|
117
|
+
billingAddress: Address$inboundSchema.optional(),
|
|
109
118
|
state: IssuedCardState$inboundSchema,
|
|
110
119
|
formFactor: IssuedCardFormFactor$inboundSchema,
|
|
111
120
|
controls: IssuingControls$inboundSchema.optional(),
|
|
112
121
|
createdOn: z.string().datetime({ offset: true }).transform(v => new Date(v)),
|
|
122
|
+
updatedOn: z.string().datetime({ offset: true }).transform(v => new Date(v)),
|
|
113
123
|
pan: z.string(),
|
|
114
124
|
cvv: z.string(),
|
|
115
125
|
});
|
|
@@ -119,13 +129,16 @@ export type FullIssuedCard$Outbound = {
|
|
|
119
129
|
brand: string;
|
|
120
130
|
lastFourCardNumber: string;
|
|
121
131
|
expiration: CardExpiration$Outbound;
|
|
122
|
-
authorizedUser: AuthorizedUser$Outbound;
|
|
123
|
-
memo?: string | undefined;
|
|
124
132
|
fundingWalletID: string;
|
|
133
|
+
authorizedUserAccountID?: string | undefined;
|
|
134
|
+
nickname?: string | undefined;
|
|
135
|
+
metadata?: { [k: string]: string } | undefined;
|
|
136
|
+
billingAddress?: Address$Outbound | undefined;
|
|
125
137
|
state: string;
|
|
126
138
|
formFactor: string;
|
|
127
139
|
controls?: IssuingControls$Outbound | undefined;
|
|
128
140
|
createdOn: string;
|
|
141
|
+
updatedOn: string;
|
|
129
142
|
pan: string;
|
|
130
143
|
cvv: string;
|
|
131
144
|
};
|
|
@@ -140,13 +153,16 @@ export const FullIssuedCard$outboundSchema: z.ZodType<
|
|
|
140
153
|
brand: CardBrand$outboundSchema,
|
|
141
154
|
lastFourCardNumber: z.string(),
|
|
142
155
|
expiration: CardExpiration$outboundSchema,
|
|
143
|
-
authorizedUser: AuthorizedUser$outboundSchema,
|
|
144
|
-
memo: z.string().optional(),
|
|
145
156
|
fundingWalletID: z.string(),
|
|
157
|
+
authorizedUserAccountID: z.string().optional(),
|
|
158
|
+
nickname: z.string().optional(),
|
|
159
|
+
metadata: z.record(z.string()).optional(),
|
|
160
|
+
billingAddress: Address$outboundSchema.optional(),
|
|
146
161
|
state: IssuedCardState$outboundSchema,
|
|
147
162
|
formFactor: IssuedCardFormFactor$outboundSchema,
|
|
148
163
|
controls: IssuingControls$outboundSchema.optional(),
|
|
149
164
|
createdOn: z.date().transform(v => v.toISOString()),
|
|
165
|
+
updatedOn: z.date().transform(v => v.toISOString()),
|
|
150
166
|
pan: z.string(),
|
|
151
167
|
cvv: z.string(),
|
|
152
168
|
});
|