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

# Criar Subconta

> Cria uma nova subconta completa, incluindo usuário e informações da empresa

## Criação de Subconta

Cria uma nova subconta completa, incluindo usuário e informações da empresa.

### Headers

<ParamField path="api_key" type="string" required>
  Chave de API do usuário
</ParamField>

<ParamField path="api_secret" type="string" required>
  Secret de API do usuário
</ParamField>

<ParamField path="Content-Type" type="string" required>
  application/json
</ParamField>

### Body

<ParamField path="company_infos" type="object" required>
  Informações da empresa
</ParamField>

<ParamField path="company_infos.cnpj" type="string" required>
  CNPJ da empresa (formato: 12345678000195)
</ParamField>

<ParamField path="company_infos.company_name" type="string" required>
  Razão social da empresa
</ParamField>

<ParamField path="company_infos.trade_name" type="string" required>
  Nome fantasia da empresa
</ParamField>

<ParamField path="company_infos.company_type" type="string" required>
  Tipo da empresa (ex: LTDA, S.A., etc.)
</ParamField>

<ParamField path="company_infos.constitution_date" type="string" required>
  Data de constituição (formato: YYYY-MM-DD)
</ParamField>

<ParamField path="company_infos.monthly_income" type="number" required>
  Renda mensal da empresa
</ParamField>

<ParamField path="representative" type="object" required>
  Informações do representante legal
</ParamField>

<ParamField path="representative.name" type="string" required>
  Nome do representante
</ParamField>

<ParamField path="representative.email" type="string" required>
  Email do representante
</ParamField>

<ParamField path="representative.cpf" type="string" required>
  CPF do representante
</ParamField>

<ParamField path="representative.full_name" type="string" required>
  Nome completo do representante
</ParamField>

<ParamField path="representative.phone" type="string" required>
  Telefone do representante
</ParamField>

<ParamField path="representative.mother_name" type="string" required>
  Nome da mãe do representante
</ParamField>

<ParamField path="representative.monthly_income" type="string" required>
  Renda mensal do representante
</ParamField>

<ParamField path="representative.birth_date" type="string" required>
  Data de nascimento (formato: YYYY-MM-DD)
</ParamField>

<ParamField path="representative.was_signed" type="boolean" required>
  Se o representante já assinou os documentos
</ParamField>

<ParamField path="representative.signature_date" type="string" required>
  Data da assinatura (formato: YYYY-MM-DD)
</ParamField>

<ParamField path="address" type="object" required>
  Endereço da empresa
</ParamField>

<ParamField path="address.street" type="string" required>
  Rua/Logradouro
</ParamField>

<ParamField path="address.number" type="string" required>
  Número
</ParamField>

<ParamField path="address.city" type="string" required>
  Cidade
</ParamField>

<ParamField path="address.zip_code" type="string" required>
  CEP
</ParamField>

<ParamField path="address.neighborhood" type="string" required>
  Bairro
</ParamField>

<ParamField path="address.uf" type="string" required>
  UF (Estado)
</ParamField>

<ParamField path="address.adress_type" type="number" required>
  Tipo de endereço
</ParamField>

<ParamField path="ref" type="string">
  Referência opcional para identificação
</ParamField>

### Resposta de Sucesso (201)

```json theme={null}
{
  "status": "success",
  "account": {
    "name": "Empresa Exemplo LTDA",
    "document": "12345678000195",
    "status": "PENDING",
    "secrets": {
      "api_key": "ak_1234567890abcdef",
      "api_secret": "as_1234567890abcdef"
    }
  }
}
```

### Possíveis Erros

<AccordionGroup>
  <Accordion title="400 - Bad Request">
    Dados inválidos ou campos obrigatórios não preenchidos
  </Accordion>

  <Accordion title="401 - Unauthorized">
    Api Key não encontrada ou inválida
  </Accordion>

  <Accordion title="409 - Conflict">
    Email já cadastrado no sistema
  </Accordion>

  <Accordion title="500 - Internal Server Error">
    Erro interno do servidor durante a criação
  </Accordion>
</AccordionGroup>


## OpenAPI

````yaml POST /sub-accounts
openapi: 3.0.1
info:
  title: 3X Pay Gateway
  description: >-
    Para autenticar as rotas dessa API são necessario ter em mãos a
    **api_secret** e **api_key** da sua conta. Este podem ser encontrados dentro
    do painel https://app.3xpay.co acessando a página de Configurações e
    clicando na opção de Credencias de API.
  version: 1.0.0
