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

# /realms/{realmId}/organizations/{organizationId}/accounts/{accountId}/wallets/{walletId}/transfer-requests/{transferRequestId}/confirm



## OpenAPI

````yaml /api-reference/banking.openapi.json post /realms/{realmId}/organizations/{organizationId}/accounts/{accountId}/wallets/{walletId}/transfer-requests/{transferRequestId}/confirm
openapi: 3.0.3
info:
  title: Banking
  version: 1.0.0
  description: >-
    Portão 3 banking API. Generated by tools/openapi from code (routes +
    security) and the hand-written spec (request/response bodies). Banking
    attaches a zod validationSchema at the route; request bodies are resolved
    from it (object + array roots). Responses have no presenter layer, so they
    stay tier=unknown. Confidence tiers: generated:typed=98 copied:manual=5
    unknown=73.
servers:
  - url: https://api.banking.v2.portao3.com.br/
    description: production
  - url: https://api.banking.dev.3pers.com.br/
    description: development
security:
  - bearerAuth: []
tags:
  - name: Accounts
  - name: Wallets
  - name: Cards
  - name: PIX
  - name: PIX Keys (DICT)
  - name: PIX Charges
  - name: PIX Automatic
  - name: PIX Initiation (Open Finance)
  - name: PIX Infractions (MED)
  - name: Boleto
  - name: Boleto Charges
  - name: TED
  - name: Transfers
  - name: Transactions
  - name: Cashback
paths:
  /realms/{realmId}/organizations/{organizationId}/accounts/{accountId}/wallets/{walletId}/transfer-requests/{transferRequestId}/confirm:
    post:
      tags:
        - Wallets
      summary: >-
        /realms/{realmId}/organizations/{organizationId}/accounts/{accountId}/wallets/{walletId}/transfer-requests/{transferRequestId}/confirm
      operationId: >-
        postRealmsByRealmIdOrganizationsByOrganizationIdAccountsByAccountIdWalletsByWalletIdTransferRequestsByTransferRequestIdConfirm
      parameters:
        - name: realmId
          in: path
          required: true
          schema:
            type: string
        - name: organizationId
          in: path
          required: true
          schema:
            type: string
        - name: accountId
          in: path
          required: true
          schema:
            type: string
        - name: walletId
          in: path
          required: true
          schema:
            type: string
        - name: transferRequestId
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: string
                  realmId:
                    type: string
                  organizationId:
                    type: string
                  accountId:
                    type: string
                  walletId:
                    type: string
                  originAccountId:
                    type: string
                  originWalletId:
                    type: string
                  sourceCategory:
                    type: string
                    enum:
                      - FLEX_NATIONAL
                      - FLEX_INTERNATIONAL
                      - FOOD
                      - GAS
                      - MOBILITY
                      - TOLL
                      - FLEX_NATIONAL_WITHOUT_WITHDRAWALS
                      - ADS
                      - SAAS
                      - HOTEL
                      - AIRLINES
                      - TRAVEL
                  destinationCategory:
                    type: string
                    enum:
                      - FLEX_NATIONAL
                      - FLEX_INTERNATIONAL
                      - FOOD
                      - GAS
                      - MOBILITY
                      - TOLL
                      - FLEX_NATIONAL_WITHOUT_WITHDRAWALS
                      - ADS
                      - SAAS
                      - HOTEL
                      - AIRLINES
                      - TRAVEL
                  amount:
                    type: number
                  description:
                    type: string
                  requester:
                    type: object
                    properties:
                      id:
                        type: string
                      email:
                        type: string
                    required:
                      - id
                      - email
                  status:
                    type: string
                    enum:
                      - PENDING_APPROVAL
                      - REQUESTED
                      - CONFIRMED
                      - DENIED
                      - CANCELLED
                      - EXPIRED
                      - FAILED
                      - ERROR
                  decision:
                    type: object
                    properties:
                      result:
                        type: string
                        enum:
                          - ALLOW
                          - BLOCK
                          - REQUIRE_APPROVAL
                      approvalRequestId:
                        type: string
                      evaluationId:
                        type: string
                      policyId:
                        type: string
                      ruleId:
                        type: string
                    required:
                      - result
                  expiresAt:
                    type: string
                  confirmedAt:
                    type: string
                  deniedAt:
                    type: string
                  cancelledAt:
                    type: string
                  failureReason:
                    type: string
                  createdAt:
                    type: string
                  updatedAt:
                    type: string
                  environment:
                    type: string
                    enum:
                      - LIVE
                      - TEST
                  confirmingAt:
                    type: string
                required:
                  - accountId
                  - amount
                  - createdAt
                  - destinationCategory
                  - environment
                  - id
                  - organizationId
                  - originAccountId
                  - originWalletId
                  - realmId
                  - requester
                  - sourceCategory
                  - status
                  - updatedAt
                  - walletId
                description: >-
                  The persisted Mongoose entity — the commons
                  `WalletTransferRequestView` (the PINNED wire contract the
                  ruleengine/platform modules being built alongside this one
                  already type their clients against — see
                  `commons/app/banking/interfaces/walletTransferRequest.ts`)
                  plus two banking-internal fields that never need a place in
                  that contract:  - `environment` (LIVE|TEST): recorded at
                  creation from the `x-environment`    header so
                  confirm/deny/cancel never depend on the CALLER resending one
                  —    the ROOT/ruleengine service caller (confirm on
                  quorum-approve, deny on    quorum-deny) has no reason to know
                  or carry it.  - `confirmingAt`: the atomic-claim lock
                  `confirmWalletTransferRequestCommand`    uses so a concurrent
                  double-confirm 409s instead of double-moving money    (see
                  `commands/confirmWalletTransferRequest.ts`). Both ride as
                  harmless extra keys on the wire response (banking has no
                  presenter layer — see banking/CLAUDE.md) rather than being
                  stripped; only `confirmingAt` is deleted by the model's
                  `toJSON` transform since it is a pure internal lock with no
                  reason to ever reach a client.
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT

````