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

# BaaS

> Criação de contas e transferências internas

## Criar Conta

### Requisição

`POST /v1/baas/account/create`

### Headers obrigatórios

* Authorization: Bearer `<token>`
* (master) X-Account-ID: `<account_ulid>`

### Body obrigatório

* officialName (string)
* tradeName (string)
* taxID (string, CNPJ válido, único)
* documents (array de PDFs)
* address (objeto)
  * zipcode (string)
  * street (string)
  * number (string)
  * neighborhood (string)
  * city (string)
  * state (string, UF, tamanho 2)
* representatives (array, mínimo 1)
  * name (string)
  * birthDate (string, formato Y-m-d)
  * email (string, e-mail válido)
  * taxID (string, CPF válido)
  * phone (string)
  * documents (objeto)
    * picture\_face (string, JPG/PNG)
    * picture\_identity\_front (string, JPG/PNG)
    * picture\_identity\_back (string, JPG/PNG, opcional)
    * picture\_identity\_type (string, RG|CNH)

### Body opcional

* postbackUrl (string, URL)

### Respostas

* 200: dados básicos da conta criada
* 400: erro de validação

### Exemplo (master)

```bash theme={null}
curl -X POST https://api.aobapay.com/v1/baas/account/create \
  -H "Authorization: Bearer aoba_key_master::API_KEY" \
  -H "X-Account-ID: 01k6abc..." \
  -H "Content-Type: application/json" \
  -d '{
    "officialName":"Empresa Ltda",
    "tradeName":"Empresa",
    "taxID":"00.000.000/0001-91",
    "documents": ["https://example.com/pdf"],
    "address":{
      "zipcode":"01001000",
      "street":"Rua A",
      "number":"123",
      "neighborhood":"Centro",
      "city":"São Paulo",
      "state":"SP"
    },
    "representatives":[
      {
        "name":"Fulano",
        "birthDate":"1990-01-01",
        "email":"fulano@example.com",
        "taxID":"000.000.000-00",
        "phone":"11999999999",
        "documents":{
          "picture_face":"https://example.com/img",
          "picture_identity_front":"https://example.com/img",
          "picture_identity_back":"https://example.com/img",
          "picture_identity_type":"RG"
        }
      }
    ],
    "postbackUrl":"https://example.com/webhook"
  }'
```

## Transferência Interna

### Requisição

`POST /v1/baas/internal-transfer`

### Headers obrigatórios

* Authorization: Bearer `<token>`
* (master) X-Account-ID: `<account_ulid>`

### Body obrigatório

* amount (number, mínimo 1)
* from\_key (string, pix\_key de origem)
* to\_key (string, pix\_key de destino)

### Regras adicionais

* from\_key e to\_key devem pertencer ao seu grupo:
  * ser a própria conta autenticada OU
  * compartilhar ao menos um membro com a conta autenticada

### Respostas

* 200: `{ "amount": <valor>, "status": "DONE" }`
* 400: erro de validação, erro OpenPix, ou saldo insuficiente
* 403: contas não pertencem ao seu grupo
* 404: conta de origem/destino não encontrada

### Exemplo (default/prod)

```bash theme={null}
curl -X POST https://api.aobapay.com/v1/baas/internal-transfer \
  -H "Authorization: Bearer API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "amount": 1000,
    "from_key": "chave_pix_origem",
    "to_key": "chave_pix_destino"
  }'
```