servers:
  - url: https://gateway.3xpay.co
security:
  - apiKeyAuth: []
    apiSecretAuth: []
tags:
  - name: Transações
    description: Operações relacionadas a transações financeiras
  - name: Webhooks
    description: Notificações de eventos da API
  - name: Balance
    description: Operações relacionadas ao saldo da conta
  - name: Sub-accounts
    description: Operações relacionadas a subcontas BaaS
  - name: MED Contest
    description: >-
      Endpoints server-to-server para responder a solicitações de MED (Mecanismo
      Especial de Devolução do Pix)
paths:
  /sub-accounts:
    post:
      tags:
        - Sub-accounts
      summary: Criar Subconta
      description: >-
        Cria uma nova subconta completa, incluindo usuário e informações da
        empresa
      operationId: createSubAccount
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateSubAccountRequest'
      responses:
        '201':
          description: Subconta criada com sucesso
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateSubAccountResponse'
components:
  schemas:
    CreateSubAccountRequest:
      type: object
      required:
        - company_infos
        - representative
        - address
      properties:
        company_infos:
          type: object
          required:
            - cnpj
            - company_name
            - trade_name
            - company_type
            - constitution_date
            - monthly_income
          properties:
            cnpj:
              type: string
              description: CNPJ da empresa
              example: '12345678000195'
            company_name:
              type: string
              description: Razão social da empresa
              example: Empresa Exemplo LTDA
            trade_name:
              type: string
              description: Nome fantasia da empresa
              example: Empresa Exemplo
            company_type:
              type: string
              description: Tipo da empresa
              example: LTDA
            constitution_date:
              type: string
              format: date
              description: Data de constituição
              example: '2020-01-01'
            monthly_income:
              type: number
              description: Renda mensal da empresa
              example: 50000
        representative:
          type: object
          required:
            - name
            - email
            - cpf
            - full_name
            - phone
            - mother_name
            - monthly_income
            - birth_date
            - was_signed
            - signature_date
          properties:
            name:
              type: string
              description: Nome do representante
              example: João Silva
            email:
              type: string
              format: email
              description: Email do representante
              example: joao@empresa.com
            cpf:
              type: string
              description: CPF do representante
              example: '12345678901'
            full_name:
              type: string
              description: Nome completo do representante
              example: João Silva Santos
            phone:
              type: string
              description: Telefone do representante
              example: '+5511987654321'
            mother_name:
              type: string
              description: Nome da mãe do representante
              example: Maria Silva
            monthly_income:
              type: string
              description: Renda mensal do representante
              example: '3000'
            birth_date:
              type: string
              format: date
              description: Data de nascimento
              example: '1990-01-01'
            was_signed:
              type: boolean
              description: Se o representante já assinou os documentos
              example: true
            signature_date:
              type: string
              format: date
              description: Data da assinatura
              example: '2024-01-01'
        address:
          type: object
          required:
            - street
            - number
            - city
            - zip_code
            - neighborhood
            - uf
            - adress_type
          properties:
            street:
              type: string
              description: Rua/Logradouro
              example: Rua Exemplo
            number:
              type: string
              description: Número
              example: '123'
            city:
              type: string
              description: Cidade
              example: São Paulo
            zip_code:
              type: string
              description: CEP
              example: '01234567'
            neighborhood:
              type: string
              description: Bairro
              example: Centro
            uf:
              type: string
              description: UF (Estado)
              example: SP
            adress_type:
              type: number
              description: Tipo de endereço
              example: 1
        ref:
          type: string
          description: Referência opcional para identificação
          example: A12as31qw78gb
    CreateSubAccountResponse:
      type: object
      properties:
        status:
          type: string
          description: Status da resposta
          example: success
        account:
          type: object
          properties:
            name:
              type: string
              description: Nome da empresa
              example: Empresa Exemplo LTDA
            document:
              type: string
              description: CNPJ da empresa
              example: '12345678000195'
            status:
              type: string
              description: Status da conta
              example: PENDING
            secrets:
              type: object
              properties:
                api_key:
                  type: string
                  description: Chave de API da subconta
                  example: ak_1234567890abcdef
                api_secret:
                  type: string
                  description: Secret de API da subconta
                  example: as_1234567890abcdef
  securitySchemes:
    apiKeyAuth:
      type: apiKey
      in: header
      name: api_key
    apiSecretAuth:
      type: apiKey
      in: header
      name: api_secret

````