@distilled.cloud/coinbase 1.0.0-rc.8 → 1.0.0-rc.9

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.
@@ -14,6 +14,10 @@ export interface EndUserEvmAccount {
14
14
  address: string;
15
15
  /** The date and time when the account was created, in ISO 8601 format. */
16
16
  createdAt: string;
17
+ /** The date and time when the account's private key was first exported, in ISO 8601 format. This is set on the first export and preserved on subsequent exports; it is not updated on re-export. */
18
+ exportedAt?: string | null;
19
+ /** The date and time when the account's key was ejected (marked for deletion), in ISO 8601 format. Populated when the account has been ejected. The account record remains queryable after this timestamp is set; it reflects when ejection was requested, not when the key material is purged. */
20
+ ejectedAt?: string | null;
17
21
  }
18
22
  export declare const EndUserEvmAccount: S.Schema<EndUserEvmAccount>;
19
23
  export interface AddEndUserEvmAccountResponse {
@@ -55,12 +59,663 @@ export interface EndUserSolanaAccount {
55
59
  address: string;
56
60
  /** The date and time when the account was created, in ISO 8601 format. */
57
61
  createdAt: string;
62
+ /** The date and time when the account's private key was first exported, in ISO 8601 format. This is set on the first export and preserved on subsequent exports; it is not updated on re-export. */
63
+ exportedAt?: string | null;
64
+ /** The date and time when the account's key was ejected (marked for deletion), in ISO 8601 format. Populated when the account has been ejected. The account record remains queryable after this timestamp is set; it reflects when ejection was requested, not when the key material is purged. */
65
+ ejectedAt?: string | null;
58
66
  }
59
67
  export declare const EndUserSolanaAccount: S.Schema<EndUserSolanaAccount>;
60
68
  export interface AddEndUserSolanaAccountResponse {
61
69
  solanaAccount: EndUserSolanaAccount;
62
70
  }
63
71
  export declare const AddEndUserSolanaAccountResponse: S.Schema<AddEndUserSolanaAccountResponse>;
72
+ /** Optional metadata as key-value pairs. Use this to store additional structured information on a resource, such as customer IDs, order references, or any application-specific data. Up to 10 key/value pairs may be provided. Keys and values are both strings. Keys must be ≤ 40 characters; values must be ≤ 500 characters. */
73
+ export type Metadata = {
74
+ [key: string]: string | undefined;
75
+ };
76
+ export declare const Metadata: S.Schema<Metadata>;
77
+ /** Customer-facing display data for a payment operation, shown to the payer. */
78
+ export interface OperationCustomerDisplay {
79
+ /** A short reference code for this payment operation, visible to the payer. */
80
+ referenceCode?: string;
81
+ }
82
+ export declare const OperationCustomerDisplay: S.Schema<OperationCustomerDisplay>;
83
+ export interface AuthorizeCoinbasePaymentSessionRequest {
84
+ /** The unique identifier of the payment session to authorize via Coinbase. */
85
+ paymentSessionId: string;
86
+ metadata?: Metadata;
87
+ /** Optional customer-facing display data for this authorization, shown to the payer. Falls back to the session's `orderCode` when `referenceCode` is omitted. */
88
+ customerDisplay?: OperationCustomerDisplay;
89
+ /** An optional merchant-provided internal identifier for this Coinbase authorization, from the merchant's own system—not visible to the payer. */
90
+ externalReferenceId?: string;
91
+ }
92
+ export declare const AuthorizeCoinbasePaymentSessionRequest: S.Schema<AuthorizeCoinbasePaymentSessionRequest>;
93
+ /** The current status of a payment action (authorization, capture, void, or refund). */
94
+ export type PaymentActionStatus = "pending" | "succeeded" | "failed";
95
+ export declare const PaymentActionStatus: any;
96
+ /** An error that occurred during a payment operation. */
97
+ export interface PaymentError {
98
+ /** A machine-readable error code. */
99
+ code?: string;
100
+ /** A human-readable description of the error. */
101
+ message?: string;
102
+ /** The UTC ISO 8601 timestamp at which the error occurred. */
103
+ occurredAt?: string;
104
+ }
105
+ export declare const PaymentError: S.Schema<PaymentError>;
106
+ /** The blockchain network supported for payment session sources. Testnet networks are only available in sandbox environments. */
107
+ export type PaymentSourceNetwork = "arbitrum" | "arbitrum-sepolia" | "avalanche" | "base" | "base-sepolia" | "ethereum" | "ethereum-sepolia" | "optimism" | "optimism-sepolia" | "polygon" | "polygon-amoy";
108
+ export declare const PaymentSourceNetwork: any;
109
+ /** A blockchain wallet address used as a payment source. */
110
+ export interface PaymentSourceWallet {
111
+ /** The blockchain address of the payer. */
112
+ address: string;
113
+ /** The blockchain network for the payment. */
114
+ network?: PaymentSourceNetwork;
115
+ /** The asset used for the payment. */
116
+ asset?: string;
117
+ }
118
+ export declare const PaymentSourceWallet: S.Schema<PaymentSourceWallet>;
119
+ /** A Coinbase account authenticated via OAuth, used as a payment source. */
120
+ export interface PaymentSourceCoinbase {
121
+ /** The unique identifier of the payer within Coinbase. */
122
+ coinbaseUserId: string;
123
+ }
124
+ export declare const PaymentSourceCoinbase: S.Schema<PaymentSourceCoinbase>;
125
+ /** The source of the payment. Can be either an onchain wallet address or a Coinbase account authenticated via OAuth. */
126
+ export type PaymentSessionSource = PaymentSourceWallet | PaymentSourceCoinbase;
127
+ export declare const PaymentSessionSource: S.Schema<PaymentSessionSource>;
128
+ /** An onchain transaction associated with a payment action. */
129
+ export interface OnchainTransaction {
130
+ /** The blockchain transaction hash. */
131
+ transactionHash: string;
132
+ /** The blockchain network the transaction occurred on. */
133
+ network: PaymentSourceNetwork;
134
+ }
135
+ export declare const OnchainTransaction: S.Schema<OnchainTransaction>;
136
+ /** The onchain transactions associated with this authorization. */
137
+ export type AuthorizationOnchainTransactionsList = Array<OnchainTransaction>;
138
+ export declare const AuthorizationOnchainTransactionsList: S.Schema<AuthorizationOnchainTransactionsList>;
139
+ /** A hold placed on the payer's funds. Once authorized, the merchant can capture (collect) the funds. Only one authorization is allowed per session. */
140
+ export interface Authorization {
141
+ /** The unique identifier of the authorization. */
142
+ authorizationId?: string;
143
+ /** The ID of the payment session this authorization belongs to. */
144
+ paymentSessionId?: string;
145
+ /** The current status of the authorization. */
146
+ status?: PaymentActionStatus;
147
+ /** A decimal representation of the authorized amount, denominated in the session's `asset`. */
148
+ amount?: string;
149
+ error?: PaymentError;
150
+ /** A human-readable message describing the outcome or status for display. Returned for x402 authorizations; omitted for other authorization flows unless documented otherwise. */
151
+ message?: string;
152
+ metadata?: Metadata;
153
+ /** A merchant-provided internal identifier for this authorization, from the merchant's own system—not visible to the payer. Present only when supplied on the authorization request. */
154
+ externalReferenceId?: string;
155
+ /** Customer-facing display data for this authorization, shown to the payer. Present when supplied on the authorization request or when the session's `orderCode` fallback applies; otherwise omitted. */
156
+ customerDisplay?: OperationCustomerDisplay;
157
+ /** The payer for this authorization. For wallet authorizations, this is the blockchain address that signed the payloads. For Coinbase authorizations, this is the authenticated Coinbase account. This value is also reflected on the parent payment session's `source` field after a successful authorization. */
158
+ source?: PaymentSessionSource;
159
+ /** The onchain transactions associated with this authorization. */
160
+ onchainTransactions?: AuthorizationOnchainTransactionsList;
161
+ /** The UTC ISO 8601 timestamp at which the authorization was created. */
162
+ createdAt?: string;
163
+ /** The UTC ISO 8601 timestamp at which the authorization was last updated. */
164
+ updatedAt?: string;
165
+ }
166
+ export declare const Authorization: S.Schema<Authorization>;
167
+ /** A processed onchain payload containing the payload ID and the payer's signature or transaction hash. The `signature` value depends on the original payload `type`: - `eip3009` / `permit2` / `spend_permission` — a hex-encoded signature from `eth_signTypedData_v4`. - `erc20_approval` — a hex-encoded transaction hash from `eth_sendTransaction`. */
168
+ export interface OnchainSignedPayload {
169
+ /** The unique identifier of the signed payload. */
170
+ payloadId?: string;
171
+ /** The hex-encoded output from processing the payload. For `eip3009`, `permit2`, and `spend_permission` types, this is the cryptographic signature returned by `eth_signTypedData_v4`. For `erc20_approval` types, this is the transaction hash returned by `eth_sendTransaction`. */
172
+ signature?: string;
173
+ }
174
+ export declare const OnchainSignedPayload: S.Schema<OnchainSignedPayload>;
175
+ /** The processed payloads from the payer, corresponding to the payloads in the selected authorization option. */
176
+ export type AuthorizeWalletPaymentSessionRequestSignedPayloadsList = Array<OnchainSignedPayload>;
177
+ export declare const AuthorizeWalletPaymentSessionRequestSignedPayloadsList: S.Schema<AuthorizeWalletPaymentSessionRequestSignedPayloadsList>;
178
+ export interface AuthorizeWalletPaymentSessionRequest {
179
+ /** The unique identifier of the payment session to authorize. */
180
+ paymentSessionId: string;
181
+ /** The identifier of the chosen authorization option. Must match an `optionId` from the wallet authorization options response. */
182
+ optionId: string;
183
+ /** The processed payloads from the payer, corresponding to the payloads in the selected authorization option. */
184
+ signedPayloads: AuthorizeWalletPaymentSessionRequestSignedPayloadsList;
185
+ metadata?: Metadata;
186
+ /** Optional customer-facing display data for this authorization, shown to the payer. Falls back to the session's `orderCode` when `referenceCode` is omitted. */
187
+ customerDisplay?: OperationCustomerDisplay;
188
+ /** An optional merchant-provided internal identifier for this wallet authorization, from the merchant's own system—not visible to the payer. */
189
+ externalReferenceId?: string;
190
+ }
191
+ export declare const AuthorizeWalletPaymentSessionRequest: S.Schema<AuthorizeWalletPaymentSessionRequest>;
192
+ export interface AuthorizeX402PaymentSessionRequest {
193
+ /** The unique identifier of the payment session to authorize with x402. */
194
+ paymentSessionId: string;
195
+ }
196
+ export declare const AuthorizeX402PaymentSessionRequest: S.Schema<AuthorizeX402PaymentSessionRequest>;
197
+ export interface CancelPaymentSessionRequest {
198
+ /** The unique identifier of the payment session to cancel. */
199
+ paymentSessionId: string;
200
+ /** The reason for cancelling the payment session. */
201
+ cancellationReason?: string;
202
+ }
203
+ export declare const CancelPaymentSessionRequest: S.Schema<CancelPaymentSessionRequest>;
204
+ /** The blockchain network supported for payment session targets. Testnet networks are only available in sandbox environments. */
205
+ export type PaymentTargetNetwork = "base" | "base-sepolia";
206
+ export declare const PaymentTargetNetwork: any;
207
+ /** A blockchain wallet address used as a payment target (merchant recipient). */
208
+ export interface PaymentTargetWallet {
209
+ /** The blockchain address of the recipient. */
210
+ address: string;
211
+ /** The blockchain network for the payment. */
212
+ network?: PaymentTargetNetwork | (string & {});
213
+ }
214
+ export declare const PaymentTargetWallet: S.Schema<PaymentTargetWallet>;
215
+ /** The Account specific details for the transfer. */
216
+ export interface TransfersAccount {
217
+ /** The ID of the Account. */
218
+ accountId: string;
219
+ /** The asset symbol. Supported values are `usdc`, `eurc`, `usd`, and `eur`. */
220
+ asset: string;
221
+ }
222
+ export declare const TransfersAccount: S.Schema<TransfersAccount>;
223
+ /** The target of the payment. */
224
+ export type PaymentSessionTarget = PaymentTargetWallet | TransfersAccount;
225
+ export declare const PaymentSessionTarget: S.Schema<PaymentSessionTarget>;
226
+ /** Deadlines for each stage of the payment session lifecycle. All fields are optional; when omitted from a create request, the following defaults apply: `authorizationExpiresAt` = now + 1 day, `captureExpiresAt` = now + 7 days, `refundExpiresAt` = now + 30 days. Expiries must satisfy `authorizationExpiresAt` ≤ `captureExpiresAt` ≤ `refundExpiresAt`. The API returns a 400 error if this constraint is violated. Each deadline acts as a guard — after it passes, the corresponding action is rejected, but the session remains in its current status. No automatic state transitions occur; the merchant must take explicit action (e.g., cancel or void) to move the session to a terminal state. */
227
+ export interface PaymentExpiries {
228
+ /** The UTC ISO 8601 timestamp after which authorization attempts are rejected. Defaults to now + 1 day if omitted. The session remains in its current pre-authorization status; the merchant must explicitly cancel the session. */
229
+ authorizationExpiresAt?: string;
230
+ /** The UTC ISO 8601 timestamp after which capture attempts are rejected. Defaults to now + 7 days if omitted. The session remains in its current status; the merchant must explicitly void to release uncaptured funds. */
231
+ captureExpiresAt?: string;
232
+ /** The UTC ISO 8601 timestamp after which refund attempts are rejected. Defaults to now + 30 days if omitted. The session remains in its current status; the refund window is simply closed. */
233
+ refundExpiresAt?: string;
234
+ }
235
+ export declare const PaymentExpiries: S.Schema<PaymentExpiries>;
236
+ /** The most recent meaningful event on the payment session. For session-level milestones the value is one of `created` or `canceled`. For action outcomes the value follows the pattern `{action}_{result}` — e.g. `authorization_succeeded`, `capture_pending`, `refund_failed`. */
237
+ export type PaymentSessionStatus = "created" | "canceled" | "authorization_pending" | "authorization_succeeded" | "authorization_failed" | "capture_pending" | "capture_succeeded" | "capture_failed" | "void_pending" | "void_succeeded" | "void_failed" | "refund_pending" | "refund_succeeded" | "refund_failed";
238
+ export declare const PaymentSessionStatus: any;
239
+ /** Running totals tracking how funds move through the session. All amounts are decimal representations denominated in the session's `asset`. */
240
+ export interface PaymentSessionBalances {
241
+ /** Authorized funds not yet captured or voided. Decreases with each capture or void. */
242
+ capturable?: string;
243
+ /** Total funds captured across all captures. */
244
+ captured?: string;
245
+ /** Captured funds not yet refunded. Equals `captured` minus `refunded`. */
246
+ refundable?: string;
247
+ /** Total funds refunded across all refunds. */
248
+ refunded?: string;
249
+ }
250
+ export declare const PaymentSessionBalances: S.Schema<PaymentSessionBalances>;
251
+ /** The authorizations for this payment session. */
252
+ export type PaymentSessionAuthorizationsList = Array<Authorization>;
253
+ export declare const PaymentSessionAuthorizationsList: S.Schema<PaymentSessionAuthorizationsList>;
254
+ /** The onchain transactions associated with this capture. */
255
+ export type CaptureOnchainTransactionsList = Array<OnchainTransaction>;
256
+ export declare const CaptureOnchainTransactionsList: S.Schema<CaptureOnchainTransactionsList>;
257
+ /** A collection of authorized funds. Multiple partial captures are allowed up to the authorized amount. Each capture settles funds to the merchant's target. */
258
+ export interface Capture {
259
+ /** The unique identifier of the capture. */
260
+ captureId?: string;
261
+ /** The ID of the payment session this capture belongs to. */
262
+ paymentSessionId?: string;
263
+ /** The current status of the capture. */
264
+ status?: PaymentActionStatus;
265
+ /** A decimal representation of the captured amount, denominated in the session's `asset`. */
266
+ amount?: string;
267
+ /** When `true`, this capture is treated as the final one for the authorization. Any remaining capturable balance is released back to the payer immediately after the capture settles. When `false`, the remaining capturable balance stays held and is available for subsequent partial captures (subject to `captureExpiresAt`). Has no effect if `amount` equals the full capturable balance, since no remaining balance exists to release. */
268
+ finalCapture: boolean;
269
+ error?: PaymentError;
270
+ metadata?: Metadata;
271
+ /** A merchant-provided internal identifier for this capture, from the merchant's own system—not visible to the payer. A manual capture uses the caller-provided value; an auto-capture reuses the authorization's value and omits it when the authorization omitted it. It never falls back to `PaymentSession.externalReferenceId`. */
272
+ externalReferenceId?: string;
273
+ /** Customer-facing display data for this capture, shown to the payer. A manual capture falls back to the session's `orderCode` when `referenceCode` is omitted; an auto-capture reuses the authorization's `referenceCode`. */
274
+ customerDisplay?: OperationCustomerDisplay;
275
+ /** The onchain transactions associated with this capture. */
276
+ onchainTransactions?: CaptureOnchainTransactionsList;
277
+ /** The UTC ISO 8601 timestamp at which the capture was created. */
278
+ createdAt?: string;
279
+ /** The UTC ISO 8601 timestamp at which the capture was last updated. */
280
+ updatedAt?: string;
281
+ }
282
+ export declare const Capture: S.Schema<Capture>;
283
+ /** The captures for this payment session. */
284
+ export type PaymentSessionCapturesList = Array<Capture>;
285
+ export declare const PaymentSessionCapturesList: S.Schema<PaymentSessionCapturesList>;
286
+ /** The onchain transactions associated with this void. */
287
+ export type VoidOnchainTransactionsList = Array<OnchainTransaction>;
288
+ export declare const VoidOnchainTransactionsList: S.Schema<VoidOnchainTransactionsList>;
289
+ /** A release of uncaptured authorized funds back to the payer. Voids release all remaining capturable funds in a single operation, including after partial refunds as long as a capturableAmount remains. */
290
+ export interface Void {
291
+ /** The unique identifier of the void. */
292
+ voidId?: string;
293
+ /** The ID of the payment session this void belongs to. */
294
+ paymentSessionId?: string;
295
+ /** The current status of the void. */
296
+ status?: PaymentActionStatus;
297
+ /** A decimal representation of the voided amount, denominated in the session's `asset`. */
298
+ amount?: string;
299
+ error?: PaymentError;
300
+ metadata?: Metadata;
301
+ /** A merchant-provided internal identifier for this void, from the merchant's own system—not visible to the payer. Present only when supplied on the create void request. */
302
+ externalReferenceId?: string;
303
+ /** Customer-facing display data for this void, shown to the payer. Present when supplied on the create void request or when the session's `orderCode` fallback applies; otherwise omitted. */
304
+ customerDisplay?: OperationCustomerDisplay;
305
+ /** The onchain transactions associated with this void. */
306
+ onchainTransactions?: VoidOnchainTransactionsList;
307
+ /** The UTC ISO 8601 timestamp at which the void was created. */
308
+ createdAt?: string;
309
+ /** The UTC ISO 8601 timestamp at which the void was last updated. */
310
+ updatedAt?: string;
311
+ }
312
+ export declare const Void: S.Schema<Void>;
313
+ /** The voids for this payment session. */
314
+ export type PaymentSessionVoidsList = Array<Void>;
315
+ export declare const PaymentSessionVoidsList: S.Schema<PaymentSessionVoidsList>;
316
+ /** An onchain address from which funds are pulled to fund the refund. Network and asset are inferred from the payment session. */
317
+ export interface RefundWallet {
318
+ /** The onchain crypto address from which to fund the refund. */
319
+ address: string;
320
+ }
321
+ export declare const RefundWallet: S.Schema<RefundWallet>;
322
+ /** The source from which a refund is funded. */
323
+ export type RefundSource = TransfersAccount | RefundWallet;
324
+ export declare const RefundSource: S.Schema<RefundSource>;
325
+ /** The onchain transactions associated with this refund. */
326
+ export type RefundOnchainTransactionsList = Array<OnchainTransaction>;
327
+ export declare const RefundOnchainTransactionsList: S.Schema<RefundOnchainTransactionsList>;
328
+ /** A return of previously captured funds to the payer. Multiple partial refunds are allowed up to the total captured amount. */
329
+ export interface Refund {
330
+ /** The unique identifier of the refund. */
331
+ refundId?: string;
332
+ /** The ID of the payment session this refund belongs to. */
333
+ paymentSessionId?: string;
334
+ /** The source from which the refund is funded. Can be a CDP account or an onchain address. */
335
+ source?: RefundSource;
336
+ /** The current status of the refund. */
337
+ status?: PaymentActionStatus;
338
+ /** A decimal representation of the refunded amount, denominated in the session's `asset`. */
339
+ amount?: string;
340
+ /** The reason for the refund. */
341
+ reason?: string;
342
+ error?: PaymentError;
343
+ metadata?: Metadata;
344
+ /** A merchant-provided internal identifier for this refund, from the merchant's own system—not visible to the payer. Present only when supplied on the create refund request. */
345
+ externalReferenceId?: string;
346
+ /** Customer-facing display data for this refund, shown to the payer. Present when supplied on the create refund request or when the session's `orderCode` fallback applies; otherwise omitted. */
347
+ customerDisplay?: OperationCustomerDisplay;
348
+ /** The onchain transactions associated with this refund. */
349
+ onchainTransactions?: RefundOnchainTransactionsList;
350
+ /** The UTC ISO 8601 timestamp at which the refund was created. */
351
+ createdAt?: string;
352
+ /** The UTC ISO 8601 timestamp at which the refund was last updated. */
353
+ updatedAt?: string;
354
+ }
355
+ export declare const Refund: S.Schema<Refund>;
356
+ /** The refunds for this payment session. */
357
+ export type PaymentSessionRefundsList = Array<Refund>;
358
+ export declare const PaymentSessionRefundsList: S.Schema<PaymentSessionRefundsList>;
359
+ /** Redirect URLs used to direct the payer after a web-based payment flow completes or fails. */
360
+ export interface PaymentRedirect {
361
+ /** The URL to redirect the payer to on payment failure. */
362
+ failureUrl?: string;
363
+ /** The URL to redirect the payer to on payment success. */
364
+ successUrl?: string;
365
+ }
366
+ export declare const PaymentRedirect: S.Schema<PaymentRedirect>;
367
+ /** The amount to present to the payer, which may differ from the authoritative settlement amount and asset. Commonly used when the payer's local currency differs from the settlement currency (e.g., charging in USD but displaying the equivalent in CAD). Stored and returned as-is — no cross-validation is performed against the authoritative `amount` and `asset`. Both `amount` and `currency` must be provided together. */
368
+ export interface CustomerDisplayDisplayAmount {
369
+ /** The display amount as a decimal string (e.g., `"1.37"`). */
370
+ amount: string;
371
+ /** An ISO 4217 currency code in lowercase for the display amount (e.g., `cad`, `usd`). */
372
+ currency: string;
373
+ }
374
+ export declare const CustomerDisplayDisplayAmount: S.Schema<CustomerDisplayDisplayAmount>;
375
+ /** Merchant-provided display data shown to the payer during checkout. All fields are informational only — stored and returned as-is, with no effect on payment processing, settlement, or validation. */
376
+ export interface CustomerDisplay {
377
+ /** The merchant name to display on the payment UI. When provided, this overrides the default name derived from the entity's profile. Useful when a merchant operates multiple storefronts or brands under a single entity. */
378
+ merchantName?: string;
379
+ /** The amount to present to the payer, which may differ from the authoritative settlement amount and asset. Commonly used when the payer's local currency differs from the settlement currency (e.g., charging in USD but displaying the equivalent in CAD). Stored and returned as-is — no cross-validation is performed against the authoritative `amount` and `asset`. Both `amount` and `currency` must be provided together. */
380
+ displayAmount?: CustomerDisplayDisplayAmount;
381
+ /** A customer-visible code for the overall order. When omitted, CDP generates one and returns it. It must not contain personally identifiable information (PII) or payment credentials. */
382
+ orderCode?: string;
383
+ }
384
+ export declare const CustomerDisplay: S.Schema<CustomerDisplay>;
385
+ /** Tracks the full lifecycle of a payment from creation through settlement. Typical flow: **Create** → **Authorize** (via payment method) → **Capture**. Optional: **Void** to release uncaptured funds, or **Refund** to return captured funds. */
386
+ export interface PaymentSession {
387
+ /** The unique identifier of the payment session. */
388
+ paymentSessionId?: string;
389
+ /** The ID of the entity that owns the payment session. */
390
+ entityId?: string;
391
+ /** A decimal representation of the payment amount, denominated in `asset`. */
392
+ amount?: string;
393
+ /** The symbol of the asset for the payment amount. */
394
+ asset?: string;
395
+ /** The target of the payment session. */
396
+ target?: PaymentSessionTarget;
397
+ /** When true, a capture is automatically created after a successful authorization. When false or omitted, the merchant must create captures manually via the captures endpoint. */
398
+ autoCapture?: boolean;
399
+ expiries?: PaymentExpiries;
400
+ /** The source of the payment session. Set after a successful authorization. Not present before authorization. */
401
+ source?: PaymentSessionSource;
402
+ /** The most recent meaningful event on the payment session. */
403
+ status?: PaymentSessionStatus;
404
+ balances?: PaymentSessionBalances;
405
+ /** The authorizations for this payment session. */
406
+ authorizations?: PaymentSessionAuthorizationsList;
407
+ /** The captures for this payment session. */
408
+ captures?: PaymentSessionCapturesList;
409
+ /** The voids for this payment session. */
410
+ voids?: PaymentSessionVoidsList;
411
+ /** The refunds for this payment session. */
412
+ refunds?: PaymentSessionRefundsList;
413
+ /** A URL to the hosted payment page where the payer can complete this payment session. */
414
+ url?: string;
415
+ /** URL for the hosted x402 payment flow. This endpoint expects an HTTP **POST** request (for example, submitting the x402 payment via request headers); do not treat it as a page opened with GET alone. Only present when the payment target supports a wallet source. */
416
+ x402Url?: string;
417
+ redirect?: PaymentRedirect;
418
+ customerDisplay?: CustomerDisplay;
419
+ metadata?: Metadata;
420
+ /** A merchant-provided internal identifier for this payment session, from the merchant's own system—not visible to the payer. It must not contain personally identifiable information (PII) or payment credentials. */
421
+ externalReferenceId?: string;
422
+ /** The reason the payment session was canceled. Only present when the session has been canceled. */
423
+ cancellationReason?: string;
424
+ /** The UTC ISO 8601 timestamp at which the payment session was created. */
425
+ createdAt?: string;
426
+ /** The UTC ISO 8601 timestamp at which the payment session was last updated. */
427
+ updatedAt?: string;
428
+ }
429
+ export declare const PaymentSession: S.Schema<PaymentSession>;
430
+ export interface CapturePaymentSessionRequest {
431
+ /** The unique identifier of the payment session. */
432
+ paymentSessionId: string;
433
+ /** A decimal representation of the amount to capture, denominated in the session's `asset`. If omitted, the full remaining capturable amount is captured. */
434
+ amount?: string;
435
+ /** When `true`, this capture is treated as the final one for the authorization. Any remaining capturable balance is released back to the payer immediately after the capture settles. When `false`, the remaining capturable balance stays held and is available for subsequent partial captures (subject to `captureExpiresAt`). Has no effect if `amount` equals the full capturable balance, since no remaining balance exists to release. */
436
+ finalCapture: boolean;
437
+ metadata?: Metadata;
438
+ /** An optional merchant-provided internal identifier for this manual capture, from the merchant's own system—not visible to the payer. */
439
+ externalReferenceId?: string;
440
+ /** Optional customer-facing display data for this manual capture, shown to the payer. Falls back to the session's `orderCode` when `referenceCode` is omitted. */
441
+ customerDisplay?: OperationCustomerDisplay;
442
+ }
443
+ export declare const CapturePaymentSessionRequest: S.Schema<CapturePaymentSessionRequest>;
444
+ /** The type of the customer. Required on create; accepted but ignored on update. */
445
+ export type CustomerType = "individual";
446
+ export declare const CustomerType: any;
447
+ /** Request to enable or disable a capability. */
448
+ export interface CapabilityInput {
449
+ /** Whether to request this capability. */
450
+ requested: boolean;
451
+ }
452
+ export declare const CapabilityInput: S.Schema<CapabilityInput>;
453
+ /** The capabilities to request for a Customer. Each capability can be individually requested. The requirements to enable each capability will be returned in the response. */
454
+ export interface CapabilitiesMapInput {
455
+ /** Hold cryptocurrency in a Coinbase custodial account. */
456
+ custodyCrypto?: CapabilityInput;
457
+ /** Hold fiat currency in a Coinbase custodial account. */
458
+ custodyFiat?: CapabilityInput;
459
+ /** Hold stablecoin in a Coinbase custodial account. */
460
+ custodyStablecoin?: CapabilityInput;
461
+ /** Trade cryptocurrency. */
462
+ tradeCrypto?: CapabilityInput;
463
+ /** Trade stablecoin. */
464
+ tradeStablecoin?: CapabilityInput;
465
+ /** Transfer cryptocurrency to another party. */
466
+ transferCrypto?: CapabilityInput;
467
+ /** Transfer fiat currency to another party. */
468
+ transferFiat?: CapabilityInput;
469
+ /** Transfer stablecoin to another party. */
470
+ transferStablecoin?: CapabilityInput;
471
+ }
472
+ export declare const CapabilitiesMapInput: S.Schema<CapabilitiesMapInput>;
473
+ /** Primary residential address. Only US addresses are currently supported. Non-US `countryCode` values are rejected with a 400. */
474
+ export interface IndividualInputAddress {
475
+ /** Primary street address. */
476
+ line1?: string;
477
+ /** Secondary address information. */
478
+ line2?: string;
479
+ /** City or locality. */
480
+ city?: string;
481
+ /** State, province, or region. */
482
+ state?: string;
483
+ /** Postal or ZIP code. */
484
+ postCode?: string;
485
+ /** ISO 3166-1 alpha-2 country code (2 characters). See https://en.wikipedia.org/wiki/List_of_ISO_3166_country_codes. */
486
+ countryCode?: string;
487
+ }
488
+ export declare const IndividualInputAddress: S.Schema<IndividualInputAddress>;
489
+ /** Date of birth with lenient formatting. Accepts both zero-padded ("04", "07") and single-digit ("4", "7") values for day and month. */
490
+ export interface DateOfBirthLenient {
491
+ /** Day of birth (1-31). Both single-digit ("7") and zero-padded ("07") formats are accepted. */
492
+ day?: string;
493
+ /** Month of birth (1-12). Both single-digit ("4") and zero-padded ("04") formats are accepted. */
494
+ month?: string;
495
+ /** Year of birth (four digits). */
496
+ year?: string;
497
+ }
498
+ export declare const DateOfBirthLenient: S.Schema<DateOfBirthLenient>;
499
+ /** Primary purpose for using Coinbase services. */
500
+ export type IndividualInputPurposeOfAccount = "investing" | "long_term_investment" | "short_term_investment" | "trading" | "trading_on_coinbase" | "trading_on_other_exchanges" | "day_trading" | "arbitrage_trading" | "online_purchases" | "online_payments" | "payments_or_gifts" | "payments_to_friends" | "transfer_crypto" | "investing_on_other_exchanges" | "business" | "other";
501
+ export declare const IndividualInputPurposeOfAccount: any;
502
+ /** Primary source of funds for the account. */
503
+ export type IndividualInputSourceOfFunds = "salary" | "employment_business_income" | "investments" | "savings" | "pension" | "business_earnings" | "crypto_assets" | "inheritance" | "sale_of_assets" | "sale_of_company_shares_or_dividends" | "sale_of_property" | "sale_of_other_assets" | "credit_or_loan" | "government_benefits_or_credits" | "legal_settlement" | "family_or_third_party" | "lottery_or_gambling" | "crypto_mining" | "other";
504
+ export declare const IndividualInputSourceOfFunds: any;
505
+ /** Current employment status. */
506
+ export type IndividualInputEmploymentStatus = "employed_fulltime" | "employed_parttime" | "self_employed" | "employed_government_official" | "employed_company_officer_or_board_member" | "employed_crypto_related_business" | "personal_trader_or_angel_investor" | "crypto_miner" | "student" | "retired" | "homemaker" | "unemployed" | "dependent";
507
+ export declare const IndividualInputEmploymentStatus: any;
508
+ /** Industry or occupation. */
509
+ export type IndividualInputOccupation = "agriculture" | "arts_and_media" | "casinos_and_gaming" | "construction" | "cryptocurrency" | "defense" | "education" | "energy_oil_and_gas" | "energy_other" | "entertainment" | "finance" | "financial_services_non_crypto" | "fintech_non_crypto_software_development" | "fintech_non_crypto_internet_only_financial_institution" | "fintech_non_crypto_other" | "food_and_hospitality" | "government" | "health_and_fitness" | "healthcare" | "healthcare_other" | "healthcare_pharmaceuticals" | "mining" | "mining_crypto" | "non_profit_and_charity" | "pharma_industry" | "politics" | "professional_services" | "property_and_construction_building_work" | "property_and_construction_commercial_and_management" | "property_and_construction_design" | "real_estate" | "retail_fashion" | "retail_food_and_beverage" | "retail_jewelry_and_antiques" | "retail_other" | "retail_pharmacy" | "technology" | "technology_and_it" | "transportation" | "all_other_industries_and_services" | "dependent_student_unemployed" | "other";
510
+ export declare const IndividualInputOccupation: any;
511
+ /** Expected annual volume of activity on the account, expressed as a dollar range. Use the dollar-honest ids below: - `under_1k`: $0 – $1,000 - `1k_to_10k`: $1,000 – $10,000 - `10k_to_100k`: $10,000 – $100,000 - `100k_to_250k`: $100,000 – $250,000 - `250k_to_750k`: $250,000 – $750,000 - `750k_to_1_5m`: $750,000 – $1.5M - `1_5m_plus`: $1.5M+ */
512
+ export type IndividualInputExpectedVolume = "under_1k" | "1k_to_10k" | "10k_to_100k" | "100k_to_250k" | "250k_to_750k" | "750k_to_1_5m" | "1_5m_plus";
513
+ export declare const IndividualInputExpectedVolume: any;
514
+ /** Individual customer data submitted on create / update requests. Fields are organized by the capabilities they unlock; not all are required for all customers (the requirements depend on which capabilities are requested). Read responses return the narrower `Individual` object (only `firstName`, `lastName`, and `email`), not this full request shape. */
515
+ export interface IndividualInput {
516
+ /** First name (given name). */
517
+ firstName?: string;
518
+ /** Last name (family name/surname). */
519
+ lastName?: string;
520
+ /** Primary residential address. Only US addresses are currently supported. Non-US `countryCode` values are rejected with a 400. */
521
+ address?: IndividualInputAddress;
522
+ /** Last 4 digits of the Social Security Number (US only). Used for identity verification. */
523
+ ssnLast4?: string;
524
+ /** Date of birth. */
525
+ dateOfBirth?: DateOfBirthLenient;
526
+ /** Full Social Security Number (US only). */
527
+ fullSsn?: string;
528
+ /** ISO 3166-1 alpha-2 country code representing the customer's citizenship. */
529
+ citizenship?: string;
530
+ /** Email address for the customer. */
531
+ email?: string;
532
+ /** Phone number in [E.164](https://en.wikipedia.org/wiki/E.164) format. */
533
+ phoneNumber?: string;
534
+ /** Primary purpose for using Coinbase services. */
535
+ purposeOfAccount?: IndividualInputPurposeOfAccount | (string & {});
536
+ /** Primary source of funds for the account. */
537
+ sourceOfFunds?: IndividualInputSourceOfFunds | (string & {});
538
+ /** Current employment status. */
539
+ employmentStatus?: IndividualInputEmploymentStatus | (string & {});
540
+ /** Industry or occupation. */
541
+ occupation?: IndividualInputOccupation | (string & {});
542
+ /** Expected annual volume of activity on the account, expressed as a dollar range. Use the dollar-honest ids below: - `under_1k`: $0 – $1,000 - `1k_to_10k`: $1,000 – $10,000 - `10k_to_100k`: $10,000 – $100,000 - `100k_to_250k`: $100,000 – $250,000 - `250k_to_750k`: $250,000 – $750,000 - `750k_to_1_5m`: $750,000 – $1.5M - `1_5m_plus`: $1.5M+ */
543
+ expectedVolume?: IndividualInputExpectedVolume | (string & {});
544
+ }
545
+ export declare const IndividualInput: S.Schema<IndividualInput>;
546
+ /** The project IDs that this customer is associated with. */
547
+ export type CreateCustomerRequestProjectIdsList = Array<string>;
548
+ export declare const CreateCustomerRequestProjectIdsList: S.Schema<CreateCustomerRequestProjectIdsList>;
549
+ /** A single Terms of Service acceptance recorded for a Customer. Submit one entry per required document listed in `Customer.requirements.tos.tosVersions[]` (returned on `Get Customer`, `Create Customer`, and `Update Customer`). `language` records the single translation the Customer actually reviewed. When new required Terms of Service versions are published, only the new `versionId`s appear in `Customer.requirements.tos.tosVersions[]`; submit acceptances for only those new version(s). */
550
+ export interface TosAcceptance {
551
+ /** The `versionId` of the Terms of Service document being accepted, as listed in `Customer.requirements.tos.tosVersions[]`. */
552
+ versionId: string;
553
+ /** BCP 47 language tag of the Terms of Service translation the Customer reviewed. At write time the server rejects values that are not listed under `languages` on the matching required document for this Customer (same `versionId` as listed in `Customer.requirements.tos.tosVersions[]`). */
554
+ language: string;
555
+ /** Timestamp at which the Customer accepted the Terms of Service, in ISO 8601 / RFC 3339 format. The server may validate or reject obviously non-credible timestamps; when enforcement tightens, the authoritative acceptance time may be recorded server-side instead of trusting client-supplied values alone. */
556
+ acceptedAt: string;
557
+ }
558
+ export declare const TosAcceptance: S.Schema<TosAcceptance>;
559
+ /** Terms of Service acceptances to record on the customer. Submit one entry per required version surfaced inline on `requirements.tos.tosVersions[]` (returned by `Get Customer`, `Create Customer`, and `Update Customer` whenever a `tos` requirement is unsatisfied). The server rejects each acceptance whose `language` is not listed under `languages` on the matching required version with `errorType: "unsupported_tos_language"`. When new required Terms of Service versions are published, only the new `versionId`s appear in `requirements.tos.tosVersions[]`; submit acceptances for only those new version(s). Omit `tosAcceptances` on a partial update to leave previously recorded acceptances unchanged. Sending `tosAcceptances: []` is invalid (`errorType: "invalid_request"`) because it would clear all acceptances without replacing them; omit the field entirely when you are not updating Terms of Service acceptances. */
560
+ export type CreateCustomerRequestTosAcceptancesList = Array<TosAcceptance>;
561
+ export declare const CreateCustomerRequestTosAcceptancesList: S.Schema<CreateCustomerRequestTosAcceptancesList>;
562
+ /** The tax form being attested to, as listed in `Customer.requirements.taxAttestation.taxForms[]`. Must be `us_w9` for this variant. */
563
+ export type UsW9AttestationForm = "us_w9";
564
+ export declare const UsW9AttestationForm: any;
565
+ /** Tax attestation for IRS Form W-9, used for US persons. Carries the W-9-specific backup withholding certification alongside the fields common to every form (`edeliveryConsent`, `acceptedAt`). */
566
+ export interface UsW9Attestation {
567
+ /** The tax form being attested to, as listed in `Customer.requirements.taxAttestation.taxForms[]`. Must be `us_w9` for this variant. */
568
+ form: UsW9AttestationForm | (string & {});
569
+ /** Whether the Customer consents to electronic delivery (e-delivery) of tax documents. Both `true` and `false` are recorded as submitted. */
570
+ edeliveryConsent: boolean;
571
+ /** Timestamp at which the Customer completed the tax attestation, in ISO 8601 / RFC 3339 format. The server may reject obviously non-credible timestamps. */
572
+ acceptedAt: string;
573
+ /** Whether the Customer is exempt from backup withholding, as certified on IRS Form W-9. */
574
+ isExemptBackupWithholding: boolean;
575
+ }
576
+ export declare const UsW9Attestation: S.Schema<UsW9Attestation>;
577
+ /** Tax attestations to record on the customer. Submit one entry per required form surfaced inline on `requirements.taxAttestation.taxForms[]` (returned by `Get Customer`, `Create Customer`, and `Update Customer` whenever a `taxAttestation` requirement is unsatisfied). The required fields per entry depend on `form`; see `TaxAttestation`. This field is ingestion-only and is never returned on read. Omit `taxAttestations` on a partial update to leave previously recorded attestations unchanged. Sending `taxAttestations: []` is invalid (`errorType: "invalid_request"`) because it would clear all attestations without replacing them; omit the field entirely when you are not updating tax attestations. */
578
+ export type CreateCustomerRequestTaxAttestationsList = Array<UsW9Attestation>;
579
+ export declare const CreateCustomerRequestTaxAttestationsList: S.Schema<CreateCustomerRequestTaxAttestationsList>;
580
+ /** Compliance context for a request. Carries per-request compliance signals, such as the IP address of the individual (i.e., end-customer) that initiated the request. This object is request-only — it is never echoed back in responses. Inner fields are write-only. */
581
+ export interface Compliance {
582
+ /** IPv4 or IPv6 address of the individual (i.e., end-customer) that initiated this request. NOT the IP of the partner server making the API call. */
583
+ requesterIpAddress?: string;
584
+ }
585
+ export declare const Compliance: S.Schema<Compliance>;
586
+ export interface CreateCustomerRequest {
587
+ /** The type of the customer. Required on create; accepted but ignored on update. */
588
+ type: CustomerType | (string & {});
589
+ /** Capabilities to request for the customer. */
590
+ capabilities?: CapabilitiesMapInput;
591
+ /** Information about an Individual customer. Not all fields are required for all customers; the requirements depend on which capabilities are requested. Submit only fields that are required by the capabilities that have been requested. */
592
+ individual?: IndividualInput;
593
+ /** The project IDs that this customer is associated with. */
594
+ projectIds?: CreateCustomerRequestProjectIdsList;
595
+ /** Terms of Service acceptances to record on the customer. Submit one entry per required version surfaced inline on `requirements.tos.tosVersions[]` (returned by `Get Customer`, `Create Customer`, and `Update Customer` whenever a `tos` requirement is unsatisfied). The server rejects each acceptance whose `language` is not listed under `languages` on the matching required version with `errorType: "unsupported_tos_language"`. When new required Terms of Service versions are published, only the new `versionId`s appear in `requirements.tos.tosVersions[]`; submit acceptances for only those new version(s). Omit `tosAcceptances` on a partial update to leave previously recorded acceptances unchanged. Sending `tosAcceptances: []` is invalid (`errorType: "invalid_request"`) because it would clear all acceptances without replacing them; omit the field entirely when you are not updating Terms of Service acceptances. */
596
+ tosAcceptances?: CreateCustomerRequestTosAcceptancesList;
597
+ /** Tax attestations to record on the customer. Submit one entry per required form surfaced inline on `requirements.taxAttestation.taxForms[]` (returned by `Get Customer`, `Create Customer`, and `Update Customer` whenever a `taxAttestation` requirement is unsatisfied). The required fields per entry depend on `form`; see `TaxAttestation`. This field is ingestion-only and is never returned on read. Omit `taxAttestations` on a partial update to leave previously recorded attestations unchanged. Sending `taxAttestations: []` is invalid (`errorType: "invalid_request"`) because it would clear all attestations without replacing them; omit the field entirely when you are not updating tax attestations. */
598
+ taxAttestations?: CreateCustomerRequestTaxAttestationsList;
599
+ compliance?: Compliance;
600
+ }
601
+ export declare const CreateCustomerRequest: S.Schema<CreateCustomerRequest>;
602
+ /** The status of a capability. Based on recoverability: - `unrequested`: Capability has not been requested by the customer - `pending`: Customer can take action to resolve (requirements `due` or `rejected`) - `active`: Capability is enabled and can be used - `inactive`: Permanently blocked - no customer action possible */
603
+ export type CapabilityStatus = "unrequested" | "pending" | "active" | "inactive";
604
+ export declare const CapabilityStatus: any;
605
+ /** The current state of a capability for a customer. The `status` field is always present. When `requested` is `false`, the status will be `unrequested`. */
606
+ export interface Capability {
607
+ /** Whether the customer has explicitly requested this capability. */
608
+ requested: boolean;
609
+ /** Current status of the capability. When `requested` is `false`, status is `unrequested`. When `requested` is `true`, status is one of `pending`, `active`, or `inactive`. */
610
+ status: CapabilityStatus;
611
+ }
612
+ export declare const Capability: S.Schema<Capability>;
613
+ /** The current state of each capability for a Customer. Each capability shows whether it has been requested and its current status. */
614
+ export interface CapabilitiesMap {
615
+ /** Hold cryptocurrency in a Coinbase custodial account. */
616
+ custodyCrypto?: Capability;
617
+ /** Hold fiat currency in a Coinbase custodial account. */
618
+ custodyFiat?: Capability;
619
+ /** Hold stablecoin in a Coinbase custodial account. */
620
+ custodyStablecoin?: Capability;
621
+ /** Trade cryptocurrency. */
622
+ tradeCrypto?: Capability;
623
+ /** Trade stablecoin. */
624
+ tradeStablecoin?: Capability;
625
+ /** Transfer cryptocurrency to another party. */
626
+ transferCrypto?: Capability;
627
+ /** Transfer fiat currency to another party. */
628
+ transferFiat?: Capability;
629
+ /** Transfer stablecoin to another party. */
630
+ transferStablecoin?: Capability;
631
+ }
632
+ export declare const CapabilitiesMap: S.Schema<CapabilitiesMap>;
633
+ /** The current status of a requirement: - `due`: Must be submitted and no set deadline has passed - `past_due`: Must be submitted and a set deadline has passed - `pending`: Submitted, awaiting verification - `rejected`: Verification failed - customer must resubmit For a Terms of Service requirement, `past_due` applies if any unaccepted version has a deadline set in the past. Otherwise the status is `due`, including when a version has no deadline and requires immediate acceptance, or when every set deadline is in the future and acceptance is in grace. When verification passes, the requirement disappears from the response entirely. */
634
+ export type RequirementStatus = "due" | "past_due" | "pending" | "rejected";
635
+ export declare const RequirementStatus: any;
636
+ /** The name of a capability. Capabilities represent granular functional permissions that determine what actions a customer can perform. Each capability must be explicitly requested before use. */
637
+ export type CapabilityName = "custodyCrypto" | "custodyFiat" | "custodyStablecoin" | "tradeCrypto" | "tradeStablecoin" | "transferCrypto" | "transferFiat" | "transferStablecoin";
638
+ export declare const CapabilityName: any;
639
+ /** List of capabilities affected by this requirement, sorted alphabetically. Only present for `due`, `past_due`, `pending`, or `rejected` statuses. */
640
+ export type RequirementImpactList = Array<CapabilityName>;
641
+ export declare const RequirementImpactList: S.Schema<RequirementImpactList>;
642
+ /** BCP 47 language tags this Terms of Service document can be viewed and accepted in. The list is non-empty (every published document carries at least one language). Append the chosen tag to `url` as `?lang=<tag>` to fetch the localized document, and submit the same tag as `language` on the corresponding `TosAcceptance` to record which translation the Customer reviewed. */
643
+ export type TermsOfServiceLanguagesList = Array<string>;
644
+ export declare const TermsOfServiceLanguagesList: S.Schema<TermsOfServiceLanguagesList>;
645
+ /** Metadata for one Terms of Service document a Customer may need to accept. Each entry represents one logical document (identified by `versionId`) that may be published in multiple languages — `languages` lists the BCP 47 language tags the document is available to view and accept in. An optional `deadline` records the end of a grace period: a future deadline is non-blocking `due`, an elapsed deadline is `past_due`, and no deadline means acceptance is required immediately with status `due`. `url` is the canonical, language-agnostic document URL; partners append `?lang=<tag>` (where `<tag>` is one of `languages`) to retrieve a specific translation, and omit the parameter to let the documentation site choose a default. This API does not serve Terms of Service body content; this schema describes metadata only. */
646
+ export interface TermsOfService {
647
+ /** Stable identifier for this Terms of Service document. Submit this value as `versionId` on a `TosAcceptance` to record acceptance. */
648
+ versionId: string;
649
+ /** Optional deadline by which the Customer must accept this Terms of Service version, in ISO 8601 / RFC 3339 format. A future deadline is non-blocking grace with requirement status `due`; an elapsed deadline produces `past_due`. When omitted, acceptance is required immediately and the requirement status remains `due`. */
650
+ deadline?: string;
651
+ /** BCP 47 language tags this Terms of Service document can be viewed and accepted in. The list is non-empty (every published document carries at least one language). Append the chosen tag to `url` as `?lang=<tag>` to fetch the localized document, and submit the same tag as `language` on the corresponding `TosAcceptance` to record which translation the Customer reviewed. */
652
+ languages: TermsOfServiceLanguagesList;
653
+ /** Canonical, language-agnostic URL where the Terms of Service document is hosted (for example, `https://docs.cdp.coinbase.com/legal/terms/us_individual`). Append `?lang=<tag>` (where `<tag>` is one of `languages`) to retrieve a specific translation; without the parameter, the documentation site renders a default translation. */
654
+ url: string;
655
+ }
656
+ export declare const TermsOfService: S.Schema<TermsOfService>;
657
+ /** Required Terms of Service versions the Customer has not yet accepted, with the metadata needed to render an acceptance UI (each entry carries a stable `versionId`, the BCP 47 `languages` the version is published in, an optional per-version `deadline`, and a language-agnostic `url`). A missing deadline means acceptance is required immediately while the requirement status remains `due`; only a set deadline in the past produces `past_due`. This field appears only under the requirement key `tos`; do not infer meaning from `tosVersions` on other requirement keys. Only populated for the `tos` requirement; omitted on every other requirement key. Submit each `versionId` back via `tosAcceptances[].versionId` on `Update Customer` (or `Create Customer`) together with `language` and `acceptedAt` to clear the requirement. */
658
+ export type RequirementTosVersionsList = Array<TermsOfService>;
659
+ export declare const RequirementTosVersionsList: S.Schema<RequirementTosVersionsList>;
660
+ /** Identifier for a tax attestation form a Customer may need to complete. The same identifier is surfaced on `Customer.requirements.taxAttestation.taxForms[]` (the forms a Customer still needs to attest to) and submitted back as `form` on `Customer.taxAttestations[]` to record the attestation. */
661
+ export type TaxForm = "us_w9";
662
+ export declare const TaxForm: any;
663
+ /** Required tax attestation forms the Customer has not yet completed. This field appears only under the requirement key `taxAttestation`. Submit each `form` back via `taxAttestations[].form` on `Update Customer` (or `Create Customer`) together with the other fields required for that form to clear the requirement. */
664
+ export type RequirementTaxFormsList = Array<TaxForm>;
665
+ export declare const RequirementTaxFormsList: S.Schema<RequirementTaxFormsList>;
666
+ /** A single requirement that a customer must submit to enable capabilities. Requirements are only shown for requested capabilities. */
667
+ export interface Requirement {
668
+ status: RequirementStatus;
669
+ /** Optional aggregate deadline by which this requirement must be satisfied. For the `tos` requirement, this is the earliest set deadline among the unaccepted required Terms of Service versions listed in `tosVersions`. It is omitted only when none of the unaccepted versions has a deadline. Do not infer `past_due` or whether the requirement blocks from this aggregate field alone; inspect each version's deadline. */
670
+ deadline?: string;
671
+ /** List of capabilities affected by this requirement, sorted alphabetically. Only present for `due`, `past_due`, `pending`, or `rejected` statuses. */
672
+ impact?: RequirementImpactList;
673
+ /** Required Terms of Service versions the Customer has not yet accepted, with the metadata needed to render an acceptance UI (each entry carries a stable `versionId`, the BCP 47 `languages` the version is published in, an optional per-version `deadline`, and a language-agnostic `url`). A missing deadline means acceptance is required immediately while the requirement status remains `due`; only a set deadline in the past produces `past_due`. This field appears only under the requirement key `tos`; do not infer meaning from `tosVersions` on other requirement keys. Only populated for the `tos` requirement; omitted on every other requirement key. Submit each `versionId` back via `tosAcceptances[].versionId` on `Update Customer` (or `Create Customer`) together with `language` and `acceptedAt` to clear the requirement. */
674
+ tosVersions?: RequirementTosVersionsList;
675
+ /** Required tax attestation forms the Customer has not yet completed. This field appears only under the requirement key `taxAttestation`. Submit each `form` back via `taxAttestations[].form` on `Update Customer` (or `Create Customer`) together with the other fields required for that form to clear the requirement. */
676
+ taxForms?: RequirementTaxFormsList;
677
+ }
678
+ export declare const Requirement: S.Schema<Requirement>;
679
+ /** Map of requirements to be submitted. Each key is the field name (e.g., "ssnLast4"), with values to describe its state. Requirements are only shown for requested capabilities. When a requirement is verified, it disappears from this map. For the `tos` key, each entry in `tosVersions[]` has its own optional deadline. The requirement-level `deadline` is an aggregate of those rows: the earliest set deadline among unaccepted versions, not a separate clock. A version with no deadline requires immediate acceptance but keeps the aggregate status `due`. A future deadline is also `due` and represents non-blocking grace. The aggregate status is `past_due` only when at least one unaccepted version has a deadline set in the past. Do not infer status or blocking behavior from omission of the aggregate deadline. */
680
+ export type RequirementsMap = {
681
+ [key: string]: Requirement | undefined;
682
+ };
683
+ export declare const RequirementsMap: S.Schema<RequirementsMap>;
684
+ /** Individual customer data returned on read — the `individual` object on Get / Create / Update Customer responses. Only contact-identity fields are echoed back; every other field accepted on the `IndividualInput` object (`address`, `ssnLast4`, `dateOfBirth`, `fullSsn`, `citizenship`, `phoneNumber`, and the CDD fields) is ingestion-only and never returned. */
685
+ export interface Individual {
686
+ /** First name (given name). */
687
+ firstName?: string;
688
+ /** Last name (family name/surname). */
689
+ lastName?: string;
690
+ /** Email address for the customer. */
691
+ email?: string;
692
+ }
693
+ export declare const Individual: S.Schema<Individual>;
694
+ /** The project IDs that this customer is associated with. */
695
+ export type CustomerProjectIdsList = Array<string>;
696
+ export declare const CustomerProjectIdsList: S.Schema<CustomerProjectIdsList>;
697
+ /** Terms of Service acceptances recorded for the customer. */
698
+ export type CustomerTosAcceptancesList = Array<TosAcceptance>;
699
+ export declare const CustomerTosAcceptancesList: S.Schema<CustomerTosAcceptancesList>;
700
+ /** A customer record returned on read (Get / Create / Update Customer). */
701
+ export interface Customer {
702
+ customerId: string;
703
+ type: CustomerType;
704
+ /** Current state of each capability for this customer. Each capability shows whether it has been requested and its current status. */
705
+ capabilities: CapabilitiesMap;
706
+ /** Map of requirements to be submitted. Each key is the field name, with values to describe its state. Requirements are only shown for requested capabilities. When a requirement is fulfilled, it disappears from this map. */
707
+ requirements: RequirementsMap;
708
+ /** Timestamp when the customer was created. */
709
+ createdAt?: string;
710
+ /** Timestamp when the customer was last updated. */
711
+ updatedAt?: string;
712
+ individual?: Individual;
713
+ /** The project IDs that this customer is associated with. */
714
+ projectIds?: CustomerProjectIdsList;
715
+ /** Terms of Service acceptances recorded for the customer. */
716
+ tosAcceptances?: CustomerTosAcceptancesList;
717
+ }
718
+ export declare const Customer: S.Schema<Customer>;
64
719
  export interface CreateDelegationForEndUserAccountRequest {
65
720
  /** The ID of the end user. */
66
721
  userId: string;
@@ -79,8 +734,13 @@ export interface CreateDelegationForEndUserAccountResponse {
79
734
  expiresAt: string;
80
735
  }
81
736
  export declare const CreateDelegationForEndUserAccountResponse: S.Schema<CreateDelegationForEndUserAccountResponse>;
82
- export type DepositDestinationType = "crypto";
83
- export declare const DepositDestinationType: any;
737
+ export type DepositDestinationTypeCase0 = "crypto";
738
+ export declare const DepositDestinationTypeCase0: any;
739
+ export type DepositDestinationTypeCase1 = "fiat";
740
+ export declare const DepositDestinationTypeCase1: any;
741
+ /** The type of deposit destination. */
742
+ export type DepositDestinationType = DepositDestinationTypeCase0 | DepositDestinationTypeCase1;
743
+ export declare const DepositDestinationType: S.Schema<DepositDestinationType>;
84
744
  /** The account and asset where incoming deposits should be credited. */
85
745
  export interface DepositDestinationTargetAccount {
86
746
  /** The ID of the CDP Account to which deposited funds should be transferred. */
@@ -89,39 +749,77 @@ export interface DepositDestinationTargetAccount {
89
749
  asset: string;
90
750
  }
91
751
  export declare const DepositDestinationTargetAccount: S.Schema<DepositDestinationTargetAccount>;
92
- /** Optional metadata as key-value pairs. Use this to store additional structured information on a resource, such as customer IDs, order references, or any application-specific data. Up to 10 key/value pairs may be provided. Keys and values are both strings. Keys must be ≤ 40 characters; values must be ≤ 500 characters. */
93
- export type Metadata = {
94
- [key: string]: string | undefined;
95
- };
96
- export declare const Metadata: S.Schema<Metadata>;
97
- /** The blockchain network for the payment. Supported networks depend on the account type. See [API and Network Support](https://docs.cdp.coinbase.com/api-reference/payment-apis/supported-networks-assets#by-asset-and-network) for more details. */
98
- export type Network = "base" | "ethereum" | "solana" | "aptos" | "arbitrum" | "arbitrum-sepolia" | "optimism" | "polygon" | "world" | "world-sepolia";
99
- export declare const Network: any;
752
+ /** The blockchain network for crypto payments, transfers, and deposit destinations. */
753
+ export type PaymentNetwork = "base" | "ethereum" | "solana" | "arbitrum" | "optimism" | "monad" | "sui" | "avacchain" | "tempo";
754
+ export declare const PaymentNetwork: any;
755
+ /** The target of the payment is an onchain address. */
756
+ export interface OnchainAddress {
757
+ /** The onchain crypto address of the recipient. Examples: - EVM address: 0xabc1234567890abcdef1234567890abcdef123456 - Solana address: HpabPRRCFbBKSuJr5PdkVvQc85FyxyTWkFM2obBRSvHT - XRP address: rhccc5p23aKiCGFcEqqnjEfLRZ6xEvfy3s */
758
+ address: string;
759
+ network: PaymentNetwork | (string & {});
760
+ /** The destination tag of the onchain address. Destination tags are used by certain networks (primarily XRP/Ripple) to identify specific recipients when multiple users share a single address. The tag ensures funds are credited to the correct account within the shared address. Examples by network: - XRP/Ripple: Numeric values like "1234567890" or "123456" - Stellar (XLM): Memos which can be text, ID, or hash format Note: Most networks (Ethereum, Bitcoin, Solana) do not use destination tags. */
761
+ destinationTag?: string;
762
+ /** Asset symbol of the payment received by the recipient. Supported values are `usdc` and `eurc`. */
763
+ asset: string;
764
+ }
765
+ export declare const OnchainAddress: S.Schema<OnchainAddress>;
766
+ /** The intended target for deposited funds. */
767
+ export type DepositDestinationTarget = DepositDestinationTargetAccount | OnchainAddress;
768
+ export declare const DepositDestinationTarget: S.Schema<DepositDestinationTarget>;
100
769
  /** Crypto-specific details for creating a deposit destination. */
101
770
  export interface CreateDepositDestinationCrypto {
102
- network: Network | (string & {});
771
+ network: PaymentNetwork | (string & {});
103
772
  }
104
773
  export declare const CreateDepositDestinationCrypto: S.Schema<CreateDepositDestinationCrypto>;
105
774
  export interface CreateCryptoDepositDestinationRequest {
106
775
  /** The ID of the Account, which is a UUID prefixed by the string `account_`, that owns the deposit destination. */
107
776
  accountId: string;
108
- type: DepositDestinationType | (string & {});
109
- target?: DepositDestinationTargetAccount;
777
+ type: DepositDestinationType;
778
+ target?: DepositDestinationTarget;
110
779
  metadata?: Metadata;
780
+ compliance?: Compliance;
111
781
  /** Crypto-specific details. Required when `type` is `crypto`. */
112
782
  crypto: CreateDepositDestinationCrypto;
113
783
  }
114
784
  export declare const CreateCryptoDepositDestinationRequest: S.Schema<CreateCryptoDepositDestinationRequest>;
115
- export interface CreateDepositDestinationRequest {
116
- body: CreateCryptoDepositDestinationRequest;
785
+ /** The fiat currency for the deposit destination. */
786
+ export type CreateDepositDestinationFiatCurrency = "usd";
787
+ export declare const CreateDepositDestinationFiatCurrency: any;
788
+ /** A payment rail supported by a fiat deposit destination. */
789
+ export type DepositDestinationPaymentRail = "ach" | "fedwire";
790
+ export declare const DepositDestinationPaymentRail: any;
791
+ /** Fiat-specific request fields for creating a deposit destination. The server determines the account type and provisioning method based on the account's eligibility. Optionally specify a `paymentRail` to target a specific payment rail, which may influence banking partner selection. */
792
+ export interface CreateDepositDestinationFiat {
793
+ /** The fiat currency for the deposit destination. */
794
+ currency: CreateDepositDestinationFiatCurrency | (string & {});
795
+ /** Optional. The desired payment rail. When omitted, the server provisions the default banking partner and returns all rails the account supports. When specified, the server selects a banking partner that supports the requested rail. */
796
+ paymentRail?: DepositDestinationPaymentRail | (string & {});
797
+ }
798
+ export declare const CreateDepositDestinationFiat: S.Schema<CreateDepositDestinationFiat>;
799
+ export interface CreateFiatDepositDestinationRequest {
800
+ /** The ID of the Account, which is a UUID prefixed by the string `account_`, that owns the deposit destination. */
801
+ accountId: string;
802
+ type: DepositDestinationType;
803
+ target?: DepositDestinationTarget;
804
+ metadata?: Metadata;
805
+ compliance?: Compliance;
806
+ /** Fiat-specific details. Required when `type` is `fiat`. */
807
+ fiat: CreateDepositDestinationFiat;
117
808
  }
809
+ export declare const CreateFiatDepositDestinationRequest: S.Schema<CreateFiatDepositDestinationRequest>;
810
+ /** Request to create a new deposit destination. Provide the type-specific details matching the chosen `type`. */
811
+ export type CreateDepositDestinationRequest = CreateCryptoDepositDestinationRequest | CreateFiatDepositDestinationRequest;
118
812
  export declare const CreateDepositDestinationRequest: S.Schema<CreateDepositDestinationRequest>;
813
+ export interface CreateDepositDestinationRequest2 {
814
+ body: CreateDepositDestinationRequest;
815
+ }
816
+ export declare const CreateDepositDestinationRequest2: S.Schema<CreateDepositDestinationRequest2>;
119
817
  /** The type of deposit destination. */
120
818
  export type CryptoDepositDestinationType = "crypto";
121
819
  export declare const CryptoDepositDestinationType: any;
122
820
  /** Crypto-specific deposit destination details. In responses, this object is always present. Contains the network and address for the deposit destination. */
123
821
  export interface DepositDestinationCrypto {
124
- network: Network;
822
+ network: PaymentNetwork;
125
823
  address: string;
126
824
  }
127
825
  export declare const DepositDestinationCrypto: S.Schema<DepositDestinationCrypto>;
@@ -136,7 +834,7 @@ export interface CryptoDepositDestination {
136
834
  type: CryptoDepositDestinationType;
137
835
  /** Crypto-specific details for this deposit destination. Always populated in responses. Contains the network and address. */
138
836
  crypto: DepositDestinationCrypto;
139
- target?: DepositDestinationTargetAccount;
837
+ target?: DepositDestinationTarget;
140
838
  status: DepositDestinationStatus;
141
839
  metadata?: Metadata;
142
840
  /** The timestamp when the deposit destination was created. */
@@ -145,8 +843,154 @@ export interface CryptoDepositDestination {
145
843
  updatedAt: string;
146
844
  }
147
845
  export declare const CryptoDepositDestination: S.Schema<CryptoDepositDestination>;
148
- export type CreateDepositDestinationResponse = CryptoDepositDestination;
846
+ /** The type of deposit destination. */
847
+ export type FiatDepositDestinationType = "fiat";
848
+ export declare const FiatDepositDestinationType: any;
849
+ /** The type of bank account, based on the account identification scheme (e.g., `us_bank`). */
850
+ export type BankAccountUSAccountType = "us_bank";
851
+ export declare const BankAccountUSAccountType: any;
852
+ /** The fiat currency for the deposit destination. */
853
+ export type BankAccountUSCurrency = "usd";
854
+ export declare const BankAccountUSCurrency: any;
855
+ /** The payment rails this account can receive deposits on. */
856
+ export type BankAccountUSSupportedRailsList = Array<DepositDestinationPaymentRail>;
857
+ export declare const BankAccountUSSupportedRailsList: S.Schema<BankAccountUSSupportedRailsList>;
858
+ /** A US bank account identified by ABA routing number and account number. */
859
+ export interface BankAccountUS {
860
+ /** The type of bank account, based on the account identification scheme (e.g., `us_bank`). */
861
+ accountType: BankAccountUSAccountType;
862
+ /** The fiat currency for the deposit destination. */
863
+ currency: BankAccountUSCurrency;
864
+ /** The name of the bank holding the account. */
865
+ bankName: string;
866
+ /** The name of the account beneficiary. */
867
+ beneficiaryName: string;
868
+ /** The ABA routing number of the bank. */
869
+ routingNumber: string;
870
+ /** The bank account number. */
871
+ accountNumber: string;
872
+ /** The address of the bank. Present when required by the receiving institution. */
873
+ bankAddress?: string;
874
+ /** A reference code that must be included in the payment memo or reference field so the receiving institution can route the deposit to the correct account. Only present when required by the receiving institution. */
875
+ referenceCode?: string;
876
+ /** The payment rails this account can receive deposits on. */
877
+ supportedRails: BankAccountUSSupportedRailsList;
878
+ }
879
+ export declare const BankAccountUS: S.Schema<BankAccountUS>;
880
+ /** A fiat deposit destination. Represents a single bank account provisioned at a single banking partner. Each deposit destination has one status and one lifecycle. The `fiat` object contains the bank account details, keyed by account type. */
881
+ export interface FiatDepositDestination {
882
+ depositDestinationId: string;
883
+ accountId: string;
884
+ /** The type of deposit destination. */
885
+ type: FiatDepositDestinationType;
886
+ fiat: BankAccountUS;
887
+ target?: DepositDestinationTarget;
888
+ status: DepositDestinationStatus;
889
+ metadata?: Metadata;
890
+ /** The timestamp when the deposit destination was created. */
891
+ createdAt: string;
892
+ /** The timestamp when the deposit destination was last updated. */
893
+ updatedAt: string;
894
+ }
895
+ export declare const FiatDepositDestination: S.Schema<FiatDepositDestination>;
896
+ /** A deposit destination for receiving funds to an account. */
897
+ export type DepositDestination = CryptoDepositDestination | FiatDepositDestination;
898
+ export declare const DepositDestination: S.Schema<DepositDestination>;
899
+ export type CreateDepositDestinationResponse = DepositDestination;
149
900
  export declare const CreateDepositDestinationResponse: S.Schema<CreateDepositDestinationResponse>;
901
+ /** A Coinbase-user target for the disbursement. */
902
+ export interface DisbursementCoinbaseTarget {
903
+ /** The unique identifier of the recipient within Coinbase. */
904
+ coinbaseUserId: string;
905
+ }
906
+ export declare const DisbursementCoinbaseTarget: S.Schema<DisbursementCoinbaseTarget>;
907
+ /** The blockchain network for the payment. Supported networks depend on the account type. */
908
+ export type Network = "base" | "ethereum" | "solana" | "aptos" | "arbitrum" | "arbitrum-sepolia" | "optimism" | "polygon" | "world" | "world-sepolia";
909
+ export declare const Network: any;
910
+ /** An onchain address target for the disbursement. */
911
+ export interface DisbursementWalletTarget {
912
+ /** The onchain crypto address of the recipient. */
913
+ address: string;
914
+ /** The blockchain network on which the target receives funds. */
915
+ network: Network | (string & {});
916
+ }
917
+ export declare const DisbursementWalletTarget: S.Schema<DisbursementWalletTarget>;
918
+ /** The target of the disbursement. Can be either a Coinbase user account or an onchain blockchain address. */
919
+ export type DisbursementTarget = DisbursementCoinbaseTarget | DisbursementWalletTarget;
920
+ export declare const DisbursementTarget: S.Schema<DisbursementTarget>;
921
+ /** A physical address with standard address components including street, city, state/province, postal code, and country. */
922
+ export type PhysicalAddress = IndividualInputAddress;
923
+ export declare const PhysicalAddress: S.Schema<IndividualInputAddress>;
924
+ /** A natural person, identified by name and physical address. */
925
+ export interface Person {
926
+ /** Full legal name of the person. */
927
+ name?: string;
928
+ /** Physical address of the person. */
929
+ address?: IndividualInputAddress;
930
+ }
931
+ export declare const Person: S.Schema<Person>;
932
+ /** Compliance context for a disbursement request. Extends the base Compliance schema with recipient information required for travel rule obligations. This object is request-only — it is never echoed back in responses. */
933
+ export interface DisbursementCompliance {
934
+ /** IPv4 or IPv6 address of the individual (i.e., end-customer) that initiated this request. NOT the IP of the partner server making the API call. */
935
+ requesterIpAddress?: string;
936
+ /** Information about the person receiving this disbursement. Required by some entity configurations to meet regulatory requirements for fund transfers. When required, omitting this field or leaving required sub-fields empty returns a 400 listing the specific fields needed. */
937
+ recipient?: Person;
938
+ }
939
+ export declare const DisbursementCompliance: S.Schema<DisbursementCompliance>;
940
+ export interface CreateDisbursementRequest {
941
+ /** The source from which to fund the disbursement. */
942
+ source: TransfersAccount;
943
+ /** The target receiving the disbursement. */
944
+ target: DisbursementTarget;
945
+ /** A decimal representation of the amount to disburse, denominated in `asset`. */
946
+ amount: string;
947
+ /** The symbol of the asset for the disbursement amount. */
948
+ asset: string;
949
+ /** Human-readable reason for the disbursement. */
950
+ reason?: string;
951
+ /** A merchant-provided internal identifier for this disbursement, from the merchant's own system—not visible to the payer. It must not contain personally identifiable information (PII) or payment credentials. */
952
+ externalReferenceId?: string;
953
+ /** Optional customer-facing display data for this disbursement, shown to the payer. If `referenceCode` is omitted, one is auto-generated — disbursements have no payment session to fall back to, unlike every other action type. */
954
+ customerDisplay?: OperationCustomerDisplay;
955
+ metadata?: Metadata;
956
+ /** Compliance context for this disbursement. Carries recipient information required by some entity configurations to meet regulatory requirements. */
957
+ compliance?: DisbursementCompliance;
958
+ }
959
+ export declare const CreateDisbursementRequest: S.Schema<CreateDisbursementRequest>;
960
+ /** The onchain transactions associated with this disbursement. */
961
+ export type DisbursementOnchainTransactionsList = Array<OnchainTransaction>;
962
+ export declare const DisbursementOnchainTransactionsList: S.Schema<DisbursementOnchainTransactionsList>;
963
+ /** A Disbursement represents a merchant-initiated payment of funds from a CDP account they own to a Coinbase account or onchain address. Used for standalone refunds, goodwill disbursements, rebates, and other merchant-driven payouts that are not tied to a specific payment session. Disbursements are asynchronous: the resource is returned in `pending` status and transitions to `succeeded` (with associated `onchainTransactions`) or `failed` (with `error`). */
964
+ export interface Disbursement {
965
+ /** The unique identifier of the disbursement. */
966
+ disbursementId: string;
967
+ /** The source from which the disbursement is funded. */
968
+ source: TransfersAccount;
969
+ /** The target receiving the disbursement. */
970
+ target: DisbursementTarget;
971
+ /** A decimal representation of the disbursed amount, denominated in `asset`. */
972
+ amount: string;
973
+ /** The symbol of the asset for the disbursement amount. */
974
+ asset: string;
975
+ /** The current status of the disbursement. */
976
+ status: PaymentActionStatus;
977
+ /** Human-readable reason for the disbursement. */
978
+ reason?: string;
979
+ /** A merchant-provided internal identifier for this disbursement, from the merchant's own system—not visible to the payer. It must not contain personally identifiable information (PII) or payment credentials. */
980
+ externalReferenceId?: string;
981
+ /** Customer-facing display data for this disbursement, shown to the payer. Always present: if the create request omits `referenceCode`, one is auto-generated, since disbursements have no payment session to fall back to. */
982
+ customerDisplay?: OperationCustomerDisplay;
983
+ metadata?: Metadata;
984
+ /** Error details, present only when the disbursement failed. */
985
+ error?: PaymentError;
986
+ /** The onchain transactions associated with this disbursement. */
987
+ onchainTransactions?: DisbursementOnchainTransactionsList;
988
+ /** The UTC ISO 8601 timestamp at which the disbursement was created. */
989
+ createdAt: string;
990
+ /** The UTC ISO 8601 timestamp at which the disbursement was last updated. */
991
+ updatedAt: string;
992
+ }
993
+ export declare const Disbursement: S.Schema<Disbursement>;
150
994
  /** The type of authentication information. */
151
995
  export type EmailAuthenticationType = "email";
152
996
  export declare const EmailAuthenticationType: any;
@@ -449,13 +1293,12 @@ export interface EIP712Message {
449
1293
  message: unknown;
450
1294
  }
451
1295
  export declare const EIP712Message: S.Schema<EIP712Message>;
452
- /** The approval object which contains the necessary fields to submit an approval for this transaction. Null if the `fromToken` is the native token or the transaction is a native token wrap / unwrap. */
453
- export interface CreateSwapQuoteResponsePermit2 {
1296
+ export interface SwapPermit2Approval {
454
1297
  /** The hash for the approval according to [EIP-712](https://eips.ethereum.org/EIPS/eip-712). Computing the hash of the `eip712` field should match the value of this field. */
455
1298
  hash: string;
456
1299
  eip712: EIP712Message;
457
1300
  }
458
- export declare const CreateSwapQuoteResponsePermit2: S.Schema<CreateSwapQuoteResponsePermit2>;
1301
+ export declare const SwapPermit2Approval: S.Schema<SwapPermit2Approval>;
459
1302
  /** The details of the transaction to be signed and submitted to execute the swap. */
460
1303
  export interface CreateSwapQuoteResponseTransaction {
461
1304
  /** The 0x-prefixed address of the contract to call. */
@@ -485,16 +1328,14 @@ export interface CreateSwapQuoteResponseFees {
485
1328
  protocolFee: TokenFee | null;
486
1329
  }
487
1330
  export declare const CreateSwapQuoteResponseFees: S.Schema<CreateSwapQuoteResponseFees>;
488
- /** Details of the allowances that the taker must set in order to execute the swap successfully. Null if no allowance is required. */
489
- export interface CreateSwapQuoteResponseIssuesAllowance {
1331
+ export interface CommonSwapResponseIssuesAllowance {
490
1332
  /** The current allowance of the `fromToken` by the `taker`. */
491
1333
  currentAllowance: string;
492
1334
  /** The 0x-prefixed address of to set the allowance on. */
493
1335
  spender: string;
494
1336
  }
495
- export declare const CreateSwapQuoteResponseIssuesAllowance: S.Schema<CreateSwapQuoteResponseIssuesAllowance>;
496
- /** Details of the balance of the `fromToken` that the `taker` must hold. Null if the `taker` has a sufficient balance. */
497
- export interface CreateSwapQuoteResponseIssuesBalance {
1337
+ export declare const CommonSwapResponseIssuesAllowance: S.Schema<CommonSwapResponseIssuesAllowance>;
1338
+ export interface CommonSwapResponseIssuesBalance {
498
1339
  /** The 0x-prefixed contract address of the token. */
499
1340
  token: string;
500
1341
  /** The current balance of the `fromToken` by the `taker`. */
@@ -502,20 +1343,20 @@ export interface CreateSwapQuoteResponseIssuesBalance {
502
1343
  /** The amount of the token that the `taker` must hold. */
503
1344
  requiredBalance: string;
504
1345
  }
505
- export declare const CreateSwapQuoteResponseIssuesBalance: S.Schema<CreateSwapQuoteResponseIssuesBalance>;
1346
+ export declare const CommonSwapResponseIssuesBalance: S.Schema<CommonSwapResponseIssuesBalance>;
506
1347
  /** An object containing potential issues discovered during validation that could prevent the swap from being executed successfully. */
507
1348
  export interface CreateSwapQuoteResponseIssues {
508
1349
  /** Details of the allowances that the taker must set in order to execute the swap successfully. Null if no allowance is required. */
509
- allowance: CreateSwapQuoteResponseIssuesAllowance | null;
1350
+ allowance: CommonSwapResponseIssuesAllowance | null;
510
1351
  /** Details of the balance of the `fromToken` that the `taker` must hold. Null if the `taker` has a sufficient balance. */
511
- balance: CreateSwapQuoteResponseIssuesBalance | null;
1352
+ balance: CommonSwapResponseIssuesBalance | null;
512
1353
  /** This is set to true when the transaction cannot be validated. This can happen when the taker has an insufficient balance of the `fromToken`. Note that this does not necessarily mean that the trade will revert. */
513
1354
  simulationIncomplete: boolean;
514
1355
  }
515
1356
  export declare const CreateSwapQuoteResponseIssues: S.Schema<CreateSwapQuoteResponseIssues>;
516
1357
  export interface CreateSwapQuoteResponse {
517
1358
  /** The approval object which contains the necessary fields to submit an approval for this transaction. Null if the `fromToken` is the native token or the transaction is a native token wrap / unwrap. */
518
- permit2: CreateSwapQuoteResponsePermit2 | null;
1359
+ permit2: SwapPermit2Approval | null;
519
1360
  /** The details of the transaction to be signed and submitted to execute the swap. */
520
1361
  transaction: CreateSwapQuoteResponseTransaction;
521
1362
  /** The block number at which the liquidity conditions were examined. */
@@ -549,10 +1390,13 @@ export declare const CreateSwapQuoteResponseWrapper: S.Schema<CreateSwapQuoteRes
549
1390
  export type CreateEvmSwapQuoteResponse = CreateSwapQuoteResponseWrapper;
550
1391
  export declare const CreateEvmSwapQuoteResponse: S.Schema<CreateEvmSwapQuoteResponse>;
551
1392
  export interface CreateFoundationAccountRequest {
1393
+ /** The Owner of the Account to create. * If omitted, the account will be owned by the Entity making the request. * If the account is for a customer, the value will be a Customer ID, e.g. `customer_af2937b0-9846-4fe7-bfe9-ccc22d935114`. * Further, the corresponding Customer must have all of the following capabilities enabled: - `custodyCrypto` - `custodyFiat` - `custodyStablecoin`. */
1394
+ owner?: string;
552
1395
  name?: string;
1396
+ compliance?: Compliance;
553
1397
  }
554
1398
  export declare const CreateFoundationAccountRequest: S.Schema<CreateFoundationAccountRequest>;
555
- /** The type of the Account. */
1399
+ /** The type of the Account. - `prime`: a linked Coinbase Prime account. - `business`: a linked Coinbase Business account. - `cdp`: a CDP-native account created via this API. Used for accounts created on behalf of an Entity and for Customer-owned accounts. */
556
1400
  export type AccountType = "prime" | "business" | "cdp";
557
1401
  export declare const AccountType: any;
558
1402
  export interface Account {
@@ -571,13 +1415,13 @@ export type OnrampOrderPaymentMethodTypeId = "GUEST_CHECKOUT_APPLE_PAY" | "GUEST
571
1415
  export declare const OnrampOrderPaymentMethodTypeId: any;
572
1416
  export interface CreateOnrampOrderRequest {
573
1417
  /** The timestamp of when the user acknowledged that by using Coinbase Onramp they are accepting the Coinbase Terms (https://www.coinbase.com/legal/guest-checkout/us), User Agreement (https://www.coinbase.com/legal/user_agreement), and Privacy Policy (https://www.coinbase.com/legal/privacy). */
574
- agreementAcceptedAt: string;
1418
+ agreementAcceptedAt?: string;
575
1419
  /** The address the purchased crypto will be sent to. */
576
1420
  destinationAddress: string;
577
1421
  /** The name of the crypto network the purchased currency will be sent on. Use the [Onramp Buy Options API](https://docs.cdp.coinbase.com/api-reference/rest-api/onramp-offramp/get-buy-options) to discover the supported networks for your user's location. */
578
1422
  destinationNetwork: string;
579
1423
  /** The verified email address of the user requesting the onramp transaction. This email must be verified by your app (via OTP) before being used with the Onramp API. */
580
- email: string;
1424
+ email?: string;
581
1425
  /** If true, this API will return a quote without creating any transaction. */
582
1426
  isQuote?: boolean;
583
1427
  /** Optional partner order reference ID. */
@@ -589,10 +1433,10 @@ export interface CreateOnrampOrderRequest {
589
1433
  /** The fiat currency to be converted to crypto. */
590
1434
  paymentCurrency: string;
591
1435
  paymentMethod: OnrampOrderPaymentMethodTypeId | (string & {});
592
- /** The phone number of the user requesting the onramp transaction in E.164 format. This phone number must be verified by your app (via OTP) before being used with the Onramp API. Please refer to the [Onramp docs](https://docs.cdp.coinbase.com/onramp-&-offramp/onramp-apis/apple-pay-onramp-api) for more details on phone number verification requirements and best practices. */
593
- phoneNumber: string;
1436
+ /** The phone number of the user requesting the onramp transaction in E.164 format. This phone number must be verified by your app (via OTP) before being used with the Onramp API. Please refer to the [Onramp docs](https://docs.cdp.coinbase.com/onramp/headless-onramp/overview) for more details on phone number verification requirements and best practices. */
1437
+ phoneNumber?: string;
594
1438
  /** Timestamp of when the user's phone number was verified via OTP. User phone number must be verified every 60 days. If this timestamp is older than 60 days, an error will be returned. */
595
- phoneNumberVerifiedAt: string;
1439
+ phoneNumberVerifiedAt?: string;
596
1440
  /** The SMS verification ID returned by the Submit Onramp Verification endpoint after verifying the user's phone number. When provided, Onramp validates the server-side verification record instead of trusting `phoneNumberVerifiedAt`. */
597
1441
  smsVerificationId?: string;
598
1442
  /** The email verification ID returned by the Submit Onramp Verification endpoint after verifying the user's email address. */
@@ -603,8 +1447,12 @@ export interface CreateOnrampOrderRequest {
603
1447
  purchaseCurrency: string;
604
1448
  /** The IP address of the end user requesting the onramp transaction. */
605
1449
  clientIp?: string;
606
- /** The domain that the Apple Pay button will be rendered on. Required when using the `GUEST_CHECKOUT_APPLE_PAY` payment method and embedding the payment link in an iframe. */
1450
+ /** The domain that the Apple Pay or Google Pay button will be rendered on. Required when using the `GUEST_CHECKOUT_APPLE_PAY` or `GUEST_CHECKOUT_GOOGLE_PAY` payment method and embedding the payment link in an iframe. Omit this field entirely for mobile iOS Apple Pay via WebView integration. */
607
1451
  domain?: string;
1452
+ /** Optional [BCP-47](https://www.rfc-editor.org/info/bcp47) locale tag (e.g. `es-ES`, `pt-BR`, `en`) used to localize the hosted payment page. When provided, it is appended to the returned `paymentLink` URL and mapped to the closest locale supported by the Apple Pay and Google Pay buttons; unsupported locales fall back to the user's browser language. Any well-formed BCP-47 tag is accepted. */
1453
+ locale?: string;
1454
+ /** Optional. A reusable token returned by a previous verified order. When provided, a returning user checking out to the same wallet is taken straight to the pay button, skipping OTP (best-effort — an invalid, expired, or different-wallet token still requires verification). */
1455
+ userAuthToken?: string;
608
1456
  }
609
1457
  export declare const CreateOnrampOrderRequest: S.Schema<CreateOnrampOrderRequest>;
610
1458
  /** The type of fee. */
@@ -624,7 +1472,7 @@ export declare const OnrampOrderFee: S.Schema<OnrampOrderFee>;
624
1472
  export type OnrampOrderFeesList = Array<OnrampOrderFee>;
625
1473
  export declare const OnrampOrderFeesList: S.Schema<OnrampOrderFeesList>;
626
1474
  /** The status of an onramp order. */
627
- export type OnrampOrderStatus = "ONRAMP_ORDER_STATUS_PENDING_AUTH" | "ONRAMP_ORDER_STATUS_PENDING_PAYMENT" | "ONRAMP_ORDER_STATUS_PROCESSING" | "ONRAMP_ORDER_STATUS_COMPLETED" | "ONRAMP_ORDER_STATUS_FAILED";
1475
+ export type OnrampOrderStatus = "ONRAMP_ORDER_STATUS_PENDING_AUTH" | "ONRAMP_ORDER_STATUS_PENDING_VERIFICATION" | "ONRAMP_ORDER_STATUS_PENDING_PAYMENT" | "ONRAMP_ORDER_STATUS_PROCESSING" | "ONRAMP_ORDER_STATUS_COMPLETED" | "ONRAMP_ORDER_STATUS_FAILED";
628
1476
  export declare const OnrampOrderStatus: any;
629
1477
  /** An Onramp order. */
630
1478
  export interface OnrampOrder {
@@ -661,7 +1509,7 @@ export interface OnrampOrder {
661
1509
  }
662
1510
  export declare const OnrampOrder: S.Schema<OnrampOrder>;
663
1511
  /** The type of payment link. */
664
- export type OnrampPaymentLinkType = "PAYMENT_LINK_TYPE_APPLE_PAY_BUTTON";
1512
+ export type OnrampPaymentLinkType = "PAYMENT_LINK_TYPE_APPLE_PAY_BUTTON" | "PAYMENT_LINK_TYPE_GOOGLE_PAY_BUTTON" | "PAYMENT_LINK_TYPE_EMBEDDED_ORDER";
665
1513
  export declare const OnrampPaymentLinkType: any;
666
1514
  /** A payment link to pay for an order. Please refer to the [Onramp docs](https://docs.cdp.coinbase.com/onramp-&-offramp/onramp-apis/onramp-overview) for details on how to integrate with the different payment link types. */
667
1515
  export interface OnrampPaymentLink {
@@ -673,6 +1521,8 @@ export declare const OnrampPaymentLink: S.Schema<OnrampPaymentLink>;
673
1521
  export interface CreateOnrampOrderResponse {
674
1522
  order: OnrampOrder;
675
1523
  paymentLink?: OnrampPaymentLink;
1524
+ /** Present for embedded orders once the user has verified. Store this and pass it on future orders for the same user to skip OTP verification. Valid for 60 days. */
1525
+ userAuthToken?: string;
676
1526
  }
677
1527
  export declare const CreateOnrampOrderResponse: S.Schema<CreateOnrampOrderResponse>;
678
1528
  /** The type of payment method used to generate the onramp quote. */
@@ -738,6 +1588,33 @@ export interface CreateOnrampSessionResponse {
738
1588
  quote?: OnrampQuote;
739
1589
  }
740
1590
  export declare const CreateOnrampSessionResponse: S.Schema<CreateOnrampSessionResponse>;
1591
+ /** Compliance context for a payment session request. Extends the base Compliance schema with buyer information required for travel rule obligations. This object is request-only — it is never echoed back in responses. */
1592
+ export interface PaymentSessionCompliance {
1593
+ /** IPv4 or IPv6 address of the individual (i.e., end-customer) that initiated this request. NOT the IP of the partner server making the API call. */
1594
+ requesterIpAddress?: string;
1595
+ /** Information about the person paying. Required by some entity configurations to meet regulatory requirements for fund transfers. When required, omitting this field or leaving required sub-fields empty returns a 400 listing the specific fields needed. */
1596
+ buyer?: Person;
1597
+ }
1598
+ export declare const PaymentSessionCompliance: S.Schema<PaymentSessionCompliance>;
1599
+ export interface CreatePaymentSessionRequest {
1600
+ /** A decimal representation of the payment amount, denominated in `asset`. */
1601
+ amount: string;
1602
+ /** The symbol of the asset for the payment amount. */
1603
+ asset: string;
1604
+ /** The target of the payment session. */
1605
+ target: PaymentSessionTarget;
1606
+ expiries?: PaymentExpiries;
1607
+ redirect?: PaymentRedirect;
1608
+ /** When true, a capture is automatically created after a successful authorization. When false or omitted, the merchant must create captures manually via the captures endpoint. */
1609
+ autoCapture?: boolean;
1610
+ /** A merchant-provided internal identifier for this payment session, from the merchant's own system—not visible to the payer. It must not contain personally identifiable information (PII) or payment credentials. */
1611
+ externalReferenceId?: string;
1612
+ customerDisplay?: CustomerDisplay;
1613
+ metadata?: Metadata;
1614
+ /** Compliance context for this payment session. Carries buyer information required by some entity configurations to meet regulatory requirements. */
1615
+ compliance?: PaymentSessionCompliance;
1616
+ }
1617
+ export declare const CreatePaymentSessionRequest: S.Schema<CreatePaymentSessionRequest>;
741
1618
  /** The scope of the policy. */
742
1619
  export type CreatePolicyRequestScope = "project" | "account";
743
1620
  export declare const CreatePolicyRequestScope: any;
@@ -1846,6 +2723,7 @@ export declare const UserOperationReceipt: S.Schema<UserOperationReceipt>;
1846
2723
  /** The list of receipts associated with the user operation. */
1847
2724
  export type EvmUserOperationReceiptsList = Array<UserOperationReceipt>;
1848
2725
  export declare const EvmUserOperationReceiptsList: S.Schema<EvmUserOperationReceiptsList>;
2726
+ /** A smart account operation response. */
1849
2727
  export interface EvmUserOperation {
1850
2728
  network: EvmUserOperationNetwork;
1851
2729
  /** The hash of the user operation. This is not the transaction hash, as a transaction consists of multiple user operations. The user operation hash is the hash of this particular user operation which gets signed by the owner of the Smart Account. */
@@ -1862,34 +2740,14 @@ export interface EvmUserOperation {
1862
2740
  expiresAt?: string;
1863
2741
  }
1864
2742
  export declare const EvmUserOperation: S.Schema<EvmUserOperation>;
1865
- /** The Account specific details for the transfer. */
1866
- export interface TransfersAccount {
1867
- /** The ID of the Account. */
1868
- accountId: string;
1869
- asset: string;
1870
- }
1871
- export declare const TransfersAccount: S.Schema<TransfersAccount>;
1872
2743
  /** The Payment Method specific details for the transfer. */
1873
2744
  export interface PaymentMethod {
1874
2745
  /** The ID of the Payment Method. */
1875
2746
  paymentMethodId: string;
2747
+ /** The asset symbol. Supported values are `usd` and `eur`. */
1876
2748
  asset: string;
1877
2749
  }
1878
2750
  export declare const PaymentMethod: S.Schema<PaymentMethod>;
1879
- /** The source of the transfer. */
1880
- export type CreateTransferSource = TransfersAccount | PaymentMethod;
1881
- export declare const CreateTransferSource: S.Schema<CreateTransferSource>;
1882
- /** The target of the payment is an onchain address. */
1883
- export interface OnchainAddress {
1884
- /** The onchain crypto address of the recipient. Examples: - EVM address: 0xabc1234567890abcdef1234567890abcdef123456 - Solana address: HpabPRRCFbBKSuJr5PdkVvQc85FyxyTWkFM2obBRSvHT - XRP address: rhccc5p23aKiCGFcEqqnjEfLRZ6xEvfy3s */
1885
- address: string;
1886
- network: Network | (string & {});
1887
- /** The destination tag of the onchain address. Destination tags are used by certain networks (primarily XRP/Ripple) to identify specific recipients when multiple users share a single address. The tag ensures funds are credited to the correct account within the shared address. Examples by network: - XRP/Ripple: Numeric values like "1234567890" or "123456" - Stellar (XLM): Memos which can be text, ID, or hash format Note: Most networks (Ethereum, Bitcoin, Solana) do not use destination tags. */
1888
- destinationTag?: string;
1889
- /** Asset symbol of the payment received by the recipient. */
1890
- asset: string;
1891
- }
1892
- export declare const OnchainAddress: S.Schema<OnchainAddress>;
1893
2751
  /** The target of the payment is an email address. */
1894
2752
  export interface EmailInstrument {
1895
2753
  /** The email address of the recipient. The recipient will need to have an account with Coinbase or onboard to Coinbase to receive the payment. */
@@ -1904,30 +2762,14 @@ export declare const TransferTarget: S.Schema<TransferTarget>;
1904
2762
  /** Specifies whether the given amount is to be received by the target or taken from the source. - `target`: The transfer `target` receives the exact value specified in `amount`. Fees are added to the amount taken from the transfer `source`. - `source`: The transfer `target` receives the value specified in `amount`, minus any fees. */
1905
2763
  export type CreateTransferRequestAmountType = "target" | "source";
1906
2764
  export declare const CreateTransferRequestAmountType: any;
1907
- /** A physical address with standard address components including street, city, state/province, postal code, and country. */
1908
- export interface PhysicalAddress {
1909
- /** Primary street address. */
1910
- line1?: string;
1911
- /** Secondary address information. */
1912
- line2?: string;
1913
- /** City or locality. */
1914
- city?: string;
1915
- /** State, province, or region. */
1916
- state?: string;
1917
- /** Postal or ZIP code. */
1918
- postCode?: string;
1919
- /** ISO 3166-1 alpha-2 country code (2 characters). See https://en.wikipedia.org/wiki/List_of_ISO_3166_country_codes. */
1920
- countryCode?: string;
1921
- }
1922
- export declare const PhysicalAddress: S.Schema<PhysicalAddress>;
1923
2765
  /** Information about the originating Virtual Asset Service Provider (VASP) that handles cryptocurrency or other virtual assets on behalf of customers. */
1924
2766
  export interface TravelRuleOriginatorVirtualAssetServiceProvider {
2767
+ /** The Legal Entity Identifier of the originating Virtual Asset Service Provider (VASP). */
2768
+ identifier?: string;
1925
2769
  /** The name of the originating Virtual Asset Service Provider (VASP). */
1926
2770
  name?: string;
1927
2771
  /** The address of the originating Virtual Asset Service Provider (VASP). */
1928
- address?: PhysicalAddress;
1929
- /** The Legal Entity Identifier of the originating Virtual Asset Service Provider (VASP). */
1930
- identifier?: string;
2772
+ address?: IndividualInputAddress;
1931
2773
  }
1932
2774
  export declare const TravelRuleOriginatorVirtualAssetServiceProvider: S.Schema<TravelRuleOriginatorVirtualAssetServiceProvider>;
1933
2775
  /** Date of birth. */
@@ -1942,11 +2784,11 @@ export interface DateOfBirth {
1942
2784
  export declare const DateOfBirth: S.Schema<DateOfBirth>;
1943
2785
  /** Originator (sender) party. */
1944
2786
  export interface TravelRuleOriginator {
1945
- /** Name of the financial institution. */
1946
- financialInstitution?: string;
1947
2787
  /** Full name of the party. */
1948
2788
  name?: string;
1949
- address?: PhysicalAddress;
2789
+ address?: IndividualInputAddress;
2790
+ /** Name of the financial institution. */
2791
+ financialInstitution?: string;
1950
2792
  /** Information about the originating Virtual Asset Service Provider (VASP) that handles cryptocurrency or other virtual assets on behalf of customers. */
1951
2793
  virtualAssetServiceProvider?: TravelRuleOriginatorVirtualAssetServiceProvider;
1952
2794
  /** Personal identifier for travel rule compliance. For individuals: passport number, national ID, or driver's license. For institutions: LEI (Legal Entity Identifier). */
@@ -1960,11 +2802,11 @@ export type TravelRuleBeneficiaryWalletType = "custodial" | "self_custody";
1960
2802
  export declare const TravelRuleBeneficiaryWalletType: any;
1961
2803
  /** Beneficiary (receiver) party. */
1962
2804
  export interface TravelRuleBeneficiary {
1963
- /** Name of the financial institution. */
1964
- financialInstitution?: string;
1965
2805
  /** Full name of the party. */
1966
2806
  name?: string;
1967
- address?: PhysicalAddress;
2807
+ address?: IndividualInputAddress;
2808
+ /** Name of the financial institution. */
2809
+ financialInstitution?: string;
1968
2810
  /** The type of the beneficiary's wallet. */
1969
2811
  walletType?: TravelRuleBeneficiaryWalletType | (string & {});
1970
2812
  }
@@ -1973,14 +2815,15 @@ export declare const TravelRuleBeneficiary: S.Schema<TravelRuleBeneficiary>;
1973
2815
  export interface TravelRule {
1974
2816
  /** Indicates whether the user attests that the receiving wallet belongs to them. */
1975
2817
  isSelf?: boolean;
1976
- /** Indicates whether Coinbase is being used as an intermediary Virtual Asset Service Provider (VASP) to send crypto on behalf of your customer. **Background:** The Travel Rule (FATF Recommendation 16) requires VASPs to share originator and beneficiary information for virtual asset transfers. When Coinbase acts as an intermediary, additional Travel Rule data must be provided to satisfy compliance requirements. **Set to `true` when:** - Your organization is a VASP using Coinbase to send crypto **on behalf of your end customer** - In this scenario, Coinbase acts as an intermediary in the transfer chain and handles Travel Rule data exchange with the beneficiary VASP **Set to `false` (or omit) when:** - You are transferring funds directly from your own Coinbase account, where **Coinbase is your primary VASP** rather than an intermediary for another institution **Impact on required fields:** When `isIntermediary` is `true`, you must provide the `originator` object with details about the **original sender**, including: - Originator name - Originator address - Your VASP information (`virtualAssetServiceProvider` object with `name`, `address`, and `identifier`) For jurisdictions that require them (such as Coinbase Luxembourg), `personalIdentification` and `dateOfBirth` must also reflect the **original sender's** identity — not the intermediary's. These fields will not be auto-populated from any internal KYC data when `isIntermediary` is `true`. */
1977
2818
  isIntermediary?: boolean;
2819
+ /** When `true`, you attest that the beneficiary's wallet ownership has been verified out-of-band. Instructs Coinbase to skip the wallet verification check for this transfer. **Only valid when `isIntermediary` is `true`.** You can only attest to the beneficiary's wallet ownership when your organization is acting as the originating VASP on behalf of your end customer, and Coinbase is acting as the intermediary VASP. Returns a `400` error if set to `true` when `isIntermediary` is `false` or omitted. */
2820
+ attestVerifiedWalletOwnership?: boolean;
1978
2821
  originator?: TravelRuleOriginator;
1979
2822
  beneficiary?: TravelRuleBeneficiary;
1980
2823
  }
1981
2824
  export declare const TravelRule: S.Schema<TravelRule>;
1982
2825
  export interface CreateTransferRequest {
1983
- source: CreateTransferSource;
2826
+ source: TransfersAccount;
1984
2827
  target: TransferTarget;
1985
2828
  /** The amount of the transfer, as a decimal string in standard unit denomination of the asset specified by `asset` (e.g., "100.00" for 100 USD, "0.05" for 0.05 ETH). */
1986
2829
  amount: string;
@@ -2000,18 +2843,37 @@ export declare const CreateTransferRequest: S.Schema<CreateTransferRequest>;
2000
2843
  /** The current status of the transfer, indicating what action you need to take next. Required when validateOnly is false. */
2001
2844
  export type TransferStatus = "quoted" | "processing" | "completed" | "failed";
2002
2845
  export declare const TransferStatus: any;
2003
- /** The originating US bank account details for the transfer source. Present when funds were deposited from an external bank account into a deposit destination. Only the last 4 digits of the account number are exposed. */
2004
- export interface OriginatingBankAccountUS {
2005
- /** The name of the bank that originated the deposit. */
2006
- bankName: string;
2007
- /** The last 4 digits of the originating bank account number. */
2008
- accountLast4: string;
2009
- /** The fiat currency of the deposit (e.g., `usd`). */
2846
+ /** The originating ACH deposit details for the transfer source. Present when funds were deposited via ACH into a deposit destination. */
2847
+ export interface AchDepositSource {
2848
+ /** The fiat currency of the ACH deposit (e.g., `usd`). */
2010
2849
  currency: string;
2011
- }
2012
- export declare const OriginatingBankAccountUS: S.Schema<OriginatingBankAccountUS>;
2850
+ /** The company name from the ACH batch header record. Masked on webhook payloads. */
2851
+ companyName: string;
2852
+ /** The company entry description from the ACH batch header record. */
2853
+ companyEntryDescription: string;
2854
+ /** The individual identification number from the ACH entry detail record. For Person-to-Person WEB credit Entries, this field is required and contains the name of the consumer Originator. Masked on webhook payloads. */
2855
+ individualIdentificationNumber?: string;
2856
+ }
2857
+ export declare const AchDepositSource: S.Schema<AchDepositSource>;
2858
+ /** The Originator to Beneficiary Information (OBI) lines from the Fedwire message. Up to 4 lines, each up to 35 characters. Free-form and may contain identifying information about the originator. Masked on webhook payloads. */
2859
+ export type FedwireDepositSourceOriginatorToBeneficiaryList = Array<string>;
2860
+ export declare const FedwireDepositSourceOriginatorToBeneficiaryList: S.Schema<FedwireDepositSourceOriginatorToBeneficiaryList>;
2861
+ /** The originating Fedwire deposit details for the transfer source. Present when funds were deposited via Fedwire into a deposit destination. */
2862
+ export interface FedwireDepositSource {
2863
+ /** The fiat currency of the Fedwire deposit (e.g., `usd`). */
2864
+ currency: string;
2865
+ /** The Output Message Accountability Data (OMAD), a unique identifier assigned by the Fedwire network to the wire transfer message. */
2866
+ omad: string;
2867
+ /** The originator's bank account number. Masked on webhook payloads. */
2868
+ accountNumber: string;
2869
+ /** The name of the originator. Masked on webhook payloads. */
2870
+ originatorName: string;
2871
+ /** The Originator to Beneficiary Information (OBI) lines from the Fedwire message. Up to 4 lines, each up to 35 characters. Free-form and may contain identifying information about the originator. Masked on webhook payloads. */
2872
+ originatorToBeneficiary?: FedwireDepositSourceOriginatorToBeneficiaryList;
2873
+ }
2874
+ export declare const FedwireDepositSource: S.Schema<FedwireDepositSource>;
2013
2875
  /** The source of the transfer. */
2014
- export type TransferSource = TransfersAccount | PaymentMethod | OnchainAddress | OriginatingBankAccountUS;
2876
+ export type TransferSource = TransfersAccount | PaymentMethod | OnchainAddress | AchDepositSource | FedwireDepositSource;
2015
2877
  export declare const TransferSource: S.Schema<TransferSource>;
2016
2878
  /** Exchange rate information for currency conversion. The rate indicates how much of the target asset is equivalent to one unit of the source asset. */
2017
2879
  export interface TransferExchangeRate {
@@ -2062,7 +2924,7 @@ export declare const DepositDestinationReference: S.Schema<DepositDestinationRef
2062
2924
  export interface TransferDetailsOnchainTransactionsItem {
2063
2925
  /** The transaction hash. */
2064
2926
  transactionHash: string;
2065
- network: Network;
2927
+ network: PaymentNetwork;
2066
2928
  }
2067
2929
  export declare const TransferDetailsOnchainTransactionsItem: S.Schema<TransferDetailsOnchainTransactionsItem>;
2068
2930
  /** The onchain transactions associated with the transfer. */
@@ -2124,7 +2986,7 @@ export interface Transfer {
2124
2986
  }
2125
2987
  export declare const Transfer: S.Schema<Transfer>;
2126
2988
  /** A webhook event type identifier following dot-separated format: `<domain>.<entity>.<verb>` (e.g., "onchain.activity.detected"). */
2127
- export type EventType = "onchain.activity.detected" | "wallet.activity.detected" | "wallet.activity.multi" | "wallet.transaction.created" | "wallet.transaction.signed" | "wallet.transaction.broadcast" | "wallet.transaction.replaced" | "wallet.transaction.pending" | "wallet.transaction.confirmed" | "wallet.transaction.failed" | "wallet.delegation.created" | "wallet.delegation.revoked" | "wallet.typed_data.signed" | "wallet.message.signed" | "wallet.hash.signed" | "onramp.transaction.created" | "onramp.transaction.updated" | "onramp.transaction.success" | "onramp.transaction.failed" | "offramp.transaction.created" | "offramp.transaction.updated" | "offramp.transaction.success" | "offramp.transaction.failed";
2989
+ export type EventType = "onchain.activity.detected" | "wallet.activity.detected" | "wallet.activity.multi" | "wallet.transaction.created" | "wallet.transaction.signed" | "wallet.transaction.broadcast" | "wallet.transaction.replaced" | "wallet.transaction.pending" | "wallet.transaction.confirmed" | "wallet.transaction.failed" | "wallet.delegation.created" | "wallet.delegation.revoked" | "wallet.typed_data.signed" | "wallet.message.signed" | "wallet.hash.signed" | "payments.transfers.quoted" | "payments.transfers.processing" | "payments.transfers.completed" | "payments.transfers.failed" | "payments.transfers.expired" | "payments.transfers.travel_rule_incomplete" | "payments.transfers.travel_rule_completed" | "onramp.transaction.created" | "onramp.transaction.updated" | "onramp.transaction.success" | "onramp.transaction.failed" | "offramp.transaction.created" | "offramp.transaction.updated" | "offramp.transaction.success" | "offramp.transaction.failed" | "acceptance.payment_session.created" | "acceptance.payment_session.canceled" | "acceptance.payment_session.authorization_pending" | "acceptance.payment_session.authorization_succeeded" | "acceptance.payment_session.authorization_failed" | "acceptance.payment_session.capture_pending" | "acceptance.payment_session.capture_succeeded" | "acceptance.payment_session.capture_failed" | "acceptance.payment_session.refund_pending" | "acceptance.payment_session.refund_succeeded" | "acceptance.payment_session.refund_failed" | "acceptance.payment_session.void_pending" | "acceptance.payment_session.void_succeeded" | "acceptance.payment_session.void_failed" | "acceptance.disbursement.pending" | "acceptance.disbursement.succeeded" | "acceptance.disbursement.failed" | "health.status.updated" | "health.maintenance.scheduled" | "health.maintenance.started" | "health.maintenance.completed" | "health.maintenance.canceled" | "customers.capability.changed" | "customers.customer.deleted";
2128
2990
  export declare const EventType: any;
2129
2991
  /** Types of events to subscribe to. Event types follow a dot-separated format: service.resource.verb (e.g., "onchain.activity.detected", "wallet.activity.detected", "onramp.transaction.created", "acceptance.payment_session.authorization_succeeded"). The subscription will only receive events matching these types AND the label filter(s). */
2130
2992
  export type CreateWebhookSubscriptionRequestEventTypesList = Array<EventType | (string & {})>;
@@ -2148,7 +3010,6 @@ export type CreateWebhookSubscriptionRequestLabelsMap = {
2148
3010
  };
2149
3011
  export declare const CreateWebhookSubscriptionRequestLabelsMap: S.Schema<CreateWebhookSubscriptionRequestLabelsMap>;
2150
3012
  export interface CreateWebhookSubscriptionRequest {
2151
- /** Description of the webhook subscription. */
2152
3013
  description?: string;
2153
3014
  /** Types of events to subscribe to. Event types follow a dot-separated format: service.resource.verb (e.g., "onchain.activity.detected", "wallet.activity.detected", "onramp.transaction.created", "acceptance.payment_session.authorization_succeeded"). The subscription will only receive events matching these types AND the label filter(s). */
2154
3015
  eventTypes: CreateWebhookSubscriptionRequestEventTypesList;
@@ -2180,7 +3041,6 @@ export interface WebhookSubscriptionResponse {
2180
3041
  createdAt: string;
2181
3042
  /** When the subscription was last updated. */
2182
3043
  updatedAt?: string;
2183
- /** Description of the webhook subscription. */
2184
3044
  description?: string;
2185
3045
  /** Types of events to subscribe to. Event types follow a dot-separated format: service.resource.verb (e.g., "onchain.activity.detected", "wallet.activity.detected", "onramp.transaction.created", "acceptance.payment_session.authorization_succeeded"). */
2186
3046
  eventTypes: WebhookSubscriptionResponseEventTypesList;
@@ -2197,6 +3057,73 @@ export interface WebhookSubscriptionResponse {
2197
3057
  labels?: WebhookSubscriptionResponseLabelsMap;
2198
3058
  }
2199
3059
  export declare const WebhookSubscriptionResponse: S.Schema<WebhookSubscriptionResponse>;
3060
+ /** JSON-RPC version, must be "2.0". */
3061
+ export type CreateX402DiscoveryMcpRequestJsonrpc = "2.0";
3062
+ export declare const CreateX402DiscoveryMcpRequestJsonrpc: any;
3063
+ /** Request identifier. */
3064
+ export type CreateX402DiscoveryMcpRequestId = string | number;
3065
+ export declare const CreateX402DiscoveryMcpRequestId: S.Schema<CreateX402DiscoveryMcpRequestId>;
3066
+ /** Optional parameters for the method. */
3067
+ export type CreateX402DiscoveryMcpRequestParamsMap = {
3068
+ [key: string]: unknown | undefined;
3069
+ };
3070
+ export declare const CreateX402DiscoveryMcpRequestParamsMap: S.Schema<CreateX402DiscoveryMcpRequestParamsMap>;
3071
+ export interface CreateX402DiscoveryMcpRequest {
3072
+ /** JSON-RPC version, must be "2.0". */
3073
+ jsonrpc: CreateX402DiscoveryMcpRequestJsonrpc | (string & {});
3074
+ /** Request identifier. */
3075
+ id?: CreateX402DiscoveryMcpRequestId;
3076
+ /** The MCP method to invoke. */
3077
+ method: string;
3078
+ /** Optional parameters for the method. */
3079
+ params?: CreateX402DiscoveryMcpRequestParamsMap;
3080
+ }
3081
+ export declare const CreateX402DiscoveryMcpRequest: S.Schema<CreateX402DiscoveryMcpRequest>;
3082
+ /** JSON-RPC version. */
3083
+ export type X402McpResponseJsonrpc = "2.0";
3084
+ export declare const X402McpResponseJsonrpc: any;
3085
+ /** Request identifier (matches the request ID, null for notifications). */
3086
+ export type X402McpResponseId = string | number;
3087
+ export declare const X402McpResponseId: S.Schema<X402McpResponseId>;
3088
+ /** The result of the method call (present on success). */
3089
+ export type X402McpResponseResultMap = {
3090
+ [key: string]: unknown | undefined;
3091
+ };
3092
+ export declare const X402McpResponseResultMap: S.Schema<X402McpResponseResultMap>;
3093
+ /** Additional error data. */
3094
+ export type X402McpErrorDataMap = {
3095
+ [key: string]: unknown | undefined;
3096
+ };
3097
+ export declare const X402McpErrorDataMap: S.Schema<X402McpErrorDataMap>;
3098
+ /** JSON-RPC 2.0 error object. */
3099
+ export interface X402McpError {
3100
+ /** Error code. */
3101
+ code: number;
3102
+ /** Error message. */
3103
+ message: string;
3104
+ /** Additional error data. */
3105
+ data?: X402McpErrorDataMap;
3106
+ }
3107
+ export declare const X402McpError: S.Schema<X402McpError>;
3108
+ /** A JSON-RPC 2.0 response for the Model Context Protocol. */
3109
+ export interface X402McpResponse {
3110
+ /** JSON-RPC version. */
3111
+ jsonrpc: X402McpResponseJsonrpc;
3112
+ /** Request identifier (matches the request ID, null for notifications). */
3113
+ id?: X402McpResponseId | null;
3114
+ /** The result of the method call (present on success). */
3115
+ result?: X402McpResponseResultMap;
3116
+ error?: X402McpError;
3117
+ }
3118
+ export declare const X402McpResponse: S.Schema<X402McpResponse>;
3119
+ export interface DeleteCustomerRequest {
3120
+ /** The ID of the customer. */
3121
+ customerId: string;
3122
+ }
3123
+ export declare const DeleteCustomerRequest: S.Schema<DeleteCustomerRequest>;
3124
+ export interface DeleteCustomerResponse {
3125
+ }
3126
+ export declare const DeleteCustomerResponse: S.Schema<DeleteCustomerResponse>;
2200
3127
  export interface DeletePolicyRequest {
2201
3128
  /** The ID of the policy to delete. */
2202
3129
  policyId: string;
@@ -2306,6 +3233,11 @@ export interface Balance {
2306
3233
  amount: BalanceAmountMap;
2307
3234
  }
2308
3235
  export declare const Balance: S.Schema<Balance>;
3236
+ export interface GetCustomerRequest {
3237
+ /** The ID of the customer. */
3238
+ customerId: string;
3239
+ }
3240
+ export declare const GetCustomerRequest: S.Schema<GetCustomerRequest>;
2309
3241
  export interface GetDelegationForEndUserRequest {
2310
3242
  /** The ID of the end user. */
2311
3243
  userId: string;
@@ -2332,13 +3264,18 @@ export interface GetDelegationForEndUserAccountResponse {
2332
3264
  expiresAt: string;
2333
3265
  }
2334
3266
  export declare const GetDelegationForEndUserAccountResponse: S.Schema<GetDelegationForEndUserAccountResponse>;
2335
- export interface GetDepositDestinationByIdRequest {
3267
+ export interface GetDepositDestinationRequest {
2336
3268
  /** The ID of the deposit address to retrieve. */
2337
3269
  depositDestinationId: string;
2338
3270
  }
2339
- export declare const GetDepositDestinationByIdRequest: S.Schema<GetDepositDestinationByIdRequest>;
2340
- export type GetDepositDestinationByIdResponse = CryptoDepositDestination;
2341
- export declare const GetDepositDestinationByIdResponse: S.Schema<GetDepositDestinationByIdResponse>;
3271
+ export declare const GetDepositDestinationRequest: S.Schema<GetDepositDestinationRequest>;
3272
+ export type GetDepositDestinationResponse = DepositDestination;
3273
+ export declare const GetDepositDestinationResponse: S.Schema<GetDepositDestinationResponse>;
3274
+ export interface GetDisbursementRequest {
3275
+ /** The unique identifier of the disbursement. */
3276
+ disbursementId: string;
3277
+ }
3278
+ export declare const GetDisbursementRequest: S.Schema<GetDisbursementRequest>;
2342
3279
  export interface GetEndUserRequest {
2343
3280
  /** The ID of the end user to get. */
2344
3281
  userId: string;
@@ -2354,11 +3291,11 @@ export interface GetEvmAccountByNameRequest {
2354
3291
  name: string;
2355
3292
  }
2356
3293
  export declare const GetEvmAccountByNameRequest: S.Schema<GetEvmAccountByNameRequest>;
2357
- export interface GetEvmEip7702DelegationOperationByIdRequest {
3294
+ export interface GetEvmEip7702DelegationOperationRequest {
2358
3295
  /** The unique identifier for the delegation operation. */
2359
3296
  delegationOperationId: string;
2360
3297
  }
2361
- export declare const GetEvmEip7702DelegationOperationByIdRequest: S.Schema<GetEvmEip7702DelegationOperationByIdRequest>;
3298
+ export declare const GetEvmEip7702DelegationOperationRequest: S.Schema<GetEvmEip7702DelegationOperationRequest>;
2362
3299
  /** The current status of the delegation operation. UNSPECIFIED means the status has not been set. PENDING means the operation has been created but not yet submitted. SUBMITTED means the operation has been submitted to the network. COMPLETED means the operation has completed successfully. FAILED means the operation has failed. */
2363
3300
  export type EvmEip7702DelegationOperationStatus = "UNSPECIFIED" | "PENDING" | "SUBMITTED" | "COMPLETED" | "FAILED";
2364
3301
  export declare const EvmEip7702DelegationOperationStatus: any;
@@ -2399,12 +3336,6 @@ export declare const GetEvmSwapPriceRequest: S.Schema<GetEvmSwapPriceRequest>;
2399
3336
  /** The estimated fees for the swap. */
2400
3337
  export type GetSwapPriceResponseFees = CreateSwapQuoteResponseFees;
2401
3338
  export declare const GetSwapPriceResponseFees: S.Schema<CreateSwapQuoteResponseFees>;
2402
- /** Details of the allowances that the taker must set in order to execute the swap successfully. Null if no allowance is required. */
2403
- export type GetSwapPriceResponseIssuesAllowance = CreateSwapQuoteResponseIssuesAllowance;
2404
- export declare const GetSwapPriceResponseIssuesAllowance: S.Schema<CreateSwapQuoteResponseIssuesAllowance>;
2405
- /** Details of the balance of the `fromToken` that the `taker` must hold. Null if the `taker` has a sufficient balance. */
2406
- export type GetSwapPriceResponseIssuesBalance = CreateSwapQuoteResponseIssuesBalance;
2407
- export declare const GetSwapPriceResponseIssuesBalance: S.Schema<CreateSwapQuoteResponseIssuesBalance>;
2408
3339
  /** An object containing potential issues discovered during validation that could prevent the swap from being executed successfully. */
2409
3340
  export type GetSwapPriceResponseIssues = CreateSwapQuoteResponseIssues;
2410
3341
  export declare const GetSwapPriceResponseIssues: S.Schema<CreateSwapQuoteResponseIssues>;
@@ -2443,15 +3374,15 @@ export interface GetFoundationAccountByIdRequest {
2443
3374
  accountId: string;
2444
3375
  }
2445
3376
  export declare const GetFoundationAccountByIdRequest: S.Schema<GetFoundationAccountByIdRequest>;
2446
- export interface GetOnrampOrderByIdRequest {
3377
+ export interface GetOnrampOrderRequest {
2447
3378
  /** The ID of the onramp order to retrieve. */
2448
3379
  orderId: string;
2449
3380
  }
2450
- export declare const GetOnrampOrderByIdRequest: S.Schema<GetOnrampOrderByIdRequest>;
2451
- export interface GetOnrampOrderByIdResponse {
3381
+ export declare const GetOnrampOrderRequest: S.Schema<GetOnrampOrderRequest>;
3382
+ export interface GetOnrampOrderResponse {
2452
3383
  order: OnrampOrder;
2453
3384
  }
2454
- export declare const GetOnrampOrderByIdResponse: S.Schema<GetOnrampOrderByIdResponse>;
3385
+ export declare const GetOnrampOrderResponse: S.Schema<GetOnrampOrderResponse>;
2455
3386
  /** The type of user identifier: - `phone_number`: A phone number in E.164 format associated with an onramp user. */
2456
3387
  export type OnrampUserIdType = "phone_number";
2457
3388
  export declare const OnrampUserIdType: any;
@@ -2479,9 +3410,42 @@ export declare const OnrampUserLimit: S.Schema<OnrampUserLimit>;
2479
3410
  /** The list of limits applicable to the user. */
2480
3411
  export type GetOnrampUserLimitsResponseLimitsList = Array<OnrampUserLimit>;
2481
3412
  export declare const GetOnrampUserLimitsResponseLimitsList: S.Schema<GetOnrampUserLimitsResponseLimitsList>;
3413
+ /** The status of verification: - `unrequested`: The limit upgrade has not been submitted. - `resubmit`: One or more identity fields must be resubmitted. - `pending`: The submitted identity fields are pending review. - `active`: The limit upgrade is active. - `inactive`: The limit upgrade was rejected and cannot be resubmitted. */
3414
+ export type OnrampLimitUpgradeStatus = "unrequested" | "resubmit" | "pending" | "active" | "inactive";
3415
+ export declare const OnrampLimitUpgradeStatus: any;
3416
+ /** The identity field key for limit upgrades. These keys correspond to the fields in the limits upgrade request: - `ssnLast4`: Last 4 digits of the Social Security Number - `dateOfBirth`: Date of birth */
3417
+ export type OnrampLimitUpgradeIdentityFieldKey = "ssnLast4" | "dateOfBirth";
3418
+ export declare const OnrampLimitUpgradeIdentityFieldKey: any;
3419
+ /** The identity fields associated with the current status. Contains fields to submit for `unrequested` and `resubmit`, fields pending review for `pending`, and is empty for `active` and `inactive`. */
3420
+ export type OnrampLimitUpgradeOptionFieldsList = Array<OnrampLimitUpgradeIdentityFieldKey>;
3421
+ export declare const OnrampLimitUpgradeOptionFieldsList: S.Schema<OnrampLimitUpgradeOptionFieldsList>;
3422
+ /** Describes a limit value associated with an upgrade. */
3423
+ export interface OnrampLimitUpgrade {
3424
+ limitType: OnrampLimitType;
3425
+ /** The maximum limit value possible after completing the upgrade. Risk factors may impact the actual limit value that takes effect. For `lifetime_transactions`, `2147483647` represents an unlimited number of transactions. */
3426
+ maxUpgrade: string;
3427
+ }
3428
+ export declare const OnrampLimitUpgrade: S.Schema<OnrampLimitUpgrade>;
3429
+ /** The limit values associated with this upgrade. */
3430
+ export type OnrampLimitUpgradeOptionLimitUpgradesList = Array<OnrampLimitUpgrade>;
3431
+ export declare const OnrampLimitUpgradeOptionLimitUpgradesList: S.Schema<OnrampLimitUpgradeOptionLimitUpgradesList>;
3432
+ /** Describes the current status and potential limit changes for a limit upgrade. */
3433
+ export interface OnrampLimitUpgradeOption {
3434
+ status: OnrampLimitUpgradeStatus;
3435
+ /** The identity fields associated with the current status. Contains fields to submit for `unrequested` and `resubmit`, fields pending review for `pending`, and is empty for `active` and `inactive`. */
3436
+ fields: OnrampLimitUpgradeOptionFieldsList;
3437
+ /** The limit values associated with this upgrade. */
3438
+ limitUpgrades: OnrampLimitUpgradeOptionLimitUpgradesList;
3439
+ }
3440
+ export declare const OnrampLimitUpgradeOption: S.Schema<OnrampLimitUpgradeOption>;
3441
+ /** The user's limit upgrade status and associated upgrade details. Omitted when limit upgrades are not available for the calling app or user. Use the [Request Limit Upgrade](https://docs.cdp.coinbase.com/api-reference/v2/rest-api/onramp/request-limits-upgrade) endpoint to request a limit upgrade. */
3442
+ export type GetOnrampUserLimitsResponseLimitUpgradeOptionsList = Array<OnrampLimitUpgradeOption>;
3443
+ export declare const GetOnrampUserLimitsResponseLimitUpgradeOptionsList: S.Schema<GetOnrampUserLimitsResponseLimitUpgradeOptionsList>;
2482
3444
  export interface GetOnrampUserLimitsResponse {
2483
3445
  /** The list of limits applicable to the user. */
2484
3446
  limits: GetOnrampUserLimitsResponseLimitsList;
3447
+ /** The user's limit upgrade status and associated upgrade details. Omitted when limit upgrades are not available for the calling app or user. Use the [Request Limit Upgrade](https://docs.cdp.coinbase.com/api-reference/v2/rest-api/onramp/request-limits-upgrade) endpoint to request a limit upgrade. */
3448
+ limitUpgradeOptions?: GetOnrampUserLimitsResponseLimitUpgradeOptionsList;
2485
3449
  }
2486
3450
  export declare const GetOnrampUserLimitsResponse: S.Schema<GetOnrampUserLimitsResponse>;
2487
3451
  export interface GetPaymentMethodRequest {
@@ -2586,6 +3550,39 @@ export type PaymentMethodsPaymentMethod = FedwirePaymentMethod | SwiftPaymentMet
2586
3550
  export declare const PaymentMethodsPaymentMethod: S.Schema<PaymentMethodsPaymentMethod>;
2587
3551
  export type GetPaymentMethodResponse = PaymentMethodsPaymentMethod;
2588
3552
  export declare const GetPaymentMethodResponse: S.Schema<GetPaymentMethodResponse>;
3553
+ export interface GetPaymentSessionRequest {
3554
+ /** The unique identifier of the payment session. */
3555
+ paymentSessionId: string;
3556
+ }
3557
+ export declare const GetPaymentSessionRequest: S.Schema<GetPaymentSessionRequest>;
3558
+ export interface GetPaymentSessionAuthorizationRequest {
3559
+ /** The unique identifier of the payment session. */
3560
+ paymentSessionId: string;
3561
+ /** The unique identifier of the authorization. */
3562
+ authorizationId: string;
3563
+ }
3564
+ export declare const GetPaymentSessionAuthorizationRequest: S.Schema<GetPaymentSessionAuthorizationRequest>;
3565
+ export interface GetPaymentSessionCaptureRequest {
3566
+ /** The unique identifier of the payment session. */
3567
+ paymentSessionId: string;
3568
+ /** The unique identifier of the capture. */
3569
+ captureId: string;
3570
+ }
3571
+ export declare const GetPaymentSessionCaptureRequest: S.Schema<GetPaymentSessionCaptureRequest>;
3572
+ export interface GetPaymentSessionRefundRequest {
3573
+ /** The unique identifier of the payment session. */
3574
+ paymentSessionId: string;
3575
+ /** The unique identifier of the refund. */
3576
+ refundId: string;
3577
+ }
3578
+ export declare const GetPaymentSessionRefundRequest: S.Schema<GetPaymentSessionRefundRequest>;
3579
+ export interface GetPaymentSessionVoidRequest {
3580
+ /** The unique identifier of the payment session. */
3581
+ paymentSessionId: string;
3582
+ /** The unique identifier of the void. */
3583
+ voidId: string;
3584
+ }
3585
+ export declare const GetPaymentSessionVoidRequest: S.Schema<GetPaymentSessionVoidRequest>;
2589
3586
  export interface GetPolicyByIdRequest {
2590
3587
  /** The ID of the policy to get. */
2591
3588
  policyId: string;
@@ -2651,11 +3648,11 @@ export interface OnchainDataSchemaResponse {
2651
3648
  tables?: OnchainDataSchemaResponseTablesList;
2652
3649
  }
2653
3650
  export declare const OnchainDataSchemaResponse: S.Schema<OnchainDataSchemaResponse>;
2654
- export interface GetTransferByIdRequest {
3651
+ export interface GetTransferRequest {
2655
3652
  /** The unique identifier of the transfer. */
2656
3653
  transferId: string;
2657
3654
  }
2658
- export declare const GetTransferByIdRequest: S.Schema<GetTransferByIdRequest>;
3655
+ export declare const GetTransferRequest: S.Schema<GetTransferRequest>;
2659
3656
  export interface GetUserOperationRequest {
2660
3657
  /** The address of the Smart Account the user operation belongs to. */
2661
3658
  address: string;
@@ -2663,11 +3660,313 @@ export interface GetUserOperationRequest {
2663
3660
  userOpHash: string;
2664
3661
  }
2665
3662
  export declare const GetUserOperationRequest: S.Schema<GetUserOperationRequest>;
2666
- export interface GetWebhookSubscriptionRequest {
3663
+ export type GetWalletAuthorizationOptionsRequestAddressesList = Array<string>;
3664
+ export declare const GetWalletAuthorizationOptionsRequestAddressesList: S.Schema<GetWalletAuthorizationOptionsRequestAddressesList>;
3665
+ export interface GetWalletAuthorizationOptionsRequest {
3666
+ /** The unique identifier of the payment session. */
3667
+ paymentSessionId: string;
3668
+ /** The payer wallet addresses to generate authorization options for. Provide between 1 and 5 unique addresses, comma-separated (e.g. `?addresses=0xA,0xB`). Each returned option's `source.address` identifies which requested address it applies to. If a requested address has no eligible authorization options, it appears in `ineligibleAddresses` with a `code` explaining why. */
3669
+ addresses: GetWalletAuthorizationOptionsRequestAddressesList;
3670
+ /** Optional filter to restrict options to a specific blockchain network. */
3671
+ network?: PaymentSourceNetwork | (string & {});
3672
+ /** Optional filter to restrict options to a specific asset. */
3673
+ asset?: string;
3674
+ }
3675
+ export declare const GetWalletAuthorizationOptionsRequest: S.Schema<GetWalletAuthorizationOptionsRequest>;
3676
+ /** The payload type. */
3677
+ export type EIP3009PayloadType = "eip3009";
3678
+ export declare const EIP3009PayloadType: any;
3679
+ /** An EIP-3009 TransferWithAuthorization typed-data payload. The payer must pass `data` to `eth_signTypedData_v4` and return the resulting signature. */
3680
+ export interface EIP3009Payload {
3681
+ /** The unique identifier of the payload. */
3682
+ payloadId: string;
3683
+ /** The payload type. */
3684
+ type: EIP3009PayloadType;
3685
+ /** EIP-712 typed data for a TransferWithAuthorization. Pass to `eth_signTypedData_v4`. */
3686
+ data: EIP712Message;
3687
+ }
3688
+ export declare const EIP3009Payload: S.Schema<EIP3009Payload>;
3689
+ /** The payload type. */
3690
+ export type Permit2PayloadType = "permit2";
3691
+ export declare const Permit2PayloadType: any;
3692
+ /** A Permit2 PermitTransferFrom typed-data payload. The payer must pass `data` to `eth_signTypedData_v4` and return the resulting signature. */
3693
+ export interface Permit2Payload {
3694
+ /** The unique identifier of the payload. */
3695
+ payloadId: string;
3696
+ /** The payload type. */
3697
+ type: Permit2PayloadType;
3698
+ /** EIP-712 typed data for a Permit2 PermitTransferFrom. Pass to `eth_signTypedData_v4`. */
3699
+ data: EIP712Message;
3700
+ }
3701
+ export declare const Permit2Payload: S.Schema<Permit2Payload>;
3702
+ /** The payload type. */
3703
+ export type Erc20ApprovalPayloadType = "erc20_approval";
3704
+ export declare const Erc20ApprovalPayloadType: any;
3705
+ /** An EVM transaction object. Send via `eth_sendTransaction`. */
3706
+ export interface Erc20ApprovalPayloadData {
3707
+ /** The EVM chain ID for the transaction. */
3708
+ chainId: number;
3709
+ /** The 0x-prefixed address of the ERC-20 token contract to approve. */
3710
+ to: string;
3711
+ /** The ABI-encoded `approve()` calldata. */
3712
+ data: string;
3713
+ /** The native token value to send (always `"0"` for approvals). */
3714
+ value: string;
3715
+ /** The estimated gas limit for the transaction. */
3716
+ gas?: string;
3717
+ /** The maximum fee per gas unit (EIP-1559). */
3718
+ maxFeePerGas?: string;
3719
+ /** The maximum priority fee per gas unit (EIP-1559). */
3720
+ maxPriorityFeePerGas?: string;
3721
+ }
3722
+ export declare const Erc20ApprovalPayloadData: S.Schema<Erc20ApprovalPayloadData>;
3723
+ /** An ERC-20 approval transaction payload. The payer must send `data` as an EVM transaction via `eth_sendTransaction` and return the resulting transaction hash. */
3724
+ export interface Erc20ApprovalPayload {
3725
+ /** The unique identifier of the payload. */
3726
+ payloadId: string;
3727
+ /** The payload type. */
3728
+ type: Erc20ApprovalPayloadType;
3729
+ /** An EVM transaction object. Send via `eth_sendTransaction`. */
3730
+ data: Erc20ApprovalPayloadData;
3731
+ }
3732
+ export declare const Erc20ApprovalPayload: S.Schema<Erc20ApprovalPayload>;
3733
+ /** The payload type. */
3734
+ export type SpendPermissionPayloadType = "spend_permission";
3735
+ export declare const SpendPermissionPayloadType: any;
3736
+ /** A spend permission EIP-712 typed-data payload. The payer must pass `data` to `eth_signTypedData_v4` and return the resulting signature. This grants a spender the ability to transfer tokens from the payer's smart account under the specified constraints (allowance, period, expiry). */
3737
+ export interface SpendPermissionPayload {
3738
+ /** The unique identifier of the payload. */
3739
+ payloadId: string;
3740
+ /** The payload type. */
3741
+ type: SpendPermissionPayloadType;
3742
+ /** EIP-712 typed data for a SpendPermission approval. Pass to `eth_signTypedData_v4`. */
3743
+ data: EIP712Message;
3744
+ }
3745
+ export declare const SpendPermissionPayload: S.Schema<SpendPermissionPayload>;
3746
+ /** A single onchain payload the payer must process to complete an onchain payment option. Inspect `type` to determine how to handle the `data` field: - `eip3009` — pass `data` to `eth_signTypedData_v4`, return the signature. - `permit2` — pass `data` to `eth_signTypedData_v4`, return the signature. - `erc20_approval` — send `data` via `eth_sendTransaction`, return the transaction hash. - `spend_permission` — pass `data` to `eth_signTypedData_v4`, return the signature. */
3747
+ export type OnchainSignaturePayload = EIP3009Payload | Permit2Payload | Erc20ApprovalPayload | SpendPermissionPayload;
3748
+ export declare const OnchainSignaturePayload: S.Schema<OnchainSignaturePayload>;
3749
+ /** The payloads the payer must sign or submit to authorize the payment via this option. */
3750
+ export type WalletAuthorizationOptionPayloadsList = Array<OnchainSignaturePayload>;
3751
+ export declare const WalletAuthorizationOptionPayloadsList: S.Schema<WalletAuthorizationOptionPayloadsList>;
3752
+ /** An authorization option for completing payment via a wallet. Specifies the currency, amount, and network the payer would pay on, and the payloads the payer must sign or submit. */
3753
+ export interface WalletAuthorizationOption {
3754
+ /** The unique identifier of the authorization option. */
3755
+ optionId: string;
3756
+ /** The source address this authorization option applies to. */
3757
+ source: PaymentSourceWallet;
3758
+ /** A decimal representation of the amount the payer would pay if they choose this option, denominated in `asset`. May differ from the session amount when paying in a different asset. */
3759
+ amount: string;
3760
+ /** The symbol of the asset the payer would pay in for this option. */
3761
+ asset: string;
3762
+ /** The blockchain network the transaction will occur on for this option. */
3763
+ network: PaymentSourceNetwork;
3764
+ /** The payloads the payer must sign or submit to authorize the payment via this option. */
3765
+ payloads: WalletAuthorizationOptionPayloadsList;
3766
+ }
3767
+ export declare const WalletAuthorizationOption: S.Schema<WalletAuthorizationOption>;
3768
+ /** The available wallet authorization options. */
3769
+ export type WalletAuthorizationOptionsResponseOptionsList = Array<WalletAuthorizationOption>;
3770
+ export declare const WalletAuthorizationOptionsResponseOptionsList: S.Schema<WalletAuthorizationOptionsResponseOptionsList>;
3771
+ /** A machine-readable code indicating why this address has no eligible authorization option. The enum is closed — any value the server returns must be listed below. Adding a new code is a deliberate, coordinated API change; clients receiving an undocumented value should treat it as a server violating the spec. */
3772
+ export type IneligibleWalletAuthorizationAddressCode = "insufficient_funds" | "superseded_by_preferred_option";
3773
+ export declare const IneligibleWalletAuthorizationAddressCode: any;
3774
+ /** Describes, for one enabled (network, asset) combination, what the payer would need to fund a source address with so that it becomes eligible to authorize the payment. Appears in the `fundsRequired` list of an ineligible address whose `code` is `insufficient_funds`. All amounts are human-readable decimal strings, formatted the same way as `WalletAuthorizationOption.amount`. */
3775
+ export interface WalletAuthorizationFundsRequirement {
3776
+ /** The symbol of the asset the payer would fund on this network. */
3777
+ asset: string;
3778
+ /** The blockchain network this funding requirement applies to. */
3779
+ network: PaymentSourceNetwork;
3780
+ /** A decimal representation of the address's current balance of `asset` on this `network`. */
3781
+ currentBalance: string;
3782
+ /** A decimal representation of the balance of `asset` the payer must hold on this `network` to become eligible to authorize the payment. */
3783
+ requiredBalance: string;
3784
+ }
3785
+ export declare const WalletAuthorizationFundsRequirement: S.Schema<WalletAuthorizationFundsRequirement>;
3786
+ /** The funding options for this address, one entry per (network, asset) combination the payer could fund to become eligible. Only present when `code` is `insufficient_funds`, and honors the request's `network` and `asset` filters. May be an empty array. */
3787
+ export type IneligibleWalletAuthorizationAddressFundsRequiredList = Array<WalletAuthorizationFundsRequirement>;
3788
+ export declare const IneligibleWalletAuthorizationAddressFundsRequiredList: S.Schema<IneligibleWalletAuthorizationAddressFundsRequiredList>;
3789
+ /** A requested payer wallet address that has no eligible authorization option for this payment session, along with a machine- and human-readable reason. */
3790
+ export interface IneligibleWalletAuthorizationAddress {
3791
+ /** The requested payer wallet address that has no eligible authorization option. */
3792
+ address: string;
3793
+ /** A machine-readable code indicating why this address has no eligible authorization option. The enum is closed — any value the server returns must be listed below. Adding a new code is a deliberate, coordinated API change; clients receiving an undocumented value should treat it as a server violating the spec. */
3794
+ code: IneligibleWalletAuthorizationAddressCode;
3795
+ /** A human-readable, English-language description of why this address has no eligible authorization option. Suitable for surfacing in product UIs — does not contain personally identifiable information or internal infrastructure details. Clients that need localized strings should dispatch on `code` and provide their own translations. */
3796
+ message: string;
3797
+ /** The funding options for this address, one entry per (network, asset) combination the payer could fund to become eligible. Only present when `code` is `insufficient_funds`, and honors the request's `network` and `asset` filters. May be an empty array. */
3798
+ fundsRequired?: IneligibleWalletAuthorizationAddressFundsRequiredList;
3799
+ }
3800
+ export declare const IneligibleWalletAuthorizationAddress: S.Schema<IneligibleWalletAuthorizationAddress>;
3801
+ /** Requested payer addresses that have no eligible authorization option, each with a `code` explaining why. Empty when every requested address can authorize the payment. */
3802
+ export type WalletAuthorizationOptionsResponseIneligibleAddressesList = Array<IneligibleWalletAuthorizationAddress>;
3803
+ export declare const WalletAuthorizationOptionsResponseIneligibleAddressesList: S.Schema<WalletAuthorizationOptionsResponseIneligibleAddressesList>;
3804
+ /** The available wallet authorization options for a payment session. Each option describes one way the payer can authorize the payment from their wallet. Present the options to the payer and let them choose one. Requested addresses with no eligible option appear in `ineligibleAddresses` with a `code` explaining why. */
3805
+ export interface WalletAuthorizationOptionsResponse {
3806
+ /** The available wallet authorization options. */
3807
+ options: WalletAuthorizationOptionsResponseOptionsList;
3808
+ /** Requested payer addresses that have no eligible authorization option, each with a `code` explaining why. Empty when every requested address can authorize the payment. */
3809
+ ineligibleAddresses: WalletAuthorizationOptionsResponseIneligibleAddressesList;
3810
+ }
3811
+ export declare const WalletAuthorizationOptionsResponse: S.Schema<WalletAuthorizationOptionsResponse>;
3812
+ export interface GetWebhookSubscriptionRequest {
2667
3813
  /** Unique identifier for the webhook subscription. */
2668
3814
  subscriptionId: string;
2669
3815
  }
2670
3816
  export declare const GetWebhookSubscriptionRequest: S.Schema<GetWebhookSubscriptionRequest>;
3817
+ export interface GetX402BundleRequest {
3818
+ /** The unique, URL-safe slug identifying the bundle (as returned by `GET /v2/x402/discovery/bundles`). */
3819
+ bundleSlug: string;
3820
+ }
3821
+ export declare const GetX402BundleRequest: S.Schema<GetX402BundleRequest>;
3822
+ /** Communication protocol (e.g., "http", "mcp"). */
3823
+ export type X402DiscoveryResourceType = "http" | "mcp";
3824
+ export declare const X402DiscoveryResourceType: any;
3825
+ /** The version of the x402 protocol. */
3826
+ export type X402Version = 1 | 2;
3827
+ export declare const X402Version: any;
3828
+ /** The scheme of the payment protocol to use. Supported schemes are `exact`, `upto`, and `batch-settlement`. */
3829
+ export type X402V2PaymentRequirementsScheme = "exact" | "upto" | "batch-settlement";
3830
+ export declare const X402V2PaymentRequirementsScheme: any;
3831
+ /** The x402 v2 network identifier in CAIP-2 format. x402 v2 identifies networks by their CAIP-2 chain ID (e.g. `eip155:<chainId>` for EVM networks, `solana:<genesisHash>` for Solana). Supported networks: Base, Polygon, Arbitrum One, World Chain (EVM), and Solana. */
3832
+ export type X402V2Network = "eip155:8453" | "eip155:84532" | "eip155:137" | "eip155:42161" | "eip155:480" | "eip155:4801" | "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp" | "solana:EtWTRABZaYq6iMfeYKouRu166VU2xqa1";
3833
+ export declare const X402V2Network: any;
3834
+ /** The optional additional scheme-specific payment info. */
3835
+ export type X402V2PaymentRequirementsExtraMap = {
3836
+ [key: string]: unknown | undefined;
3837
+ };
3838
+ export declare const X402V2PaymentRequirementsExtraMap: S.Schema<X402V2PaymentRequirementsExtraMap>;
3839
+ /** The x402 v2 payment requirements. Uses CAIP-2 network identifiers and supports `exact`, `upto`, and `batch-settlement` schemes. Carries only the payment fields (no resource metadata — that is in the enclosing `x402V2PaymentPayload.resource`). */
3840
+ export interface X402V2PaymentRequirements {
3841
+ /** The scheme of the payment protocol to use. Supported schemes are `exact`, `upto`, and `batch-settlement`. */
3842
+ scheme: X402V2PaymentRequirementsScheme | (string & {});
3843
+ /** The network of the blockchain to send payment on in CAIP-2 format. */
3844
+ network: X402V2Network | (string & {});
3845
+ /** The asset to pay with. For EVM networks, the asset will be a 0x-prefixed, checksum EVM address. For Solana-based networks, the asset will be a base58-encoded Solana address. */
3846
+ asset: string;
3847
+ /** The amount to pay for the resource in atomic units of the payment asset. */
3848
+ amount: string;
3849
+ /** The destination to pay value to. For EVM networks, payTo will be a 0x-prefixed, checksum EVM address. For Solana-based networks, payTo will be a base58-encoded Solana address. */
3850
+ payTo: string;
3851
+ /** The maximum time in seconds for the resource server to respond. */
3852
+ maxTimeoutSeconds: number;
3853
+ /** The optional additional scheme-specific payment info. */
3854
+ extra?: X402V2PaymentRequirementsExtraMap;
3855
+ }
3856
+ export declare const X402V2PaymentRequirements: S.Schema<X402V2PaymentRequirements>;
3857
+ /** The scheme of the payment protocol to use. Currently, the only supported scheme is `exact`. */
3858
+ export type X402V1PaymentRequirementsScheme = "exact";
3859
+ export declare const X402V1PaymentRequirementsScheme: any;
3860
+ /** The x402 v1 network identifier. x402 v1 uses human-readable network names. Supported networks: Base mainnet and testnet, Solana mainnet and devnet. */
3861
+ export type X402V1Network = "base" | "base-sepolia" | "solana" | "solana-devnet";
3862
+ export declare const X402V1Network: any;
3863
+ /** The optional JSON schema describing the resource output. */
3864
+ export type X402V1PaymentRequirementsOutputSchemaMap = {
3865
+ [key: string]: unknown | undefined;
3866
+ };
3867
+ export declare const X402V1PaymentRequirementsOutputSchemaMap: S.Schema<X402V1PaymentRequirementsOutputSchemaMap>;
3868
+ /** The optional additional scheme-specific payment info. */
3869
+ export type X402V1PaymentRequirementsExtraMap = {
3870
+ [key: string]: unknown | undefined;
3871
+ };
3872
+ export declare const X402V1PaymentRequirementsExtraMap: S.Schema<X402V1PaymentRequirementsExtraMap>;
3873
+ /** The x402 v1 payment requirements. Uses human-readable network names, and carries resource metadata (`resource`, `description`, `mimeType`) alongside the payment fields. The only supported scheme is `exact`. */
3874
+ export interface X402V1PaymentRequirements {
3875
+ /** The scheme of the payment protocol to use. Currently, the only supported scheme is `exact`. */
3876
+ scheme: X402V1PaymentRequirementsScheme;
3877
+ /** The network of the blockchain to send payment on. */
3878
+ network: X402V1Network | (string & {});
3879
+ /** The maximum amount required to pay for the resource in atomic units of the payment asset. */
3880
+ maxAmountRequired: string;
3881
+ /** The URL of the resource to pay for. */
3882
+ resource: string;
3883
+ /** A human-readable description of the resource. */
3884
+ description: string;
3885
+ /** The MIME type of the resource response. */
3886
+ mimeType: string;
3887
+ /** The optional JSON schema describing the resource output. */
3888
+ outputSchema?: X402V1PaymentRequirementsOutputSchemaMap;
3889
+ /** The destination to pay value to. For EVM networks, payTo will be a 0x-prefixed, checksum EVM address. For Solana-based networks, payTo will be a base58-encoded Solana address. */
3890
+ payTo: string;
3891
+ /** The maximum time in seconds for the resource server to respond. */
3892
+ maxTimeoutSeconds: number;
3893
+ /** The asset to pay with. For EVM networks, the asset will be a 0x-prefixed, checksum EVM address. For Solana-based networks, the asset will be a base58-encoded Solana address. */
3894
+ asset: string;
3895
+ /** The optional additional scheme-specific payment info. */
3896
+ extra?: X402V1PaymentRequirementsExtraMap;
3897
+ }
3898
+ export declare const X402V1PaymentRequirements: S.Schema<X402V1PaymentRequirements>;
3899
+ /** The x402 protocol payment requirements that the resource server expects the client's payment payload to meet. */
3900
+ export type X402PaymentRequirements = X402V2PaymentRequirements | X402V1PaymentRequirements;
3901
+ export declare const X402PaymentRequirements: S.Schema<X402PaymentRequirements>;
3902
+ /** Payment requirements accepted by the resource. */
3903
+ export type X402DiscoveryResourceAcceptsList = Array<X402PaymentRequirements>;
3904
+ export declare const X402DiscoveryResourceAcceptsList: S.Schema<X402DiscoveryResourceAcceptsList>;
3905
+ /** Map of x402 protocol extensions supported by the resource, keyed by extension name. */
3906
+ export type X402DiscoveryResourceExtensionsMap = {
3907
+ [key: string]: unknown | undefined;
3908
+ };
3909
+ export declare const X402DiscoveryResourceExtensionsMap: S.Schema<X402DiscoveryResourceExtensionsMap>;
3910
+ /** Quality metrics for a discovered x402 resource. */
3911
+ export interface X402ResourceQuality {
3912
+ /** Total number of paid calls to a resource in the last 30 days. */
3913
+ l30DaysTotalCalls?: number;
3914
+ /** Number of unique payers to a resource in the last 30 days. */
3915
+ l30DaysUniquePayers?: number;
3916
+ /** Timestamp of the most recent paid call to a resource. */
3917
+ lastCalledAt?: string;
3918
+ }
3919
+ export declare const X402ResourceQuality: S.Schema<X402ResourceQuality>;
3920
+ /** Low-cardinality string labels associated with the resource for client-side filtering and display. Values are free-form (no controlled vocabulary) and case-sensitive. Order is not significant and duplicates are not expected. */
3921
+ export type X402DiscoveryResourceTagsList = Array<string>;
3922
+ export declare const X402DiscoveryResourceTagsList: S.Schema<X402DiscoveryResourceTagsList>;
3923
+ /** Slugs of the curated x402 bundles this resource belongs to. A bundle is an ordered, named grouping of curated resources covering a common agent workflow. Present only for Coinbase-curated resources (`curated: true`); omitted when the resource is not curated or is not a member of any bundle. */
3924
+ export type X402DiscoveryResourceBundleSlugsList = Array<string>;
3925
+ export declare const X402DiscoveryResourceBundleSlugsList: S.Schema<X402DiscoveryResourceBundleSlugsList>;
3926
+ /** A single discovered x402 resource. Its fields come from three sources: - **x402 protocol** — negotiated from the resource's payment-required response: `resource`, `type`, `x402Version`, `accepts`, `extensions`. - **Provider-supplied** — metadata published by the resource owner: `description`, `serviceName`, `tags`. - **Coinbase-derived** — added during ingestion and curation: `iconUrl`, `quality`, `lastUpdated`, and (for Coinbase-curated endpoints only) `curated`, `skillUrl` (a Coinbase-authored SKILL.md), and `bundleSlugs`. */
3927
+ export interface X402DiscoveryResource {
3928
+ /** The URL of the resource. */
3929
+ resource: string;
3930
+ /** A human-readable description of the resource. */
3931
+ description?: string;
3932
+ /** Communication protocol (e.g., "http", "mcp"). */
3933
+ type: X402DiscoveryResourceType;
3934
+ x402Version: X402Version;
3935
+ /** Timestamp of the last update. */
3936
+ lastUpdated?: string;
3937
+ /** Payment requirements accepted by the resource. */
3938
+ accepts?: X402DiscoveryResourceAcceptsList;
3939
+ /** Map of x402 protocol extensions supported by the resource, keyed by extension name. */
3940
+ extensions?: X402DiscoveryResourceExtensionsMap;
3941
+ quality?: X402ResourceQuality;
3942
+ /** Display name of the service this resource belongs to. This is a free-form label for grouping and presentation only — it is not a stable identifier, and two resources sharing the same `serviceName` are not guaranteed to belong to the same logical service. */
3943
+ serviceName?: string;
3944
+ /** Low-cardinality string labels associated with the resource for client-side filtering and display. Values are free-form (no controlled vocabulary) and case-sensitive. Order is not significant and duplicates are not expected. */
3945
+ tags?: X402DiscoveryResourceTagsList;
3946
+ /** Slugs of the curated x402 bundles this resource belongs to. A bundle is an ordered, named grouping of curated resources covering a common agent workflow. Present only for Coinbase-curated resources (`curated: true`); omitted when the resource is not curated or is not a member of any bundle. */
3947
+ bundleSlugs?: X402DiscoveryResourceBundleSlugsList;
3948
+ /** URL of a square icon representing the service this resource belongs to. Distinct from a brand logo: this is intended for compact, list-view rendering (favicon-style) and is normalized to a square aspect ratio at ingestion. The image is moderated and re-hosted by Coinbase, so the URL is stable and safe to render directly in clients. Omitted when the provider did not supply an icon, when the supplied icon failed moderation, or when image processing was unavailable at ingestion time. */
3949
+ iconUrl?: string;
3950
+ /** Whether this resource is a Coinbase-curated endpoint. Curated endpoints have passed the partner-admission and verification bar and surface higher in search and listing results. Omitted (treated as `false`) when the resource is not curated. */
3951
+ curated?: boolean;
3952
+ /** URL of the SKILL.md document describing how to use this resource. Omitted when the resource has no associated skill document. */
3953
+ skillUrl?: string;
3954
+ }
3955
+ export declare const X402DiscoveryResource: S.Schema<X402DiscoveryResource>;
3956
+ /** The bundle's member resources in bundle-defined order. Each entry is the full discovery metadata for a curated endpoint belonging to this bundle. Bundle membership is capped at 50 resources. */
3957
+ export type GetX402BundleResponseResourcesList = Array<X402DiscoveryResource>;
3958
+ export declare const GetX402BundleResponseResourcesList: S.Schema<GetX402BundleResponseResourcesList>;
3959
+ export interface GetX402BundleResponse {
3960
+ /** The stable, unique, URL-safe identifier for the bundle. Used as the path segment in `GET /v2/x402/discovery/bundles/{bundleSlug}`. */
3961
+ slug: string;
3962
+ /** The human-readable display name of the bundle. */
3963
+ name: string;
3964
+ /** A human-readable description of the workflow the bundle covers. */
3965
+ description?: string;
3966
+ /** The bundle's member resources in bundle-defined order. Each entry is the full discovery metadata for a curated endpoint belonging to this bundle. Bundle membership is capped at 50 resources. */
3967
+ resources: GetX402BundleResponseResourcesList;
3968
+ }
3969
+ export declare const GetX402BundleResponse: S.Schema<GetX402BundleResponse>;
2671
3970
  /** The type of key being imported. Determines what type of account will be associated for the end user. */
2672
3971
  export type ImportEndUserRequestKeyType = "evm" | "solana";
2673
3972
  export declare const ImportEndUserRequestKeyType: any;
@@ -2734,6 +4033,35 @@ export interface ListBalancesResponse {
2734
4033
  nextPageToken?: string;
2735
4034
  }
2736
4035
  export declare const ListBalancesResponse: S.Schema<ListBalancesResponse>;
4036
+ export interface ListCoinbaseAccountBalancesRequest {
4037
+ }
4038
+ export declare const ListCoinbaseAccountBalancesRequest: S.Schema<ListCoinbaseAccountBalancesRequest>;
4039
+ /** The list of balances. */
4040
+ export type BalancesBalancesList = Array<Balance>;
4041
+ export declare const BalancesBalancesList: S.Schema<BalancesBalancesList>;
4042
+ /** A list of balances for an account. */
4043
+ export interface Balances {
4044
+ /** The list of balances. */
4045
+ balances: BalancesBalancesList;
4046
+ }
4047
+ export declare const Balances: S.Schema<Balances>;
4048
+ export interface ListCustomersRequest {
4049
+ /** The number of resources to return per page. */
4050
+ pageSize?: number;
4051
+ /** The token for the next page of resources, if any. */
4052
+ pageToken?: string;
4053
+ }
4054
+ export declare const ListCustomersRequest: S.Schema<ListCustomersRequest>;
4055
+ /** The list of customers. */
4056
+ export type ListCustomersResponseCustomersList = Array<Customer>;
4057
+ export declare const ListCustomersResponseCustomersList: S.Schema<ListCustomersResponseCustomersList>;
4058
+ export interface ListCustomersResponse {
4059
+ /** The list of customers. */
4060
+ customers: ListCustomersResponseCustomersList;
4061
+ /** The token for the next page of items, if any. */
4062
+ nextPageToken?: string;
4063
+ }
4064
+ export declare const ListCustomersResponse: S.Schema<ListCustomersResponse>;
2737
4065
  /** The name of the supported EVM networks in human-readable format. */
2738
4066
  export type ListDataTokenBalancesRequestNetwork = "base" | "base-sepolia" | "ethereum";
2739
4067
  export declare const ListDataTokenBalancesRequestNetwork: any;
@@ -2791,7 +4119,7 @@ export interface ListDepositDestinationsRequest {
2791
4119
  /** Filter deposit destinations by the cryptocurrency address. */
2792
4120
  address?: string;
2793
4121
  /** Filter deposit destinations by type. */
2794
- type?: DepositDestinationType | (string & {});
4122
+ type?: DepositDestinationType;
2795
4123
  /** Filter deposit destinations by network. */
2796
4124
  network?: string;
2797
4125
  /** The number of resources to return per page. */
@@ -2801,7 +4129,7 @@ export interface ListDepositDestinationsRequest {
2801
4129
  }
2802
4130
  export declare const ListDepositDestinationsRequest: S.Schema<ListDepositDestinationsRequest>;
2803
4131
  /** The list of deposit destinations. */
2804
- export type ListDepositDestinationsResponseDepositDestinationsList = Array<CryptoDepositDestination>;
4132
+ export type ListDepositDestinationsResponseDepositDestinationsList = Array<DepositDestination>;
2805
4133
  export declare const ListDepositDestinationsResponseDepositDestinationsList: S.Schema<ListDepositDestinationsResponseDepositDestinationsList>;
2806
4134
  export interface ListDepositDestinationsResponse {
2807
4135
  /** The list of deposit destinations. */
@@ -2810,6 +4138,29 @@ export interface ListDepositDestinationsResponse {
2810
4138
  nextPageToken?: string;
2811
4139
  }
2812
4140
  export declare const ListDepositDestinationsResponse: S.Schema<ListDepositDestinationsResponse>;
4141
+ export interface ListDisbursementsRequest {
4142
+ /** The number of resources to return per page. */
4143
+ pageSize?: number;
4144
+ /** The token for the next page of resources, if any. */
4145
+ pageToken?: string;
4146
+ /** Filter disbursements by status. */
4147
+ status?: PaymentActionStatus | (string & {});
4148
+ /** Filter disbursements by the source CDP account ID. */
4149
+ sourceAccountId?: string;
4150
+ /** Filter disbursements by the client-supplied external reference ID. */
4151
+ externalReferenceId?: string;
4152
+ }
4153
+ export declare const ListDisbursementsRequest: S.Schema<ListDisbursementsRequest>;
4154
+ /** The list of disbursements. */
4155
+ export type ListDisbursementsResponseDisbursementsList = Array<Disbursement>;
4156
+ export declare const ListDisbursementsResponseDisbursementsList: S.Schema<ListDisbursementsResponseDisbursementsList>;
4157
+ export interface ListDisbursementsResponse {
4158
+ /** The list of disbursements. */
4159
+ disbursements: ListDisbursementsResponseDisbursementsList;
4160
+ /** The token for the next page of items, if any. */
4161
+ nextPageToken?: string;
4162
+ }
4163
+ export declare const ListDisbursementsResponse: S.Schema<ListDisbursementsResponse>;
2813
4164
  export type ListEndUsersRequestSortItem = "createdAt=asc" | "createdAt=desc";
2814
4165
  export declare const ListEndUsersRequestSortItem: any;
2815
4166
  export type ListEndUsersRequestSortList = Array<ListEndUsersRequestSortItem | (string & {})>;
@@ -2891,11 +4242,15 @@ export interface ListEvmTokenBalancesResponse {
2891
4242
  nextPageToken?: string;
2892
4243
  }
2893
4244
  export declare const ListEvmTokenBalancesResponse: S.Schema<ListEvmTokenBalancesResponse>;
4245
+ export type ListFoundationAccountsRequestOwnerList = Array<string>;
4246
+ export declare const ListFoundationAccountsRequestOwnerList: S.Schema<ListFoundationAccountsRequestOwnerList>;
2894
4247
  export interface ListFoundationAccountsRequest {
2895
4248
  /** The number of resources to return per page. */
2896
4249
  pageSize?: number;
2897
4250
  /** The token for the next page of resources, if any. */
2898
4251
  pageToken?: string;
4252
+ /** Filter accounts by owner. Values can be specific Owner IDs or owner type wildcards. Multiple values can be combined as a comma-separated list. **Specific Owner IDs:** * `entity_<uuid>` - Accounts owned by a specific entity * `customer_<uuid>` - Accounts owned by a specific customer **Owner type wildcards:** * `entity` - All entity-owned accounts * `customer` - All customer-owned accounts **Examples:** * `owner=customer_af29...` - A specific customer's accounts * `owner=customer` - All customer accounts * `owner=entity,customer_af29...` - Entity accounts and a specific customer's accounts * When omitted, accounts with any owner are returned. */
4253
+ owner?: ListFoundationAccountsRequestOwnerList;
2899
4254
  /** Filter accounts by account type. When omitted, accounts of any type are returned. Combined with `owner` using AND. */
2900
4255
  type?: AccountType | (string & {});
2901
4256
  }
@@ -2927,6 +4282,99 @@ export interface ListPaymentMethodsResponse {
2927
4282
  nextPageToken?: string;
2928
4283
  }
2929
4284
  export declare const ListPaymentMethodsResponse: S.Schema<ListPaymentMethodsResponse>;
4285
+ export interface ListPaymentSessionAuthorizationsRequest {
4286
+ /** The unique identifier of the payment session. */
4287
+ paymentSessionId: string;
4288
+ /** The number of resources to return per page. */
4289
+ pageSize?: number;
4290
+ /** The token for the next page of resources, if any. */
4291
+ pageToken?: string;
4292
+ }
4293
+ export declare const ListPaymentSessionAuthorizationsRequest: S.Schema<ListPaymentSessionAuthorizationsRequest>;
4294
+ /** The list of authorizations. */
4295
+ export type ListPaymentSessionAuthorizationsResponseAuthorizationsList = Array<Authorization>;
4296
+ export declare const ListPaymentSessionAuthorizationsResponseAuthorizationsList: S.Schema<ListPaymentSessionAuthorizationsResponseAuthorizationsList>;
4297
+ export interface ListPaymentSessionAuthorizationsResponse {
4298
+ /** The list of authorizations. */
4299
+ authorizations: ListPaymentSessionAuthorizationsResponseAuthorizationsList;
4300
+ /** The token for the next page of items, if any. */
4301
+ nextPageToken?: string;
4302
+ }
4303
+ export declare const ListPaymentSessionAuthorizationsResponse: S.Schema<ListPaymentSessionAuthorizationsResponse>;
4304
+ export interface ListPaymentSessionCapturesRequest {
4305
+ /** The unique identifier of the payment session. */
4306
+ paymentSessionId: string;
4307
+ /** The number of resources to return per page. */
4308
+ pageSize?: number;
4309
+ /** The token for the next page of resources, if any. */
4310
+ pageToken?: string;
4311
+ }
4312
+ export declare const ListPaymentSessionCapturesRequest: S.Schema<ListPaymentSessionCapturesRequest>;
4313
+ /** The list of captures. */
4314
+ export type ListPaymentSessionCapturesResponseCapturesList = Array<Capture>;
4315
+ export declare const ListPaymentSessionCapturesResponseCapturesList: S.Schema<ListPaymentSessionCapturesResponseCapturesList>;
4316
+ export interface ListPaymentSessionCapturesResponse {
4317
+ /** The list of captures. */
4318
+ captures: ListPaymentSessionCapturesResponseCapturesList;
4319
+ /** The token for the next page of items, if any. */
4320
+ nextPageToken?: string;
4321
+ }
4322
+ export declare const ListPaymentSessionCapturesResponse: S.Schema<ListPaymentSessionCapturesResponse>;
4323
+ export interface ListPaymentSessionRefundsRequest {
4324
+ /** The unique identifier of the payment session. */
4325
+ paymentSessionId: string;
4326
+ /** The number of resources to return per page. */
4327
+ pageSize?: number;
4328
+ /** The token for the next page of resources, if any. */
4329
+ pageToken?: string;
4330
+ }
4331
+ export declare const ListPaymentSessionRefundsRequest: S.Schema<ListPaymentSessionRefundsRequest>;
4332
+ /** The list of refunds. */
4333
+ export type ListPaymentSessionRefundsResponseRefundsList = Array<Refund>;
4334
+ export declare const ListPaymentSessionRefundsResponseRefundsList: S.Schema<ListPaymentSessionRefundsResponseRefundsList>;
4335
+ export interface ListPaymentSessionRefundsResponse {
4336
+ /** The list of refunds. */
4337
+ refunds: ListPaymentSessionRefundsResponseRefundsList;
4338
+ /** The token for the next page of items, if any. */
4339
+ nextPageToken?: string;
4340
+ }
4341
+ export declare const ListPaymentSessionRefundsResponse: S.Schema<ListPaymentSessionRefundsResponse>;
4342
+ export interface ListPaymentSessionsRequest {
4343
+ /** The number of resources to return per page. */
4344
+ pageSize?: number;
4345
+ /** The token for the next page of resources, if any. */
4346
+ pageToken?: string;
4347
+ }
4348
+ export declare const ListPaymentSessionsRequest: S.Schema<ListPaymentSessionsRequest>;
4349
+ /** The list of payment sessions. */
4350
+ export type ListPaymentSessionsResponsePaymentSessionsList = Array<PaymentSession>;
4351
+ export declare const ListPaymentSessionsResponsePaymentSessionsList: S.Schema<ListPaymentSessionsResponsePaymentSessionsList>;
4352
+ export interface ListPaymentSessionsResponse {
4353
+ /** The list of payment sessions. */
4354
+ paymentSessions: ListPaymentSessionsResponsePaymentSessionsList;
4355
+ /** The token for the next page of items, if any. */
4356
+ nextPageToken?: string;
4357
+ }
4358
+ export declare const ListPaymentSessionsResponse: S.Schema<ListPaymentSessionsResponse>;
4359
+ export interface ListPaymentSessionVoidsRequest {
4360
+ /** The unique identifier of the payment session. */
4361
+ paymentSessionId: string;
4362
+ /** The number of resources to return per page. */
4363
+ pageSize?: number;
4364
+ /** The token for the next page of resources, if any. */
4365
+ pageToken?: string;
4366
+ }
4367
+ export declare const ListPaymentSessionVoidsRequest: S.Schema<ListPaymentSessionVoidsRequest>;
4368
+ /** The list of voids. */
4369
+ export type ListPaymentSessionVoidsResponseVoidsList = Array<Void>;
4370
+ export declare const ListPaymentSessionVoidsResponseVoidsList: S.Schema<ListPaymentSessionVoidsResponseVoidsList>;
4371
+ export interface ListPaymentSessionVoidsResponse {
4372
+ /** The list of voids. */
4373
+ voids: ListPaymentSessionVoidsResponseVoidsList;
4374
+ /** The token for the next page of items, if any. */
4375
+ nextPageToken?: string;
4376
+ }
4377
+ export declare const ListPaymentSessionVoidsResponse: S.Schema<ListPaymentSessionVoidsResponse>;
2930
4378
  export type ListPoliciesRequestScope = "project" | "account";
2931
4379
  export declare const ListPoliciesRequestScope: any;
2932
4380
  export interface ListPoliciesRequest {
@@ -3105,9 +4553,9 @@ export interface ListTransfersRequest {
3105
4553
  updatedAfter?: string;
3106
4554
  /** Filter transfers to those updated at or before this datetime (inclusive). ISO 8601 format. */
3107
4555
  updatedBefore?: string;
3108
- /** Filter transfers by source asset symbol (e.g., `usd`, `usdc`). */
4556
+ /** Filter transfers by source asset symbol (e.g., `usd`, `usdc`, `eurc`, `eur`). */
3109
4557
  sourceAsset?: string;
3110
- /** Filter transfers by target asset symbol (e.g., `usdc`, `eth`). */
4558
+ /** Filter transfers by target asset symbol (e.g., `usdc`, `eurc`, `usd`, `eur`). */
3111
4559
  targetAsset?: string;
3112
4560
  /** Filter transfers by the on-chain address of the source. */
3113
4561
  sourceAddress?: string;
@@ -3204,6 +4652,28 @@ export interface ListWebhookSubscriptionsResponse {
3204
4652
  nextPageToken?: string;
3205
4653
  }
3206
4654
  export declare const ListWebhookSubscriptionsResponse: S.Schema<ListWebhookSubscriptionsResponse>;
4655
+ export interface ListX402BundlesRequest {
4656
+ }
4657
+ export declare const ListX402BundlesRequest: S.Schema<ListX402BundlesRequest>;
4658
+ /** A curated workflow bundle: an ordered, named grouping of curated x402 resources that together cover a common agent workflow. This metadata shape is returned by the bundle list endpoint; the per-bundle detail endpoint additionally returns the joined member resources. */
4659
+ export interface X402Bundle {
4660
+ /** The stable, unique, URL-safe identifier for the bundle. Used as the path segment in `GET /v2/x402/discovery/bundles/{bundleSlug}`. */
4661
+ slug: string;
4662
+ /** The human-readable display name of the bundle. */
4663
+ name: string;
4664
+ /** A human-readable description of the workflow the bundle covers. */
4665
+ description?: string;
4666
+ }
4667
+ export declare const X402Bundle: S.Schema<X402Bundle>;
4668
+ /** The list of available curated bundles. This list is empty when no bundles are defined. */
4669
+ export type X402BundlesResponseBundlesList = Array<X402Bundle>;
4670
+ export declare const X402BundlesResponseBundlesList: S.Schema<X402BundlesResponseBundlesList>;
4671
+ /** Response containing the available curated x402 bundles. Unlike x402 protocol discovery and search responses, bundle responses omit `x402Version` because bundles are CDP-curated metadata, not protocol negotiation payloads. */
4672
+ export interface X402BundlesResponse {
4673
+ /** The list of available curated bundles. This list is empty when no bundles are defined. */
4674
+ bundles: X402BundlesResponseBundlesList;
4675
+ }
4676
+ export declare const X402BundlesResponse: S.Schema<X402BundlesResponse>;
3207
4677
  export interface ListX402DiscoveryMerchantRequest {
3208
4678
  /** The merchant's payment address to look up. This is the onchain address that payment requirements route funds to. */
3209
4679
  payTo: string;
@@ -3213,131 +4683,6 @@ export interface ListX402DiscoveryMerchantRequest {
3213
4683
  offset?: number;
3214
4684
  }
3215
4685
  export declare const ListX402DiscoveryMerchantRequest: S.Schema<ListX402DiscoveryMerchantRequest>;
3216
- /** The version of the x402 protocol. */
3217
- export type X402Version = 1 | 2;
3218
- export declare const X402Version: any;
3219
- /** Communication protocol (e.g., "http", "mcp"). */
3220
- export type X402DiscoveryResourceType = "http" | "mcp";
3221
- export declare const X402DiscoveryResourceType: any;
3222
- /** The scheme of the payment protocol to use. Supported schemes are `exact`, `upto`, and `batch-settlement`. */
3223
- export type X402V2PaymentRequirementsScheme = "exact" | "upto" | "batch-settlement";
3224
- export declare const X402V2PaymentRequirementsScheme: any;
3225
- /** The x402 v2 network identifier in CAIP-2 format. x402 v2 identifies networks by their CAIP-2 chain ID (e.g. `eip155:<chainId>` for EVM networks, `solana:<genesisHash>` for Solana). Supported networks: Base, Polygon, Arbitrum One, World Chain (EVM), and Solana. */
3226
- export type X402V2Network = "eip155:8453" | "eip155:84532" | "eip155:137" | "eip155:42161" | "eip155:480" | "eip155:4801" | "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp" | "solana:EtWTRABZaYq6iMfeYKouRu166VU2xqa1";
3227
- export declare const X402V2Network: any;
3228
- /** The optional additional scheme-specific payment info. */
3229
- export type X402V2PaymentRequirementsExtraMap = {
3230
- [key: string]: unknown | undefined;
3231
- };
3232
- export declare const X402V2PaymentRequirementsExtraMap: S.Schema<X402V2PaymentRequirementsExtraMap>;
3233
- /** The x402 v2 payment requirements. Uses CAIP-2 network identifiers and supports `exact`, `upto`, and `batch-settlement` schemes. Carries only the payment fields (no resource metadata — that is in the enclosing `x402V2PaymentPayload.resource`). */
3234
- export interface X402V2PaymentRequirements {
3235
- /** The scheme of the payment protocol to use. Supported schemes are `exact`, `upto`, and `batch-settlement`. */
3236
- scheme: X402V2PaymentRequirementsScheme | (string & {});
3237
- /** The network of the blockchain to send payment on in CAIP-2 format. */
3238
- network: X402V2Network | (string & {});
3239
- /** The asset to pay with. For EVM networks, the asset will be a 0x-prefixed, checksum EVM address. For Solana-based networks, the asset will be a base58-encoded Solana address. */
3240
- asset: string;
3241
- /** The amount to pay for the resource in atomic units of the payment asset. */
3242
- amount: string;
3243
- /** The destination to pay value to. For EVM networks, payTo will be a 0x-prefixed, checksum EVM address. For Solana-based networks, payTo will be a base58-encoded Solana address. */
3244
- payTo: string;
3245
- /** The maximum time in seconds for the resource server to respond. */
3246
- maxTimeoutSeconds: number;
3247
- /** The optional additional scheme-specific payment info. */
3248
- extra?: X402V2PaymentRequirementsExtraMap;
3249
- }
3250
- export declare const X402V2PaymentRequirements: S.Schema<X402V2PaymentRequirements>;
3251
- /** The scheme of the payment protocol to use. Currently, the only supported scheme is `exact`. */
3252
- export type X402V1PaymentRequirementsScheme = "exact";
3253
- export declare const X402V1PaymentRequirementsScheme: any;
3254
- /** The x402 v1 network identifier. x402 v1 uses human-readable network names. Supported networks: Base mainnet and testnet, Solana mainnet and devnet. */
3255
- export type X402V1Network = "base" | "base-sepolia" | "solana" | "solana-devnet";
3256
- export declare const X402V1Network: any;
3257
- /** The optional JSON schema describing the resource output. */
3258
- export type X402V1PaymentRequirementsOutputSchemaMap = {
3259
- [key: string]: unknown | undefined;
3260
- };
3261
- export declare const X402V1PaymentRequirementsOutputSchemaMap: S.Schema<X402V1PaymentRequirementsOutputSchemaMap>;
3262
- /** The optional additional scheme-specific payment info. */
3263
- export type X402V1PaymentRequirementsExtraMap = {
3264
- [key: string]: unknown | undefined;
3265
- };
3266
- export declare const X402V1PaymentRequirementsExtraMap: S.Schema<X402V1PaymentRequirementsExtraMap>;
3267
- /** The x402 v1 payment requirements. Uses human-readable network names, and carries resource metadata (`resource`, `description`, `mimeType`) alongside the payment fields. The only supported scheme is `exact`. */
3268
- export interface X402V1PaymentRequirements {
3269
- /** The scheme of the payment protocol to use. Currently, the only supported scheme is `exact`. */
3270
- scheme: X402V1PaymentRequirementsScheme;
3271
- /** The network of the blockchain to send payment on. */
3272
- network: X402V1Network | (string & {});
3273
- /** The maximum amount required to pay for the resource in atomic units of the payment asset. */
3274
- maxAmountRequired: string;
3275
- /** The URL of the resource to pay for. */
3276
- resource: string;
3277
- /** A human-readable description of the resource. */
3278
- description: string;
3279
- /** The MIME type of the resource response. */
3280
- mimeType: string;
3281
- /** The optional JSON schema describing the resource output. */
3282
- outputSchema?: X402V1PaymentRequirementsOutputSchemaMap;
3283
- /** The destination to pay value to. For EVM networks, payTo will be a 0x-prefixed, checksum EVM address. For Solana-based networks, payTo will be a base58-encoded Solana address. */
3284
- payTo: string;
3285
- /** The maximum time in seconds for the resource server to respond. */
3286
- maxTimeoutSeconds: number;
3287
- /** The asset to pay with. For EVM networks, the asset will be a 0x-prefixed, checksum EVM address. For Solana-based networks, the asset will be a base58-encoded Solana address. */
3288
- asset: string;
3289
- /** The optional additional scheme-specific payment info. */
3290
- extra?: X402V1PaymentRequirementsExtraMap;
3291
- }
3292
- export declare const X402V1PaymentRequirements: S.Schema<X402V1PaymentRequirements>;
3293
- /** The x402 protocol payment requirements that the resource server expects the client's payment payload to meet. */
3294
- export type X402PaymentRequirements = X402V2PaymentRequirements | X402V1PaymentRequirements;
3295
- export declare const X402PaymentRequirements: S.Schema<X402PaymentRequirements>;
3296
- /** Payment requirements accepted by the resource. */
3297
- export type X402DiscoveryResourceAcceptsList = Array<X402PaymentRequirements>;
3298
- export declare const X402DiscoveryResourceAcceptsList: S.Schema<X402DiscoveryResourceAcceptsList>;
3299
- /** Map of x402 protocol extensions supported by the resource, keyed by extension name. */
3300
- export type X402DiscoveryResourceExtensionsMap = {
3301
- [key: string]: unknown | undefined;
3302
- };
3303
- export declare const X402DiscoveryResourceExtensionsMap: S.Schema<X402DiscoveryResourceExtensionsMap>;
3304
- /** Quality metrics for a discovered x402 resource. */
3305
- export interface X402ResourceQuality {
3306
- /** Total number of paid calls to a resource in the last 30 days. */
3307
- l30DaysTotalCalls?: number;
3308
- /** Number of unique payers to a resource in the last 30 days. */
3309
- l30DaysUniquePayers?: number;
3310
- /** Timestamp of the most recent paid call to a resource. */
3311
- lastCalledAt?: string;
3312
- }
3313
- export declare const X402ResourceQuality: S.Schema<X402ResourceQuality>;
3314
- /** Provider-supplied, low-cardinality string labels associated with the resource for client-side filtering and display. Values are free-form (no controlled vocabulary) and case-sensitive. Order is not significant and duplicates are not expected. */
3315
- export type X402DiscoveryResourceTagsList = Array<string>;
3316
- export declare const X402DiscoveryResourceTagsList: S.Schema<X402DiscoveryResourceTagsList>;
3317
- /** A single discovered x402 resource. */
3318
- export interface X402DiscoveryResource {
3319
- /** The URL of the resource. */
3320
- resource: string;
3321
- /** A human-readable description of the resource. */
3322
- description?: string;
3323
- /** Communication protocol (e.g., "http", "mcp"). */
3324
- type: X402DiscoveryResourceType;
3325
- x402Version: X402Version;
3326
- /** Timestamp of the last update. */
3327
- lastUpdated?: string;
3328
- /** Payment requirements accepted by the resource. */
3329
- accepts?: X402DiscoveryResourceAcceptsList;
3330
- /** Map of x402 protocol extensions supported by the resource, keyed by extension name. */
3331
- extensions?: X402DiscoveryResourceExtensionsMap;
3332
- quality?: X402ResourceQuality;
3333
- /** Provider-supplied display name of the service this resource belongs to. This is a free-form label for grouping and presentation only — it is not a stable identifier, and two resources sharing the same `serviceName` are not guaranteed to belong to the same logical service. */
3334
- serviceName?: string;
3335
- /** Provider-supplied, low-cardinality string labels associated with the resource for client-side filtering and display. Values are free-form (no controlled vocabulary) and case-sensitive. Order is not significant and duplicates are not expected. */
3336
- tags?: X402DiscoveryResourceTagsList;
3337
- /** URL of a square icon representing the service this resource belongs to. Distinct from a brand logo: this is intended for compact, list-view rendering (favicon-style) and is normalized to a square aspect ratio at ingestion. The image is moderated and re-hosted by Coinbase, so the URL is stable and safe to render directly in clients. Omitted when the provider did not supply an icon, when the supplied icon failed moderation, or when image processing was unavailable at ingestion time. */
3338
- iconUrl?: string;
3339
- }
3340
- export declare const X402DiscoveryResource: S.Schema<X402DiscoveryResource>;
3341
4686
  /** List of discovered x402 resources associated with the merchant's payTo address. This list is empty when no active resources are found. */
3342
4687
  export type X402DiscoveryMerchantResponseResourcesList = Array<X402DiscoveryResource>;
3343
4688
  export declare const X402DiscoveryMerchantResponseResourcesList: S.Schema<X402DiscoveryMerchantResponseResourcesList>;
@@ -3413,65 +4758,6 @@ export interface LookupEndUserResponse {
3413
4758
  endUsers: LookupEndUserResponseEndUsersList;
3414
4759
  }
3415
4760
  export declare const LookupEndUserResponse: S.Schema<LookupEndUserResponse>;
3416
- /** JSON-RPC version, must be "2.0". */
3417
- export type PostX402DiscoveryMcpRequestJsonrpc = "2.0";
3418
- export declare const PostX402DiscoveryMcpRequestJsonrpc: any;
3419
- /** Request identifier. */
3420
- export type PostX402DiscoveryMcpRequestId = string | number;
3421
- export declare const PostX402DiscoveryMcpRequestId: S.Schema<PostX402DiscoveryMcpRequestId>;
3422
- /** Optional parameters for the method. */
3423
- export type PostX402DiscoveryMcpRequestParamsMap = {
3424
- [key: string]: unknown | undefined;
3425
- };
3426
- export declare const PostX402DiscoveryMcpRequestParamsMap: S.Schema<PostX402DiscoveryMcpRequestParamsMap>;
3427
- export interface PostX402DiscoveryMcpRequest {
3428
- /** JSON-RPC version, must be "2.0". */
3429
- jsonrpc: PostX402DiscoveryMcpRequestJsonrpc | (string & {});
3430
- /** Request identifier. */
3431
- id?: PostX402DiscoveryMcpRequestId;
3432
- /** The MCP method to invoke. */
3433
- method: string;
3434
- /** Optional parameters for the method. */
3435
- params?: PostX402DiscoveryMcpRequestParamsMap;
3436
- }
3437
- export declare const PostX402DiscoveryMcpRequest: S.Schema<PostX402DiscoveryMcpRequest>;
3438
- /** JSON-RPC version. */
3439
- export type X402McpResponseJsonrpc = "2.0";
3440
- export declare const X402McpResponseJsonrpc: any;
3441
- /** Request identifier (matches the request ID, null for notifications). */
3442
- export type X402McpResponseId = string | number;
3443
- export declare const X402McpResponseId: S.Schema<X402McpResponseId>;
3444
- /** The result of the method call (present on success). */
3445
- export type X402McpResponseResultMap = {
3446
- [key: string]: unknown | undefined;
3447
- };
3448
- export declare const X402McpResponseResultMap: S.Schema<X402McpResponseResultMap>;
3449
- /** Additional error data. */
3450
- export type X402McpErrorDataMap = {
3451
- [key: string]: unknown | undefined;
3452
- };
3453
- export declare const X402McpErrorDataMap: S.Schema<X402McpErrorDataMap>;
3454
- /** JSON-RPC 2.0 error object. */
3455
- export interface X402McpError {
3456
- /** Error code. */
3457
- code: number;
3458
- /** Error message. */
3459
- message: string;
3460
- /** Additional error data. */
3461
- data?: X402McpErrorDataMap;
3462
- }
3463
- export declare const X402McpError: S.Schema<X402McpError>;
3464
- /** A JSON-RPC 2.0 response for the Model Context Protocol. */
3465
- export interface X402McpResponse {
3466
- /** JSON-RPC version. */
3467
- jsonrpc: X402McpResponseJsonrpc;
3468
- /** Request identifier (matches the request ID, null for notifications). */
3469
- id?: X402McpResponseId | null;
3470
- /** The result of the method call (present on success). */
3471
- result?: X402McpResponseResultMap;
3472
- error?: X402McpError;
3473
- }
3474
- export declare const X402McpResponse: S.Schema<X402McpResponse>;
3475
4761
  /** The list of calls to make from the Smart Account. */
3476
4762
  export type PrepareAndSendUserOperationRequestCallsList = Array<EvmCall>;
3477
4763
  export declare const PrepareAndSendUserOperationRequestCallsList: S.Schema<PrepareAndSendUserOperationRequestCallsList>;
@@ -3507,6 +4793,22 @@ export interface PrepareUserOperationRequest {
3507
4793
  dataSuffix?: string;
3508
4794
  }
3509
4795
  export declare const PrepareUserOperationRequest: S.Schema<PrepareUserOperationRequest>;
4796
+ export interface RefundPaymentSessionRequest {
4797
+ /** The unique identifier of the payment session. */
4798
+ paymentSessionId: string;
4799
+ /** The source from which to fund the refund. Can be a CDP account or an onchain address. */
4800
+ source: RefundSource;
4801
+ /** A decimal representation of the amount to refund, denominated in the session's `asset`. If omitted, the full remaining refundable amount is refunded. */
4802
+ amount?: string;
4803
+ /** The reason for the refund. */
4804
+ reason?: string;
4805
+ metadata?: Metadata;
4806
+ /** An optional merchant-provided internal identifier for this refund, from the merchant's own system—not visible to the payer. */
4807
+ externalReferenceId?: string;
4808
+ /** Optional customer-facing display data for this refund, shown to the payer. Falls back to the session's `orderCode` when `referenceCode` is omitted. */
4809
+ customerDisplay?: OperationCustomerDisplay;
4810
+ }
4811
+ export declare const RefundPaymentSessionRequest: S.Schema<RefundPaymentSessionRequest>;
3510
4812
  /** The network to request funds from. */
3511
4813
  export type RequestEvmFaucetRequestNetwork = "base-sepolia" | "ethereum-sepolia" | "ethereum-hoodi";
3512
4814
  export declare const RequestEvmFaucetRequestNetwork: any;
@@ -3527,6 +4829,9 @@ export interface RequestEvmFaucetResponse {
3527
4829
  transactionHash: string;
3528
4830
  }
3529
4831
  export declare const RequestEvmFaucetResponse: S.Schema<RequestEvmFaucetResponse>;
4832
+ /** The interaction mode for the limit upgrade request: - `api`: Submit identity fields directly in the API request. - `embedded`: Return a Coinbase-hosted URL where the user enters identity fields. */
4833
+ export type OnrampLimitUpgradeInteractionMode = "api" | "embedded";
4834
+ export declare const OnrampLimitUpgradeInteractionMode: any;
3530
4835
  /** Populate the properties that correspond to the `fields` array from the user's `OnrampLimitUpgradeOption`. */
3531
4836
  export interface OnrampLimitUpgradeIdentityFields {
3532
4837
  /** Last 4 digits of the Social Security Number (no dashes or spaces). */
@@ -3539,13 +4844,20 @@ export interface RequestLimitsUpgradeRequest {
3539
4844
  /** The user identifier value. For `phone_number` type, this must be in E.164 format. */
3540
4845
  userId: string;
3541
4846
  userIdType: OnrampUserIdType | (string & {});
3542
- /** Populate the properties that correspond to the `fields` array from the user's `OnrampLimitUpgradeOption`. These fields are required; a request without them is rejected. */
4847
+ /** The interaction mode for the limit upgrade request. Defaults to `api`. */
4848
+ interactionMode?: OnrampLimitUpgradeInteractionMode | (string & {});
4849
+ /** Populate the properties that correspond to the `fields` array from the user's `OnrampLimitUpgradeOption`. Required in `api` mode. Omit in `embedded` mode — the user enters their identity information on the Coinbase-hosted upgrade page (see `interactionMode`), so any value sent here is rejected. */
3543
4850
  fields?: OnrampLimitUpgradeIdentityFields;
3544
4851
  }
3545
4852
  export declare const RequestLimitsUpgradeRequest: S.Schema<RequestLimitsUpgradeRequest>;
3546
- export interface RequestLimitsUpgradeResponse {
4853
+ /** A Coinbase-hosted URL for collecting limit upgrade identity fields. */
4854
+ export interface OnrampLimitUpgradeEmbeddedResponse {
4855
+ /** The Coinbase-hosted URL where the user enters identity information for the limit upgrade. Treat the session token in this URL as opaque. */
4856
+ upgradeUrl: string;
4857
+ /** The time at which the hosted limit upgrade URL expires. Request a new upgrade URL after this time. */
4858
+ expiresAt: string;
3547
4859
  }
3548
- export declare const RequestLimitsUpgradeResponse: S.Schema<RequestLimitsUpgradeResponse>;
4860
+ export declare const OnrampLimitUpgradeEmbeddedResponse: S.Schema<OnrampLimitUpgradeEmbeddedResponse>;
3549
4861
  /** The token to request funds for. */
3550
4862
  export type RequestSolanaFaucetRequestToken = "sol" | "usdc" | "cbtusd";
3551
4863
  export declare const RequestSolanaFaucetRequestToken: any;
@@ -3661,6 +4973,10 @@ export interface OnchainDataResult {
3661
4973
  export declare const OnchainDataResult: S.Schema<OnchainDataResult>;
3662
4974
  export type SearchX402ResourcesRequestExtensionsList = Array<string>;
3663
4975
  export declare const SearchX402ResourcesRequestExtensionsList: S.Schema<SearchX402ResourcesRequestExtensionsList>;
4976
+ export type SearchX402ResourcesRequestTagsList = Array<string>;
4977
+ export declare const SearchX402ResourcesRequestTagsList: S.Schema<SearchX402ResourcesRequestTagsList>;
4978
+ export type SearchX402ResourcesRequestBundleSlugsList = Array<string>;
4979
+ export declare const SearchX402ResourcesRequestBundleSlugsList: S.Schema<SearchX402ResourcesRequestBundleSlugsList>;
3664
4980
  export interface SearchX402ResourcesRequest {
3665
4981
  /** Full-text or semantic search query to find matching resources. */
3666
4982
  query?: string;
@@ -3678,6 +4994,12 @@ export interface SearchX402ResourcesRequest {
3678
4994
  maxUsdPrice?: string;
3679
4995
  /** Filter results to resources that support the specified protocol extensions. Can be specified multiple times to filter by multiple extensions. */
3680
4996
  extensions?: SearchX402ResourcesRequestExtensionsList;
4997
+ /** Filter results to resources published with any of the specified provider tags (case-sensitive exact match). Can be specified multiple times to filter by multiple tags; a resource matches if it carries at least one of the supplied tags (OR). */
4998
+ tags?: SearchX402ResourcesRequestTagsList;
4999
+ /** Filter results to resources that belong to any of the specified curated bundles (by bundle slug). Can be specified multiple times to filter by multiple bundles; a resource matches if it belongs to at least one of the supplied bundles (OR). */
5000
+ bundleSlugs?: SearchX402ResourcesRequestBundleSlugsList;
5001
+ /** When `true`, restrict results to Coinbase-curated resources (those with `curated: true`). When `false` or omitted, both curated and non-curated resources are returned. */
5002
+ curatedOnly?: boolean;
3681
5003
  /** Maximum number of resources to return. Must be a positive integer no greater than 20. Defaults to 20. */
3682
5004
  limit?: number;
3683
5005
  }
@@ -4192,7 +5514,7 @@ export interface X402V1PaymentPayload {
4192
5514
  payload: X402V1PaymentPayloadPayload;
4193
5515
  }
4194
5516
  export declare const X402V1PaymentPayload: S.Schema<X402V1PaymentPayload>;
4195
- /** The x402 protocol payment payload that the client attaches to x402-paid API requests to the resource server in the X-PAYMENT header. For EVM networks, smart account signatures can be longer than 65 bytes. */
5517
+ /** The x402 protocol payment payload that the client attaches to x402-paid API requests to the resource server in the PAYMENT-SIGNATURE header. For EVM networks, smart account signatures can be longer than 65 bytes. */
4196
5518
  export type X402PaymentPayload = X402V2PaymentPayload | X402V1PaymentPayload;
4197
5519
  export declare const X402PaymentPayload: S.Schema<X402PaymentPayload>;
4198
5520
  export interface SettleX402PaymentRequest {
@@ -4202,7 +5524,7 @@ export interface SettleX402PaymentRequest {
4202
5524
  }
4203
5525
  export declare const SettleX402PaymentRequest: S.Schema<SettleX402PaymentRequest>;
4204
5526
  /** The reason the payment settlement errored on the x402 protocol. */
4205
- export type X402SettleErrorReason = "insufficient_funds" | "invalid_scheme" | "invalid_network" | "invalid_x402_version" | "invalid_payment_requirements" | "invalid_payload" | "invalid_exact_evm_payload_authorization_value" | "invalid_exact_evm_payload_authorization_value_too_low" | "invalid_exact_evm_payload_authorization_valid_after" | "invalid_exact_evm_payload_authorization_valid_before" | "invalid_exact_evm_payload_authorization_typed_data_message" | "invalid_exact_evm_payload_authorization_from_address_kyt" | "invalid_exact_evm_payload_authorization_to_address_kyt" | "invalid_exact_evm_payload_signature" | "invalid_exact_evm_payload_signature_address" | "invalid_exact_evm_permit2_payload_allowance_required" | "invalid_exact_evm_permit2_payload_signature" | "invalid_exact_evm_permit2_payload_deadline" | "invalid_exact_evm_permit2_payload_valid_after" | "invalid_exact_evm_permit2_payload_spender" | "invalid_exact_evm_permit2_payload_recipient" | "invalid_exact_evm_permit2_payload_amount" | "invalid_exact_svm_payload_transaction" | "invalid_exact_svm_payload_transaction_amount_mismatch" | "invalid_exact_svm_payload_transaction_create_ata_instruction" | "invalid_exact_svm_payload_transaction_create_ata_instruction_incorrect_payee" | "invalid_exact_svm_payload_transaction_create_ata_instruction_incorrect_asset" | "invalid_exact_svm_payload_transaction_instructions" | "invalid_exact_svm_payload_transaction_instructions_length" | "invalid_exact_svm_payload_transaction_instructions_compute_limit_instruction" | "invalid_exact_svm_payload_transaction_instructions_compute_price_instruction" | "invalid_exact_svm_payload_transaction_instructions_compute_price_instruction_too_high" | "invalid_exact_svm_payload_transaction_instruction_not_spl_token_transfer_checked" | "invalid_exact_svm_payload_transaction_instruction_not_token_2022_transfer_checked" | "invalid_exact_svm_payload_transaction_not_a_transfer_instruction" | "invalid_exact_svm_payload_transaction_cannot_derive_receiver_ata" | "invalid_exact_svm_payload_transaction_receiver_ata_not_found" | "invalid_exact_svm_payload_transaction_sender_ata_not_found" | "invalid_exact_svm_payload_transaction_simulation_failed" | "invalid_exact_svm_payload_transaction_transfer_to_incorrect_ata" | "invalid_exact_svm_payload_transaction_fee_payer_included_in_instruction_accounts" | "invalid_exact_svm_payload_transaction_fee_payer_transferring_funds" | "settle_exact_evm_transaction_confirmation_timed_out" | "settle_exact_node_failure" | "settle_exact_failed_onchain" | "settle_exact_svm_block_height_exceeded" | "settle_exact_svm_transaction_confirmation_timed_out" | "invalid_batch_settlement_evm_unknown_settle_action" | "invalid_batch_settlement_evm_claim_payload" | "invalid_batch_settlement_evm_settle_payload" | "invalid_batch_settlement_evm_authorizer_address_mismatch" | "invalid_batch_settlement_evm_claim_simulation_failed" | "invalid_batch_settlement_evm_claim_transaction_failed" | "invalid_batch_settlement_evm_deposit_transaction_failed" | "invalid_batch_settlement_evm_refund_simulation_failed" | "invalid_batch_settlement_evm_refund_transaction_failed" | "invalid_batch_settlement_evm_settle_simulation_failed" | "invalid_batch_settlement_evm_settle_transaction_failed" | "invalid_batch_settlement_evm_transaction_reverted" | "invalid_batch_settlement_evm_wait_for_receipt_failed" | "invalid_batch_settlement_evm_erc20_approval_broadcast_failed" | "invalid_batch_settlement_evm_channel_id_mismatch" | "invalid_batch_settlement_evm_channel_state_read_failed" | "invalid_batch_settlement_evm_cumulative_below_claimed" | "invalid_batch_settlement_evm_cumulative_exceeds_balance" | "invalid_batch_settlement_evm_eip2612_amount_mismatch" | "invalid_batch_settlement_evm_eip2612_asset_mismatch" | "invalid_batch_settlement_evm_eip2612_deadline_expired" | "invalid_batch_settlement_evm_eip2612_invalid_format" | "invalid_batch_settlement_evm_eip2612_invalid_signature" | "invalid_batch_settlement_evm_eip2612_owner_mismatch" | "invalid_batch_settlement_evm_eip2612_spender_mismatch" | "invalid_batch_settlement_evm_erc20_approval_asset_mismatch" | "invalid_batch_settlement_evm_erc20_approval_from_mismatch" | "invalid_batch_settlement_evm_erc20_approval_invalid_format" | "invalid_batch_settlement_evm_erc20_approval_unavailable" | "invalid_batch_settlement_evm_erc20_approval_wrong_spender" | "invalid_batch_settlement_evm_erc3009_authorization_required" | "invalid_batch_settlement_evm_insufficient_balance" | "invalid_batch_settlement_evm_deposit_payload" | "invalid_batch_settlement_evm_receive_authorization_signature" | "invalid_batch_settlement_evm_refund_payload" | "invalid_batch_settlement_evm_voucher_payload" | "invalid_batch_settlement_evm_voucher_signature" | "invalid_batch_settlement_evm_missing_eip712_domain" | "invalid_batch_settlement_evm_payload_authorization_valid_after" | "invalid_batch_settlement_evm_payload_authorization_valid_before" | "invalid_batch_settlement_evm_permit2_allowance_required" | "invalid_batch_settlement_evm_permit2_amount_mismatch" | "invalid_batch_settlement_evm_permit2_authorization_required" | "invalid_batch_settlement_evm_permit2_deadline_expired" | "invalid_batch_settlement_evm_permit2_invalid_signature" | "invalid_batch_settlement_evm_permit2_invalid_spender" | "invalid_batch_settlement_evm_receiver_authorizer_mismatch" | "invalid_batch_settlement_evm_receiver_mismatch" | "invalid_batch_settlement_evm_rpc_read_failed" | "invalid_batch_settlement_evm_token_mismatch" | "invalid_batch_settlement_evm_withdraw_delay_mismatch" | "invalid_batch_settlement_evm_withdraw_delay_out_of_range" | "invalid_batch_settlement_evm_scheme" | "invalid_batch_settlement_evm_network_mismatch" | "invalid_batch_settlement_evm_payload_type" | "invalid_batch_settlement_evm_channel_not_found" | "invalid_batch_settlement_evm_deposit_simulation_failed" | "invalid_exact_evm_scheme" | "invalid_exact_evm_network_mismatch" | "invalid_exact_evm_payload" | "invalid_exact_evm_payload_missing_signature" | "invalid_exact_evm_failed_to_get_network_config" | "invalid_exact_evm_missing_eip712_domain" | "invalid_exact_evm_recipient_mismatch" | "invalid_exact_evm_authorization_value" | "invalid_exact_evm_required_amount" | "invalid_exact_evm_payload_authorization_value_mismatch" | "invalid_exact_evm_failed_to_check_nonce" | "invalid_exact_evm_nonce_already_used" | "invalid_exact_evm_failed_to_get_balance" | "invalid_exact_evm_insufficient_balance" | "invalid_exact_evm_signature_format" | "invalid_exact_evm_failed_to_verify_signature" | "invalid_exact_evm_signature" | "invalid_exact_evm_token_name_mismatch" | "invalid_exact_evm_token_version_mismatch" | "invalid_exact_evm_eip3009_not_supported" | "invalid_exact_evm_transaction_simulation_failed" | "invalid_exact_evm_verification_failed" | "invalid_exact_evm_failed_to_parse_signature" | "invalid_exact_evm_failed_to_check_deployment" | "invalid_exact_evm_failed_to_execute_transfer" | "invalid_exact_evm_failed_to_get_receipt" | "invalid_exact_evm_transaction_failed" | "invalid_exact_evm_payload_undeployed_smart_wallet" | "smart_wallet_deployment_failed" | "unsupported_payload_type" | "invalid_erc20_approval_extension_format" | "erc20_approval_tx_failed" | "erc20_approval_from_mismatch" | "erc20_approval_asset_mismatch" | "erc20_approval_spender_not_permit2" | "erc20_approval_tx_parse_failed" | "erc20_approval_tx_wrong_target" | "erc20_approval_tx_wrong_selector" | "erc20_approval_tx_wrong_spender" | "erc20_approval_tx_signer_mismatch" | "erc20_approval_tx_invalid_signature" | "invalid_exact_evm_unsupported_scheme" | "invalid_exact_evm_extra_field" | "invalid_exact_evm_payload_recipient_mismatch" | "invalid_exact_evm_insufficient_funds" | "invalid_exact_evm_transaction_state" | "invalid_permit2_spender" | "invalid_permit2_recipient_mismatch" | "permit2_deadline_expired" | "permit2_not_yet_valid" | "permit2_amount_mismatch" | "permit2_token_mismatch" | "invalid_permit2_signature" | "permit2_allowance_required" | "permit2_invalid_amount" | "permit2_invalid_destination" | "permit2_invalid_owner" | "permit2_payment_too_early" | "permit2_invalid_nonce" | "permit2_2612_amount_mismatch" | "permit2_simulation_failed" | "permit2_insufficient_balance" | "permit2_proxy_not_deployed" | "erc20_approval_insufficient_eth_for_gas" | "erc20_approval_broadcast_failed" | "invalid_exact_solana_unsupported_scheme" | "invalid_exact_solana_network_mismatch" | "invalid_exact_solana_payload_missing_fee_payer" | "invalid_exact_solana_fee_payer_not_managed_by_facilitator" | "invalid_exact_solana_payload_transaction" | "invalid_exact_solana_payload_transaction_could_not_be_decoded" | "invalid_exact_solana_payload_transaction_instructions_length" | "invalid_exact_solana_payload_unknown_fourth_instruction" | "invalid_exact_solana_payload_unknown_fifth_instruction" | "invalid_exact_solana_payload_unknown_sixth_instruction" | "invalid_exact_solana_payload_transaction_instructions_compute_limit_instruction" | "invalid_exact_solana_payload_transaction_instructions_compute_price_instruction" | "invalid_exact_solana_payload_transaction_instructions_compute_price_instruction_too_high" | "invalid_exact_solana_payload_no_transfer_instruction" | "invalid_exact_solana_payload_transaction_fee_payer_transferring_funds" | "invalid_exact_solana_payload_mint_mismatch" | "invalid_exact_solana_payload_recipient_mismatch" | "invalid_exact_solana_payload_amount_insufficient" | "invalid_exact_solana_invalid_fee_payer" | "invalid_exact_solana_transaction_signing_failed" | "invalid_exact_solana_transaction_simulation_failed" | "invalid_exact_solana_payload_memo_mismatch" | "invalid_exact_solana_payload_memo_count" | "invalid_exact_solana_verification_failed" | "invalid_exact_solana_fee_payer_mismatch" | "invalid_exact_solana_transaction_failed" | "invalid_exact_solana_transaction_confirmation_failed" | "duplicate_settlement" | "invalid_exact_solana_extra_field" | "batch_settlement_cumulative_amount_mismatch" | "batch_settlement_channel_busy" | "missing_batch_settlement_channel" | "batch_settlement_charge_exceeds_signed_cumulative" | "batch_settlement_refund_no_balance" | "batch_settlement_refund_amount_invalid" | "batch_settlement_refund_amount_exceeds_balance" | "amount_too_low" | "invalid_amount" | "kyt_risk_detected" | "permit2_disabled" | "preflight_validation_failed" | "request_blocked_by_location" | "self_send_not_allowed" | "invalid_bazaar_extension" | "unknown_error";
5527
+ export type X402SettleErrorReason = "insufficient_funds" | "invalid_scheme" | "invalid_network" | "invalid_x402_version" | "invalid_payment_requirements" | "invalid_payload" | "invalid_exact_evm_payload_authorization_value" | "invalid_exact_evm_payload_authorization_value_too_low" | "invalid_exact_evm_payload_authorization_valid_after" | "invalid_exact_evm_payload_authorization_valid_before" | "invalid_exact_evm_payload_authorization_typed_data_message" | "invalid_exact_evm_payload_authorization_from_address_kyt" | "invalid_exact_evm_payload_authorization_to_address_kyt" | "invalid_exact_evm_payload_signature" | "invalid_exact_evm_payload_signature_address" | "invalid_exact_evm_permit2_payload_allowance_required" | "invalid_exact_evm_permit2_payload_signature" | "invalid_exact_evm_permit2_payload_deadline" | "invalid_exact_evm_permit2_payload_valid_after" | "invalid_exact_evm_permit2_payload_spender" | "invalid_exact_evm_permit2_payload_recipient" | "invalid_exact_evm_permit2_payload_amount" | "invalid_exact_svm_payload_transaction" | "invalid_exact_svm_payload_transaction_amount_mismatch" | "invalid_exact_svm_payload_transaction_create_ata_instruction" | "invalid_exact_svm_payload_transaction_create_ata_instruction_incorrect_payee" | "invalid_exact_svm_payload_transaction_create_ata_instruction_incorrect_asset" | "invalid_exact_svm_payload_transaction_instructions" | "invalid_exact_svm_payload_transaction_instructions_length" | "invalid_exact_svm_payload_transaction_instructions_compute_limit_instruction" | "invalid_exact_svm_payload_transaction_instructions_compute_price_instruction" | "invalid_exact_svm_payload_transaction_instructions_compute_price_instruction_too_high" | "invalid_exact_svm_payload_transaction_instruction_not_spl_token_transfer_checked" | "invalid_exact_svm_payload_transaction_instruction_not_token_2022_transfer_checked" | "invalid_exact_svm_payload_transaction_not_a_transfer_instruction" | "invalid_exact_svm_payload_transaction_cannot_derive_receiver_ata" | "invalid_exact_svm_payload_transaction_receiver_ata_not_found" | "invalid_exact_svm_payload_transaction_sender_ata_not_found" | "invalid_exact_svm_payload_transaction_simulation_failed" | "invalid_exact_svm_payload_transaction_transfer_to_incorrect_ata" | "invalid_exact_svm_payload_transaction_fee_payer_included_in_instruction_accounts" | "invalid_exact_svm_payload_transaction_fee_payer_transferring_funds" | "settle_exact_evm_transaction_confirmation_timed_out" | "settle_exact_node_failure" | "settle_exact_failed_onchain" | "settle_exact_svm_block_height_exceeded" | "settle_exact_svm_transaction_confirmation_timed_out" | "settlement_pending" | "invalid_batch_settlement_evm_unknown_settle_action" | "invalid_batch_settlement_evm_claim_payload" | "invalid_batch_settlement_evm_settle_payload" | "invalid_batch_settlement_evm_authorizer_address_mismatch" | "invalid_batch_settlement_evm_claim_simulation_failed" | "invalid_batch_settlement_evm_claim_transaction_failed" | "invalid_batch_settlement_evm_deposit_transaction_failed" | "invalid_batch_settlement_evm_refund_simulation_failed" | "invalid_batch_settlement_evm_refund_transaction_failed" | "invalid_batch_settlement_evm_settle_simulation_failed" | "invalid_batch_settlement_evm_settle_transaction_failed" | "invalid_batch_settlement_evm_transaction_reverted" | "invalid_batch_settlement_evm_wait_for_receipt_failed" | "invalid_batch_settlement_evm_erc20_approval_broadcast_failed" | "invalid_batch_settlement_evm_channel_id_mismatch" | "invalid_batch_settlement_evm_channel_state_read_failed" | "invalid_batch_settlement_evm_cumulative_below_claimed" | "invalid_batch_settlement_evm_cumulative_exceeds_balance" | "invalid_batch_settlement_evm_eip2612_amount_mismatch" | "invalid_batch_settlement_evm_eip2612_asset_mismatch" | "invalid_batch_settlement_evm_eip2612_deadline_expired" | "invalid_batch_settlement_evm_eip2612_invalid_format" | "invalid_batch_settlement_evm_eip2612_invalid_signature" | "invalid_batch_settlement_evm_eip2612_owner_mismatch" | "invalid_batch_settlement_evm_eip2612_spender_mismatch" | "invalid_batch_settlement_evm_erc20_approval_asset_mismatch" | "invalid_batch_settlement_evm_erc20_approval_from_mismatch" | "invalid_batch_settlement_evm_erc20_approval_invalid_format" | "invalid_batch_settlement_evm_erc20_approval_unavailable" | "invalid_batch_settlement_evm_erc20_approval_wrong_spender" | "invalid_batch_settlement_evm_erc3009_authorization_required" | "invalid_batch_settlement_evm_insufficient_balance" | "invalid_batch_settlement_evm_deposit_payload" | "invalid_batch_settlement_evm_receive_authorization_signature" | "invalid_batch_settlement_evm_refund_payload" | "invalid_batch_settlement_evm_voucher_payload" | "invalid_batch_settlement_evm_voucher_signature" | "invalid_batch_settlement_evm_missing_eip712_domain" | "invalid_batch_settlement_evm_payload_authorization_valid_after" | "invalid_batch_settlement_evm_payload_authorization_valid_before" | "invalid_batch_settlement_evm_permit2_allowance_required" | "invalid_batch_settlement_evm_permit2_amount_mismatch" | "invalid_batch_settlement_evm_permit2_authorization_required" | "invalid_batch_settlement_evm_permit2_deadline_expired" | "invalid_batch_settlement_evm_permit2_invalid_signature" | "invalid_batch_settlement_evm_permit2_invalid_spender" | "invalid_batch_settlement_evm_receiver_authorizer_mismatch" | "invalid_batch_settlement_evm_receiver_mismatch" | "invalid_batch_settlement_evm_rpc_read_failed" | "invalid_batch_settlement_evm_token_mismatch" | "invalid_batch_settlement_evm_withdraw_delay_mismatch" | "invalid_batch_settlement_evm_withdraw_delay_out_of_range" | "invalid_batch_settlement_evm_scheme" | "invalid_batch_settlement_evm_network_mismatch" | "invalid_batch_settlement_evm_payload_type" | "invalid_batch_settlement_evm_channel_not_found" | "invalid_batch_settlement_evm_deposit_simulation_failed" | "invalid_exact_evm_scheme" | "invalid_exact_evm_network_mismatch" | "invalid_exact_evm_payload" | "invalid_exact_evm_payload_missing_signature" | "invalid_exact_evm_failed_to_get_network_config" | "invalid_exact_evm_missing_eip712_domain" | "invalid_exact_evm_recipient_mismatch" | "invalid_exact_evm_authorization_value" | "invalid_exact_evm_required_amount" | "invalid_exact_evm_payload_authorization_value_mismatch" | "invalid_exact_evm_failed_to_check_nonce" | "invalid_exact_evm_nonce_already_used" | "invalid_exact_evm_failed_to_get_balance" | "invalid_exact_evm_insufficient_balance" | "invalid_exact_evm_signature_format" | "invalid_exact_evm_failed_to_verify_signature" | "invalid_exact_evm_signature" | "invalid_exact_evm_token_name_mismatch" | "invalid_exact_evm_token_version_mismatch" | "invalid_exact_evm_eip3009_not_supported" | "invalid_exact_evm_transaction_simulation_failed" | "invalid_exact_evm_verification_failed" | "invalid_exact_evm_failed_to_parse_signature" | "invalid_exact_evm_failed_to_check_deployment" | "invalid_exact_evm_failed_to_execute_transfer" | "invalid_exact_evm_failed_to_get_receipt" | "invalid_exact_evm_transaction_failed" | "invalid_exact_evm_payload_undeployed_smart_wallet" | "smart_wallet_deployment_failed" | "unsupported_payload_type" | "invalid_erc20_approval_extension_format" | "erc20_approval_tx_failed" | "erc20_approval_from_mismatch" | "erc20_approval_asset_mismatch" | "erc20_approval_spender_not_permit2" | "erc20_approval_tx_parse_failed" | "erc20_approval_tx_wrong_target" | "erc20_approval_tx_wrong_selector" | "erc20_approval_tx_wrong_spender" | "erc20_approval_tx_signer_mismatch" | "erc20_approval_tx_invalid_signature" | "invalid_exact_evm_unsupported_scheme" | "invalid_exact_evm_extra_field" | "invalid_exact_evm_payload_recipient_mismatch" | "invalid_exact_evm_insufficient_funds" | "invalid_exact_evm_transaction_state" | "invalid_permit2_spender" | "invalid_permit2_recipient_mismatch" | "permit2_deadline_expired" | "permit2_not_yet_valid" | "permit2_amount_mismatch" | "permit2_token_mismatch" | "invalid_permit2_signature" | "permit2_allowance_required" | "permit2_invalid_amount" | "permit2_invalid_destination" | "permit2_invalid_owner" | "permit2_payment_too_early" | "permit2_invalid_nonce" | "permit2_2612_amount_mismatch" | "permit2_simulation_failed" | "permit2_insufficient_balance" | "permit2_proxy_not_deployed" | "erc20_approval_insufficient_eth_for_gas" | "erc20_approval_broadcast_failed" | "invalid_exact_solana_unsupported_scheme" | "invalid_exact_solana_network_mismatch" | "invalid_exact_solana_payload_missing_fee_payer" | "invalid_exact_solana_fee_payer_not_managed_by_facilitator" | "invalid_exact_solana_payload_transaction" | "invalid_exact_solana_payload_transaction_could_not_be_decoded" | "invalid_exact_solana_payload_transaction_instructions_length" | "invalid_exact_solana_payload_unknown_fourth_instruction" | "invalid_exact_solana_payload_unknown_fifth_instruction" | "invalid_exact_solana_payload_unknown_sixth_instruction" | "invalid_exact_solana_payload_transaction_instructions_compute_limit_instruction" | "invalid_exact_solana_payload_transaction_instructions_compute_price_instruction" | "invalid_exact_solana_payload_transaction_instructions_compute_price_instruction_too_high" | "invalid_exact_solana_payload_no_transfer_instruction" | "invalid_exact_solana_payload_transaction_fee_payer_transferring_funds" | "invalid_exact_solana_payload_mint_mismatch" | "invalid_exact_solana_payload_recipient_mismatch" | "invalid_exact_solana_payload_amount_insufficient" | "invalid_exact_solana_invalid_fee_payer" | "invalid_exact_solana_transaction_signing_failed" | "invalid_exact_solana_transaction_simulation_failed" | "invalid_exact_solana_payload_memo_mismatch" | "invalid_exact_solana_payload_memo_count" | "invalid_exact_solana_verification_failed" | "invalid_exact_solana_fee_payer_mismatch" | "invalid_exact_solana_transaction_failed" | "invalid_exact_solana_transaction_confirmation_failed" | "duplicate_settlement" | "invalid_exact_solana_extra_field" | "batch_settlement_cumulative_amount_mismatch" | "batch_settlement_channel_busy" | "missing_batch_settlement_channel" | "batch_settlement_charge_exceeds_signed_cumulative" | "batch_settlement_refund_no_balance" | "batch_settlement_refund_amount_invalid" | "batch_settlement_refund_amount_exceeds_balance" | "amount_too_low" | "invalid_amount" | "kyt_risk_detected" | "permit2_disabled" | "preflight_validation_failed" | "request_blocked_by_location" | "self_send_not_allowed" | "invalid_bazaar_extension" | "unknown_error";
4206
5528
  export declare const X402SettleErrorReason: any;
4207
5529
  /** Optional scheme-specific success metadata returned by the facilitator. */
4208
5530
  export type SettleX402PaymentResponseExtraMap = {
@@ -4392,9 +5714,48 @@ export interface SignSolanaTransactionWithEndUserAccountResponse {
4392
5714
  signedTransaction: string;
4393
5715
  }
4394
5716
  export declare const SignSolanaTransactionWithEndUserAccountResponse: S.Schema<SignSolanaTransactionWithEndUserAccountResponse>;
4395
- /** The type of the originator's wallet. */
4396
- export type DepositTravelRuleOriginatorWalletType = "custodial" | "self_custody";
4397
- export declare const DepositTravelRuleOriginatorWalletType: any;
5717
+ /** The list of payment options the resource server accepts. At least one option must be present. */
5718
+ export type X402PaymentRequiredAcceptsList = Array<X402PaymentRequirements>;
5719
+ export declare const X402PaymentRequiredAcceptsList: S.Schema<X402PaymentRequiredAcceptsList>;
5720
+ /** Optional protocol extensions. Unknown keys are forwarded as-is into the signed payment payload. */
5721
+ export type X402PaymentRequiredExtensionsMap = {
5722
+ [key: string]: unknown | undefined;
5723
+ };
5724
+ export declare const X402PaymentRequiredExtensionsMap: S.Schema<X402PaymentRequiredExtensionsMap>;
5725
+ /** The x402 protocol payment required response body, returned by a resource server when a request lacks valid payment. Contains the accepted payment options, optional resource metadata, and an optional error message from the resource server. */
5726
+ export interface X402PaymentRequired {
5727
+ /** The x402 protocol version. */
5728
+ x402Version: X402Version | (number & {});
5729
+ /** The list of payment options the resource server accepts. At least one option must be present. */
5730
+ accepts: X402PaymentRequiredAcceptsList;
5731
+ /** Optional metadata about the resource being paid for. */
5732
+ resource?: X402ResourceInfo;
5733
+ /** An optional error message from the resource server describing why payment is required. */
5734
+ error?: string;
5735
+ /** Optional protocol extensions. Unknown keys are forwarded as-is into the signed payment payload. */
5736
+ extensions?: X402PaymentRequiredExtensionsMap;
5737
+ }
5738
+ export declare const X402PaymentRequired: S.Schema<X402PaymentRequired>;
5739
+ export interface SignSolanaX402PaymentWithEndUserAccountRequest {
5740
+ /** The ID of the end user. */
5741
+ userId: string;
5742
+ /** The ID of the CDP Project. Required for end users authenticated using custom auth (i.e. a non-CDP JWT provider). */
5743
+ projectID?: string;
5744
+ /** The complete x402 payment required response body from the resource server. Top-level fields (x402Version, resource, error, extensions) are preserved in the signed payment payload; acceptsIndex selects which entry from accepts is signed as paymentPayload.accepted. */
5745
+ paymentRequired: X402PaymentRequired;
5746
+ /** Zero-based index into paymentRequired.accepts selecting which payment option to sign. Must be less than the length of accepts. The entry at this index must be a Solana network payment option for this endpoint. */
5747
+ acceptsIndex: number;
5748
+ /** The base58 encoded address of the end user's Solana account to sign with. */
5749
+ address: string;
5750
+ /** Required when not using delegated signing. The ID of the Temporary Wallet Secret that was used to sign the X-Wallet-Auth Header. */
5751
+ walletSecretId?: string;
5752
+ }
5753
+ export declare const SignSolanaX402PaymentWithEndUserAccountRequest: S.Schema<SignSolanaX402PaymentWithEndUserAccountRequest>;
5754
+ export interface SignSolanaX402PaymentWithEndUserAccountResponse {
5755
+ /** The signed x402 payment payload. Base64-encode this and send it in the PAYMENT-SIGNATURE header of the resource request. */
5756
+ paymentPayload: X402PaymentPayload;
5757
+ }
5758
+ export declare const SignSolanaX402PaymentWithEndUserAccountResponse: S.Schema<SignSolanaX402PaymentWithEndUserAccountResponse>;
4398
5759
  /** Information about the Virtual Asset Service Provider (VASP) for a deposit travel rule submission. */
4399
5760
  export interface DepositTravelRuleVasp {
4400
5761
  /** The Legal Entity Identifier (LEI) of the Virtual Asset Service Provider (VASP). */
@@ -4403,18 +5764,23 @@ export interface DepositTravelRuleVasp {
4403
5764
  name?: string;
4404
5765
  }
4405
5766
  export declare const DepositTravelRuleVasp: S.Schema<DepositTravelRuleVasp>;
5767
+ /** The type of the originator's wallet. */
5768
+ export type DepositTravelRuleOriginatorWalletType = "custodial" | "self_custody";
5769
+ export declare const DepositTravelRuleOriginatorWalletType: any;
4406
5770
  /** Originator information for a deposit travel rule submission. */
4407
5771
  export interface DepositTravelRuleOriginator {
4408
5772
  /** Full name of the originator. */
4409
5773
  name?: string;
4410
- address?: PhysicalAddress;
4411
- /** The type of the originator's wallet. */
4412
- walletType?: DepositTravelRuleOriginatorWalletType | (string & {});
5774
+ address?: IndividualInputAddress;
5775
+ /** Name of the financial institution. */
5776
+ financialInstitution?: string;
4413
5777
  virtualAssetServiceProvider?: DepositTravelRuleVasp;
4414
5778
  /** Personal identifier for travel rule compliance. For individuals: passport number, national ID, or driver's license. For institutions: LEI (Legal Entity Identifier). */
4415
5779
  personalId?: string;
4416
5780
  /** Date of birth of the originator. */
4417
5781
  dateOfBirth?: DateOfBirth;
5782
+ /** The type of the originator's wallet. */
5783
+ walletType?: DepositTravelRuleOriginatorWalletType | (string & {});
4418
5784
  }
4419
5785
  export declare const DepositTravelRuleOriginator: S.Schema<DepositTravelRuleOriginator>;
4420
5786
  /** Beneficiary information for a deposit travel rule submission. */
@@ -4426,12 +5792,15 @@ export declare const DepositTravelRuleBeneficiary: S.Schema<DepositTravelRuleBen
4426
5792
  export interface SubmitDepositTravelRuleRequest {
4427
5793
  /** The unique identifier of the transfer. */
4428
5794
  transferId: string;
5795
+ /** Indicates whether the user attests that the originating wallet belongs to them. */
5796
+ isSelf?: boolean;
5797
+ isIntermediary?: boolean;
5798
+ /** When `true`, you attest that the originating wallet's ownership has been verified out-of-band. Instructs Coinbase to skip the wallet verification check for this travel-rule submission. **Only valid when `isIntermediary` is `true`.** You can only attest to the originating wallet's ownership when your organization is acting as the originating VASP on behalf of your end customer, and Coinbase is acting as the intermediary VASP. Returns a `400` error if set to `true` when `isIntermediary` is `false` or omitted. */
5799
+ attestVerifiedWalletOwnership?: boolean;
4429
5800
  /** Originator information for the travel rule submission. */
4430
5801
  originator?: DepositTravelRuleOriginator;
4431
5802
  /** Beneficiary information for the travel rule submission. */
4432
5803
  beneficiary?: DepositTravelRuleBeneficiary;
4433
- /** Indicates whether the user attests that the originating wallet belongs to them. */
4434
- isSelf?: boolean;
4435
5804
  }
4436
5805
  export declare const SubmitDepositTravelRuleRequest: S.Schema<SubmitDepositTravelRuleRequest>;
4437
5806
  /** List of field paths that are still required to complete travel rule compliance. Each entry is a dot-separated path (e.g., "originator.name", "originator.address.countryCode"). Empty when status is "completed". */
@@ -4508,6 +5877,33 @@ export interface SupportedX402PaymentKindsResponse {
4508
5877
  signers: SupportedX402PaymentKindsResponseSignersMap;
4509
5878
  }
4510
5879
  export declare const SupportedX402PaymentKindsResponse: S.Schema<SupportedX402PaymentKindsResponse>;
5880
+ /** The project IDs that this customer is associated with. */
5881
+ export type UpdateCustomerByIdRequestProjectIdsList = Array<string>;
5882
+ export declare const UpdateCustomerByIdRequestProjectIdsList: S.Schema<UpdateCustomerByIdRequestProjectIdsList>;
5883
+ /** Terms of Service acceptances to record on the customer. Submit one entry per required version surfaced inline on `requirements.tos.tosVersions[]` (returned by `Get Customer`, `Create Customer`, and `Update Customer` whenever a `tos` requirement is unsatisfied). The server rejects each acceptance whose `language` is not listed under `languages` on the matching required version with `errorType: "unsupported_tos_language"`. When new required Terms of Service versions are published, only the new `versionId`s appear in `requirements.tos.tosVersions[]`; submit acceptances for only those new version(s). Omit `tosAcceptances` on a partial update to leave previously recorded acceptances unchanged. Sending `tosAcceptances: []` is invalid (`errorType: "invalid_request"`) because it would clear all acceptances without replacing them; omit the field entirely when you are not updating Terms of Service acceptances. */
5884
+ export type UpdateCustomerByIdRequestTosAcceptancesList = Array<TosAcceptance>;
5885
+ export declare const UpdateCustomerByIdRequestTosAcceptancesList: S.Schema<UpdateCustomerByIdRequestTosAcceptancesList>;
5886
+ /** Tax attestations to record on the customer. Submit one entry per required form surfaced inline on `requirements.taxAttestation.taxForms[]` (returned by `Get Customer`, `Create Customer`, and `Update Customer` whenever a `taxAttestation` requirement is unsatisfied). The required fields per entry depend on `form`; see `TaxAttestation`. This field is ingestion-only and is never returned on read. Omit `taxAttestations` on a partial update to leave previously recorded attestations unchanged. Sending `taxAttestations: []` is invalid (`errorType: "invalid_request"`) because it would clear all attestations without replacing them; omit the field entirely when you are not updating tax attestations. */
5887
+ export type UpdateCustomerByIdRequestTaxAttestationsList = Array<UsW9Attestation>;
5888
+ export declare const UpdateCustomerByIdRequestTaxAttestationsList: S.Schema<UpdateCustomerByIdRequestTaxAttestationsList>;
5889
+ export interface UpdateCustomerByIdRequest {
5890
+ /** The ID of the customer. */
5891
+ customerId: string;
5892
+ /** The type of the customer. Required on create; accepted but ignored on update. */
5893
+ type?: CustomerType | (string & {});
5894
+ /** Capabilities to request for the customer. */
5895
+ capabilities?: CapabilitiesMapInput;
5896
+ /** Information about an Individual customer. Not all fields are required for all customers; the requirements depend on which capabilities are requested. Submit only fields that are required by the capabilities that have been requested. */
5897
+ individual?: IndividualInput;
5898
+ /** The project IDs that this customer is associated with. */
5899
+ projectIds?: UpdateCustomerByIdRequestProjectIdsList;
5900
+ /** Terms of Service acceptances to record on the customer. Submit one entry per required version surfaced inline on `requirements.tos.tosVersions[]` (returned by `Get Customer`, `Create Customer`, and `Update Customer` whenever a `tos` requirement is unsatisfied). The server rejects each acceptance whose `language` is not listed under `languages` on the matching required version with `errorType: "unsupported_tos_language"`. When new required Terms of Service versions are published, only the new `versionId`s appear in `requirements.tos.tosVersions[]`; submit acceptances for only those new version(s). Omit `tosAcceptances` on a partial update to leave previously recorded acceptances unchanged. Sending `tosAcceptances: []` is invalid (`errorType: "invalid_request"`) because it would clear all acceptances without replacing them; omit the field entirely when you are not updating Terms of Service acceptances. */
5901
+ tosAcceptances?: UpdateCustomerByIdRequestTosAcceptancesList;
5902
+ /** Tax attestations to record on the customer. Submit one entry per required form surfaced inline on `requirements.taxAttestation.taxForms[]` (returned by `Get Customer`, `Create Customer`, and `Update Customer` whenever a `taxAttestation` requirement is unsatisfied). The required fields per entry depend on `form`; see `TaxAttestation`. This field is ingestion-only and is never returned on read. Omit `taxAttestations` on a partial update to leave previously recorded attestations unchanged. Sending `taxAttestations: []` is invalid (`errorType: "invalid_request"`) because it would clear all attestations without replacing them; omit the field entirely when you are not updating tax attestations. */
5903
+ taxAttestations?: UpdateCustomerByIdRequestTaxAttestationsList;
5904
+ compliance?: Compliance;
5905
+ }
5906
+ export declare const UpdateCustomerByIdRequest: S.Schema<UpdateCustomerByIdRequest>;
4511
5907
  export interface UpdateEvmAccountRequest {
4512
5908
  /** The 0x-prefixed address of the EVM account. The address does not need to be checksummed. */
4513
5909
  address: string;
@@ -4556,7 +5952,6 @@ export declare const UpdateWebhookSubscriptionRequestLabelsMap: S.Schema<UpdateW
4556
5952
  export interface UpdateWebhookSubscriptionRequest {
4557
5953
  /** Unique identifier for the webhook subscription. */
4558
5954
  subscriptionId: string;
4559
- /** Description of the webhook subscription. */
4560
5955
  description?: string;
4561
5956
  /** Types of events to subscribe to. Event types follow a three-part dot-separated format: service.resource.verb (e.g., "onchain.activity.detected", "wallet.activity.detected", "onramp.transaction.created"). */
4562
5957
  eventTypes: UpdateWebhookSubscriptionRequestEventTypesList;
@@ -4679,6 +6074,16 @@ export interface VerifyX402PaymentResponse {
4679
6074
  extra?: VerifyX402PaymentResponseExtraMap;
4680
6075
  }
4681
6076
  export declare const VerifyX402PaymentResponse: S.Schema<VerifyX402PaymentResponse>;
6077
+ export interface VoidPaymentSessionRequest {
6078
+ /** The unique identifier of the payment session. */
6079
+ paymentSessionId: string;
6080
+ metadata?: Metadata;
6081
+ /** An optional merchant-provided internal identifier for this void, from the merchant's own system—not visible to the payer. */
6082
+ externalReferenceId?: string;
6083
+ /** Optional customer-facing display data for this void, shown to the payer. Falls back to the session's `orderCode` when `referenceCode` is omitted. */
6084
+ customerDisplay?: OperationCustomerDisplay;
6085
+ }
6086
+ export declare const VoidPaymentSessionRequest: S.Schema<VoidPaymentSessionRequest>;
4682
6087
  export type AddEndUserEvmAccountError = CoinbaseOpError;
4683
6088
  /** Add EVM account to end user Adds a new EVM EOA account to an existing end user. End users can have up to 10 EVM accounts. This API is intended to be used by the developer's own backend, and is authenticated using the developer's CDP API key. */
4684
6089
  export declare const addEndUserEvmAccount: API.OperationMethod<AddEndUserEvmAccountRequest, AddEndUserEvmAccountResponse, AddEndUserEvmAccountError, CoinbaseOpContext>;
@@ -4688,12 +6093,33 @@ export declare const addEndUserEvmSmartAccount: API.OperationMethod<AddEndUserEv
4688
6093
  export type AddEndUserSolanaAccountError = CoinbaseOpError;
4689
6094
  /** Add Solana account to end user Adds a new Solana account to an existing end user. End users can have up to 10 Solana accounts. This API is intended to be used by the developer's own backend, and is authenticated using the developer's CDP API key. */
4690
6095
  export declare const addEndUserSolanaAccount: API.OperationMethod<AddEndUserSolanaAccountRequest, AddEndUserSolanaAccountResponse, AddEndUserSolanaAccountError, CoinbaseOpContext>;
6096
+ export type AuthorizeCoinbasePaymentSessionError = CoinbaseOpError;
6097
+ /** Authorize a payment session with a Coinbase account **Merchant-initiated.** The merchant charges the payer's Coinbase account using an OAuth grant the payer authorized earlier, so the payer does not need to be present at payment time. The session must be in `created` status. **Authentication:** Requires a Coinbase OAuth Bearer token with the `coinbase:stablecoins:payment-create` scope. On authorization, a hold is placed on the payer's funds. The authorization is returned in `pending` status and transitions asynchronously to `succeeded` or `failed`. If `autoCapture` is enabled on the session, a capture is automatically created after a successful authorization. */
6098
+ export declare const authorizeCoinbasePaymentSession: API.OperationMethod<AuthorizeCoinbasePaymentSessionRequest, Authorization, AuthorizeCoinbasePaymentSessionError, CoinbaseOpContext>;
6099
+ export type AuthorizeWalletPaymentSessionError = CoinbaseOpError;
6100
+ /** Authorize a payment session with a wallet **Customer-initiated.** Authorizes a payment session using the payer's wallet. The payer signs the payloads themselves, so this call is unauthenticated. The session must be in `created` status. The `optionId` must match one of the options returned by the **Get Wallet Authorization Options** endpoint. Include the signed payloads for the selected option. On authorization, a hold is placed on the payer's funds. The authorization is returned in `pending` status and transitions asynchronously to `succeeded` or `failed`. If `autoCapture` is enabled on the session, a capture is automatically created after a successful authorization. */
6101
+ export declare const authorizeWalletPaymentSession: API.OperationMethod<AuthorizeWalletPaymentSessionRequest, Authorization, AuthorizeWalletPaymentSessionError, CoinbaseOpContext>;
6102
+ export type AuthorizeX402PaymentSessionError = CoinbaseOpError;
6103
+ /** Authorize a payment session with x402 **Customer-initiated.** Authorizes a payment session using x402. The payer supplies the payment payload, so this call is unauthenticated. The session must be in `created` status. The client sends no request body. You may supply the base64-encoded x402-compliant payment payload in the optional **`PAYMENT-SIGNATURE`** header. On authorization, a hold is placed on the payer's funds. The authorization is returned in `pending` status and transitions asynchronously to `succeeded` or `failed`. **402 Payment Required** may be returned when payment must be supplied before authorization can proceed. The **402** response uses the standard CDP **`Error`** JSON body and may include a **`PAYMENT-REQUIRED`** header (see the **402** response) describing accepted networks, assets, and amounts. If `autoCapture` is enabled on the session, a capture is automatically created after a successful authorization. */
6104
+ export declare const authorizeX402PaymentSession: API.OperationMethod<AuthorizeX402PaymentSessionRequest, Authorization, AuthorizeX402PaymentSessionError, CoinbaseOpContext>;
6105
+ export type CancelPaymentSessionError = CoinbaseOpError;
6106
+ /** Cancel a payment session Cancels a payment session before any funds have been authorized or captured. The session must be in `created` status. Cancel is blocked while any authorization action is pending. Once canceled, no further actions can be performed on the session. This is the only way to terminate a pre-authorization session — expiry deadlines block actions but do not automatically transition the session to a terminal state. */
6107
+ export declare const cancelPaymentSession: API.OperationMethod<CancelPaymentSessionRequest, PaymentSession, CancelPaymentSessionError, CoinbaseOpContext>;
6108
+ export type CapturePaymentSessionError = CoinbaseOpError;
6109
+ /** Capture a payment session Captures authorized funds. The session must have a positive `capturable` balance and the `captureExpiresAt` deadline must not have passed. This is an asynchronous operation. The capture is returned in `pending` status and transitions to `succeeded` or `failed`. Multiple partial captures are allowed. If `amount` is omitted, the full remaining capturable amount is captured. */
6110
+ export declare const capturePaymentSession: API.OperationMethod<CapturePaymentSessionRequest, Capture, CapturePaymentSessionError, CoinbaseOpContext>;
6111
+ export type CreateCustomerError = CoinbaseOpError;
6112
+ /** Create a customer Create a new customer record. You can optionally request capabilities and submit verification requirements in the same request. This endpoint supports creating a customer with: - Minimal data (customer type only) - Capability requests - KYC data submission - Combined request for capability and required info for verification */
6113
+ export declare const createCustomer: API.OperationMethod<CreateCustomerRequest, Customer, CreateCustomerError, CoinbaseOpContext>;
4691
6114
  export type CreateDelegationForEndUserAccountError = CoinbaseOpError;
4692
6115
  /** Create account-scoped delegation for end user Creates an account-scoped delegation that allows a developer to sign on behalf of an end user for a single blockchain account (identified by its address) for the specified duration. The end user must be authenticated to authorize this delegation. Multiple account-scoped delegations may exist concurrently for a single end user (one per canonical account address). Account-scoped and user-scoped delegations cannot coexist for the same user. When the address corresponds to an EVM Smart Account, the delegation is scoped to the Smart Account's owner EOA rather than the Smart Account address itself. This means `/address/{smartAccountAddress}/delegation` and `/address/{ownerEoaAddress}/delegation` resolve to the same delegation, and the 409 `account_scoped_delegation_active` error may be returned when creating via either address if one already exists for the canonical owner. */
4693
6116
  export declare const createDelegationForEndUserAccount: API.OperationMethod<CreateDelegationForEndUserAccountRequest, CreateDelegationForEndUserAccountResponse, CreateDelegationForEndUserAccountError, CoinbaseOpContext>;
4694
6117
  export type CreateDepositDestinationError = CoinbaseOpError;
4695
- /** Create deposit destination Create a new deposit destination for an account. A deposit destination is a cryptocurrency address that can be used to receive funds. The address will be generated for the specified network. */
4696
- export declare const createDepositDestination: API.OperationMethod<CreateDepositDestinationRequest, CreateDepositDestinationResponse, CreateDepositDestinationError, CoinbaseOpContext>;
6118
+ /** Create deposit destination Create a new deposit destination for an account. Two types are supported: - `crypto` (public): provisions a cryptocurrency address on the requested network. The returned `crypto.address` is the deposit address; funds sent to it are credited to the `target` account in the specified asset. For Customer-owned accounts, the Customer must have the `custodyCrypto` and `custodyStablecoin` capabilities enabled. - `fiat` (private-beta): provisions a bank account at a CDP banking partner. The server picks the account type (e.g. `us_bank`) and supported payment rails based on the account's eligibility; pass `fiat.paymentRail` to influence partner selection. The returned `fiat` object contains the bank account details the depositor needs to send funds. For Customer-owned accounts, the Customer must have the `custodyFiat` capability enabled. Requires account enablement — contact your Coinbase representative for access. Fields and behavior may change before general availability. For Customer-owned accounts not authorized for the required capabilities, the request is rejected with `customer_not_authorized` (HTTP 403). The created destination's `status` starts as `pending` for fiat (it becomes `active` once the partner provisioning callback completes) and `active` for crypto. */
6119
+ export declare const createDepositDestination: API.OperationMethod<CreateDepositDestinationRequest2, CreateDepositDestinationResponse, CreateDepositDestinationError, CoinbaseOpContext>;
6120
+ export type CreateDisbursementError = CoinbaseOpError;
6121
+ /** Create a disbursement Creates a merchant-initiated payment of funds from a CDP account owned by the merchant to a Coinbase user account or onchain address. Used for standalone refunds, goodwill disbursements, rebates, and other merchant-driven payouts that are not tied to a specific payment session. This is an asynchronous operation. The disbursement is returned in `pending` status and transitions to `succeeded` (with associated `onchainTransactions`) or `failed` (with `error`). */
6122
+ export declare const createDisbursement: API.OperationMethod<CreateDisbursementRequest, Disbursement, CreateDisbursementError, CoinbaseOpContext>;
4697
6123
  export type CreateEndUserError = CoinbaseOpError;
4698
6124
  /** Create end user Creates an end user. An end user is an entity that can own CDP EVM accounts, EVM smart accounts, and/or Solana accounts. 1 or more authentication methods must be associated with an end user. By default, no accounts are created unless the optional `evmAccount` and/or `solanaAccount` fields are provided. This API is intended to be used by the developer's own backend, and is authenticated using the developer's CDP API key. */
4699
6125
  export declare const createEndUser: API.OperationMethod<CreateEndUserRequest, EndUser, CreateEndUserError, CoinbaseOpContext>;
@@ -4713,14 +6139,17 @@ export type CreateEvmSwapQuoteError = CoinbaseOpError;
4713
6139
  /** Create swap quote Create a swap quote, which includes the payload to sign as well as the transaction data needed to execute the swap. The developer is responsible for signing the payload and submitting the transaction to the network in order to execute the swap. */
4714
6140
  export declare const createEvmSwapQuote: API.OperationMethod<CreateEvmSwapQuoteRequest, CreateEvmSwapQuoteResponse, CreateEvmSwapQuoteError, CoinbaseOpContext>;
4715
6141
  export type CreateFoundationAccountError = CoinbaseOpError;
4716
- /** Create account Create an account for your Entity. Support for creating Customer-owned accounts is in development. */
6142
+ /** Create account Create an account. Two ownership modes are supported: - **Entity-owned**: when `owner` is omitted, the account is owned by the Entity making the request. Returns an account with `owner: entity_<uuid>`. - **Customer-owned**: pass a Customer ID as `owner` (e.g. `customer_af2937b0-9846-4fe7-bfe9-ccc22d935114`). The Customer must have the `custodyCrypto`, `custodyFiat`, and `custodyStablecoin` capabilities enabled, otherwise the request is rejected with `customer_not_authorized` (HTTP 403). */
4717
6143
  export declare const createFoundationAccount: API.OperationMethod<CreateFoundationAccountRequest, Account, CreateFoundationAccountError, CoinbaseOpContext>;
4718
6144
  export type CreateOnrampOrderError = CoinbaseOpError;
4719
- /** Create an onramp order Create a new Onramp order or get a quote for an Onramp order. Either `paymentAmount` or `purchaseAmount` must be provided. This API currently only supports the payment method `GUEST_CHECKOUT_APPLE_PAY`. For detailed integration instructions and to get access to this API, refer to the [Apple Pay Onramp API docs](https://docs.cdp.coinbase.com/onramp-&-offramp/onramp-apis/apple-pay-onramp-api). */
6145
+ /** Create an onramp order Create a new Onramp order or get a quote for an Onramp order. Either `paymentAmount` or `purchaseAmount` must be provided. This API supports two modes: **Headless mode (standard)**: returns a seamless Apple Pay or Google Pay button that you integrate directly into your app. Your app collects and verifies the user's contact details before calling this endpoint — `phoneNumber`, `email`, `phoneNumberVerifiedAt`, and `agreementAcceptedAt` are required and enforced server-side. **Embedded mode**: returns a webview that collects and verifies the user's contact and identity information, then shows the payment screen. Omit both `phoneNumber` and `email` from the request to select this mode. Embedded mode requires account enablement; contact the Onramp team for access. Read more about the difference between the two modes in the [Headless Onramp overview](https://docs.cdp.coinbase.com/onramp/headless-onramp/overview). This API supports the `GUEST_CHECKOUT_APPLE_PAY` and `GUEST_CHECKOUT_GOOGLE_PAY` payment methods. For detailed integration instructions and to get access to this API, refer to the [Guest Checkout Onramp API docs](https://docs.cdp.coinbase.com/onramp/headless-onramp/overview). */
4720
6146
  export declare const createOnrampOrder: API.OperationMethod<CreateOnrampOrderRequest, CreateOnrampOrderResponse, CreateOnrampOrderError, CoinbaseOpContext>;
4721
6147
  export type CreateOnrampSessionError = CoinbaseOpError;
4722
6148
  /** Create an onramp session Returns a single-use URL for an Onramp session. This API provides flexible functionality based on the parameters provided, supporting three cases: **Important**: The returned URL is single-use only. Once a user visits the URL, no one else can access it. ## Use Cases ### 1. Basic Session (Minimum Parameters) **Required**: `destinationAddress`, `purchaseCurrency`, `destinationNetwork` **Returns**: Basic single-use onramp URL. The `quote` object will not be included in the response. ### 2. One-Click Onramp URL **Required**: Basic parameters + (`paymentAmount` OR `purchaseAmount`), `paymentCurrency` **Returns**: One-click onramp URL for streamlined checkout. The `quote` object will not be included in the response. ### 3. One-Click Onramp URL with Quote **Required**: One-Click Onramp parameters + `paymentMethod`, `country`, `subdivision` **Returns**: Complete pricing quote and one-click onramp URL. Both `session` and `quote` objects will be included in the response. **Note**: Only one of `paymentAmount` or `purchaseAmount` should be provided, not both. Providing both will result in an error. When `paymentAmount` is provided, the quote shows how much crypto the user will receive for the specified fiat amount (fee-inclusive). When `purchaseAmount` is provided, the quote shows how much fiat the user needs to pay for the specified crypto amount (fee-exclusive). */
4723
6149
  export declare const createOnrampSession: API.OperationMethod<CreateOnrampSessionRequest, CreateOnrampSessionResponse, CreateOnrampSessionError, CoinbaseOpContext>;
6150
+ export type CreatePaymentSessionError = CoinbaseOpError;
6151
+ /** Create a payment session Creates a payment session that defines what is being paid — amount, asset, and target. Optionally configure execution behavior, expiry deadlines, redirect URLs, and metadata. If expiry deadlines are omitted, sensible defaults are applied (1 day for authorization, 7 days for capture, 30 days for refund). Expiries must be in ascending order — see the `expiries` object for details and constraints. Returns the session in `created` status. Next step: call one of the authorization endpoints (wallet or Coinbase) to authorize the payment. */
6152
+ export declare const createPaymentSession: API.OperationMethod<CreatePaymentSessionRequest, PaymentSession, CreatePaymentSessionError, CoinbaseOpContext>;
4724
6153
  export type CreatePolicyError = CoinbaseOpError;
4725
6154
  /** Create policy Create a policy that can be used to govern the behavior of accounts. */
4726
6155
  export declare const createPolicy: API.OperationMethod<CreatePolicyRequest, Policy, CreatePolicyError, CoinbaseOpContext>;
@@ -4736,6 +6165,12 @@ export declare const createTransfer: API.OperationMethod<CreateTransferRequest,
4736
6165
  export type CreateWebhookSubscriptionError = CoinbaseOpError;
4737
6166
  /** Create webhook subscription Subscribe to real-time events across CDP products. ### Filtering Onchain events can utilize multi-label filtering to only receive events that match all the specified labels. Allows labels are: - `network` (required) — Blockchain network - `contract_address` — Smart contract address - `event_name` — Event name (e.g., "Transfer", "Burn") - `event_signature` — Event signature (e.g., "Transfer(address,address,uint256)") - `transaction_from` — Transaction sender address - `transaction_to` — Transaction recipient address - `params.*` — Any event parameter from the log event (e.g., `params.from`, `params.to`, `params.sender`, `params.tokenId`) For webhook types that aren't `onchain.*`, labels are ignored. ### Webhook Signature Verification All webhooks include an HMAC-SHA256 signed header for security. The signature is signed with the secret that is returned in the `secret` field when creating a subscription. Do not lose the secret, as you will not be able to recreate it. If you lose the secret, you will need to create a new subscription. See the [verification guide](https://docs.cdp.coinbase.com/onramp-&-offramp/webhooks#webhook-signature-verification) for implementation details. */
4738
6167
  export declare const createWebhookSubscription: API.OperationMethod<CreateWebhookSubscriptionRequest, WebhookSubscriptionResponse, CreateWebhookSubscriptionError, CoinbaseOpContext>;
6168
+ export type CreateX402DiscoveryMcpError = CoinbaseOpError;
6169
+ /** Handle MCP JSON-RPC request Handles JSON-RPC requests for the Model Context Protocol (MCP). Supports MCP methods for discovering x402 payment resources and tools. */
6170
+ export declare const createX402DiscoveryMcp: API.OperationMethod<CreateX402DiscoveryMcpRequest, X402McpResponse, CreateX402DiscoveryMcpError, CoinbaseOpContext>;
6171
+ export type DeleteCustomerError = CoinbaseOpError;
6172
+ /** Delete a customer Initiates deletion of the customer and all associated data. This operation is idempotent — repeated calls for an already-deleted customer return 204. A 404 is returned only when no customer with the given ID exists for the caller's entity. */
6173
+ export declare const deleteCustomer: API.OperationMethod<DeleteCustomerRequest, DeleteCustomerResponse, DeleteCustomerError, CoinbaseOpContext>;
4739
6174
  export type DeletePolicyError = CoinbaseOpError;
4740
6175
  /** Delete policy Delete a policy by its ID. This will have the effect of removing the policy from all accounts that are currently using it. */
4741
6176
  export declare const deletePolicy: API.OperationMethod<DeletePolicyRequest, DeletePolicyResponse, DeletePolicyError, CoinbaseOpContext>;
@@ -4760,15 +6195,21 @@ export declare const exportSolanaAccountByName: API.OperationMethod<ExportSolana
4760
6195
  export type GetBalanceByAssetError = CoinbaseOpError;
4761
6196
  /** Get balance for account Get the balance for an account by asset. */
4762
6197
  export declare const getBalanceByAsset: API.OperationMethod<GetBalanceByAssetRequest, Balance, GetBalanceByAssetError, CoinbaseOpContext>;
6198
+ export type GetCustomerError = CoinbaseOpError;
6199
+ /** Get a customer Get a customer by their ID. Returns the full customer object. */
6200
+ export declare const getCustomer: API.OperationMethod<GetCustomerRequest, Customer, GetCustomerError, CoinbaseOpContext>;
4763
6201
  export type GetDelegationForEndUserError = CoinbaseOpError;
4764
6202
  /** Get delegation for end user Returns the active delegation for the specified end user, if one exists. This operation can be performed by the end user themselves or by a developer using their API key. */
4765
6203
  export declare const getDelegationForEndUser: API.OperationMethod<GetDelegationForEndUserRequest, GetDelegationForEndUserResponse, GetDelegationForEndUserError, CoinbaseOpContext>;
4766
6204
  export type GetDelegationForEndUserAccountError = CoinbaseOpError;
4767
6205
  /** Get account-scoped delegation for end user Returns the active account-scoped delegation for the specified end user account, if one exists. Useful for showing delegation status in a UI. When the address corresponds to an EVM Smart Account, this returns the delegation for the Smart Account's owner EOA. */
4768
6206
  export declare const getDelegationForEndUserAccount: API.OperationMethod<GetDelegationForEndUserAccountRequest, GetDelegationForEndUserAccountResponse, GetDelegationForEndUserAccountError, CoinbaseOpContext>;
4769
- export type GetDepositDestinationByIdError = CoinbaseOpError;
6207
+ export type GetDepositDestinationError = CoinbaseOpError;
4770
6208
  /** Get deposit destination Get a specific deposit destination by its ID. */
4771
- export declare const getDepositDestinationById: API.OperationMethod<GetDepositDestinationByIdRequest, GetDepositDestinationByIdResponse, GetDepositDestinationByIdError, CoinbaseOpContext>;
6209
+ export declare const getDepositDestination: API.OperationMethod<GetDepositDestinationRequest, GetDepositDestinationResponse, GetDepositDestinationError, CoinbaseOpContext>;
6210
+ export type GetDisbursementError = CoinbaseOpError;
6211
+ /** Get a disbursement Retrieves a single disbursement by its ID, including source, target, status, amount, associated onchain transactions, error details (if failed), and timestamps. Only returns the disbursement if the API key has permission to access it. */
6212
+ export declare const getDisbursement: API.OperationMethod<GetDisbursementRequest, Disbursement, GetDisbursementError, CoinbaseOpContext>;
4772
6213
  export type GetEndUserError = CoinbaseOpError;
4773
6214
  /** Get end user Gets an end user by ID. This API is intended to be used by the developer's own backend, and is authenticated using the developer's CDP API key. */
4774
6215
  export declare const getEndUser: API.OperationMethod<GetEndUserRequest, EndUser, GetEndUserError, CoinbaseOpContext>;
@@ -4778,9 +6219,9 @@ export declare const getEvmAccount: API.OperationMethod<GetEvmAccountRequest, Ev
4778
6219
  export type GetEvmAccountByNameError = CoinbaseOpError;
4779
6220
  /** Get EVM account by name Gets an EVM account by its name. */
4780
6221
  export declare const getEvmAccountByName: API.OperationMethod<GetEvmAccountByNameRequest, EvmAccount, GetEvmAccountByNameError, CoinbaseOpContext>;
4781
- export type GetEvmEip7702DelegationOperationByIdError = CoinbaseOpError;
6222
+ export type GetEvmEip7702DelegationOperationError = CoinbaseOpError;
4782
6223
  /** Get EIP-7702 delegation operation by ID Returns the EIP-7702 delegation operation. Use the delegationOperationId returned by the Create EIP-7702 delegation endpoint to poll for operation completion. */
4783
- export declare const getEvmEip7702DelegationOperationById: API.OperationMethod<GetEvmEip7702DelegationOperationByIdRequest, EvmEip7702DelegationOperation, GetEvmEip7702DelegationOperationByIdError, CoinbaseOpContext>;
6224
+ export declare const getEvmEip7702DelegationOperation: API.OperationMethod<GetEvmEip7702DelegationOperationRequest, EvmEip7702DelegationOperation, GetEvmEip7702DelegationOperationError, CoinbaseOpContext>;
4784
6225
  export type GetEvmSmartAccountError = CoinbaseOpError;
4785
6226
  /** Get Smart Account by address Gets a Smart Account by its address. */
4786
6227
  export declare const getEvmSmartAccount: API.OperationMethod<GetEvmSmartAccountRequest, EvmSmartAccount, GetEvmSmartAccountError, CoinbaseOpContext>;
@@ -4793,15 +6234,30 @@ export declare const getEvmSwapPrice: API.OperationMethod<GetEvmSwapPriceRequest
4793
6234
  export type GetFoundationAccountByIdError = CoinbaseOpError;
4794
6235
  /** Get account Get an account by its ID. */
4795
6236
  export declare const getFoundationAccountById: API.OperationMethod<GetFoundationAccountByIdRequest, Account, GetFoundationAccountByIdError, CoinbaseOpContext>;
4796
- export type GetOnrampOrderByIdError = CoinbaseOpError;
6237
+ export type GetOnrampOrderError = CoinbaseOpError;
4797
6238
  /** Get an onramp order by ID Get an onramp order by ID. */
4798
- export declare const getOnrampOrderById: API.OperationMethod<GetOnrampOrderByIdRequest, GetOnrampOrderByIdResponse, GetOnrampOrderByIdError, CoinbaseOpContext>;
6239
+ export declare const getOnrampOrder: API.OperationMethod<GetOnrampOrderRequest, GetOnrampOrderResponse, GetOnrampOrderError, CoinbaseOpContext>;
4799
6240
  export type GetOnrampUserLimitsError = CoinbaseOpError;
4800
6241
  /** Get onramp user limits Returns the transaction limits for an onramp user based on their payment method and user identifier. Use this API to show users their remaining purchase capacity before initiating an onramp transaction. Currently supports `GUEST_CHECKOUT_APPLE_PAY` payment method with phone number identification. The phone number must have been previously verified via OTP. */
4801
6242
  export declare const getOnrampUserLimits: API.OperationMethod<GetOnrampUserLimitsRequest, GetOnrampUserLimitsResponse, GetOnrampUserLimitsError, CoinbaseOpContext>;
4802
6243
  export type GetPaymentMethodError = CoinbaseOpError;
4803
6244
  /** Get payment method Get details of a specific payment method by its ID. Returns 404 if the payment method is not found or not owned by the requesting entity. */
4804
6245
  export declare const getPaymentMethod: API.OperationMethod<GetPaymentMethodRequest, GetPaymentMethodResponse, GetPaymentMethodError, CoinbaseOpContext>;
6246
+ export type GetPaymentSessionError = CoinbaseOpError;
6247
+ /** Get a payment session Retrieves a single payment session by its ID, including its current status, balances, and associated metadata. The API key must have permission to access the requested session. */
6248
+ export declare const getPaymentSession: API.OperationMethod<GetPaymentSessionRequest, PaymentSession, GetPaymentSessionError, CoinbaseOpContext>;
6249
+ export type GetPaymentSessionAuthorizationError = CoinbaseOpError;
6250
+ /** Get a payment session authorization Retrieves a single authorization by its ID, including its current status, amount, and any associated onchain transactions. */
6251
+ export declare const getPaymentSessionAuthorization: API.OperationMethod<GetPaymentSessionAuthorizationRequest, Authorization, GetPaymentSessionAuthorizationError, CoinbaseOpContext>;
6252
+ export type GetPaymentSessionCaptureError = CoinbaseOpError;
6253
+ /** Get a payment session capture Retrieves a single capture by its ID, including status, captured amount, associated onchain transactions, and timestamps. Only returns the capture if the API key has permission to access it. */
6254
+ export declare const getPaymentSessionCapture: API.OperationMethod<GetPaymentSessionCaptureRequest, Capture, GetPaymentSessionCaptureError, CoinbaseOpContext>;
6255
+ export type GetPaymentSessionRefundError = CoinbaseOpError;
6256
+ /** Get a payment session refund Retrieves a single refund by its ID, including status, refunded amount, reason, associated onchain transactions, and timestamps. Only returns the refund if the API key has permission to access it. */
6257
+ export declare const getPaymentSessionRefund: API.OperationMethod<GetPaymentSessionRefundRequest, Refund, GetPaymentSessionRefundError, CoinbaseOpContext>;
6258
+ export type GetPaymentSessionVoidError = CoinbaseOpError;
6259
+ /** Get a payment session void Retrieves a single void by its ID, including status, voided amount, associated onchain transactions, and timestamps. Only returns the void if the API key has permission to access it. */
6260
+ export declare const getPaymentSessionVoid: API.OperationMethod<GetPaymentSessionVoidRequest, Void, GetPaymentSessionVoidError, CoinbaseOpContext>;
4805
6261
  export type GetPolicyByIdError = CoinbaseOpError;
4806
6262
  /** Get policy by ID Get a policy by its ID. */
4807
6263
  export declare const getPolicyById: API.OperationMethod<GetPolicyByIdRequest, Policy, GetPolicyByIdError, CoinbaseOpContext>;
@@ -4817,15 +6273,21 @@ export declare const getSQLGrammar: API.OperationMethod<GetSQLGrammarRequest, Ge
4817
6273
  export type GetSQLSchemaError = CoinbaseOpError;
4818
6274
  /** Get schema details Retrieve the schema information for the available tables in the SQL API's indexed data. This includes table names, column definitions, data types, and indexed fields. */
4819
6275
  export declare const getSQLSchema: API.OperationMethod<GetSQLSchemaRequest, OnchainDataSchemaResponse, GetSQLSchemaError, CoinbaseOpContext>;
4820
- export type GetTransferByIdError = CoinbaseOpError;
6276
+ export type GetTransferError = CoinbaseOpError;
4821
6277
  /** Get transfer Get a transfer by its ID. */
4822
- export declare const getTransferById: API.OperationMethod<GetTransferByIdRequest, Transfer, GetTransferByIdError, CoinbaseOpContext>;
6278
+ export declare const getTransfer: API.OperationMethod<GetTransferRequest, Transfer, GetTransferError, CoinbaseOpContext>;
4823
6279
  export type GetUserOperationError = CoinbaseOpError;
4824
6280
  /** Get user operation Gets a user operation by its hash. */
4825
6281
  export declare const getUserOperation: API.OperationMethod<GetUserOperationRequest, EvmUserOperation, GetUserOperationError, CoinbaseOpContext>;
6282
+ export type GetWalletAuthorizationOptionsError = CoinbaseOpError;
6283
+ /** Get wallet authorization options Returns the available wallet authorization options for a payment session. The session must be in `created` status. Provide one or more payer wallet addresses as query parameters. Each option specifies the currency, amount, network, and payloads the payer must sign to authorize the payment. Present the options to the payer and let them choose one, then call **Authorize Wallet** with the selected option. This is a stateless read operation — the session is not modified. If a requested address has no eligible authorization options (e.g. insufficient funds), it appears in `ineligibleAddresses` with a `code` and `message` instead of being absent from `options`. When an address is ineligible because of `insufficient_funds`, its `fundsRequired` array lists, per enabled (network, asset) combination, the current balance and required balance the payer needs to become eligible. */
6284
+ export declare const getWalletAuthorizationOptions: API.OperationMethod<GetWalletAuthorizationOptionsRequest, WalletAuthorizationOptionsResponse, GetWalletAuthorizationOptionsError, CoinbaseOpContext>;
4826
6285
  export type GetWebhookSubscriptionError = CoinbaseOpError;
4827
6286
  /** Get webhook subscription Retrieve detailed information about a specific webhook subscription including configuration, status, creation timestamp, and webhook signature secret. ### Response Includes - Subscription configuration and filters - Target URL and custom headers - Webhook signature secret for verification - Creation timestamp and status */
4828
6287
  export declare const getWebhookSubscription: API.OperationMethod<GetWebhookSubscriptionRequest, WebhookSubscriptionResponse, GetWebhookSubscriptionError, CoinbaseOpContext>;
6288
+ export type GetX402BundleError = CoinbaseOpError;
6289
+ /** Get an x402 bundle Gets a single curated x402 workflow bundle by its bundle slug, including the bundle metadata and its ordered member resources joined to their full discovery metadata. */
6290
+ export declare const getX402Bundle: API.OperationMethod<GetX402BundleRequest, GetX402BundleResponse, GetX402BundleError, CoinbaseOpContext>;
4829
6291
  export type ImportEndUserError = CoinbaseOpError;
4830
6292
  /** Import end user private key Imports an existing private key for an end user into the developer's CDP Project. The private key must be encrypted using the CDP SDK's encryption scheme before being sent to this endpoint. This API should be called from the [CDP SDK](https://github.com/coinbase/cdp-sdk) to ensure that the associated private key is properly encrypted. This endpoint allows developers to import existing keys for their end users, supporting both EVM and Solana key types. The end user must have at least one authentication method configured. */
4831
6293
  export declare const importEndUser: API.OperationMethod<ImportEndUserRequest, EndUser, ImportEndUserError, CoinbaseOpContext>;
@@ -4841,12 +6303,21 @@ export declare const initiateOnrampVerification: API.OperationMethod<InitiateOnr
4841
6303
  export type ListBalancesError = CoinbaseOpError;
4842
6304
  /** List balances for account List the balances for an account. Results are sorted by native-fiat equivalent balance in descending order. */
4843
6305
  export declare const listBalances: API.OperationMethod<ListBalancesRequest, ListBalancesResponse, ListBalancesError, CoinbaseOpContext>;
6306
+ export type ListCoinbaseAccountBalancesError = CoinbaseOpError;
6307
+ /** List Coinbase account balances Returns the balances held in the Coinbase account. The `available` amount is the immediately spendable balance. The `total` amount also includes funds currently on hold. Both amounts are returned as decimal strings with 2 decimal places (e.g. `"50.00"`). **Authentication:** Requires a Coinbase OAuth Bearer token with the `coinbase:stablecoins:balance-read` scope. **Returned assets:** Currently always returns a single USDC entry. If the payer holds no USDC, the entry is still returned with an `available` and `total` of `"0"` so callers do not need to special-case a missing asset. Additional assets may be returned in the future without a contract change. */
6308
+ export declare const listCoinbaseAccountBalances: API.OperationMethod<ListCoinbaseAccountBalancesRequest, Balances, ListCoinbaseAccountBalancesError, CoinbaseOpContext>;
6309
+ export type ListCustomersError = CoinbaseOpError;
6310
+ /** List customers List all customers. The API will return all customers that the API Key has permissions to access. Results are not returned in any guaranteed order. */
6311
+ export declare const listCustomers: API.OperationMethod<ListCustomersRequest, ListCustomersResponse, ListCustomersError, CoinbaseOpContext>;
4844
6312
  export type ListDataTokenBalancesError = CoinbaseOpError;
4845
- /** List EVM token balances Lists the token balances of an EVM address on a given network. The balances include ERC-20 tokens and the native gas token (usually ETH). The response is paginated, and by default, returns 20 balances per page. **Note:** This endpoint provides <1 second freshness from chain tip, <500ms response latency for wallets with reasonable token history, and 99.9% uptime for production use. */
6313
+ /** List EVM token balances Lists the token balances of an EVM address on a given network. The balances include ERC-20 tokens and the native gas token (usually ETH). The response is paginated, and by default, returns 20 balances per page. Calls to the `base` and `base-sepolia` networks offer: * 99.5% < 2 second freshness from chain tip for new tokens on an address. * 99.5% < 2 second freshness from chain tip for balance data. Calls to the `ethereum` network offer: * 99% < 30 second freshness from chain tip for new tokens on an address. * 99% < 2 second freshness from chain tip for balance data. */
4846
6314
  export declare const listDataTokenBalances: API.OperationMethod<ListDataTokenBalancesRequest, ListDataTokenBalancesResponse, ListDataTokenBalancesError, CoinbaseOpContext>;
4847
6315
  export type ListDepositDestinationsError = CoinbaseOpError;
4848
6316
  /** List deposit destinations List deposit destinations. You can optionally filter the results by type, account ID, network, or cryptocurrency address. Results are sorted by creation date in descending order (newest first). */
4849
6317
  export declare const listDepositDestinations: API.OperationMethod<ListDepositDestinationsRequest, ListDepositDestinationsResponse, ListDepositDestinationsError, CoinbaseOpContext>;
6318
+ export type ListDisbursementsError = CoinbaseOpError;
6319
+ /** List disbursements Returns a paginated list of disbursements created by the merchant. Each disbursement includes its source, target, status, amount, and timestamps. Only disbursements accessible by the current API key are returned. */
6320
+ export declare const listDisbursements: API.OperationMethod<ListDisbursementsRequest, ListDisbursementsResponse, ListDisbursementsError, CoinbaseOpContext>;
4850
6321
  export type ListEndUsersError = CoinbaseOpError;
4851
6322
  /** List end users Lists the end users belonging to the developer's CDP Project. By default, the response is sorted by creation date in ascending order and paginated to 20 users per page. */
4852
6323
  export declare const listEndUsers: API.OperationMethod<ListEndUsersRequest, ListEndUsersResponse, ListEndUsersError, CoinbaseOpContext>;
@@ -4857,7 +6328,7 @@ export type ListEvmSmartAccountsError = CoinbaseOpError;
4857
6328
  /** List Smart Accounts Lists the Smart Accounts belonging to the developer's CDP Project. The response is paginated, and by default, returns 20 accounts per page. */
4858
6329
  export declare const listEvmSmartAccounts: API.OperationMethod<ListEvmSmartAccountsRequest, ListEvmSmartAccountsResponse, ListEvmSmartAccountsError, CoinbaseOpContext>;
4859
6330
  export type ListEvmTokenBalancesError = CoinbaseOpError;
4860
- /** List EVM token balances Lists the token balances of an EVM address on a given network. The balances include ERC-20 tokens and the native gas token (usually ETH). The response is paginated, and by default, returns 20 balances per page. **Note:** This endpoint is still under development and does not yet provide strong freshness guarantees. Specifically, balances of new tokens can, on occasion, take up to ~30 seconds to appear, while balances of tokens already belonging to an address will generally be close to chain tip. Freshness of new token balances will improve over the coming weeks. */
6331
+ /** List EVM token balances Lists the token balances of an EVM address on a given network. The balances include ERC-20 tokens and the native gas token (usually ETH). The response is paginated, and by default, returns 20 balances per page. Calls to the `base` and `base-sepolia` networks offer: * 99.5% < 2 second freshness from chain tip for new tokens on an address. * 99.5% < 2 second freshness from chain tip for balance data. Calls to the `ethereum` network offer: * 99% < 30 second freshness from chain tip for new tokens on an address. * 99% < 2 second freshness from chain tip for balance data. */
4861
6332
  export declare const listEvmTokenBalances: API.OperationMethod<ListEvmTokenBalancesRequest, ListEvmTokenBalancesResponse, ListEvmTokenBalancesError, CoinbaseOpContext>;
4862
6333
  export type ListFoundationAccountsError = CoinbaseOpError;
4863
6334
  /** List accounts List all accounts. The API will return all accounts that the API Key has Permissions to access. You can filter the results by using query parameters, which will be treated as a single conjunction (i.e. AND). Results are sorted by creation date in descending order (newest first). */
@@ -4865,6 +6336,21 @@ export declare const listFoundationAccounts: API.OperationMethod<ListFoundationA
4865
6336
  export type ListPaymentMethodsError = CoinbaseOpError;
4866
6337
  /** List payment methods List payment methods linked to your entity. Payment methods represent external financial instruments that can be used as a target for transfers. The list will not include disabled or deleted payment methods. **Currently Supported Types:** - `fedwire`: Domestic USD wire transfers - `swift`: International wire transfers - `sepa`: SEPA EUR transfers **Note:** Payment methods are created and verified through your linked CDP entity. Currently, fetching payment methods is only supported for Prime investment vehicles linked to CDP. */
4867
6338
  export declare const listPaymentMethods: API.OperationMethod<ListPaymentMethodsRequest, ListPaymentMethodsResponse, ListPaymentMethodsError, CoinbaseOpContext>;
6339
+ export type ListPaymentSessionAuthorizationsError = CoinbaseOpError;
6340
+ /** List payment session authorizations Returns a paginated list of authorizations for a payment session. Each authorization represents a hold on funds and includes its current status and amount. */
6341
+ export declare const listPaymentSessionAuthorizations: API.OperationMethod<ListPaymentSessionAuthorizationsRequest, ListPaymentSessionAuthorizationsResponse, ListPaymentSessionAuthorizationsError, CoinbaseOpContext>;
6342
+ export type ListPaymentSessionCapturesError = CoinbaseOpError;
6343
+ /** List payment session captures Returns a paginated list of captures for a payment session. Each capture includes its status, amount, associated onchain transactions, and timestamps. Only captures accessible by the current API key are returned. */
6344
+ export declare const listPaymentSessionCaptures: API.OperationMethod<ListPaymentSessionCapturesRequest, ListPaymentSessionCapturesResponse, ListPaymentSessionCapturesError, CoinbaseOpContext>;
6345
+ export type ListPaymentSessionRefundsError = CoinbaseOpError;
6346
+ /** List payment session refunds Returns a paginated list of refunds for a payment session. Each refund includes its status, amount, reason, associated onchain transactions, and timestamps. Only refunds accessible by the current API key are returned. */
6347
+ export declare const listPaymentSessionRefunds: API.OperationMethod<ListPaymentSessionRefundsRequest, ListPaymentSessionRefundsResponse, ListPaymentSessionRefundsError, CoinbaseOpContext>;
6348
+ export type ListPaymentSessionsError = CoinbaseOpError;
6349
+ /** List payment sessions Returns a paginated list of payment sessions that the API key has permission to access. */
6350
+ export declare const listPaymentSessions: API.OperationMethod<ListPaymentSessionsRequest, ListPaymentSessionsResponse, ListPaymentSessionsError, CoinbaseOpContext>;
6351
+ export type ListPaymentSessionVoidsError = CoinbaseOpError;
6352
+ /** List payment session voids Returns a paginated list of voids for a payment session. Each void includes its status, amount, associated onchain transactions, and timestamps. Only voids accessible by the current API key are returned. */
6353
+ export declare const listPaymentSessionVoids: API.OperationMethod<ListPaymentSessionVoidsRequest, ListPaymentSessionVoidsResponse, ListPaymentSessionVoidsError, CoinbaseOpContext>;
4868
6354
  export type ListPoliciesError = CoinbaseOpError;
4869
6355
  /** List policies Lists the policies belonging to the developer's CDP Project. Use the `scope` parameter to filter the policies by scope. The response is paginated, and by default, returns 20 policies per page. */
4870
6356
  export declare const listPolicies: API.OperationMethod<ListPoliciesRequest, ListPoliciesResponse, ListPoliciesError, CoinbaseOpContext>;
@@ -4881,7 +6367,7 @@ export type ListTokensForAccountError = CoinbaseOpError;
4881
6367
  /** List token addresses for account Retrieve all ERC-20 token contract addresses that an account has ever received tokens from. Analyzes transaction history to discover token interactions. */
4882
6368
  export declare const listTokensForAccount: API.OperationMethod<ListTokensForAccountRequest, AccountTokenAddressesResponse, ListTokensForAccountError, CoinbaseOpContext>;
4883
6369
  export type ListTransfersError = CoinbaseOpError;
4884
- /** List transfers List transfers for your organization. Use this to view and monitor your transfer activity. **Status Filtering**: Filter by specific status to efficiently manage transfers: * `?status=processing` - Monitor active transfers. * `?status=quoted` - Find transfers awaiting execution. * `?status=failed` - Review failed transfers for troubleshooting. * `?status=completed` - Find completed transfers. **Account Filtering**: Filter by account ID to find transfers involving a specific account: * `?accountId=<ID>` - All transfers where the account is either source or target (OR semantics). * `?sourceAccountId=<ID>` - Only transfers where the account is the source (outbound). * `?targetAccountId=<ID>` - Only transfers where the account is the target (inbound). Providing `accountId` together with `sourceAccountId` or `targetAccountId` is a validation error and returns HTTP 400. **Date Range Filtering**: Filter by creation or last-updated time for reconciliation: * `?createdAfter=2026-01-01T00:00:00Z&createdBefore=2026-01-31T23:59:59Z` - Transfers created within a date range. * `?updatedAfter=2026-01-01T00:00:00Z` - Transfers updated since a given time. Useful for incremental sync. **Asset Filtering**: Filter by source or target asset symbol: * `?sourceAsset=usd` - Transfers funded from a USD account. * `?targetAsset=usdc` - Transfers delivering USDC to the target. **Other Filters**: * `?sourceAddress=0x...` - Transfers from a specific on-chain source address. * `?targetAddress=0x...` - Transfers to a specific on-chain destination address. * `?targetEmail=user@example.com` - Transfers to a specific email recipient. * `?transferId=transfer_...` - Look up a single transfer by ID; bypasses pagination. */
6370
+ /** List transfers List transfers for your organization. Use this to view and monitor your transfer activity. **Status Filtering**: Filter by specific status to efficiently manage transfers: * `?status=processing` - Monitor active transfers. * `?status=quoted` - Find transfers awaiting execution. * `?status=failed` - Review failed transfers for troubleshooting. * `?status=completed` - Find completed transfers. **Account Filtering**: Filter by account ID to find transfers involving a specific account: * `?accountId=<ID>` - All transfers where the account is either source or target (OR semantics). * `?sourceAccountId=<ID>` - Only transfers where the account is the source (outbound). * `?targetAccountId=<ID>` - Only transfers where the account is the target (inbound). Providing `accountId` together with `sourceAccountId` or `targetAccountId` is a validation error and returns HTTP 400. **Date Range Filtering**: Filter by creation or last-updated time for reconciliation: * `?createdAfter=2026-01-01T00:00:00Z&createdBefore=2026-01-31T23:59:59Z` - Transfers created within a date range. * `?updatedAfter=2026-01-01T00:00:00Z` - Transfers updated since a given time. Useful for incremental sync. **Asset Filtering**: Filter by source or target asset symbol: * `?sourceAsset=usd` - Transfers funded from a USD account. * `?targetAsset=usdc` - Transfers delivering USDC to the target. Supported asset symbols include `usdc`, `eurc`, `usd`, and `eur`. **Other Filters**: * `?sourceAddress=0x...` - Transfers from a specific on-chain source address. * `?targetAddress=0x...` - Transfers to a specific on-chain destination address. * `?targetEmail=user@example.com` - Transfers to a specific email recipient. * `?transferId=transfer_...` - Look up a single transfer by ID; bypasses pagination. */
4885
6371
  export declare const listTransfers: API.OperationMethod<ListTransfersRequest, ListTransfersResponse, ListTransfersError, CoinbaseOpContext>;
4886
6372
  export type ListWebhookSubscriptionEventsError = CoinbaseOpError;
4887
6373
  /** List webhook subscription events Retrieve webhook event delivery attempts for a specific subscription. Returns event deliveries in descending order by creation time (newest first), including delivery status, retry count, and response details. ### Use Cases - Debug webhook delivery failures and inspect response codes - Monitor delivery status and retry counts - Audit event delivery history for a subscription - Verify that expected events were sent to webhook URLs ### Filtering Use optional query parameters to narrow results: - `eventId` — find a specific event by ID - `minCreatedAt` / `maxCreatedAt` — filter by time range - `eventTypeNames` — filter by event type (comma-separated) **Note:** Results are limited to the 50 most recent events (newest first). No pagination is supported. */
@@ -4889,6 +6375,9 @@ export declare const listWebhookSubscriptionEvents: API.OperationMethod<ListWebh
4889
6375
  export type ListWebhookSubscriptionsError = CoinbaseOpError;
4890
6376
  /** List webhook subscriptions Retrieve a paginated list of webhook subscriptions for the authenticated project. Returns subscriptions for all CDP product events (onchain, onramp/offramp, wallet, etc.) in descending order by creation time. ### Use Cases - Monitor all active webhook subscriptions across CDP products - Audit webhook configurations - Manage subscription lifecycle */
4891
6377
  export declare const listWebhookSubscriptions: API.OperationMethod<ListWebhookSubscriptionsRequest, ListWebhookSubscriptionsResponse, ListWebhookSubscriptionsError, CoinbaseOpContext>;
6378
+ export type ListX402BundlesError = CoinbaseOpError;
6379
+ /** List x402 bundles Lists the available curated x402 workflow bundles. A bundle is an ordered, named grouping of curated x402 resources that together cover a common agent workflow. The result set is small and server-controlled, so this endpoint is not paginated. */
6380
+ export declare const listX402Bundles: API.OperationMethod<ListX402BundlesRequest, X402BundlesResponse, ListX402BundlesError, CoinbaseOpContext>;
4892
6381
  export type ListX402DiscoveryMerchantError = CoinbaseOpError;
4893
6382
  /** List merchant discovery info Gets x402 merchant discovery information for a given merchant payment address. This endpoint returns all active x402 resources associated with the specified `payTo` address, allowing clients to discover what payment-gated resources a merchant exposes and their corresponding payment requirements. If no active resources are found for the `payTo` address, the endpoint returns an empty `resources` list. The response is paginated, and by default, returns 20 items per page. */
4894
6383
  export declare const listX402DiscoveryMerchant: API.OperationMethod<ListX402DiscoveryMerchantRequest, X402DiscoveryMerchantResponse, ListX402DiscoveryMerchantError, CoinbaseOpContext>;
@@ -4898,21 +6387,21 @@ export declare const listX402DiscoveryResources: API.OperationMethod<ListX402Dis
4898
6387
  export type LookupEndUserError = CoinbaseOpError;
4899
6388
  /** Look up end users by identity Looks up end users. Exactly one lookup type must be provided per request: - **email**: searches across all email-based authentication methods (email, Google, Apple, GitHub). May return multiple end users if the same email address appears across different auth methods. - **oauthProvider + oauthSubject**: looks up a user by their OAuth provider and subject (the `sub` claim from the provider's ID token). Both params must be provided together. - **phoneNumber**: looks up a user by their SMS-verified phone number. - **siweAddress**: looks up a user by the Ethereum address they authenticated with via Sign In With Ethereum (EIP-4361). Returns all matching end users. If no end users match, an empty array is returned. This API is intended to be used by the developer's own backend, and is authenticated using the developer's CDP API key. */
4900
6389
  export declare const lookupEndUser: API.OperationMethod<LookupEndUserRequest, LookupEndUserResponse, LookupEndUserError, CoinbaseOpContext>;
4901
- export type PostX402DiscoveryMcpError = CoinbaseOpError;
4902
- /** Handle MCP JSON-RPC request Handles JSON-RPC requests for the Model Context Protocol (MCP). Supports MCP methods for discovering x402 payment resources and tools. */
4903
- export declare const postX402DiscoveryMcp: API.OperationMethod<PostX402DiscoveryMcpRequest, X402McpResponse, PostX402DiscoveryMcpError, CoinbaseOpContext>;
4904
6390
  export type PrepareAndSendUserOperationError = CoinbaseOpError;
4905
6391
  /** Prepare and send user operation Prepares, signs, and sends a user operation for an EVM Smart Account. This API can be used only if the owner on Smart Account is a CDP EVM Account. */
4906
6392
  export declare const prepareAndSendUserOperation: API.OperationMethod<PrepareAndSendUserOperationRequest, EvmUserOperation, PrepareAndSendUserOperationError, CoinbaseOpContext>;
4907
6393
  export type PrepareUserOperationError = CoinbaseOpError;
4908
6394
  /** Prepare user operation Prepares a new user operation on a Smart Account for a specific network. */
4909
6395
  export declare const prepareUserOperation: API.OperationMethod<PrepareUserOperationRequest, EvmUserOperation, PrepareUserOperationError, CoinbaseOpContext>;
6396
+ export type RefundPaymentSessionError = CoinbaseOpError;
6397
+ /** Refund a payment session Returns captured funds to the payer. The session must have a positive `refundable` balance and the `refundExpiresAt` deadline must not have passed. This is an asynchronous operation. The refund is returned in `pending` status and transitions to `succeeded` or `failed`. If `amount` is omitted, the full remaining refundable amount is refunded. Multiple partial refunds are supported. */
6398
+ export declare const refundPaymentSession: API.OperationMethod<RefundPaymentSessionRequest, Refund, RefundPaymentSessionError, CoinbaseOpContext>;
4910
6399
  export type RequestEvmFaucetError = CoinbaseOpError;
4911
6400
  /** Request funds on EVM test networks Request funds from the CDP Faucet on supported EVM test networks. Faucets are available for ETH, USDC, EURC, and cbBTC on Base Sepolia and Ethereum Sepolia, and for ETH only on Ethereum Hoodi. To prevent abuse, we enforce rate limits within a rolling 24-hour window to control the amount of funds that can be requested. These limits are applied at both the CDP User level and the blockchain address level. A single blockchain address cannot exceed the specified limits, even if multiple users submit requests to the same address. */
4912
6401
  export declare const requestEvmFaucet: API.OperationMethod<RequestEvmFaucetRequest, RequestEvmFaucetResponse, RequestEvmFaucetError, CoinbaseOpContext>;
4913
6402
  export type RequestLimitsUpgradeError = CoinbaseOpError;
4914
- /** Request limit upgrade Requests a limit upgrade for an onramp user by submitting identity information. Only phone number is currently supported as a userId. The verification process is asynchronous. After calling this endpoint, use the [Get Onramp User Limits](https://docs.cdp.coinbase.com/api-reference/v2/rest-api/onramp/get-onramp-user-limits) endpoint to check the status in the `limitUpgradeOptions` array. **Prerequisites:** - The phone number must have been previously verified by your app via OTP. - Upgrades may not be available until a certain number of successful transactions by the user. **Supported fields:** - `ssnLast4`: Last 4 digits of the Social Security Number (no dashes or spaces). - `dateOfBirth`: Date of birth (day, month, year as zero-padded strings). */
4915
- export declare const requestLimitsUpgrade: API.OperationMethod<RequestLimitsUpgradeRequest, RequestLimitsUpgradeResponse, RequestLimitsUpgradeError, CoinbaseOpContext>;
6403
+ /** Request limit upgrade Requests a limit upgrade for an onramp user. Only phone number is currently supported as a userId. The default API mode submits identity information directly and returns HTTP 202 when the request is accepted. Embedded mode (`interactionMode: embedded`) returns a Coinbase-hosted `upgradeUrl` where the user enters identity information. The verification process is asynchronous. After calling this endpoint, use the [Get Onramp User Limits](https://docs.cdp.coinbase.com/api-reference/v2/rest-api/onramp/get-onramp-user-limits) endpoint to check the status in the `limitUpgradeOptions` array. **Prerequisites:** - The phone number must have been previously verified by your app via OTP. - Upgrades may not be available until a certain number of successful transactions by the user. **Supported fields:** - `ssnLast4`: Last 4 digits of the Social Security Number (no dashes or spaces). - `dateOfBirth`: Date of birth (day, month, year as zero-padded strings). */
6404
+ export declare const requestLimitsUpgrade: API.OperationMethod<RequestLimitsUpgradeRequest, OnrampLimitUpgradeEmbeddedResponse, RequestLimitsUpgradeError, CoinbaseOpContext>;
4916
6405
  export type RequestSolanaFaucetError = CoinbaseOpError;
4917
6406
  /** Request funds on Solana devnet Request funds from the CDP Faucet on Solana devnet. Faucets are available for SOL, USDC, and CBTUSD. To prevent abuse, we enforce rate limits within a rolling 24-hour window to control the amount of funds that can be requested. These limits are applied at both the CDP Project level and the blockchain address level. A single blockchain address cannot exceed the specified limits, even if multiple users submit requests to the same address. */
4918
6407
  export declare const requestSolanaFaucet: API.OperationMethod<RequestSolanaFaucetRequest, RequestSolanaFaucetResponse, RequestSolanaFaucetError, CoinbaseOpContext>;
@@ -4991,6 +6480,9 @@ export declare const signSolanaTransaction: API.OperationMethod<SignSolanaTransa
4991
6480
  export type SignSolanaTransactionWithEndUserAccountError = CoinbaseOpError;
4992
6481
  /** Sign transaction via end user Solana account Signs a transaction with the given end user Solana account. The unsigned transaction should be serialized into a byte array and then encoded as base64. **Transaction types** The following transaction types are supported: * [Legacy transactions](https://solana-labs.github.io/solana-web3.js/classes/Transaction.html) * [Versioned transactions](https://solana-labs.github.io/solana-web3.js/classes/VersionedTransaction.html) The developer is responsible for ensuring that the unsigned transaction is valid, as the API will not validate the transaction. */
4993
6482
  export declare const signSolanaTransactionWithEndUserAccount: API.OperationMethod<SignSolanaTransactionWithEndUserAccountRequest, SignSolanaTransactionWithEndUserAccountResponse, SignSolanaTransactionWithEndUserAccountError, CoinbaseOpContext>;
6483
+ export type SignSolanaX402PaymentWithEndUserAccountError = CoinbaseOpError;
6484
+ /** Sign x402 payment via end user Solana account Signs an x402 payment payload using the end user's given Solana account. Accepts the full x402 payment required response body from a resource server plus an index into the accepts array selecting which payment option to sign. The paymentRequired envelope's x402Version, resource, and extensions are carried through into the signed payment payload; only the selected accept entry becomes paymentPayload.accepted. Returns a signed payment payload that can be base64-encoded and sent in the PAYMENT-SIGNATURE header of the resource request. If acceptsIndex is out of range for paymentRequired.accepts, or the selected accept is not a Solana network payment option, the request fails with 422. */
6485
+ export declare const signSolanaX402PaymentWithEndUserAccount: API.OperationMethod<SignSolanaX402PaymentWithEndUserAccountRequest, SignSolanaX402PaymentWithEndUserAccountResponse, SignSolanaX402PaymentWithEndUserAccountError, CoinbaseOpContext>;
4994
6486
  export type SubmitDepositTravelRuleError = CoinbaseOpError;
4995
6487
  /** Submit deposit travel rule information Submit travel rule information for a deposit transfer held pending compliance review. Required fields vary by jurisdiction and may include originator name, address, date of birth, personal ID, and VASP information. If the submitted information satisfies all jurisdictional requirements, `status` will be `completed` and the transfer will proceed. Otherwise, `status` will be `incomplete` and `missingFields` will indicate which fields still need to be provided. */
4996
6488
  export declare const submitDepositTravelRule: API.OperationMethod<SubmitDepositTravelRuleRequest, DepositTravelRuleResponse, SubmitDepositTravelRuleError, CoinbaseOpContext>;
@@ -5000,6 +6492,9 @@ export declare const submitOnrampVerification: API.OperationMethod<SubmitOnrampV
5000
6492
  export type SupportedX402PaymentKindsError = CoinbaseOpError;
5001
6493
  /** Get supported payment schemes and networks Get the supported x402 protocol payment schemes and networks that the facilitator is able to verify and settle payments for. */
5002
6494
  export declare const supportedX402PaymentKinds: API.OperationMethod<SupportedX402PaymentKindsRequest, SupportedX402PaymentKindsResponse, SupportedX402PaymentKindsError, CoinbaseOpContext>;
6495
+ export type UpdateCustomerByIdError = CoinbaseOpError;
6496
+ /** Update a customer Update customer information and/or request capability changes. This endpoint supports partial updates. Provide only the fields you wish to change. */
6497
+ export declare const updateCustomerById: API.OperationMethod<UpdateCustomerByIdRequest, Customer, UpdateCustomerByIdError, CoinbaseOpContext>;
5003
6498
  export type UpdateEvmAccountError = CoinbaseOpError;
5004
6499
  /** Update EVM account Updates an existing EVM account. Use this to update the account's name or account-level policy. */
5005
6500
  export declare const updateEvmAccount: API.OperationMethod<UpdateEvmAccountRequest, EvmAccount, UpdateEvmAccountError, CoinbaseOpContext>;
@@ -5024,4 +6519,7 @@ export declare const validateX402Resource: API.OperationMethod<ValidateX402Resou
5024
6519
  export type VerifyX402PaymentError = CoinbaseOpError;
5025
6520
  /** Verify payment Verify an x402 protocol payment with a specific scheme and network. */
5026
6521
  export declare const verifyX402Payment: API.OperationMethod<VerifyX402PaymentRequest, VerifyX402PaymentResponse, VerifyX402PaymentError, CoinbaseOpContext>;
6522
+ export type VoidPaymentSessionError = CoinbaseOpError;
6523
+ /** Void a payment session Releases all remaining capturable funds back to the payer. The session must have a positive `capturable` balance. This is an asynchronous operation. The void is returned in `pending` status and transitions to `succeeded` or `failed`. After voiding, no further captures can be made. Unlike **Cancel**, which works before authorization, void works after authorization. */
6524
+ export declare const voidPaymentSession: API.OperationMethod<VoidPaymentSessionRequest, Void, VoidPaymentSessionError, CoinbaseOpContext>;
5027
6525
  //# sourceMappingURL=cdp.d.ts.map