Skip to main content
GET
https://api.econpay.com.br
/
transactions
curl --request GET \
  --url 'https://api.econpay.com.br/transactions?page=1&limit=20' \
  --header 'Authorization: Bearer SEU_TOKEN_JWT'
{
  "data": [
    {
      "id": 123,
      "order_number": "ORD-20240122-123456",
      "status": 2,
      "amount": 10000,
      "payment_type": "pix",
      "customer_name": "João da Silva",
      "customer_email": "[email protected]",
      "created_at": "2024-01-22T10:30:00Z",
      "updated_at": "2024-01-22T10:35:00Z"
    },
    {
      "id": 124,
      "order_number": "ORD-20240122-123457",
      "status": 2,
      "amount": 31500,
      "payment_type": "credit",
      "customer_name": "Maria Santos",
      "customer_email": "[email protected]",
      "created_at": "2024-01-22T11:00:00Z",
      "updated_at": "2024-01-22T11:01:00Z"
    }
  ],
  "total": 150,
  "page": 1,
  "lastPage": 8,
  "itemsPerPage": 20
}

Descrição

Retorna uma lista paginada de transações com suporte a múltiplos filtros. Útil para consultar histórico de pagamentos, gerar relatórios e reconciliação.

Headers

Authorization
string
required
Bearer token JWT obtido no login

Query Parameters

page
number
default:"1"
Número da página
limit
number
default:"10"
Itens por página (máximo: 100)
orderBy
string
default:"created_at"
Campo para ordenação: created_at, updated_at, amount
direction
string
default:"DESC"
Direção da ordenação: ASC ou DESC
status
array
Filtrar por status (pode enviar múltiplos)
  • 1 = PENDING
  • 2 = APPROVED
  • 3 = FAILED
  • 4 = REFUNDED
type
string
Filtrar por tipo de pagamento: pix, credit, debit, invoice
company_id
number
Filtrar por ID do estabelecimento
customer_id
number
Filtrar por ID do cliente
amountStart
number
Valor mínimo em centavos
amountEnd
number
Valor máximo em centavos
createdAtStart
string
Data inicial de criação (ISO 8601)
createdAtEnd
string
Data final de criação (ISO 8601)

Response

data
array
Lista de transações
total
number
Total de registros
page
number
Página atual
lastPage
number
Última página
itemsPerPage
number
Itens por página
curl --request GET \
  --url 'https://api.econpay.com.br/transactions?page=1&limit=20' \
  --header 'Authorization: Bearer SEU_TOKEN_JWT'
{
  "data": [
    {
      "id": 123,
      "order_number": "ORD-20240122-123456",
      "status": 2,
      "amount": 10000,
      "payment_type": "pix",
      "customer_name": "João da Silva",
      "customer_email": "[email protected]",
      "created_at": "2024-01-22T10:30:00Z",
      "updated_at": "2024-01-22T10:35:00Z"
    },
    {
      "id": 124,
      "order_number": "ORD-20240122-123457",
      "status": 2,
      "amount": 31500,
      "payment_type": "credit",
      "customer_name": "Maria Santos",
      "customer_email": "[email protected]",
      "created_at": "2024-01-22T11:00:00Z",
      "updated_at": "2024-01-22T11:01:00Z"
    }
  ],
  "total": 150,
  "page": 1,
  "lastPage": 8,
  "itemsPerPage": 20
}

Status das Transações

CódigoStatusDescrição
1PENDINGAguardando pagamento
2APPROVEDPagamento aprovado
3FAILEDPagamento falhou/recusado
4REFUNDEDPagamento estornado

Exemplos de Uso

Relatório Mensal

async function getMonthlyReport(year, month) {
  const startDate = new Date(year, month - 1, 1).toISOString();
  const endDate = new Date(year, month, 0, 23, 59, 59).toISOString();
  
  const response = await fetch(
    `https://api.econpay.com.br/transactions?` +
    `createdAtStart=${startDate}&` +
    `createdAtEnd=${endDate}&` +
    `status=2&` + // Apenas aprovadas
    `limit=100`,
    {
      headers: { 'Authorization': `Bearer ${token}` }
    }
  );
  
  const { data, total } = await response.json();
  
  const totalAmount = data.reduce((sum, t) => sum + t.amount, 0);
  
  return {
    period: `${month}/${year}`,
    transactions: total,
    totalAmount: totalAmount / 100,
    byType: {
      pix: data.filter(t => t.payment_type === 'pix').length,
      credit: data.filter(t => t.payment_type === 'credit').length,
      debit: data.filter(t => t.payment_type === 'debit').length
    }
  };
}

const report = await getMonthlyReport(2024, 1);
console.log(`Relatório ${report.period}`);
console.log(`Total: R$ ${report.totalAmount.toFixed(2)}`);
console.log(`Transações: ${report.transactions}`);

Paginação Completa

async function getAllTransactions(filters = {}) {
  const allTransactions = [];
  let page = 1;
  let hasMore = true;
  
  while (hasMore) {
    const params = new URLSearchParams({
      ...filters,
      page,
      limit: 100
    });
    
    const response = await fetch(
      `https://api.econpay.com.br/transactions?${params}`,
      {
        headers: { 'Authorization': `Bearer ${token}` }
      }
    );
    
    const { data, lastPage } = await response.json();
    
    allTransactions.push(...data);
    hasMore = page < lastPage;
    page++;
  }
  
  return allTransactions;
}

// Buscar todas as transações aprovadas de janeiro
const transactions = await getAllTransactions({
  status: 2,
  createdAtStart: '2024-01-01',
  createdAtEnd: '2024-01-31'
});

console.log(`Total: ${transactions.length} transações`);

Filtros Múltiplos

// Buscar transações PIX aprovadas acima de R$ 100
const response = await fetch(
  'https://api.econpay.com.br/transactions?' +
  'type=pix&' +
  'status=2&' +
  'amountStart=10000&' +
  'orderBy=amount&' +
  'direction=DESC',
  {
    headers: { 'Authorization': `Bearer ${token}` }
  }
);

const { data } = await response.json();

Próximos Passos