docs

Buscar transacciones de la cuenta

GET /api/transactions

GET https://api.fypay.me/api/transactions

Requiere un Bearer token en el header Authorization. Vea Generar Token para obtener uno.

Retorna las transacciones de la cuenta autenticada en un formato público amigable con paginación.

Características:

  • Montos convertidos a BRL (2 decimales)
  • Estados y tipos mapeados a etiquetas de visualización
  • Documentos de la contraparte enmascarados
  • Intervalo máximo de 31 días entre startDate y endDate
  • Límite de 30 solicitudes por minuto por cuenta (por encima de eso, 429)

Autenticación

Requiere un Bearer token en el header Authorization.

Parámetros de consulta

ParámetroTipoRequeridoDescripción
pageintegerNoNúmero de página (indexado desde 1). Por defecto: 1
sizeintegerNoCantidad de registros por página (máx 100). Por defecto: 20
statusstringNoFiltrar por estado: PENDING, CONFIRMED, ERROR
typestringNoFiltrar por tipo: PAYMENT, WITHDRAW, REFUND_IN, REFUND_OUT
startDatestringNoFecha de inicio (ISO 8601, ej.: 2025-01-01). Por defecto: últimos 31 días
endDatestringNoFecha de fin (ISO 8601, ej.: 2025-01-31). Por defecto: fecha actual
externalIdstringNoFiltrar por externalId de la transacción
endToEndIdstringNoFiltrar por endToEndId (e2eId) de la transacción

Mapeo de estados y tipos

Valor originalValor de visualización
PENDINGPendente
CONFIRMEDConfirmado
ERRORError
PAYMENTPix in
WITHDRAWPix out
REFUND_INRefund in
REFUND_OUTRefund out

Tipo de movimiento: Pix in y Refund out = CREDIT; Pix out y Refund in = DEBIT.


Ejemplos de Código

cURL
curl -X GET "https://api.fypay.me/api/transactions?page=1&size=20&status=CONFIRMED" \
  -H "Authorization: Bearer $FYPAY_TOKEN"
const axios = require('axios');

const response = await axios.get('https://api.fypay.me/api/transactions?page=1&size=20&status=CONFIRMED', {
  headers: { 'Authorization': `Bearer ${process.env.FYPAY_TOKEN}` },
});
console.log(response.data);
import os, requests

response = requests.get(
    'https://api.fypay.me/api/transactions?page=1&size=20&status=CONFIRMED',
    headers={'Authorization': f'Bearer {os.environ["FYPAY_TOKEN"]}'},
)
print(response.json())
$ch = curl_init('https://api.fypay.me/api/transactions?page=1&size=20&status=CONFIRMED');
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER => [
        'Authorization: Bearer ' . getenv('FYPAY_TOKEN'),
    ],
]);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
HttpRequest request = HttpRequest.newBuilder()
    .uri(URI.create("https://api.fypay.me/api/transactions?page=1&size=20&status=CONFIRMED"))
    .header("Authorization", "Bearer " + System.getenv("FYPAY_TOKEN"))
    .GET()
    .build();
HttpResponse<String> response = HttpClient.newHttpClient()
    .send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());

Respuesta (200)

{
  "data": [
    {
      "transactionId": "12345",
      "externalId": "ext-123456",
      "status": "Confirmado",
      "operationType": "Pix in",
      "movementType": "CREDIT",
      "originalAmount": 100.00,
      "feeAmount": 1.00,
      "finalAmount": 99.00,
      "amountPaid": 100.00,
      "mismatchAmount": null,
      "endToEndId": "E12345678901234567890123456789012",
      "createdAt": "2025-01-15T10:30:00.000Z",
      "processedAt": "2025-01-15T10:30:05.000Z",
      "counterpart": {
        "name": "João Silva",
        "document": "***.456.789-**",
        "bank": {
          "bankISPB": "00000000",
          "bankName": "Banco do Brasil",
          "bankCode": "001",
          "accountBranch": "0001",
          "accountNumber": "123456-7"
        }
      }
    }
  ],
  "metadata": {
    "page": 1,
    "size": 20,
    "total": 150,
    "totalPages": 8,
    "hasNext": true,
    "hasPrevious": false
  }
}

originalAmount trae el monto efectivamente pagado (antes de la confirmación, el monto cobrado). amountPaid es null hasta la confirmación, y mismatchAmount trae la diferencia entre lo cobrado y lo pagado (null sin divergencia; positivo = pagó de menos, negativo = pagó de más).

Errores

EstadoDescripción
400Parámetros inválidos o rango de fechas excede 31 días
401Token faltante o inválido
429Límite de 30 solicitudes por minuto por cuenta excedido. Espere a que la ventana se renueve (header Retry-After)

En esta página