GET
https://api.myidvirtual.com
/
transactions
Listar Transações
curl --request GET \
  --url https://api.myidvirtual.com/transactions \
  --header 'Authorization: <authorization>'
{
  "transactions": [
    {
      "id": "123e4567-e89b-12d3-a456-426614174000",
      "amount": 29.90,
      "type": "RECHARGE",
      "status": "COMPLETED",
      "payment_method": "PIX",
      "description": "Recarga de créditos - Plano Básico",
      "external_id": "mp_12345678",
      "gateway": "MERCADOPAGO",
      "credits": 100,
      "user": {
        "id": "user_id_123",
        "email": "[email protected]",
        "name": "João Silva"
      },
      "metadata": {
        "plan": "basic",
        "promotion_code": "PROMO2024"
      },
      "createdAt": "2024-01-15T10:30:00.000Z",
      "updatedAt": "2024-01-15T10:32:00.000Z",
      "completedAt": "2024-01-15T10:32:00.000Z"
    },
    {
      "id": "987e6543-e21b-43d2-b654-321987654000",
      "amount": 49.90,
      "type": "SUBSCRIPTION",
      "status": "COMPLETED",
      "payment_method": "CREDIT_CARD",
      "description": "Assinatura mensal - Plano Premium",
      "external_id": "stripe_inv_abc123",
      "gateway": "STRIPE",
      "credits": 0,
      "subscription_id": "sub_premium_monthly",
      "user": {
        "id": "user_id_123",
        "email": "[email protected]",
        "name": "João Silva"
      },
      "metadata": {
        "plan": "premium",
        "billing_cycle": "monthly"
      },
      "createdAt": "2024-01-10T15:20:00.000Z",
      "updatedAt": "2024-01-10T15:21:00.000Z",
      "completedAt": "2024-01-10T15:21:00.000Z"
    }
  ],
  "pagination": {
    "page": 1,
    "limit": 20,
    "total": 45,
    "totalPages": 3,
    "hasNext": true,
    "hasPrev": false
  },
  "summary": {
    "totalAmount": 1247.50,
    "totalTransactions": 45,
    "totalCredits": 8950,
    "statusBreakdown": {
      "COMPLETED": 38,
      "PENDING": 3,
      "FAILED": 2,
      "CANCELLED": 1,
      "REFUNDED": 1
    }
  }
}

Listar Transações

Endpoint para listar todas as transações financeiras do usuário autenticado, com suporte a filtros e paginação.

Autenticação

Authorization
string
required
Bearer token JWT do usuário autenticado

Parâmetros

Query Parameters

page
number
Número da página para paginação (padrão: 1)
limit
number
Quantidade de itens por página (padrão: 20, máximo: 100)
status
string
Filtrar por status: PENDING, COMPLETED, FAILED, CANCELLED, REFUNDED
type
string
Filtrar por tipo: PAYMENT, RECHARGE, SUBSCRIPTION, REFUND
payment_method
string
Filtrar por método: PIX, CREDIT_CARD, BANK_TRANSFER, CRYPTO
date_from
string
Data inicial para filtro (formato: YYYY-MM-DD)
date_to
string
Data final para filtro (formato: YYYY-MM-DD)
amount_min
number
Valor mínimo para filtro
amount_max
number
Valor máximo para filtro
sort
string
Campo para ordenação: created_at, amount, status (padrão: created_at)
order
string
Ordem: ASC ou DESC (padrão: DESC)

Responses

{
  "transactions": [
    {
      "id": "123e4567-e89b-12d3-a456-426614174000",
      "amount": 29.90,
      "type": "RECHARGE",
      "status": "COMPLETED",
      "payment_method": "PIX",
      "description": "Recarga de créditos - Plano Básico",
      "external_id": "mp_12345678",
      "gateway": "MERCADOPAGO",
      "credits": 100,
      "user": {
        "id": "user_id_123",
        "email": "[email protected]",
        "name": "João Silva"
      },
      "metadata": {
        "plan": "basic",
        "promotion_code": "PROMO2024"
      },
      "createdAt": "2024-01-15T10:30:00.000Z",
      "updatedAt": "2024-01-15T10:32:00.000Z",
      "completedAt": "2024-01-15T10:32:00.000Z"
    },
    {
      "id": "987e6543-e21b-43d2-b654-321987654000",
      "amount": 49.90,
      "type": "SUBSCRIPTION",
      "status": "COMPLETED",
      "payment_method": "CREDIT_CARD",
      "description": "Assinatura mensal - Plano Premium",
      "external_id": "stripe_inv_abc123",
      "gateway": "STRIPE",
      "credits": 0,
      "subscription_id": "sub_premium_monthly",
      "user": {
        "id": "user_id_123",
        "email": "[email protected]",
        "name": "João Silva"
      },
      "metadata": {
        "plan": "premium",
        "billing_cycle": "monthly"
      },
      "createdAt": "2024-01-10T15:20:00.000Z",
      "updatedAt": "2024-01-10T15:21:00.000Z",
      "completedAt": "2024-01-10T15:21:00.000Z"
    }
  ],
  "pagination": {
    "page": 1,
    "limit": 20,
    "total": 45,
    "totalPages": 3,
    "hasNext": true,
    "hasPrev": false
  },
  "summary": {
    "totalAmount": 1247.50,
    "totalTransactions": 45,
    "totalCredits": 8950,
    "statusBreakdown": {
      "COMPLETED": 38,
      "PENDING": 3,
      "FAILED": 2,
      "CANCELLED": 1,
      "REFUNDED": 1
    }
  }
}

Exemplo de Requisição

# Listar todas as transações
curl --location --request GET 'http://localhost:3333/transactions' \
--header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...'

# Com filtros
curl --location --request GET 'http://localhost:3333/transactions?status=COMPLETED&type=RECHARGE&page=1&limit=10' \
--header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...'

# Filtro por período
curl --location --request GET 'http://localhost:3333/transactions?date_from=2024-01-01&date_to=2024-01-31&sort=amount&order=DESC' \
--header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...'
Para relatórios com muitas transações, use paginação para evitar timeouts e melhorar performance.
Use filtros específicos para reduzir o volume de dados e melhorar o tempo de resposta.

Próximos Passos

  1. Implemente cache local para melhor performance
  2. Configure relatórios automáticos por email
  3. Crie dashboards com gráficos das transações
  4. Configure alertas para transações importantes
A resposta inclui um resumo financeiro útil para dashboards e relatórios gerenciais.