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

# Get Subaccount Payout

> Consulta um saque desta subconta: se o PIX saiu, se ainda está em processamento, ou se falhou e o valor voltou para a subconta.

`payoutId` aceita qualquer um dos identificadores que você tem do saque, e todos devolvem a mesma resposta:

- o `withdrawal.id` ou o `code` (`TURBO-...`) da resposta de `POST /v1/subaccounts/{id}/payout`. O `code` também vem no `202` e no webhook `subaccount.payout`;
- `saq_idem_` seguido da sua `idempotencyKey`, para saques feitos com ela. É o caminho de quem tomou um timeout e ficou sem resposta nenhuma;
- o `payoutId` (`saq_...`), que é o `refId` do lançamento `payout` no extrato da subconta;
- o código `SUB-...` de um saque recusado antes de chegar ao banco, que aparece no lançamento de estorno do extrato.

`status`:
- `completed`: o PIX saiu e o banco confirmou.
- `processing`: o saque ainda não terminou. Inclui o saque em verificação (o `202` da chamada de saque) e o que acabou de ser pedido, que pode vir com `withdrawalId` e `code` ainda `null`. O dinheiro PODE ter saído: não repita o saque, consulte de novo mais tarde.
- `failed`: nada foi enviado, e `failureReason` diz o motivo. Com `reversed` true, o valor já voltou para a subconta (o estorno está no extrato, na data de `reversedAt`) e dá para sacar de novo com uma `idempotencyKey` nova. Com `reversed` false, o estorno ainda não aconteceu: fale com o suporte.

Valores em centavos: `amountCents` é o bruto debitado da subconta (o mesmo do pedido de saque), `feeCents` é o markup de saque da subconta, `platformFeeCents` é a taxa do saque e `netAmountCents` é o que a chave PIX recebe. Os dois últimos são `null` quando o saque não chegou a ser montado para envio.

`pixKey` volta mascarada, como em `GET /v1/payouts`. `recipientName` e `recipientBankName` só aparecem em saque que não falhou.

Permissão: `subcontas.gerenciar` ou `subcontas.sacar`. A chave que só faz repasses consegue acompanhar os repasses que dispara.

Saque de outra subconta, de outra conta ou de outro ambiente responde `404`. Saque de subconta só existe em chave live, então uma chave de sandbox sempre recebe `404` aqui.



## OpenAPI

````yaml /api-reference/openapi.yaml get /v1/subaccounts/{id}/payouts/{payoutId}
openapi: 3.1.0
info:
  title: PurinCash API
  version: 1.0.0
servers:
  - url: https://api.purincash.com
    description: Produção
security:
  - bearerAuth: []
tags:
  - name: Cartao
    description: Pagamentos no cartao de credito.
  - name: Cobrancas
    description: Cobrancas PIX avulsas com valor livre.
  - name: Entregas
    description: Conteudo entregue automaticamente apos o pagamento.
  - name: Disputas
    description: Contestacoes (MED) e envio de evidencias.
  - name: Pagamentos
    description: Pagamentos PIX e LTC vinculados ou nao a um produto.
  - name: Saques
    description: Saques em PIX, LTC e USDT.
  - name: Produtos
    description: Produtos de cobranca criados pela API.
  - name: Sandbox
    description: Simulacao de pagamentos e saldo de teste.
  - name: Splits
    description: Cobrancas divididas entre varias contas.
  - name: Loja
    description: Produtos da loja do Discord (somente leitura).
  - name: Subcontas
    description: Ledger de saldo por cliente do integrador.
  - name: Assinaturas
    description: PIX recorrente.
  - name: Carteira
    description: Saldo, retencoes e valores a liberar.
