> ## Documentation Index
> Fetch the complete documentation index at: https://docs.moduluslabs.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Introduction

> Unified API for querying transaction history across all payment methods

## Overview

The Transaction Reporting API gives you a single interface to query, filter, and paginate your transaction data. All payment methods — QR and card-present — are returned through the same endpoints with a consistent response format.

<CardGroup cols={2}>
  <Card title="Quickstart" icon="rocket" href="/docs/transaction-reporting/quickstart">
    Get up and running in minutes
  </Card>

  <Card title="API Reference" icon="code" href="/api-reference/transaction-reporting/list-transactions">
    Explore all available endpoints
  </Card>

  <Card title="Authentication" icon="key" href="/docs/transaction-reporting/authentication">
    Learn how to authenticate and understand entity scoping
  </Card>

  <Card title="Filtering & Sorting" icon="filter" href="/docs/transaction-reporting/filtering">
    Filter by merchant, status, date range, and more
  </Card>
</CardGroup>

## API Endpoint

All API requests should be made to:

```bash theme={null}
https://api.sbx.moduluslabs.io/reports
```

<Note>
  Contact [support@moduluslabs.io](mailto:support@moduluslabs.io) to obtain your API key and endpoint URL. You'll receive separate credentials for sandbox and production environments.
</Note>

## API Philosophy

<CardGroup cols={3}>
  <Card title="REST Architecture" icon="globe">
    Predictable resource-oriented URLs with standard HTTP methods
  </Card>

  <Card title="JSON Format" icon="brackets-curly">
    All responses use JSON with consistent schemas
  </Card>

  <Card title="HTTPS Only" icon="lock">
    All API requests must be made over HTTPS
  </Card>

  <Card title="API Key Auth" icon="shield">
    Simple API key authentication via X-API-Key header
  </Card>

  <Card title="Entity Scoped" icon="sitemap">
    Data access automatically scoped to your hierarchy level
  </Card>

  <Card title="Cursor Pagination" icon="sort">
    Efficient cursor-based pagination across large datasets
  </Card>
</CardGroup>

## How It Works

<Steps>
  <Step title="Obtain API Key">
    Contact [support@moduluslabs.io](mailto:support@moduluslabs.io) to receive your API key. Keys are scoped to your entity level — partner, merchant, or branch.
  </Step>

  <Step title="Discover Your Merchants">
    Call `/v1/merchants` to get your merchant list with stable UUIDs.
  </Step>

  <Step title="Query Transactions">
    Use `/v1/transactions` with filters to retrieve your transaction data. Sort by date, amount, or last update.
  </Step>

  <Step title="Build Reports">
    Use the filtering and pagination to build dashboards, reconciliation reports, and revenue summaries.
  </Step>
</Steps>

## Key Features

### Unified Response Model

All transactions use the same `amount_details` schema regardless of payment method. No need to handle different response formats for QR vs card payments.

### Flexible Filtering

Filter by merchant, branch, terminal activation code, payment method, status, card brand, and date range — all combinable.

### Sorting & Pagination

Sort by `created_at`, `updated_at`, or `amount` in ascending or descending order. Cursor-based pagination ensures no duplicates across pages.

### Entity Scoping

Your API key automatically restricts data to your hierarchy level. A partner key sees all merchants; a merchant key sees only its branches; a branch key sees only its transactions.

## Use Cases

<AccordionGroup>
  <Accordion title="Revenue Dashboard">
    Filter transactions by `status=CAPTURED` and date range to calculate gross transaction value (GTV). Break down by merchant, branch, or payment method.
  </Accordion>

  <Accordion title="Reconciliation">
    Retrieve all transactions for a specific date range and reconcile against your internal records using the transaction ID and amount fields.
  </Accordion>

  <Accordion title="Merchant Performance">
    Use merchant and branch filters to compare transaction volumes and amounts across locations.
  </Accordion>

  <Accordion title="Refund Monitoring">
    Filter by `status=REFUNDED,PARTIALLY_REFUNDED` to track refund activity and identify trends.
  </Accordion>
</AccordionGroup>

## What's Next?

<CardGroup cols={2}>
  <Card title="Quickstart" icon="play" href="/docs/transaction-reporting/quickstart">
    Make your first API call in minutes
  </Card>

  <Card title="Authentication" icon="key" href="/docs/transaction-reporting/authentication">
    Understand API keys and entity scoping
  </Card>

  <Card title="Filtering & Sorting" icon="filter" href="/docs/transaction-reporting/filtering">
    Learn all available filters and sort options
  </Card>

  <Card title="Contact Support" icon="envelope" href="mailto:support@moduluslabs.io">
    Get help from our technical team
  </Card>
</CardGroup>

<Note>
  **Ready to start building?** Head to the [Quickstart](/docs/transaction-reporting/quickstart) to make your first API call in minutes.
</Note>
