Skip to main content

What is the Ledger?

The Ledger is the accounting record of all financial movements in your Owem account. Every credit, debit, fee, and refund is recorded with complete details for auditing and reconciliation.

Complete

All movements in one place.

Immutable

Records cannot be changed after creation.

Detailed

Complete information for each transaction.

Advanced Filters

Search by type, status, date, and identifiers.

Entry Structure

Each Ledger entry contains:
FieldDescription
idUnique identifier (Entry ID)
endToEndIdPIX transaction ID (E2E)
externalIdYour external ID (for correlation)
typecredit or debit
reasonMovement reason
statusCurrent status
grossAmountGross amount
netAmountNet amount (after fees)
feeAmountFee amount
createdAtCreation date/time

Movement Types

Credits (type: credit)

ReasonDescription
pix_in:qrcode_paidQR Code payment received
pix_in:refund_receivedPIX OUT refund received
manual_creditManual credit (admin)

Debits (type: debit)

ReasonDescription
pix_out:processingPIX transfer in processing
pix_out:succeededPIX transfer completed
pix_in:refund_sentPIX IN refund sent
fee:transactionTransaction fee

Entry Status

StatusDescription
pendingAwaiting processing
processingIn processing
succeededCompleted successfully
failedFailed
refundedRefunded
cancelledCancelled

Bank Statement (PDF/CSV)

In addition to API queries, the Ledger offers the generation of complete bank statements in PDF or CSV format, with asynchronous processing.

PDF

Formatted report with logo, header, summaries and transaction table. Ideal for presentation and auditing.

CSV

Tabular data for import into spreadsheets and systems. Ideal for automated reconciliation.

How It Works

1

Request Statement

Send a POST /v4/i/ledger/extract with the account, period and desired format.
2

Wait for Processing

The API returns 202 Accepted with an extractId. Processing occurs in the background.
3

Check and Download

Use GET /v4/i/ledger/extract/{extractId} to monitor. When status is done, use reportUrl to download.

Customization

The statement can be customized via the options field: Report sections (options.sections):
SectionDescription
summaryGeneral summary with credit, debit and fee totals
monthlyTableTable with totals grouped by month
monthSummaryDetailed monthly summary with breakdown by type
transactionTableTable with all individual transactions
Transaction table columns (options.columns):
ColumnDescription
dateTimeDate and time
typeType (Credit/Debit)
descriptionDescription
endToEndIdPIX E2E identifier
payerReceiverName, document, branch and account
payerBankInfoISPB and bank name
grossAmountGross amount
feeFee
netAmountNet amount
statusTransaction status
All sections and columns are enabled by default. Send false only for those you want to hide.

Financial Reconciliation

The Ledger is the source of truth for reconciliation:
1

Export Movements

Use the API or dashboard to export movements for the period.
2

Compare with Your System

Cross-reference externalId with your internal records.
3

Identify Discrepancies

Check transactions present on one side and not the other.
4

Resolve Pending Items

Investigate and correct found discrepancies.

Available Queries

By Filters (List)

Search multiple entries with filters:
GET /v4/i/ledger?type=credit&status=succeeded&startDate=1735228800000
FilterDescription
typecredit or debit
statusEntry status
reasonMovement reason
startDateStart date (epoch ms)
endDateEnd date (epoch ms)
pagePage (pagination)
limitItems per page (max 100)

By Identifiers

EndpointSearch by
/ledger/external-id/{id}Your external ID
/ledger/end-to-end/{e2e}PIX ID (E2E)
/ledger/entry-id/{id}Entry ID (Ledger)


Entry Example

{
  "id": "E37839059202512261234567890abcdef",
  "endToEndId": "E37839059202512261234567890abcdef",
  "externalId": "order-12345",
  "type": "credit",
  "reason": "pix_in:qrcode_paid",
  "status": "succeeded",
  "grossAmount": 100.00,
  "netAmount": 98.50,
  "feeAmount": 1.50,
  "payer": {
    "name": "MARIA SILVA",
    "cpfCnpj": "12345678901",
    "ispb": "00000000",
    "bankName": "Banco do Brasil"
  },
  "createdAt": "2025-12-26T15:30:45.000Z",
  "updatedAt": "2025-12-26T15:30:46.000Z"
}

Best Practices

Use externalId

Always include your external ID to facilitate reconciliation.

Paginate Correctly

Use pagination for large data volumes.

Cache Queries

Cache frequent queries to reduce API calls.

Reconcile Daily

Do daily reconciliation to identify problems early.