> ## Documentation Index
> Fetch the complete documentation index at: https://docs.killb.com/llms.txt
> Use this file to discover all available pages before exploring further.

# SDK JavaScript

> SDK oficial JavaScript/TypeScript para KillB

## Visión General

El SDK JavaScript de KillB proporciona una interfaz segura por tipo y fácil de usar para integrar la API de on/off-ramp cripto de KillB en tus aplicaciones Node.js o TypeScript.

<CardGroup cols={2}>
  <Card title="Paquete NPM" icon="npm" href="https://www.npmjs.com/package/@killb/sdk">
    Ver en registro NPM
  </Card>

  <Card title="GitHub" icon="github" href="https://github.com/Kill-B/sdk">
    Ver código fuente
  </Card>
</CardGroup>

## Instalación

<CodeGroup>
  ```bash npm theme={null}
  npm install @killb/sdk
  ```

  ```bash yarn theme={null}
  yarn add @killb/sdk
  ```

  ```bash pnpm theme={null}
  pnpm add @killb/sdk
  ```
</CodeGroup>

## Inicio Rápido

### Inicializar el SDK

<CodeGroup>
  ```typescript TypeScript theme={null}
  import { KillB } from '@killb/sdk';

  const killb = new KillB({
    email: process.env.KILLB_EMAIL,
    password: process.env.KILLB_PASSWORD,
    environment: 'sandbox' // o 'production'
  });

  // SDK maneja autenticación automáticamente
  await killb.initialize();
  ```

  ```javascript JavaScript theme={null}
  const { KillB } = require('@killb/sdk');

  const killb = new KillB({
    email: process.env.KILLB_EMAIL,
    password: process.env.KILLB_PASSWORD,
    environment: 'sandbox'
  });

  await killb.initialize();
  ```
</CodeGroup>

## Características Principales

### Gestión de Usuarios

```typescript theme={null}
// Crear usuario
const user = await killb.users.create({
  type: 'PERSON',
  externalId: 'user-12345',
  data: {
    firstName: 'Juan',
    lastName: 'García',
    email: 'juan@example.com',
    phone: '+573001234567',
    dateOfBirth: '1990-01-01',
    address: {
      street1: 'Calle 123',
      city: 'Bogotá',
      state: 'Cundinamarca',
      zipCode: '110111',
      countryCode: 'CO'
    },
    document: {
      type: 'NUIP',
      number: '1234567890',
      issuedCountryCode: 'CO'
    }
  }
});

console.log('Usuario creado:', user.id);
console.log('Nivel KYC:', user.accessLevel);
```

### Gestión de Cuentas

```typescript theme={null}
// Crear cuenta de billetera
const wallet = await killb.accounts.create({
  type: 'WALLET',
  userId: user.id,
  externalId: 'wallet-polygon-usdc',
  data: {
    firstName: 'Juan',
    lastName: 'García',
    email: 'juan@example.com',
    phone: '+573001234567',
    currency: 'USDC',
    network: 'POLYGON',
    address: '0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb',
    countryCode: 'CO',
    document: {
      type: 'NUIP',
      number: '1234567890',
      issuedCountryCode: 'CO'
    }
  }
});

console.log('Billetera creada:', wallet.id);
```

### Cotizaciones

```typescript theme={null}
// Crear cotización
const quote = await killb.quotations.create({
  fromCurrency: 'COP',
  toCurrency: 'USDC',
  amount: 100000,
  amountIsToCurrency: false,
  cashInMethod: 'PSE',
  cashOutMethod: 'POLYGON'
});

console.log('Tasa:', quote.rate);
console.log('Recibirás:', quote.toAmount, 'USDC');
console.log('Expira en:', new Date(quote.expiresAt));
```

### Ramps

```typescript theme={null}
// Crear on-ramp
const ramp = await killb.ramps.create({
  quotationId: quote.id,
  userId: user.id,
  accountId: wallet.id,
  externalId: 'onramp-123'
});

console.log('ID del Ramp:', ramp.id);
console.log('Estado:', ramp.status);
console.log('URL de Pago:', ramp.paymentInfo[0].url);
```

## Soporte de TypeScript

Definiciones completas de TypeScript incluidas:

```typescript theme={null}
import type {
  User,
  CreateUserRequest,
  Account,
  CreateAccountRequest,
  Ramp,
  CreateRampRequest,
  Quotation,
  WebhookEvent
} from '@killb/sdk';

// Operaciones seguras por tipo
const createUser = async (data: CreateUserRequest): Promise<User> => {
  return await killb.users.create(data);
};
```

## Próximos Pasos

<CardGroup cols={2}>
  <Card title="Ejemplos" icon="book-open" href="/es/sdks/examples">
    Más ejemplos de código
  </Card>

  <Card title="Referencia API" icon="code" href="/api-reference/introduction">
    Documentación de REST API
  </Card>
</CardGroup>
