> ## 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

## Visão Geral

O SDK JavaScript da KillB fornece uma interface segura por tipo e fácil de usar para integrar a API de on/off-ramp cripto da KillB em suas aplicações Node.js ou TypeScript.

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

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

## Instalação

<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>

## Início Rápido

### Inicializar o 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' // ou 'production'
  });

  // SDK lida com autenticação automaticamente
  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>

## Recursos Principais

### Gerenciamento de Usuários

```typescript theme={null}
// Criar usuário
const user = await killb.users.create({
  type: 'PERSON',
  externalId: 'user-12345',
  data: {
    firstName: 'João',
    lastName: 'Silva',
    email: 'joao@example.com',
    phone: '+5511987654321',
    dateOfBirth: '1990-01-01',
    address: {
      street1: 'Rua 123',
      city: 'São Paulo',
      state: 'SP',
      zipCode: '01234-567',
      countryCode: 'BR'
    },
    document: {
      type: 'CPF',
      number: '12345678900',
      issuedCountryCode: 'BR'
    }
  }
});

console.log('Usuário criado:', user.id);
console.log('Nível KYC:', user.accessLevel);
```

### Gerenciamento de Contas

```typescript theme={null}
// Criar conta de carteira
const wallet = await killb.accounts.create({
  type: 'WALLET',
  userId: user.id,
  externalId: 'wallet-polygon-usdc',
  data: {
    firstName: 'João',
    lastName: 'Silva',
    email: 'joao@example.com',
    phone: '+5511987654321',
    currency: 'USDC',
    network: 'POLYGON',
    address: '0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb',
    countryCode: 'BR',
    document: {
      type: 'CPF',
      number: '12345678900',
      issuedCountryCode: 'BR'
    }
  }
});

console.log('Carteira criada:', wallet.id);
```

### Cotações

```typescript theme={null}
// Criar cotação
const quote = await killb.quotations.create({
  fromCurrency: 'BRL',
  toCurrency: 'USDC',
  amount: 1000,
  amountIsToCurrency: false,
  cashInMethod: 'PIX',
  cashOutMethod: 'POLYGON'
});

console.log('Taxa:', quote.rate);
console.log('Você receberá:', quote.toAmount, 'USDC');
console.log('Expira em:', new Date(quote.expiresAt));
```

### Ramps

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

console.log('ID do Ramp:', ramp.id);
console.log('Status:', ramp.status);
console.log('URL de Pagamento:', ramp.paymentInfo[0].url);
```

## Suporte ao TypeScript

Definições completas do TypeScript incluídas:

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

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

## Próximos Passos

<CardGroup cols={2}>
  <Card title="Exemplos" icon="book-open" href="/pt/sdks/examples">
    Mais exemplos de código
  </Card>

  <Card title="Referência da API" icon="code" href="/api-reference/introduction">
    Documentação da REST API
  </Card>
</CardGroup>
