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

# Buscar transação por ID

> Retorna os dados completos de uma transação, incluindo seus pagamentos e itens.

`GET /transactions/:id`

Faz parte do recurso [Transações](/pt-BR/transactions) — o conceito, o ciclo de vida e a
tabela de status estão lá.

Retorna a transação com tudo o que ela agrega: os `payments` (cada um com cartão e splits, quando
houver), os `items` e o objeto `customer`. É a visão completa — a [listagem](/pt-BR/transactions/list)
devolve o mesmo objeto **sem** o `customer`, então é por aqui que se obtêm os dados do comprador.

<Note>
  **O `status` é derivado, não armazenado.** Ele é recalculado a partir dos pagamentos a cada
  consulta — por isso uma transação com dois pagamentos, um pago e outro pendente, aparece como
  `partially_paid` sem que ninguém tenha escrito esse valor. A tabela completa está em
  [Status da transação](/pt-BR/transactions#status-da-transação).
</Note>

## Exemplo

```bash theme={null}
curl https://api.sandbox.z2pay.com/v1/transactions/txn_ebgsvfsb4151nmbgvj4sek6ol \
  -H "x-api-key: SUA_CHAVE_DE_SANDBOX"
```

```json theme={null}
{
  "id": "txn_ebgsvfsb4151nmbgvj4sek6ol",
  "referenceCode": "pedido-2026-0001",
  "status": "paid",
  "amount": 9990,
  "currency": "BRL",
  "customerId": "cust_lhsmn6ugmjotm5qvnunrr2hz1",
  "payments": [
    {
      "id": "pay_kd6z67zbp52rgtg2idms96fhm",
      "paymentMethod": "pix",
      "status": "paid",
      "amount": 9990
    }
  ],
  "items": [
    {
      "id": "item_s4206yea51f6fsiugybgb51sr",
      "description": "Plano Pro (mensal)",
      "quantity": 1,
      "unitValue": 9990,
      "amount": 9990
    }
  ]
}
```

<Note>
  Cada item traz **`unitValue`** (o valor unitário que você enviou em `items[].amount` na criação) e
  **`amount`** (o total da linha, `unitValue × quantity`). Com `quantity: 1` os dois coincidem, o que
  esconde a diferença — confira num item com quantidade maior.
</Note>


## OpenAPI

````yaml openapi/psp.json GET /transactions/{id}
openapi: 3.0.3
info:
  title: Z2Pay PSP API
  version: 1.0.0
  description: API pública do PSP — autenticação via API Key (Credential)
servers:
  - url: https://api.sandbox.z2pay.com/v1
    description: Sandbox
  - url: https://api.z2pay.com/v1
    description: Produção
security: []
tags:
  - name: Cards
    description: Cartões salvos de um cliente
  - name: Chargebacks
    description: Gerenciamento de chargebacks
  - name: Customers
    description: Gerenciamento de clientes (compradores)
  - name: Fees
    description: Tabela de taxas da conta (pix, boleto, cartão, saque, refund, chargeback)
  - name: Recipients
    description: Gerenciamento de recebedores (sellers/merchants que recebem repasses)
  - name: Refunds
    description: Gerenciamento de reembolsos e estornos
  - name: Splits
    description: Regras de divisão do valor de uma venda entre recebedores
  - name: Transactions
    description: Gerenciamento de transações e payments
  - name: Wallets
    description: Saldo, extrato e resumo da carteira de um recebedor, agrupados por moeda
  - name: Webhooks
    description: Configuração, gerenciamento e histórico de entregas de webhooks
  - name: Withdrawals
    description: Solicitação e acompanhamento de saques (payouts) por recipient
paths:
  /transactions/{id}:
    get:
      tags:
        - Transactions
      summary: Buscar transação por ID
      description: >-
        Retorna os dados completos de uma transação específica incluindo
        payments e items
      operationId: TransactionController_getById
      parameters:
        - name: id
          in: path
          required: true
          description: ID da transação
          schema:
            type: string
      responses:
        '200':
          description: Dados da transação com payments e items
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: string
                    description: Identificador único do registro.
                  customerId:
                    type: string
                    nullable: true
                    description: ID do cliente associado à transação.
                  amount:
                    type: integer
                    description: Valor em centavos.
                  currency:
                    type: string
                    description: 'Moeda no padrão ISO 4217 (ex.: BRL).'
                  paidAmount:
                    type: integer
                    description: Valor efetivamente pago, em centavos.
                  refundedAmount:
                    type: integer
                    description: Valor total estornado, em centavos.
                  status:
                    type: string
                    description: >-
                      Situação da transação, derivada dos pagamentos. Valores:
                      `pending`, `waiting_payment`, `partially_paid`, `paid`,
                      `refused`, `failed`, `canceled`, `waiting_refund`,
                      `partially_refunded`, `refunded`, `chargeback`,
                      `in_protest`.
                  parentTransactionId:
                    type: string
                    nullable: true
                    description: >-
                      ID da transação de origem, quando esta é derivada de
                      outra.
                  referenceCode:
                    type: string
                    nullable: true
                    description: Código de referência definido pelo integrador na criação.
                  ip:
                    type: string
                    nullable: true
                    description: Endereço IP de origem da transação.
                  additionalInfo:
                    type: object
                    nullable: true
                    description: Informações adicionais do registro (dados livres).
                  customerName:
                    type: string
                    nullable: true
                    description: Nome do cliente da transação.
                  customerEmail:
                    type: string
                    nullable: true
                    description: E-mail do cliente da transação.
                  customerDocument:
                    type: string
                    nullable: true
                    description: Documento (CPF ou CNPJ) do cliente da transação.
                  customerDocumentType:
                    type: string
                    nullable: true
                    description: 'Tipo de documento do cliente: cpf ou cnpj.'
                  customerPhone:
                    type: string
                    nullable: true
                    description: Telefone do cliente da transação.
                  createdAt:
                    type: string
                    format: date-time
                    description: Data e hora de criação do registro (ISO 8601).
                  updatedAt:
                    type: string
                    format: date-time
                    description: Data e hora da última atualização do registro (ISO 8601).
                  paidAt:
                    type: string
                    format: date-time
                    nullable: true
                    description: Data e hora em que o pagamento foi liquidado (ISO 8601).
                  expiresAt:
                    type: string
                    format: date-time
                    nullable: true
                    description: Data e hora em que o registro expira (ISO 8601).
                  canceledAt:
                    type: string
                    format: date-time
                    nullable: true
                    description: Data e hora em que a transação foi cancelada (ISO 8601).
                  refundedAt:
                    type: string
                    format: date-time
                    nullable: true
                    description: Data e hora em que o estorno foi concluído (ISO 8601).
                  chargedbackAt:
                    type: string
                    format: date-time
                    nullable: true
                    description: >-
                      Data e hora em que a transação sofreu chargeback (ISO
                      8601).
                  protestedAt:
                    type: string
                    format: date-time
                    nullable: true
                    description: Data e hora em que a transação foi protestada (ISO 8601).
                  items:
                    type: array
                    description: >-
                      Itens da transação. Vazio quando a transação não tem
                      itens.
                    items:
                      type: object
                      properties:
                        id:
                          type: string
                          description: ID do item.
                        transactionId:
                          type: string
                          description: Transação a que o item pertence.
                        code:
                          type: string
                          nullable: true
                          description: Seu código/SKU do item.
                        description:
                          type: string
                          description: Descrição do item.
                        unitValue:
                          type: integer
                          description: Valor unitário, em centavos.
                        quantity:
                          type: integer
                          description: Quantidade.
                        amount:
                          type: integer
                          description: >-
                            Total da linha, em centavos (`unitValue` ×
                            `quantity`).
                        createdAt:
                          type: string
                          description: Criação, ISO 8601.
                        updatedAt:
                          type: string
                          description: Última alteração, ISO 8601.
                  payments:
                    type: array
                    description: >-
                      Pagamentos da transação, com cartão e splits quando
                      houver.
                    items:
                      type: object
                      properties:
                        id:
                          type: string
                          description: Identificador único do registro.
                        transactionId:
                          type: string
                          description: ID da transação relacionada ao registro.
                        replacedByPaymentId:
                          type: string
                          nullable: true
                          description: >-
                            ID do pagamento que substituiu este, em caso de
                            retentativa.
                        amount:
                          type: integer
                          description: Valor em centavos.
                        currency:
                          type: string
                          description: 'Moeda no padrão ISO 4217 (ex.: BRL).'
                        installments:
                          type: integer
                          description: Número de parcelas.
                        paymentMethod:
                          type: string
                          description: 'Forma de pagamento (ex.: credit_card, pix, boleto).'
                        cardId:
                          type: string
                          nullable: true
                          description: ID do cartão tokenizado usado no pagamento.
                        status:
                          type: string
                          description: >-
                            Situação do pagamento. Valores: `pending`,
                            `waiting_payment`, `paid`, `refused`, `failed`,
                            `canceled`, `replaced`, `waiting_refund`,
                            `partially_refunded`, `refunded`, `chargeback`,
                            `in_protest`.
                        additionalInfo:
                          type: object
                          nullable: true
                          description: Informações adicionais do registro (dados livres).
                        statementDescriptor:
                          type: string
                          nullable: true
                          description: >-
                            Texto exibido na fatura do cliente (statement
                            descriptor).
                        billingAddress:
                          type: object
                          nullable: true
                          description: >-
                            Endereço de cobrança do cartão, como informado na
                            criação da transação. Snapshot: preservado como
                            veio, mesmo que o cadastro do cliente mude depois.
                          properties:
                            street:
                              type: string
                              nullable: true
                              description: Logradouro (rua, avenida).
                            number:
                              type: string
                              nullable: true
                              description: Número do endereço.
                            complement:
                              type: string
                              nullable: true
                              description: >-
                                Complemento do endereço (apartamento, bloco,
                                sala).
                            neighborhood:
                              type: string
                              nullable: true
                              description: Bairro.
                            city:
                              type: string
                              nullable: true
                              description: Cidade.
                            state:
                              type: string
                              nullable: true
                              description: 'Estado ou UF (ex.: SP).'
                            country:
                              type: string
                              nullable: true
                              description: 'País (código ISO 3166-1 alfa-2, ex.: BR).'
                            postalCode:
                              type: string
                              nullable: true
                              description: CEP / código postal (somente dígitos).
                        boletoUrl:
                          type: string
                          nullable: true
                          description: URL para visualização e impressão do boleto.
                        boletoDigitableLine:
                          type: string
                          nullable: true
                          description: Linha digitável do boleto.
                        boletoBarcode:
                          type: string
                          nullable: true
                          description: Código de barras do boleto.
                        pixUrl:
                          type: string
                          nullable: true
                          description: URL do QR Code PIX para pagamento.
                        pixCopyPaste:
                          type: string
                          nullable: true
                          description: >-
                            Código PIX copia e cola (payload EMV) para
                            pagamento.
                        splitConfigId:
                          type: string
                          nullable: true
                          description: ID da configuração de split aplicada ao pagamento.
                        originalAmount:
                          type: integer
                          nullable: true
                          description: >-
                            Valor original do pagamento antes de ajustes, em
                            centavos.
                        acquirerReturnCode:
                          type: string
                          nullable: true
                          description: >-
                            Código de retorno enviado pelo adquirente ao
                            processar o pagamento.
                        acquirerReturnMessage:
                          type: string
                          nullable: true
                          description: >-
                            Mensagem de retorno enviada pelo adquirente ao
                            processar o pagamento.
                        retryable:
                          type: boolean
                          nullable: true
                          description: Indica se o pagamento recusado pode ser retentado.
                        declineCode:
                          type: string
                          nullable: true
                          description: Código de recusa retornado pelo adquirente.
                        errorMessage:
                          type: string
                          nullable: true
                          description: Mensagem de erro quando o processamento falha.
                        createdAt:
                          type: string
                          format: date-time
                          description: Data e hora de criação do registro (ISO 8601).
                        updatedAt:
                          type: string
                          format: date-time
                          description: >-
                            Data e hora da última atualização do registro (ISO
                            8601).
                        paidAt:
                          type: string
                          format: date-time
                          nullable: true
                          description: >-
                            Data e hora em que o pagamento foi liquidado (ISO
                            8601).
                        expiresAt:
                          type: string
                          format: date-time
                          nullable: true
                          description: Data e hora em que o registro expira (ISO 8601).
                        canceledAt:
                          type: string
                          format: date-time
                          nullable: true
                          description: >-
                            Data e hora em que a transação foi cancelada (ISO
                            8601).
                        refundedAt:
                          type: string
                          format: date-time
                          nullable: true
                          description: >-
                            Data e hora em que o estorno foi concluído (ISO
                            8601).
                        chargedbackAt:
                          type: string
                          format: date-time
                          nullable: true
                          description: >-
                            Data e hora em que a transação sofreu chargeback
                            (ISO 8601).
                        protestedAt:
                          type: string
                          format: date-time
                          nullable: true
                          description: >-
                            Data e hora em que a transação foi protestada (ISO
                            8601).
                        card:
                          type: object
                          nullable: true
                          description: >-
                            Dados do cartão usado no pagamento. Ausente fora de
                            `credit_card`.
                          properties:
                            id:
                              type: string
                              description: ID do cartão (`crd_`).
                            brand:
                              type: string
                              description: 'Bandeira (ex.: `visa`, `mastercard`).'
                            firstDigits:
                              type: string
                              description: Seis primeiros dígitos.
                            lastDigits:
                              type: string
                              description: Quatro últimos dígitos.
                            holderName:
                              type: string
                              description: Nome impresso no cartão.
                            expirationMonth:
                              type: string
                              description: Mês de validade (`MM`).
                            expirationYear:
                              type: string
                              description: Ano de validade (`YYYY`).
                            status:
                              type: string
                              description: Situação do cartão.
                            createdAt:
                              type: string
                              description: Criação, ISO 8601.
                            updatedAt:
                              type: string
                              description: Última alteração, ISO 8601.
                        splits:
                          type: array
                          description: >-
                            Divisão do valor deste pagamento entre recebedores.
                            Vazio quando não há split.
                          items:
                            type: object
                            properties:
                              id:
                                type: string
                                description: ID do split.
                              paymentId:
                                type: string
                                description: Pagamento dividido.
                              recipientId:
                                type: string
                                description: Recebedor (`rec_`).
                              recipientName:
                                type: string
                                nullable: true
                                description: >-
                                  Nome do recebedor, resolvido no momento da
                                  consulta.
                              value:
                                type: integer
                                description: >-
                                  Valor configurado: percentual (0–100) ou valor
                                  fixo em centavos, conforme `valueType`.
                              amount:
                                type: integer
                                description: >-
                                  Valor efetivamente destinado ao recebedor, em
                                  centavos.
                              currency:
                                type: string
                                description: Moeda, ISO 4217.
                              type:
                                type: string
                                description: Papel do recebedor na divisão.
                              typeLabel:
                                type: string
                                description: Rótulo legível de `type`.
                              valueType:
                                type: string
                                description: 'Como ler `value`: percentual ou fixo.'
                              processingFee:
                                type: boolean
                                description: >-
                                  Se este recebedor arca com a taxa de
                                  processamento.
                              liable:
                                type: boolean
                                description: Se este recebedor responde por chargebacks.
                              createdAt:
                                type: string
                                description: Criação, ISO 8601.
                              updatedAt:
                                type: string
                                description: Última alteração, ISO 8601.
                  customer:
                    type: object
                    nullable: true
                    description: >-
                      Cliente da transação, quando `customerId` está preenchido.
                      Não vem na listagem — use `GET /customers/{id}`.
                    properties:
                      id:
                        type: string
                        description: ID do cliente (`cust_`).
                      name:
                        type: string
                        description: Nome completo do cliente.
                      email:
                        type: string
                        description: E-mail do cliente.
                      type:
                        type: string
                        description: >-
                          Tipo de cliente: individual (pessoa física) ou company
                          (pessoa jurídica).
                      document:
                        type: string
                        description: Documento do cliente (CPF ou CNPJ, somente dígitos).
                      documentType:
                        type: string
                        description: 'Tipo do documento do cliente: cpf ou cnpj.'
                      phone:
                        type: string
                        description: >-
                          Telefone do cliente (formato E.164, ex.:
                          +5511987654321).
                      address:
                        type: object
                        nullable: true
                        properties:
                          street:
                            type: string
                            nullable: true
                            description: Logradouro (rua, avenida).
                          number:
                            type: string
                            nullable: true
                            description: Número do endereço.
                          complement:
                            type: string
                            nullable: true
                            description: >-
                              Complemento do endereço (apartamento, bloco,
                              sala).
                          neighborhood:
                            type: string
                            nullable: true
                            description: Bairro.
                          city:
                            type: string
                            nullable: true
                            description: Cidade.
                          state:
                            type: string
                            nullable: true
                            description: 'Estado ou UF (ex.: SP).'
                          postalCode:
                            type: string
                            nullable: true
                            description: CEP / código postal (somente dígitos).
                          country:
                            type: string
                            nullable: true
                            description: 'País (código ISO 3166-1 alfa-2, ex.: BR).'
                        description: >-
                          Endereço do cadastro do cliente **hoje** — não o
                          informado nesta compra.
                      createdAt:
                        type: string
                        description: Criação, ISO 8601.
                      updatedAt:
                        type: string
                        description: Última alteração, ISO 8601.
                  customerAddress:
                    type: object
                    nullable: true
                    properties:
                      street:
                        type: string
                        nullable: true
                        description: Logradouro (rua, avenida).
                      number:
                        type: string
                        nullable: true
                        description: Número do endereço.
                      complement:
                        type: string
                        nullable: true
                        description: Complemento do endereço (apartamento, bloco, sala).
                      neighborhood:
                        type: string
                        nullable: true
                        description: Bairro.
                      city:
                        type: string
                        nullable: true
                        description: Cidade.
                      state:
                        type: string
                        nullable: true
                        description: 'Estado ou UF (ex.: SP).'
                      postalCode:
                        type: string
                        nullable: true
                        description: CEP / código postal (somente dígitos).
                      country:
                        type: string
                        nullable: true
                        description: 'País (código ISO 3166-1 alfa-2, ex.: BR).'
                    description: >-
                      Endereço informado nesta compra, congelado no momento da
                      criação. É este que vale para nota fiscal e antifraude:
                      editar o cadastro do cliente depois não o altera. Compare
                      com `customer.address`, que reflete o cadastro atual.
              example:
                id: txn_raqtaj22an9s5dexc1vthopl8
                customerId: cust_f7vm6b4j4cckf8gli2b2472ix
                amount: 19990
                currency: BRL
                paidAmount: 19990
                refundedAmount: 0
                status: paid
                parentTransactionId: null
                referenceCode: ORDER-2025-00123
                ip: 189.45.12.34
                additionalInfo:
                  source: checkout-web
                customerName: Maria Silva
                customerEmail: maria.silva@example.com
                customerDocument: '12345678909'
                customerDocumentType: cpf
                customerPhone: '+5511987654321'
                createdAt: '2025-06-29T13:45:30.000Z'
                updatedAt: '2025-06-29T13:46:10.000Z'
                paidAt: '2026-06-24T12:05:00.000Z'
                expiresAt: '2026-06-25T12:00:00.000Z'
                canceledAt: null
                refundedAt: null
                chargedbackAt: null
                protestedAt: null
                items:
                  - id: item_s4206yea51f6fsiugybgb51sr
                    transactionId: txn_raqtaj22an9s5dexc1vthopl8
                    code: PLANO-PRO
                    description: Plano Pro (mensal)
                    unitValue: 19990
                    quantity: 1
                    amount: 19990
                    createdAt: '2026-06-24T12:00:00.000Z'
                    updatedAt: '2026-06-24T12:00:00.000Z'
                payments:
                  - id: pay_kd6z67zbp52rgtg2idms96fhm
                    transactionId: txn_raqtaj22an9s5dexc1vthopl8
                    replacedByPaymentId: null
                    amount: 19990
                    currency: BRL
                    installments: 1
                    paymentMethod: pix
                    cardId: null
                    status: paid
                    additionalInfo: null
                    statementDescriptor: null
                    billingAddress: null
                    boletoUrl: null
                    boletoDigitableLine: null
                    boletoBarcode: null
                    pixUrl: >-
                      https://pix.z2pay.com/qr/pay_kd6z67zbp52rgtg2idms96fhm/qr.png
                    pixCopyPaste: >-
                      00020126580014br.gov.bcb.pix0136a1b2c3d4-e5f6-7890-abcd-ef1234567890520400005303986540519.905802BR5913LOJA
                      EXEMPLO6009SAO PAULO62070503***6304A1B2
                    splitConfigId: null
                    originalAmount: null
                    acquirerReturnCode: null
                    acquirerReturnMessage: null
                    retryable: null
                    declineCode: null
                    errorMessage: null
                    createdAt: '2026-06-24T12:00:00.000Z'
                    updatedAt: '2026-06-24T12:05:00.000Z'
                    paidAt: '2026-06-24T12:05:00.000Z'
                    expiresAt: '2026-06-25T12:00:00.000Z'
                    canceledAt: null
                    refundedAt: null
                    chargedbackAt: null
                    protestedAt: null
                    card: null
                    splits: []
                customer:
                  id: cust_f7vm6b4j4cckf8gli2b2472ix
                  name: Maria Silva
                  email: maria.silva@example.com
                  type: individual
                  document: '12345678909'
                  documentType: cpf
                  phone: '+5511999998888'
                  address:
                    street: Av. Paulista
                    number: '1000'
                    complement: Conj. 101
                    neighborhood: Bela Vista
                    city: São Paulo
                    state: SP
                    postalCode: '01310100'
                    country: BR
                  createdAt: '2026-06-24T12:00:00.000Z'
                  updatedAt: '2026-06-24T12:00:00.000Z'
                customerAddress:
                  street: Av. Paulista
                  number: '1000'
                  complement: Conj. 101
                  neighborhood: Bela Vista
                  city: São Paulo
                  state: SP
                  postalCode: '01310100'
                  country: BR
        '401':
          description: Chave de API ausente, malformada ou inválida
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: object
                    properties:
                      code:
                        type: string
                        description: >-
                          Identificador estável do erro. É por ele que você deve
                          ramificar, não pela mensagem.
                      message:
                        type: string
                        description: >-
                          Descrição legível. Pode mudar sem aviso e não deve ser
                          usada em condicional.
              example:
                error:
                  code: UNAUTHORIZED
                  message: Invalid API key
        '404':
          description: Transação não encontrada
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: object
                    properties:
                      code:
                        type: string
                        description: >-
                          Identificador estável do erro. É por ele que você deve
                          ramificar, não pela mensagem.
                      message:
                        type: string
                        description: >-
                          Descrição legível. Pode mudar sem aviso e não deve ser
                          usada em condicional.
              example:
                error:
                  code: NOT_FOUND
                  message: Transaction not found
      security:
        - apiKey: []
components:
  securitySchemes:
    apiKey:
      type: apiKey
      in: header
      name: x-api-key
      description: API Key da Credential (gerada no Backoffice)

````