paths:
  /v1/subaccounts/{id}/payouts/{payoutId}:
    get:
      tags:
        - Subcontas
      summary: Get Subaccount Payout
      description: >-
        Consulta um saque desta subconta: se o PIX saiu, se ainda está em
        processamento, ou se falhou e o valor voltou para a subconta.


        `payoutId` aceita qualquer um dos identificadores que você tem do saque,
        e todos devolvem a mesma resposta:


        - o `withdrawal.id` ou o `code` (`TURBO-...`) da resposta de `POST
        /v1/subaccounts/{id}/payout`. O `code` também vem no `202` e no webhook
        `subaccount.payout`;

        - `saq_idem_` seguido da sua `idempotencyKey`, para saques feitos com
        ela. É o caminho de quem tomou um timeout e ficou sem resposta nenhuma;

        - o `payoutId` (`saq_...`), que é o `refId` do lançamento `payout` no
        extrato da subconta;

        - o código `SUB-...` de um saque recusado antes de chegar ao banco, que
        aparece no lançamento de estorno do extrato.


        `status`:

        - `completed`: o PIX saiu e o banco confirmou.

        - `processing`: o saque ainda não terminou. Inclui o saque em
        verificação (o `202` da chamada de saque) e o que acabou de ser pedido,
        que pode vir com `withdrawalId` e `code` ainda `null`. O dinheiro PODE
        ter saído: não repita o saque, consulte de novo mais tarde.

        - `failed`: nada foi enviado, e `failureReason` diz o motivo. Com
        `reversed` true, o valor já voltou para a subconta (o estorno está no
        extrato, na data de `reversedAt`) e dá para sacar de novo com uma
        `idempotencyKey` nova. Com `reversed` false, o estorno ainda não
        aconteceu: fale com o suporte.


        Valores em centavos: `amountCents` é o bruto debitado da subconta (o
        mesmo do pedido de saque), `feeCents` é o markup de saque da subconta,
        `platformFeeCents` é a taxa do saque e `netAmountCents` é o que a chave
        PIX recebe. Os dois últimos são `null` quando o saque não chegou a ser
        montado para envio.


        `pixKey` volta mascarada, como em `GET /v1/payouts`. `recipientName` e
        `recipientBankName` só aparecem em saque que não falhou.


        Permissão: `subcontas.gerenciar` ou `subcontas.sacar`. A chave que só
        faz repasses consegue acompanhar os repasses que dispara.


        Saque de outra subconta, de outra conta ou de outro ambiente responde
        `404`. Saque de subconta só existe em chave live, então uma chave de
        sandbox sempre recebe `404` aqui.
      operationId: getSubaccountPayout
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: string
          description: ID da subconta (sacc_ + 32 hex).
        - name: payoutId
          in: path
          required: true
          schema:
            type: string
          description: >-
            O saque: `saq_idem_<sua idempotencyKey>`, `saq_...`, `TURBO-...`,
            `SUB-...` ou o `withdrawal.id` (24 hex) da resposta do saque.
          example: saq_idem_repasse-2026-09-fornecedor-42
      responses:
        '200':
          description: O saque, no estado atual.
          content:
            application/json:
              schema:
                type: object
                properties:
                  payoutId:
                    type: string
                    nullable: true
                    description: O `refId` do lançamento `payout` no extrato da subconta.
                  withdrawalId:
                    type: string
                    nullable: true
                    description: >-
                      O mesmo `withdrawal.id` da resposta do saque. `null`
                      enquanto o saque ainda está sendo criado.
                  code:
                    type: string
                    nullable: true
                    description: >-
                      `TURBO-...` ou, no saque recusado antes do banco,
                      `SUB-...`.
                  subaccountId:
                    type: string
                  status:
                    type: string
                    enum:
                      - completed
                      - processing
                      - failed
                  reversed:
                    type: boolean
                    description: O valor voltou para a subconta.
                  amountCents:
                    type: integer
                    description: Bruto debitado da subconta.
                  feeCents:
                    type: integer
                    description: Markup de saque da subconta, dentro do bruto.
                  platformFeeCents:
                    type: integer
                    nullable: true
                    description: Taxa do saque.
                  netAmountCents:
                    type: integer
                    nullable: true
                    description: O que a chave PIX recebe.
                  pixKey:
                    type: string
                    nullable: true
                    description: Chave de destino, mascarada.
                  endToEndId:
                    type: string
                    nullable: true
                    description: >-
                      Identificador do PIX no banco. É por ele que quem recebeu
                      acha o crédito.
                  recipientName:
                    type: string
                    nullable: true
                  recipientBankName:
                    type: string
                    nullable: true
                  failureReason:
                    type: string
                    nullable: true
                    description: Só com `status` failed.
                  createdAt:
                    type: string
                    format: date-time
                    description: Quando a subconta foi debitada.
                  completedAt:
                    type: string
                    format: date-time
                    nullable: true
                  reversedAt:
                    type: string
                    format: date-time
                    nullable: true
              example:
                payoutId: saq_idem_repasse-2026-09-fornecedor-42
                withdrawalId: 68c0a1b2c3d4e5f60718293a
                code: TURBO-7A1F2C9D
                subaccountId: sacc_3f1e9a0b2c4d6e8f0a1b3c5d7e9f1a2b
                status: completed
                reversed: false
                amountCents: 25000
                feeCents: 0
                platformFeeCents: 100
                netAmountCents: 24900
                pixKey: fornec***
                endToEndId: E12345678202609201200abcdef01234
                recipientName: Empresa Exemplo LTDA
                recipientBankName: Banco Exemplo
                failureReason: null
                createdAt: '2026-09-20T12:00:00.000Z'
                completedAt: '2026-09-20T12:00:02.000Z'
                reversedAt: null
        '400':
          description: >-
            `id` fora do formato `sacc_` + 32 hex, ou `payoutId` que não é
            nenhum dos formatos aceitos.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Chave sem `subcontas.gerenciar` e sem `subcontas.sacar`.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: >-
            Subconta inexistente, de outra conta ou de outro ambiente
            (`Subaccount not found`), ou saque que não é desta subconta (`Payout
            not found`).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: Erro interno.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
components:
  schemas:
    Error:
      type: object
      properties:
        error:
          type: string
          description: >-
            Mensagem de erro legivel. Trate pelo codigo HTTP; o texto pode
            mudar.
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: Chave de API gerada no dashboard da PurinCash (ps_live_ ou ps_test_).

````