Skip to main content

Basic Configuration

import { ComplianceSDK } from "@artu-ai/compliance-sdk";

const sdk = new ComplianceSDK({
  apiKey: process.env.ARTU_API_KEY!,
  environment: "test",
});

Configuration Options

apiKey
string
Your Artu API key. Falls back to the ARTU_API_KEY environment variable if not provided.
environment
'test' | 'live'
default:"test"
Environment to connect to. Falls back to ARTU_ENVIRONMENT env var.
scope
Scope
Optional. Scope the SDK to a specific scope and/or activity using a colon-separated string (e.g., "MX", "MX:AV:AVI", "MX:CNBV:TRANSMISOR").
baseUrl
string
Optional. Custom API base URL. Falls back to ARTU_BASE_URL env var, then the default production URL.
timeout
number
default:"30000"
Request timeout in milliseconds.

Environments

The SDK supports two environments:
EnvironmentDescriptionUse Case
testSandbox environmentDevelopment, testing, demos
liveProduction environmentReal data, production use
// Test environment (default for development)
const testSDK = new ComplianceSDK({
  apiKey: process.env.ARTU_API_KEY!,
  environment: "test",
});

// Live environment
const liveSDK = new ComplianceSDK({
  apiKey: process.env.ARTU_API_KEY!,
  environment: "live",
});
API keys have scoped permissions that control which environments they can access. See API Keys for details.

Authentication

API Key

Authenticate with your Artu API key for server-side scripts, backend services, and CI:
const sdk = new ComplianceSDK({
  apiKey: process.env.ARTU_API_KEY!,
  environment: "test",
});

Environment Variables

The SDK auto-resolves these environment variables when options are not explicitly provided:
Environment VariableOptionDescription
ARTU_API_KEYapiKeyAPI key for authentication
ARTU_ENVIRONMENTenvironment"test" or "live"
ARTU_BASE_URLbaseUrlCustom API URL
// These are equivalent when env vars are set:
const sdk = new ComplianceSDK({ environment: "test" });
// Uses ARTU_API_KEY, ARTU_BASE_URL automatically

Scoped SDKs

Scope your SDK to a scope for simplified operations:
import { ComplianceSDK } from "@artu-ai/compliance-sdk";

// Mexico-scoped SDK
const mexSDK = new ComplianceSDK({
  apiKey: process.env.ARTU_API_KEY!,
  environment: "test",
  scope: "MX",
});

// Create a client - scope defaults to Mexico
const client = await mexSDK.clients.create({
  type: ClientType.Individual,
  name: "Juan García",
});
For Mexican vulnerable activities:
import { ComplianceSDK } from "@artu-ai/compliance-sdk";

// AVI (Virtual Assets) scoped SDK
const aviSDK = new ComplianceSDK({
  apiKey: process.env.ARTU_API_KEY!,
  environment: "test",
  scope: "MX:AV:AVI",
});
For CNBV money transmitters:
import { ComplianceSDK } from "@artu-ai/compliance-sdk";

// CNBV Transmisor scoped SDK
const transmisorSDK = new ComplianceSDK({
  apiKey: process.env.ARTU_API_KEY!,
  environment: "test",
  scope: "MX:CNBV:TRANSMISOR",
});
Learn more about scoping in the SDK Scoping concept guide.

Scope Properties

The SDK exposes properties to check the current configuration:
// Environment checks
sdk.environment; // "test" | "live"
sdk.isTest; // true if test environment
sdk.isLive; // true if live environment

// Scope checks
sdk.scope; // "MX:AV:AVI" | undefined
sdk.isScoped; // true if scope is set

Multiple SDK Instances

You can create multiple SDK instances for different configurations:
// Test environment for development
const testSDK = new ComplianceSDK({
  apiKey: process.env.ARTU_API_KEY!,
  environment: "test",
});

// Live environment for production
const liveSDK = new ComplianceSDK({
  apiKey: process.env.ARTU_API_KEY!,
  environment: "live",
});

// Activity-specific SDK
const aviSDK = new ComplianceSDK({
  apiKey: process.env.ARTU_API_KEY!,
  environment: "test",
  scope: "MX:AV:AVI",
});

Sub-Exports

Import scoped SDKs directly for better TypeScript types:
// Mexico SDK with proper types
import { ComplianceSDK } from "@artu-ai/compliance-sdk/mx";

// Actividad Vulnerable SDKs
import { ComplianceSDK } from "@artu-ai/compliance-sdk/mx/av/ari";
import { ComplianceSDK } from "@artu-ai/compliance-sdk/mx/av/avi";
import { ComplianceSDK } from "@artu-ai/compliance-sdk/mx/av/inm";
import { ComplianceSDK } from "@artu-ai/compliance-sdk/mx/av/jys";
import { ComplianceSDK } from "@artu-ai/compliance-sdk/mx/av/mjr";
import { ComplianceSDK } from "@artu-ai/compliance-sdk/mx/av/mpc";
import { ComplianceSDK } from "@artu-ai/compliance-sdk/mx/av/tsc";
import { ComplianceSDK } from "@artu-ai/compliance-sdk/mx/av/veh";

// CNBV SDKs
import { ComplianceSDK } from "@artu-ai/compliance-sdk/mx/cnbv/transmisor";