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

# Sacar da subconta

> Saca o saldo de uma subconta por PIX. O destino é sempre a chave CPF/CNPJ igual ao `taxId` da subconta, por isso não há campo de chave.


Saca o saldo de uma subconta por PIX para a chave CPF/CNPJ do titular.

> [card]
>
> Requer a permissão `SUB_ACCOUNT:WITHDRAW`.

Não há campo de chave PIX: o destino é sempre a chave CPF/CNPJ igual ao `taxId` da subconta, o que garante que o dinheiro vai para o próprio vendedor. Ele precisa ter essa chave cadastrada no banco dele.

**Formato aceito pela API:**

```json theme={null}
{
  "id": "sacc_9f8Kq2LmX4vTzR7pWn3bYc1H",
  "amount": 7000,
  "externalId": "repasse-vendedor-42-out",
  "description": "Repasse de outubro"
}
```

| Campo | Tipo | Descrição |
| - | - | - |
| `id` | `string` | ID da subconta (`sacc_`). Obrigatório |
| `amount` | `integer` | Valor em centavos, mínimo `100` (R\$ 1,00), com a taxa incluída. Obrigatório |
| `externalId` | `string` | ID do saque no seu sistema, até 100 caracteres. Obrigatório |
| `description` | `string` | Descrição do PIX, até 140 caracteres. Opcional |

O `amount` sai do saldo da subconta, e o titular recebe `amount` menos `platformFee`. A resposta tem o mesmo formato de [Enviar PIX](https://docs.abacatepay.com/pages/pix/reference.md#estrutura), com o campo `subAccountId` a mais.

**Valores de `status`:**

| Valor | Significado |
| - | - |
| `COMPLETE` | PIX criado e enviado |
| `FAILED` | O envio falhou; o valor volta para o saldo da subconta |

O resultado do envio chega pelos webhooks [`transfer.completed` e `transfer.failed`](https://docs.abacatepay.com/pages/webhooks/events/transfers), com o mesmo `id` e `externalId` da resposta do saque.

**Limites:**

* A taxa e os limites diários e noturnos de saque são os da sua conta, e os saques das subcontas contam no mesmo limite diário
* Cada subconta pode fazer um saque a cada 30 segundos. Subcontas diferentes podem sacar em sequência
* Os saques das subcontas não aparecem em [Listar Saques](https://docs.abacatepay.com/pages/payouts/list.md) nem no extrato da loja

**Erros comuns:**

| `error` | Motivo |
| - | - |
| `Saldo insuficiente` | O `amount` passa do `balance.available` da subconta, já descontado o débito de contestação em aberto da sua conta |
| `Aguarde alguns segundos antes de solicitar outro saque` | A subconta fez um saque há menos de 30 segundos |
| `Limite de saque diário atingido` | O saque passaria do limite diário da sua conta |
| `Sub account not found` | O `id` não é de uma subconta da sua loja |
| `Função não habilitada` | As subcontas ou os saques não estão habilitados na sua conta |


## OpenAPI

````yaml POST /sub-accounts/withdraw
openapi: 3.1.0
info:
  title: API AbacatePay
  description: API para gerenciamento de cobranças e pagamentos usando o AbacatePay.
  version: 1.0.0
servers:
  - url: https://api.abacatepay.com/v2
    description: Único servidor para os ambientes de produção e sandbox.
security: []
paths:
  /sub-accounts/withdraw:
    post:
      summary: Sacar da subconta
      description: >
        Saca o saldo de uma subconta por PIX. O destino é sempre a chave
        CPF/CNPJ igual ao `taxId` da subconta, por isso não há campo de chave.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - id
                - amount
                - externalId
              additionalProperties: false
              example:
                id: sacc_9f8Kq2LmX4vTzR7pWn3bYc1H
                amount: 7000
                externalId: repasse-vendedor-42-out
              properties:
                id:
                  type: string
                  pattern: ^sacc_
                  description: ID da subconta.
                  example: sacc_9f8Kq2LmX4vTzR7pWn3bYc1H
                amount:
                  type: integer
                  minimum: 100
                  description: >-
                    Valor em centavos, mínimo `100` (R$ 1,00). Sai do saldo da
                    subconta; a taxa (`platformFee`) é descontada desse valor.
                  example: 7000
                externalId:
                  type: string
                  minLength: 1
                  maxLength: 100
                  description: Identificador do saque no seu sistema.
                  example: repasse-vendedor-42-out
                description:
                  type: string
                  maxLength: 140
                  description: Descrição do PIX.
                  example: Repasse de outubro
      responses:
        '200':
          description: Saque criado.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      id:
                        type: string
                        description: Identificador único da transação.
                        example: tran_abc123xyz
                      subAccountId:
                        type: string
                        description: Subconta de onde o saque saiu.
                        example: sacc_9f8Kq2LmX4vTzR7pWn3bYc1H
                      status:
                        type: string
                        enum:
                          - COMPLETE
                          - FAILED
                        description: >-
                          `FAILED` quando o envio falha; o valor volta para o
                          saldo da subconta.
                        example: COMPLETE
                      devMode:
                        type: boolean
                        example: false
                      receiptUrl:
                        type: string
                        format: uri
                        description: URL do comprovante.
                        example: https://app.abacatepay.com/receipt/tran_abc123xyz
                      amount:
                        type: number
                        description: Valor do saque em centavos, com a taxa incluída.
                        example: 7000
                      platformFee:
                        type: number
                        description: Taxa em centavos, descontada do `amount`.
                        example: 80
                      externalId:
                        type: string
                        example: repasse-vendedor-42-out
                      createdAt:
                        type: string
                        format: date-time
                        example: '2026-10-26T14:22:10.381Z'
                      updatedAt:
                        type: string
                        format: date-time
                        example: '2026-10-26T14:22:10.381Z'
                  error:
                    type: string
                    nullable: true
                    example: null
                  success:
                    $ref: '#/components/schemas/Success'
        '401':
          description: Não autorizado. Falha na autenticação.
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: Token de autenticação inválido ou ausente.
      security:
        - bearerAuth: []
components:
  schemas:
    Success:
      type: boolean
      description: Se a requisição obteve sucesso ou não.
      example: true
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: >
        Todas as requisições devem incluir sua chave de API no header
        Authorization usando o formato `Bearer <abacatepay-api-key>`. Sem esse
        header a requisição será rejeitada.


        Saiba mais sobre como criar e usar chaves de API na [documentação de
        autenticação](/pages/authentication).

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.