docs

Search account transactions

GET /api/transactions

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

Requires a Bearer token in the Authorization header. See Generate Token to obtain one.

Returns transactions of the authenticated account in a friendly public format with pagination.

Features:

  • Amounts converted to BRL (2 decimal places)
  • Status and types mapped to display labels
  • Counterparty documents are masked
  • Maximum interval of 31 days between startDate and endDate
  • Limit of 30 requests per minute per account (above that, 429)

Authentication

Requires a Bearer token in the Authorization header.

Query Parameters

ParameterTypeRequiredDescription
pageintegerNoPage number (1-indexed). Default: 1
sizeintegerNoNumber of records per page (max 100). Default: 20
statusstringNoFilter by status: PENDING, CONFIRMED, ERROR
typestringNoFilter by type: PAYMENT, WITHDRAW, REFUND_IN, REFUND_OUT
startDatestringNoStart date (ISO 8601, e.g.: 2025-01-01). Default: last 31 days
endDatestringNoEnd date (ISO 8601, e.g.: 2025-01-31). Default: current date
externalIdstringNoFilter by transaction externalId
endToEndIdstringNoFilter by transaction endToEndId (e2eId)

Status and Type Mapping

Original ValueDisplay Value
PENDINGPendente
CONFIRMEDConfirmado
ERRORError
PAYMENTPix in
WITHDRAWPix out
REFUND_INRefund in
REFUND_OUTRefund out

Movement Type: Pix in and Refund out = CREDIT; Pix out and Refund in = DEBIT.


Code Examples

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());

Response (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 holds the amount actually paid (before confirmation, the amount charged). amountPaid is null until confirmation, and mismatchAmount holds the difference between charged and paid (null when there is no mismatch; positive = underpaid, negative = overpaid).

Errors

StatusDescription
400Invalid parameters or date range exceeds 31 days
401Missing or invalid token
429Limit of 30 requests per minute per account exceeded. Wait for the window to reset (Retry-After header)

On this page