import { APIResource } from "../../core/resource.js"; import * as Shared from "../shared.js"; import * as BulkAPI from "./bulk.js"; import { Bulk, BulkGetJobStatusResponse, BulkUploadCsvParams, BulkUploadCsvResponse } from "./bulk.js"; import * as ExternalAccountsAPI from "./external-accounts.js"; import { Address, AedExternalAccountInfo, BaseWalletInfo, BdtExternalAccountInfo, BeneficiaryVerifiedData, BrlBeneficiary, BrlExternalAccountInfo, BusinessBeneficiary, BwpExternalAccountInfo, CadExternalAccountInfo, CopExternalAccountInfo, DkkBeneficiary, DkkExternalAccountInfo, EgpExternalAccountInfo, EurExternalAccountInfo, ExternalAccount, ExternalAccountCreate, ExternalAccountCreateParams, ExternalAccountInfoOneOf, ExternalAccountListParams, ExternalAccounts, ExternalAccountsDefaultPagination, GbpBeneficiary, GbpExternalAccountInfo, GhsExternalAccountInfo, GtqExternalAccountInfo, HkdBeneficiary, HkdExternalAccountInfo, HtgExternalAccountInfo, IdrBeneficiary, IdrExternalAccountInfo, InrBeneficiary, InrExternalAccountInfo, JmdExternalAccountInfo, KesExternalAccountInfo, LightningWalletInfo, MwkExternalAccountInfo, MxnBeneficiary, MxnExternalAccountInfo, MyrBeneficiary, MyrExternalAccountInfo, NgnExternalAccountInfo, PhpBeneficiary, PhpExternalAccountInfo, PkrExternalAccountInfo, PolygonWalletInfo, RwfExternalAccountInfo, SgdBeneficiary, SgdExternalAccountInfo, SolanaWalletInfo, SparkWalletInfo, ThbBeneficiary, ThbExternalAccountInfo, TronWalletInfo, TzsExternalAccountInfo, UgxExternalAccountInfo, UsdBeneficiary, UsdExternalAccountInfo, VndBeneficiary, VndExternalAccountInfo, XafExternalAccountInfo, XofExternalAccountInfo, ZarExternalAccountInfo, ZmwExternalAccountInfo } from "./external-accounts.js"; import * as InternalAccountsAPI from "../sandbox/internal-accounts.js"; import { InternalAccountsDefaultPagination } from "../sandbox/internal-accounts.js"; import { APIPromise } from "../../core/api-promise.js"; import { DefaultPagination, type DefaultPaginationParams, PagePromise } from "../../core/pagination.js"; import { RequestOptions } from "../../internal/request-options.js"; export declare class Customers extends APIResource { externalAccounts: ExternalAccountsAPI.ExternalAccounts; bulk: BulkAPI.Bulk; /** * Register a new customer in the system with an account identifier and bank * account information * * @example * ```ts * const customer = await client.customers.create({ * CreateCustomerRequest: { customerType: 'INDIVIDUAL' }, * }); * ``` */ create(params: CustomerCreateParams, options?: RequestOptions): APIPromise; /** * Retrieve a customer by their system-generated ID * * @example * ```ts * const customer = await client.customers.retrieve( * 'customerId', * ); * ``` */ retrieve(customerID: string, options?: RequestOptions): APIPromise; /** * Update a customer's metadata by their system-generated ID. * * Most customer updates complete synchronously and return `200` with the updated * customer. If the request changes `email` for a customer that has one or more * tied Embedded Wallet internal accounts with `EMAIL_OTP` credentials, the email * change uses the two-step signed-retry flow so the customer's wallet session * authorizes the authentication credential update. On the signed retry, Grid * updates the customer email and every tied `EMAIL_OTP` credential across all tied * Embedded Wallets as one logical operation. If any tied credential cannot be * updated, the customer email is not changed. * * For an Embedded Wallet email update: * * 1. Call `PATCH /customers/{customerId}` with the full update body and no * signature headers. Grid returns `202` with `payloadToSign`, `requestId`, and * `expiresAt`. The pending challenge binds the submitted update fields and the * set of tied Embedded Wallet email OTP credentials that must be updated. * * 2. Use the session API keypair of a verified authentication credential on one of * the customer's tied Embedded Wallets to build an API-key stamp over * `payloadToSign`, then retry the same request with that full stamp as the * `Grid-Wallet-Signature` header and the `requestId` echoed back as the * `Request-Id` header. The retry body must carry the same update fields * submitted in step 1. The signed retry returns `200` with the updated * customer. * * @example * ```ts * const customer = await client.customers.update( * 'customerId', * { UpdateCustomerRequest: { customerType: 'INDIVIDUAL' } }, * ); * ``` */ update(customerID: string, params: CustomerUpdateParams, options?: RequestOptions): APIPromise; /** * Retrieve a list of customers with optional filtering parameters. Returns all * customers that match the specified filters. If no filters are provided, returns * all customers (paginated). * * @example * ```ts * // Automatically fetches more pages as needed. * for await (const customerListResponse of client.customers.list()) { * // ... * } * ``` */ list(query?: CustomerListParams | null | undefined, options?: RequestOptions): PagePromise; /** * Delete a customer by their system-generated ID * * @example * ```ts * const customer = await client.customers.delete( * 'customerId', * ); * ``` */ delete(customerID: string, options?: RequestOptions): APIPromise; /** * Export the wallet credentials of an Embedded Wallet internal account. The * returned wallet credentials are HPKE-encrypted to the `clientPublicKey` supplied * in the request body. * * Export is a two-step signed-retry flow (same pattern as add-additional * credential, revoke credential, and revoke session): * * 1. Call `POST /internal-accounts/{id}/export` with the request body * `{ "clientPublicKey": "..." }` and no signature headers. Grid binds the * `clientPublicKey` into the `payloadToSign` it returns, so the subsequent * stamp in `Grid-Wallet-Signature` commits to the target encryption key. The * response is `202` with `payloadToSign`, `requestId`, and `expiresAt`. * * 2. Use the session API keypair of a verified authentication credential on the * same internal account to build an API-key stamp over `payloadToSign`, then * retry with that full stamp as the `Grid-Wallet-Signature` header and the * `requestId` echoed back as the `Request-Id` header. The retry body must carry * the **same** `clientPublicKey` submitted in step 1 — Grid rejects the retry * with `401` if it disagrees with what was bound into `payloadToSign`. The * signed retry returns `200` with `encryptedWalletCredentials`, which the * client decrypts with the matching private key. * * The `clientPublicKey` is ephemeral: generate a fresh P-256 keypair for this * export and discard the private key after decrypting. Do not reuse the keypair * from any prior verify call — that private key was already discarded after * decrypting the session signing key it was issued against. * * @example * ```ts * const response = await client.customers.export('id', { * clientPublicKey: * '04f45f2a22c908b9ce09a7150e514afd24627c401c38a4afc164e1ea783adaaa31d4245acfb88c2ebd42b47628d63ecabf345484f0a9f665b63c54c897d5578be2', * }); * ``` */ export(id: string, params: CustomerExportParams, options?: RequestOptions): APIPromise; /** * Generate a single-use hosted URL the customer can complete to verify their * identity, and (where supported) a provider-specific `token` for embedding the * verification flow directly via the provider's SDK. * * The customer must already exist — create them with `POST /customers` first. * Calling this endpoint does not change the customer's `kycStatus`; the customer * remains `PENDING` until they complete (or fail) the hosted flow. * * Each call returns a fresh link. Previously-issued links are not invalidated, but * they remain single-use and will expire on their own. For request-level retry * safety, include an `Idempotency-Key` header. * * @example * ```ts * const response = await client.customers.generateKYCLink( * 'customerId', * ); * ``` */ generateKYCLink(customerID: string, params?: CustomerGenerateKYCLinkParams | null | undefined, options?: RequestOptions): APIPromise; /** * Retrieve a list of internal accounts with optional filtering parameters. Returns * all internal accounts that match the specified filters. If no filters are * provided, returns all internal accounts (paginated). * * Internal accounts are created automatically when a customer is created based on * the platform configuration. * * @example * ```ts * // Automatically fetches more pages as needed. * for await (const internalAccount of client.customers.listInternalAccounts()) { * // ... * } * ``` */ listInternalAccounts(query?: CustomerListInternalAccountsParams | null | undefined, options?: RequestOptions): PagePromise; /** * Update mutable fields on an internal account. Today this supports updating the * wallet privacy setting for an Embedded Wallet internal account. * * Updating wallet privacy is a two-step signed-retry flow: * * 1. Call `PATCH /internal-accounts/{id}` with the request body * `{ "privateEnabled": true }` and no signature headers. Grid returns `202` * with `payloadToSign`, `requestId`, and `expiresAt`. * * 2. Use the session API keypair of a verified authentication credential on the * same internal account to build an API-key stamp over `payloadToSign`, then * retry with that full stamp as the `Grid-Wallet-Signature` header and the * `requestId` echoed back as the `Request-Id` header. The retry body must carry * the same update fields submitted in step 1. The signed retry returns `200` * with the updated internal account. * * @example * ```ts * const internalAccount = * await client.customers.updateInternalAccount( * 'InternalAccount:019542f5-b3e7-1d02-0000-000000000002', * { privateEnabled: true }, * ); * ``` */ updateInternalAccount(id: string, params: CustomerUpdateInternalAccountParams, options?: RequestOptions): APIPromise; } export type CustomerListResponsesDefaultPagination = DefaultPagination; export type CustomerCreateResponse = Shared.IndividualCustomer | Shared.BusinessCustomer; export type CustomerRetrieveResponse = Shared.IndividualCustomer | Shared.BusinessCustomer; export type CustomerUpdateResponse = Shared.IndividualCustomer | Shared.BusinessCustomer; export type CustomerListResponse = Shared.IndividualCustomer | Shared.BusinessCustomer; export type CustomerDeleteResponse = Shared.IndividualCustomer | Shared.BusinessCustomer; export interface CustomerExportResponse { /** * The id of the internal account that was exported. */ id: string; /** * Encrypted wallet mnemonic, sealed to the `clientPublicKey` from the request body * using HPKE: DHKEM(P-256, HKDF-SHA256) + HKDF-SHA256 + AES-256-GCM. Decrypt with * the matching private key, then manage the mnemonic securely because it is the * master key of the self-custodial Embedded Wallet. The value is a JSON string of * the form * `{"version": "v1.0.0", "data": "", "dataSignature": "", "enclaveQuorumPublic": ""}`. * `data` hex-decodes to JSON * `{"encappedPublic": "", "ciphertext": "", "organizationId": ""}`, * where `encappedPublic` is the uncompressed SEC1 ephemeral public key. * `dataSignature` is an ECDSA-P256-SHA256 signature over the `data` bytes produced * by the issuer key in `enclaveQuorumPublic`; verify before decrypting. In * sandbox, `dataSignature` and `enclaveQuorumPublic` are empty strings. Clients * should bypass attestation verification when calling against sandbox. */ encryptedWalletCredentials: string; } /** * A hosted KYC link that the customer can complete to verify their identity. */ export interface CustomerGenerateKYCLinkResponse { /** * Time at which the hosted link expires and can no longer be used. */ expiresAt: string; /** * Hosted URL the customer should be sent to in order to complete verification. The * URL is single-use and expires at `expiresAt`. To generate a new link (for * example, after the previous one expires or is abandoned), call this endpoint * again. */ kycUrl: string; /** * The KYC provider that will perform identity verification for the customer. Grid * selects the provider based on the customer's region and platform configuration; * the value is informational for platforms that want to integrate directly with * the provider's SDK. */ provider: 'SUMSUB'; /** * Provider-specific token that can be used in place of the hosted URL — for * example, to embed the provider's SDK directly in your application. Only returned * for providers that support direct SDK integration. Whether to use the hosted URL * or the embedded SDK is up to you; both flows result in the same `kycStatus` * update on the customer. */ token?: string; } export interface CustomerCreateParams { CreateCustomerRequest: CustomerCreateParams.IndividualCustomerCreateRequest | CustomerCreateParams.BusinessCustomerCreateRequest; } export declare namespace CustomerCreateParams { interface IndividualCustomerCreateRequest { customerType: 'INDIVIDUAL'; address?: ExternalAccountsAPI.Address; /** * Date of birth in ISO 8601 format (YYYY-MM-DD) */ birthDate?: string; /** * List of currency codes the customer will use (ISO 4217 for fiat, e.g. "USD", * "EUR"; tickers for crypto, e.g. "BTC", "USDC"). Required if the customer will * use more than one sending currency, since the correct currencies cannot always * be inferred. If not provided, currencies will be inferred from the customer's * region. Some currency combinations may require separate customers — if so, the * request will be rejected with details. */ currencies?: Array; /** * Email address for the customer. */ email?: string; /** * Individual's full name */ fullName?: string; /** * The current KYC status of a customer */ kycStatus?: 'UNVERIFIED' | 'PENDING' | 'APPROVED' | 'REJECTED'; /** * Country code (ISO 3166-1 alpha-2) */ nationality?: string; /** * Platform-specific customer identifier. If not provided, one will be generated by * the system. */ platformCustomerId?: string; /** * Country code (ISO 3166-1 alpha-2) representing the customer's regional identity. * This determines the regulatory jurisdiction and KYC requirements for the * customer. Required if the customer will use currencies with different KYC * requirements across regions. A customer with accounts in multiple regions should * be registered as separate customers. This field is immutable after creation. */ region?: string; /** * Optional UMA address identifier. If not provided during customer creation, one * will be generated by the system. If provided during customer update, the UMA * address will be updated to the provided value. This is an optional identifier to * route payments to the customer. This is an optional identifier to route payments * to the customer. */ umaAddress?: string; } interface BusinessCustomerCreateRequest { customerType: 'BUSINESS'; address?: ExternalAccountsAPI.Address; /** * Additional information for business entities */ businessInfo?: BusinessCustomerCreateRequest.BusinessInfo; /** * List of currency codes the customer will use (ISO 4217 for fiat, e.g. "USD", * "EUR"; tickers for crypto, e.g. "BTC", "USDC"). Required if the customer will * use more than one sending currency, since the correct currencies cannot always * be inferred. If not provided, currencies will be inferred from the customer's * region. Some currency combinations may require separate customers — if so, the * request will be rejected with details. */ currencies?: Array; /** * Email address for the customer. */ email?: string; /** * The current KYB status of a business customer */ kybStatus?: 'UNVERIFIED' | 'PENDING' | 'APPROVED' | 'REJECTED'; /** * Platform-specific customer identifier. If not provided, one will be generated by * the system. */ platformCustomerId?: string; /** * Country code (ISO 3166-1 alpha-2) representing the customer's regional identity. * This determines the regulatory jurisdiction and KYC requirements for the * customer. Required if the customer will use currencies with different KYC * requirements across regions. A customer with accounts in multiple regions should * be registered as separate customers. This field is immutable after creation. */ region?: string; /** * Optional UMA address identifier. If not provided during customer creation, one * will be generated by the system. If provided during customer update, the UMA * address will be updated to the provided value. This is an optional identifier to * route payments to the customer. This is an optional identifier to route payments * to the customer. */ umaAddress?: string; } namespace BusinessCustomerCreateRequest { /** * Additional information for business entities */ interface BusinessInfo extends Shared.BusinessInfoUpdate { /** * Date of incorporation in ISO 8601 format (YYYY-MM-DD) */ incorporatedOn: string; /** * Legal name of the business */ legalName: string; /** * Tax identification number */ taxId: string; /** * The high-level industry category of the business */ businessType?: 'AGRICULTURE_FORESTRY_FISHING_AND_HUNTING' | 'MINING_QUARRYING_AND_OIL_AND_GAS_EXTRACTION' | 'UTILITIES' | 'CONSTRUCTION' | 'MANUFACTURING' | 'WHOLESALE_TRADE' | 'RETAIL_TRADE' | 'TRANSPORTATION_AND_WAREHOUSING' | 'INFORMATION' | 'FINANCE_AND_INSURANCE' | 'REAL_ESTATE_AND_RENTAL_AND_LEASING' | 'PROFESSIONAL_SCIENTIFIC_AND_TECHNICAL_SERVICES' | 'MANAGEMENT_OF_COMPANIES_AND_ENTERPRISES' | 'ADMINISTRATIVE_AND_SUPPORT_AND_WASTE_MANAGEMENT_AND_REMEDIATION_SERVICES' | 'EDUCATIONAL_SERVICES' | 'HEALTH_CARE_AND_SOCIAL_ASSISTANCE' | 'ARTS_ENTERTAINMENT_AND_RECREATION' | 'ACCOMMODATION_AND_FOOD_SERVICES' | 'OTHER_SERVICES' | 'PUBLIC_ADMINISTRATION'; /** * List of countries where the business operates (ISO 3166-1 alpha-2) */ countriesOfOperation?: Array; /** * Country of incorporation or registration (ISO 3166-1 alpha-2) */ country?: string; /** * Trade name or DBA name of the business, if different from the legal name */ doingBusinessAs?: string; /** * Legal entity type of the business */ entityType?: 'SOLE_PROPRIETORSHIP' | 'PARTNERSHIP' | 'LLC' | 'CORPORATION' | 'S_CORPORATION' | 'NON_PROFIT' | 'OTHER'; /** * Expected number of transactions per month */ expectedMonthlyTransactionCount?: 'COUNT_UNDER_10' | 'COUNT_10_TO_100' | 'COUNT_100_TO_500' | 'COUNT_500_TO_1000' | 'COUNT_OVER_1000'; /** * Expected total transaction volume per month in USD equivalent */ expectedMonthlyTransactionVolume?: 'VOLUME_UNDER_10K' | 'VOLUME_10K_TO_100K' | 'VOLUME_100K_TO_1M' | 'VOLUME_1M_TO_10M' | 'VOLUME_OVER_10M'; /** * List of countries where the business expects to send payments (ISO 3166-1 * alpha-2) */ expectedRecipientJurisdictions?: Array; /** * The intended purpose for using the Grid account */ purposeOfAccount?: 'CONTRACTOR_PAYOUTS' | 'CREATOR_PAYOUTS' | 'EMPLOYEE_PAYOUTS' | 'MARKETPLACE_SELLER_PAYOUTS' | 'SUPPLIER_PAYMENTS' | 'CROSS_BORDER_B2B' | 'AR_AUTOMATION' | 'AP_AUTOMATION' | 'EMBEDDED_PAYMENTS' | 'PLATFORM_FEE_COLLECTION' | 'P2P_TRANSFERS' | 'CHARITABLE_DONATIONS' | 'OTHER'; /** * Business registration number */ registrationNumber?: string; /** * The primary source of funds for the business */ sourceOfFunds?: string; } } } export interface CustomerUpdateParams { /** * Body param: Request body for `PATCH /customers/{customerId}`. When `email` * changes for a customer with tied Embedded Wallet internal accounts, Grid updates * the customer email and every tied `EMAIL_OTP` credential across all tied * Embedded Wallets through the endpoint's signed-retry flow. */ UpdateCustomerRequest: CustomerUpdateParams.IndividualCustomerUpdateRequest | CustomerUpdateParams.BusinessCustomerUpdateRequest; /** * Header param: Full API-key stamp built over the prior `payloadToSign` with the * session API keypair of a verified authentication credential on one of the * customer's tied Embedded Wallets. Required on the signed retry for Embedded * Wallet email updates; ignored on the initial call and on customer updates that * complete synchronously. */ 'Grid-Wallet-Signature'?: string; /** * Header param: The `requestId` returned in a prior `202` response, echoed back on * the signed retry so the server can correlate it with the issued challenge. * Required on the signed retry for Embedded Wallet email updates; must be paired * with `Grid-Wallet-Signature`. */ 'Request-Id'?: string; } export declare namespace CustomerUpdateParams { /** * Request body for `PATCH /customers/{customerId}`. When `email` changes for a * customer with tied Embedded Wallet internal accounts, Grid updates the customer * email and every tied `EMAIL_OTP` credential across all tied Embedded Wallets * through the endpoint's signed-retry flow. */ interface IndividualCustomerUpdateRequest { customerType: 'INDIVIDUAL'; address?: ExternalAccountsAPI.Address; /** * Date of birth in ISO 8601 format (YYYY-MM-DD) */ birthDate?: string; /** * Updated list of currency codes the customer will use (ISO 4217 for fiat, e.g. * "USD", "EUR"; tickers for crypto, e.g. "BTC", "USDC"). Replaces the existing * list. Some currency combinations may require separate customers — if so, the * request will be rejected with details. */ currencies?: Array; /** * Email address for the customer. For customers with tied Embedded Wallet internal * accounts, changing this value also updates every tied `EMAIL_OTP` credential * across all tied Embedded Wallets. */ email?: string; /** * Individual's full name */ fullName?: string; /** * The current KYC status of a customer */ kycStatus?: 'UNVERIFIED' | 'PENDING' | 'APPROVED' | 'REJECTED'; /** * Country code (ISO 3166-1 alpha-2) */ nationality?: string; /** * Optional UMA address identifier. If provided, the customer's UMA address will be * updated. This is an optional identifier to route payments to the customer. */ umaAddress?: string; } /** * Request body for `PATCH /customers/{customerId}`. When `email` changes for a * customer with tied Embedded Wallet internal accounts, Grid updates the customer * email and every tied `EMAIL_OTP` credential across all tied Embedded Wallets * through the endpoint's signed-retry flow. */ interface BusinessCustomerUpdateRequest { customerType: 'BUSINESS'; address?: ExternalAccountsAPI.Address; /** * Additional information for business entities */ businessInfo?: Shared.BusinessInfoUpdate; /** * Updated list of currency codes the customer will use (ISO 4217 for fiat, e.g. * "USD", "EUR"; tickers for crypto, e.g. "BTC", "USDC"). Replaces the existing * list. Some currency combinations may require separate customers — if so, the * request will be rejected with details. */ currencies?: Array; /** * Email address for the customer. For customers with tied Embedded Wallet internal * accounts, changing this value also updates every tied `EMAIL_OTP` credential * across all tied Embedded Wallets. */ email?: string; /** * The current KYB status of a business customer */ kybStatus?: 'UNVERIFIED' | 'PENDING' | 'APPROVED' | 'REJECTED'; /** * Optional UMA address identifier. If provided, the customer's UMA address will be * updated. This is an optional identifier to route payments to the customer. */ umaAddress?: string; } } export interface CustomerListParams extends DefaultPaginationParams { /** * Filter customers created after this timestamp (inclusive) */ createdAfter?: string; /** * Filter customers created before this timestamp (inclusive) */ createdBefore?: string; /** * Filter by currency code. Returns customers that have this currency in their * enabled currencies list. */ currency?: string; /** * Filter by customer type */ customerType?: 'INDIVIDUAL' | 'BUSINESS'; /** * Whether to include deleted customers in the results. Default is false. */ isIncludingDeleted?: boolean; /** * Maximum number of results to return (default 20, max 100) */ limit?: number; /** * Filter by platform-specific customer identifier */ platformCustomerId?: string; /** * Filter by customer region (ISO 3166-1 alpha-2 country code) */ region?: string; /** * Filter by uma address */ umaAddress?: string; /** * Filter customers updated after this timestamp (inclusive) */ updatedAfter?: string; /** * Filter customers updated before this timestamp (inclusive) */ updatedBefore?: string; } export interface CustomerExportParams { /** * Body param: Fresh P-256 public key, uncompressed SEC1 hex — 130 hex chars where * the first two are `04` (the uncompressed-point indicator). Generate a new * keypair for each export and discard the private key after decrypting the * response. */ clientPublicKey: string; /** * Header param: Full API-key stamp built over the prior `payloadToSign` with the * session API keypair of a verified authentication credential on the target * internal account. Required on the signed retry; ignored on the initial call. */ 'Grid-Wallet-Signature'?: string; /** * Header param: The `requestId` returned in a prior `202` response, echoed back * exactly on the signed retry so the server can correlate it with the issued * challenge. Required on the signed retry; must be paired with * `Grid-Wallet-Signature`. */ 'Request-Id'?: string; } export interface CustomerGenerateKYCLinkParams { /** * Body param: URI the customer is redirected to after completing the hosted KYC * flow. Must start with `https://` (or `http://` for local development). Embedded * in the returned `kycUrl`. */ redirectUri?: string; /** * Header param: A unique identifier for the request. If the same key is sent * multiple times, the server will return the same response as the first request. */ 'Idempotency-Key'?: string; } export interface CustomerListInternalAccountsParams extends DefaultPaginationParams { /** * Filter by currency code */ currency?: string; /** * Filter by internal accounts associated with a specific customer */ customerId?: string; /** * Maximum number of results to return (default 20, max 100) */ limit?: number; /** * Filter by internal account type. Use `EMBEDDED_WALLET` to find the * self-custodial wallet provisioned for a customer, or `INTERNAL_FIAT` / * `INTERNAL_CRYPTO` for the platform-managed holding accounts. */ type?: 'INTERNAL_FIAT' | 'INTERNAL_CRYPTO' | 'EMBEDDED_WALLET'; } export interface CustomerUpdateInternalAccountParams { /** * Body param: Whether wallet privacy should be enabled for the Embedded Wallet. */ privateEnabled?: boolean; /** * Header param: Full API-key stamp built over the prior `payloadToSign` with the * session API keypair of a verified authentication credential on the target * internal account. Required on the signed retry; ignored on the initial call. */ 'Grid-Wallet-Signature'?: string; /** * Header param: The `requestId` returned in a prior `202` response, echoed back on * the signed retry so the server can correlate it with the issued challenge. * Required on the signed retry; must be paired with `Grid-Wallet-Signature`. */ 'Request-Id'?: string; } export declare namespace Customers { export { type CustomerCreateResponse as CustomerCreateResponse, type CustomerRetrieveResponse as CustomerRetrieveResponse, type CustomerUpdateResponse as CustomerUpdateResponse, type CustomerListResponse as CustomerListResponse, type CustomerDeleteResponse as CustomerDeleteResponse, type CustomerExportResponse as CustomerExportResponse, type CustomerGenerateKYCLinkResponse as CustomerGenerateKYCLinkResponse, type CustomerListResponsesDefaultPagination as CustomerListResponsesDefaultPagination, type CustomerCreateParams as CustomerCreateParams, type CustomerUpdateParams as CustomerUpdateParams, type CustomerListParams as CustomerListParams, type CustomerExportParams as CustomerExportParams, type CustomerGenerateKYCLinkParams as CustomerGenerateKYCLinkParams, type CustomerListInternalAccountsParams as CustomerListInternalAccountsParams, type CustomerUpdateInternalAccountParams as CustomerUpdateInternalAccountParams, }; export { ExternalAccounts as ExternalAccounts, type Address as Address, type AedExternalAccountInfo as AedExternalAccountInfo, type BaseWalletInfo as BaseWalletInfo, type BdtExternalAccountInfo as BdtExternalAccountInfo, type BeneficiaryVerifiedData as BeneficiaryVerifiedData, type BrlBeneficiary as BrlBeneficiary, type BrlExternalAccountInfo as BrlExternalAccountInfo, type BusinessBeneficiary as BusinessBeneficiary, type BwpExternalAccountInfo as BwpExternalAccountInfo, type CadExternalAccountInfo as CadExternalAccountInfo, type CopExternalAccountInfo as CopExternalAccountInfo, type DkkBeneficiary as DkkBeneficiary, type DkkExternalAccountInfo as DkkExternalAccountInfo, type EgpExternalAccountInfo as EgpExternalAccountInfo, type EurExternalAccountInfo as EurExternalAccountInfo, type ExternalAccount as ExternalAccount, type ExternalAccountCreate as ExternalAccountCreate, type ExternalAccountInfoOneOf as ExternalAccountInfoOneOf, type GbpBeneficiary as GbpBeneficiary, type GbpExternalAccountInfo as GbpExternalAccountInfo, type GhsExternalAccountInfo as GhsExternalAccountInfo, type GtqExternalAccountInfo as GtqExternalAccountInfo, type HkdBeneficiary as HkdBeneficiary, type HkdExternalAccountInfo as HkdExternalAccountInfo, type HtgExternalAccountInfo as HtgExternalAccountInfo, type IdrBeneficiary as IdrBeneficiary, type IdrExternalAccountInfo as IdrExternalAccountInfo, type InrBeneficiary as InrBeneficiary, type InrExternalAccountInfo as InrExternalAccountInfo, type JmdExternalAccountInfo as JmdExternalAccountInfo, type KesExternalAccountInfo as KesExternalAccountInfo, type LightningWalletInfo as LightningWalletInfo, type MwkExternalAccountInfo as MwkExternalAccountInfo, type MxnBeneficiary as MxnBeneficiary, type MxnExternalAccountInfo as MxnExternalAccountInfo, type MyrBeneficiary as MyrBeneficiary, type MyrExternalAccountInfo as MyrExternalAccountInfo, type NgnExternalAccountInfo as NgnExternalAccountInfo, type PhpBeneficiary as PhpBeneficiary, type PhpExternalAccountInfo as PhpExternalAccountInfo, type PkrExternalAccountInfo as PkrExternalAccountInfo, type PolygonWalletInfo as PolygonWalletInfo, type RwfExternalAccountInfo as RwfExternalAccountInfo, type SgdBeneficiary as SgdBeneficiary, type SgdExternalAccountInfo as SgdExternalAccountInfo, type SolanaWalletInfo as SolanaWalletInfo, type SparkWalletInfo as SparkWalletInfo, type ThbBeneficiary as ThbBeneficiary, type ThbExternalAccountInfo as ThbExternalAccountInfo, type TronWalletInfo as TronWalletInfo, type TzsExternalAccountInfo as TzsExternalAccountInfo, type UgxExternalAccountInfo as UgxExternalAccountInfo, type UsdBeneficiary as UsdBeneficiary, type UsdExternalAccountInfo as UsdExternalAccountInfo, type VndBeneficiary as VndBeneficiary, type VndExternalAccountInfo as VndExternalAccountInfo, type XafExternalAccountInfo as XafExternalAccountInfo, type XofExternalAccountInfo as XofExternalAccountInfo, type ZarExternalAccountInfo as ZarExternalAccountInfo, type ZmwExternalAccountInfo as ZmwExternalAccountInfo, type ExternalAccountsDefaultPagination as ExternalAccountsDefaultPagination, type ExternalAccountCreateParams as ExternalAccountCreateParams, type ExternalAccountListParams as ExternalAccountListParams, }; export { Bulk as Bulk, type BulkGetJobStatusResponse as BulkGetJobStatusResponse, type BulkUploadCsvResponse as BulkUploadCsvResponse, type BulkUploadCsvParams as BulkUploadCsvParams, }; } export { type InternalAccountsDefaultPagination }; //# sourceMappingURL=customers.d.ts.map