Skip to main content

SDKConfig

interface SDKConfig {
  apiKey: string;
  apiUrl: string;
  environment: SDKEnvironment;
  merchantId?: string;
  mode?: PaymentMode;
  pool?: PoolConfig;
  sessionKey?: SessionKeyConfig;
}
See Initialize for full field documentation.

SDKEnvironment

type SDKEnvironment = 'sandbox' | 'production';

PoolConfig

interface PoolConfig {
  customerId: string;
}

SessionKeyConfig

interface SessionKeyConfig {
  walletAddress: string;
  defaultDailyLimit: string;
  autoRenew: boolean;
  durationMs?: number;
  onSignTransaction: (tx: ApprovalTransaction) => Promise<string>;
  onSetupComplete?: () => void;
  onSetupCancel?: () => void;
}

ApprovalTransaction

Passed to onSignTransaction during session key setup:
interface ApprovalTransaction {
  to: string;    // ERC-20 contract address
  data: string;  // Encoded calldata
  value: string; // ETH value (typically "0" for ERC-20 approvals)
}

DeviceRegistrationRequest / Response

Used internally for merchant device registration:
interface DeviceRegistrationRequest {
  merchant_id: string;
  device_key: string;    // PEM-encoded ECDSA public key
  metadata: {
    model: string;
    platform: string;
    os_version: string;
    app_version: string;
    device_uuid: string;
  };
}

interface DeviceRegistrationResponse {
  success: boolean;
  status: 'registered' | 'replaced';
}