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

# Contas Bancárias

> Configure contas bancárias para transferências de moeda fiat

## Visão Geral

Contas bancárias são usadas como destinos para transações off-ramp (cripto → fiat). A KillB suporta múltiplos sistemas bancários na América Latina e nos Estados Unidos.

## Tipos de Conta Bancária Suportados

<CardGroup cols={2}>
  <Card title="PSE (Colômbia)" icon="building-columns">
    Contas bancárias colombianas via sistema PSE
  </Card>

  <Card title="SPEI (México)" icon="bolt">
    Contas baseadas em CLABE mexicanas
  </Card>

  <Card title="ACH (EUA)" icon="landmark">
    Contas bancárias dos EUA via ACH
  </Card>

  <Card title="Wire (Internacional)" icon="globe">
    Contas de transferência wire
  </Card>
</CardGroup>

## Colômbia - Contas PSE

```json theme={null}
{
  "type": "PSE",
  "userId": "user-id",
  "externalId": "pse-account-1",
  "data": {
    "firstName": "Juan",
    "lastName": "García",
    "email": "juan@example.com",
    "phone": "+573001234567",
    "accountNumber": "1234567890",
    "bankCode": "0001",
    "type": "savings",
    "countryCode": "CO",
    "document": {
      "type": "NUIP",
      "number": "1234567890",
      "issuedCountryCode": "CO"
    }
  }
}
```

**Tipos de Conta:**

* `savings` - Conta poupança (Cuenta de Ahorros)
* `checking` - Conta corrente (Cuenta Corriente)

### Obter Bancos Colombianos

```bash theme={null}
GET /api/v2/banks?countryCode=CO
```

```json Resposta theme={null}
[
  {
    "code": "0001",
    "companyName": "Bancolombia",
    "accountTypes": ["savings", "checking"]
  },
  {
    "code": "0002",
    "companyName": "Banco de Bogotá",
    "accountTypes": ["savings", "checking"]
  }
]
```

## México - Contas SPEI

```json theme={null}
{
  "type": "SPEI",
  "userId": "user-id",
  "externalId": "spei-account-1",
  "data": {
    "firstName": "María",
    "lastName": "López",
    "email": "maria@example.com",
    "phone": "+525512345678",
    "clabe": "012345678901234567",
    "clabeType": "CLABE",
    "countryCode": "MX",
    "document": {
      "type": "RFC",
      "number": "LOMM920310ABC",
      "issuedCountryCode": "MX"
    }
  }
}
```

### Tipos de CLABE

<Tabs>
  <Tab title="CLABE Padrão">
    Número de conta bancária de 18 dígitos

    ```json theme={null}
    {
      "clabe": "012345678901234567",
      "clabeType": "CLABE"
    }
    ```

    Formato mais comum para transferências bancárias.
  </Tab>

  <Tab title="Cartão de Débito">
    Número de cartão de 16 dígitos

    ```json theme={null}
    {
      "clabe": "1234567890123456",
      "clabeType": "DEBIT_CARD",
      "bankCode": "012"
    }
    ```

    Requer campo `bankCode`.
  </Tab>

  <Tab title="Número de Telefone">
    Telefone de 10 dígitos para banking móvel

    ```json theme={null}
    {
      "clabe": "5512345678",
      "clabeType": "PHONE_NUMBER",
      "bankCode": "014"
    }
    ```

    Requer campo `bankCode`.
  </Tab>
</Tabs>

### Obter Bancos Mexicanos

```bash theme={null}
GET /api/v2/banks?countryCode=MX
```

## Estados Unidos - Contas ACH

```json theme={null}
{
  "type": "ACH",
  "userId": "user-id",
  "externalId": "ach-account-1",
  "data": {
    "firstName": "John",
    "lastName": "Smith",
    "email": "john@example.com",
    "phone": "+12125551234",
    "bankName": "Chase Bank",
    "routingNumber": "021000021",
    "accountNumber": "123456789",
    "type": "checking",
    "countryCode": "US",
    "document": {
      "type": "SSN",
      "number": "123-45-6789",
      "issuedCountryCode": "US"
    }
  }
}
```

**Tipos de Conta:**

* `checking` - Conta corrente
* `savings` - Conta poupança

**Número de Roteamento:** Número de roteamento ABA de 9 dígitos

## Validação

Valide detalhes da conta antes de criar:

<CodeGroup>
  ```javascript Validar PSE theme={null}
  const validatePSEAccount = (data) => {
    const errors = [];
    
    // Número da conta (10-20 dígitos)
    if (!/^\d{10,20}$/.test(data.accountNumber)) {
      errors.push('Formato de número de conta inválido');
    }
    
    // Código do banco (4 dígitos)
    if (!/^\d{4}$/.test(data.bankCode)) {
      errors.push('Código de banco inválido');
    }
    
    // Tipo de conta
    if (!['savings', 'checking'].includes(data.type)) {
      errors.push('Tipo de conta deve ser savings ou checking');
    }
    
    return errors;
  };
  ```

  ```javascript Validar SPEI theme={null}
  const validateSPEIAccount = (data) => {
    const errors = [];
    
    if (data.clabeType === 'CLABE') {
      // Validar CLABE de 18 dígitos
      if (!/^\d{18}$/.test(data.clabe)) {
        errors.push('CLABE deve ter 18 dígitos');
      }
    } else if (data.clabeType === 'PHONE_NUMBER') {
      // Validar telefone de 10 dígitos
      if (!/^\d{10}$/.test(data.clabe)) {
        errors.push('Número de telefone deve ter 10 dígitos');
      }
    }
    
    return errors;
  };
  ```
</CodeGroup>

## Testando Contas Bancárias

No sandbox, use estes códigos de banco de teste:

**Colômbia:**

* `0001` - Bancolombia
* `0002` - Banco de Bogotá
* `0003` - Davivienda

**México:**

* `012` - BBVA
* `014` - Santander
* `072` - Banorte

<Tip>
  Qualquer formato de número de conta funcionará no sandbox. Use formatos realistas para melhores testes.
</Tip>

## Próximos Passos

<CardGroup cols={2}>
  <Card title="Carteiras Cripto" icon="wallet" href="/pt/guides/accounts/crypto-wallets">
    Configure contas de carteira de criptomoeda
  </Card>

  <Card title="Criar Off-Ramp" icon="arrow-down" href="/pt/guides/ramps/off-ramp">
    Use contas bancárias em off-ramps
  </Card>
</CardGroup>
