# Consultar transação

> Retorna os dados completos de uma transação, pelo ID da Rapid ou pelo ID do seu sistema, incluindo itens, cliente, endereços, pagamentos e reembolsos.

Página: https://doc.rapidchargeback.com/canais/transactions/consultar-transacao/

Retorna os dados completos de uma transação, incluindo itens, cliente, endereços, pagamentos e reembolsos. Dá para buscar pelo ID que a Rapid devolveu na criação ou, se você não guardou, [pelo ID do seu sistema](#pelo-id-do-seu-sistema).

## Endpoint

```
GET https://api.rapidchargeback.com/api/v1/transactions/:id
```

## Autenticação

```
Authorization: Basic base64(client_id:client_secret)
```

---

## Parâmetro de URL

| Parâmetro | Tipo | Descrição |
|---|---|---|
| `id` | string (UUID) | ID da transação |

---

## Exemplo de requisição

```bash
curl -X GET https://api.rapidchargeback.com/api/v1/transactions/00000000-0000-0000-0000-000000000042 \
  -H "Authorization: Basic Y2xpZW50X2lkOmNsaWVudF9zZWNyZXQ="
```

---

## Exemplos de resposta

### Sucesso

```json
{
  "data": {
    "id": "00000000-0000-0000-0000-000000000042",
    "company_id": "00000000-0000-0000-0000-0000000000c1",
    "merchant_id": "00000000-0000-0000-0000-000000000001",
    "external_id": "TXN-2026-001",
    "external_source": "shopify",
    "order_number": "ORD-001",
    "auth_code": "AUTH999",
    "arn": null,
    "network": "visa",
    "amount": "150.00",
    "currency": "USD",
    "transaction_date": "2026-04-01T15:30:00.000Z",
    "card_bin": "424242",
    "card_last4": "4242",
    "descriptor": "LOJA EXEMPLO",
    "ip_address": "203.0.113.10",
    "created_at": "2026-04-01T15:31:00.000Z",
    "updated_at": "2026-04-01T15:31:00.000Z",
    "transaction_items": [
      {
        "id": "...",
        "product_description": "Assinatura Premium - Mensal",
        "product_name": "Plano Premium",
        "quantity": 1,
        "unit_price": "150.00"
      }
    ],
    "transaction_customers": [
      {
        "id": "...",
        "first_name": "João",
        "last_name": "Silva",
        "email": "joao@exemplo.com"
      }
    ],
    "transaction_addresses": [
      {
        "id": "...",
        "type": "shipping",
        "street": "Rua das Flores",
        "number": "123",
        "city": "São Paulo",
        "state": "SP",
        "postal_code": "01001000",
        "country": "BRA"
      }
    ],
    "transaction_payments": [],
    "transaction_refunds": []
  }
}
```

### Transação não encontrada

```json
{
  "error": {
    "code": "TRANSACTION_NOT_FOUND",
    "message": "Transaction not found"
  }
}
```

---

## Pelo ID do seu sistema

Se você não guardou o `id` que a Rapid devolveu na criação, ache a transação pelo identificador que **você** enviou: `external_source` mais `external_id`. É a mesma combinação que impede duplicata na criação, então a resposta tem **no máximo uma** transação.

```
GET https://api.rapidchargeback.com/api/v1/transactions?external_source=shopify&external_id=TXN-2026-001
```

| Param | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| `external_id` | string (até 100) | Sim | O `external_id` enviado na criação |
| `external_source` | string (até 50) | Não | O `external_source` enviado na criação. Sem ele, vale `custom`, o mesmo padrão da criação |

Isto **não** é uma listagem de transações: sem `external_id` a resposta é `422`. Com o `id` em mãos, [atualizar](https://doc.rapidchargeback.com/canais/transactions/atualizar-transacao/) e [deletar](https://doc.rapidchargeback.com/canais/transactions/deletar-transacao/) funcionam normalmente.

### Exemplo

```bash
curl -G "https://api.rapidchargeback.com/api/v1/transactions" \
  --data-urlencode "external_source=shopify" \
  --data-urlencode "external_id=TXN-2026-001" \
  -H "Authorization: Basic Y2xpZW50X2lkOmNsaWVudF9zZWNyZXQ="
```

### Achou

`200` com uma lista de um item, no mesmo formato da consulta por ID:

```json
{
  "data": [
    {
      "id": "00000000-0000-0000-0000-000000000042",
      "external_source": "shopify",
      "external_id": "TXN-2026-001",
      "...": "demais campos, como na consulta por ID"
    }
  ]
}
```

### Não achou

`200` com a lista vazia. Transação de outra empresa também volta vazia: a busca é sempre dentro da sua.

```json
{ "data": [] }
```

### Sem `external_id`

```json
{
  "error": {
    "code": "VALIDATION_ERROR",
    "message": "external_id is required"
  }
}
```
