---
title: "Get transaction-level revenue data"
method: GET
path: "/reporting/transactions"
tags: ["Reporting"]
---

# Get transaction-level revenue data

`GET /reporting/transactions`

Retrieves comprehensive transaction-level financial data for all clients linked to the authenticated referral partner.

**IMPORTANT: All amounts are returned in USD regardless of the original collection currency.**

Revenue Recognition Stages
The response includes a 4-stage revenue breakdown for each transaction, representing the complete lifecycle from collection to payment:

1. **Unrecognized Revenue** - Collections that have occurred but revenue is not yet recognized (typically due to pending verifications or disputes)
2. **Uninvoiced Recognized Revenue** - Revenue that has been recognized as earned but not yet invoiced to the partner
3. **Invoiced Revenue** - Revenue that has been invoiced to the partner but not yet paid
4. **Paid Revenue** - Revenue that has been paid to the partner

Exchange Rate Rules (Critical for Revenue Calculations)
- **Stage 1 (Unrecognized)** - Amounts fluctuate with current exchange rates (recalculated in real-time)
- **Stages 2-4 (Recognized/Invoiced/Paid)** - Amounts are LOCKED at the exchange rate from the moment revenue was recognized (Stage 1 → Stage 2 transition)
- This locking prevents exchange rate volatility from affecting recognized revenue, invoices, and payments
- The locked exchange rate is used for all downstream stages (Stages 2, 3, and 4)

Monthly Invoicing Workflow
Revenue progresses through stages on a monthly cycle:
- Collections occur throughout the month (Stage 1)
- At month-end, unrecognized revenue is reviewed and recognized (Stage 1 → Stage 2, exchange rate locked)
- Recognized revenue is invoiced to the partner (Stage 2 → Stage 3)
- Partner pays the invoice (Stage 3 → Stage 4)
- Use this endpoint to track revenue status before and after monthly invoicing

Transaction Data
Each transaction includes:
- Client identification (External Tenant ID, Client ID, Company Name)
- Case/Invoice details (Case ID, Debitura Reference, Creditor Reference)
- Debtor information (Name, Country)
- Financial amounts (Gross Amount in original currency, all revenue stages in USD, Collection Date)
- Revenue breakdown across all 4 stages (in USD)
- Referral fee percentage applied to this transaction

Filtering and Pagination
- **DateFrom/DateTo** - Filter transactions by collection date range (ISO 8601 format)
- **ExternalTenantId** - Filter to specific client(s)
- **Page/PageSize** - Paginate results (default: page 1, size 10, max: 100)

Sorting
- **Sort** - Sort field and direction (format: 'field:direction')
- Supported fields: collectionDate, amount
- Examples: 'collectionDate:desc', 'amount:asc'
- Default: collectionDate:desc (most recent first)

Use Cases
- Generate partner commission reports (all amounts in USD)
- Track revenue recognition status and exchange rate impact
- Reconcile monthly invoices and payments
- Analyze per-client performance
- Export financial data for accounting systems
- Monitor outstanding receivables
- Understand exchange rate fluctuations on Stage 1 (unrecognized) revenue

The data returned represents real collection activity and actual revenue earned from cases created through the referral partnership.

## Query parameters

- `FromDate` string, date-time
- `ToDate` string, date-time
- `ExternalTenantId` string
- `HasRecognizedRevenue` boolean
- `CommissionPaymentStatuses` DebituraDomainModelInvoicePaymentsPayoutsEnumsPayoutCommissionPaymentStatus[]
- `PlatformInvoicingStatuses` DebituraDomainModelCoreInvoicePaymentsPlatformInvoicingStatus[]
- `ReferralInvoicingStatuses` DebituraDomainModelReferralPartnersEnumsReferralInvoicingStatus[]
- `RevenueStages` DebituraWebReferralPartnerApiModelsReportingTransactionRevenueStage[]
- `Search` string
- `Page` integer
- `PageSize` integer
- `CountryIds` integer[]
- `CollectionPartnerIds` string[]
- `Sort` string

## Response `200`

Transactions retrieved successfully

- DebituraWebReferralPartnerApiModelsReportingTransactionsResponse — Response model for transactions list
  - `data` DebituraWebReferralPartnerApiModelsReportingTransactionItem[], nullable
    - `transactionId` string, uuid
    - `date` string, date-time
    - `client` DebituraWebReferralPartnerApiModelsReportingClientInfo
      - `externalTenantId` string, nullable
      - `creditorId` string, uuid
      - `companyName` string, nullable
    - `case` DebituraWebReferralPartnerApiModelsReportingCaseInfo
      - `invoiceId` string, uuid
      - `caseReference` string, nullable
      - `debtorName` string, nullable
      - `originalAmount` number, double
      - `currency` string, nullable
      - `collectionPartner` string, nullable — Display name of the collection partner handling this case. Null if no collection partner has been assigned yet.
    - `payment` DebituraWebReferralPartnerApiModelsReportingPaymentInfo
      - `amount` number, double
      - `currency` string, nullable
      - `paymentDate` string, date-time
    - `earnings` DebituraWebReferralPartnerApiModelsReportingEarningsInfo
      - `currency` string, nullable — Currency of the original transaction
      - `debituraRevenue` number, double
      - `debituraRevenueUsd` number, double
      - `referralFeePercentage` number, double
      - `referralFeeAmount` number, double
      - `referralFeeAmountUsd` number, double
      - `isEstimate` boolean — True if the referral fee amount is an estimate (CommissionPaymentStatus != Paid). When true, the final amount may change based on FX rates.
    - `recognition` DebituraWebReferralPartnerApiModelsReportingRecognitionInfo
      - `isRecognized` boolean — Whether revenue has been recognized (PlatformInvoicingStatus == PaymentReceived)
      - `referralFeeRecognizedUsd` number, double — Recognized referral fee amount in USD (0 if not yet recognized)
    - `status` DebituraWebReferralPartnerApiModelsReportingStatusInfo
      - `commissionPaymentStatus` string, nullable — Commission payment status: "Unpaid" | "Paid" | "Credited" Tracks whether Debitura has received the collection partner's commission. Paid = fee confirmed and received by Debitura.
      - `platformInvoicingStatus` string, nullable — Platform invoicing status: "NotInvoiced" | "InvoiceIssued" | "PaymentReceived" | "InvoiceCredited" Tracks Debitura's invoicing lifecycle with the collection partner.
      - `referralInvoicingStatus` string, nullable — Referral invoicing status: "Pending" | "Invoiced" | "Paid" | "Disputed" Tracks the referral partner's invoicing with Debitura. Set only via manual DB operation — no application code path writes anything but "Pending" (at payout creation).
  - `page` DebituraDomainModelBasePageData — Paging metadata describing a paged result set.
    - `totalResults` integer — Total number of records for the query (filtered or all as applicable).
    - `pageSize` integer — How many records are returned per page.
    - `currentPage` integer — Which page number is being shown, calculated from the number of skipped items.
    - `responseCount` integer — How many records are present in the current page.
    - `totalPages` integer — Total number of pages available given Debitura.Domain.Model.Base.PageData.TotalResults and Debitura.Domain.Model.Base.PageData.PageSize. Returns 0 if Debitura.Domain.Model.Base.PageData.PageSize is 0 rather than dividing by zero.
  - `summary` DebituraWebReferralPartnerApiModelsReportingTransactionsSummary
    - `revenue` DebituraWebReferralPartnerApiModelsReportingRevenueBreakdown
      - `pendingReferralFeeUsd` number, double — Stage 1: Pending — CommissionPaymentStatus=Unpaid/Credited, PlatformInvoicingStatus=NotInvoiced, and ReferralInvoicingStatus=null/Pending (excludes payouts already invoiced/paid to the referral partner via a commission clawback after settlement — see Stage 5/6). Fee is speculative. Depends on the client paying the collection partner. Amount may change.
      - `pendingCount` integer
      - `confirmedPendingInvoiceReferralFeeUsd` number, double — Stage 2: Confirmed, awaiting Debitura invoice — CommissionPaymentStatus=Paid, PlatformInvoicingStatus=NotInvoiced, and ReferralInvoicingStatus=null/Pending (excludes payouts already invoiced/paid to the referral partner — see Stage 5/6). Fee is confirmed. Debitura will invoice the collection partner on the next billing cycle (8th of month).
      - `confirmedPendingInvoiceCount` integer
      - `awaitingCollectionPartnerPaymentReferralFeeUsd` number, double — Stage 3: Awaiting collection partner payment — PlatformInvoicingStatus=InvoiceIssued and ReferralInvoicingStatus=null/Pending (excludes payouts already invoiced/paid to the referral partner — see Stage 5/6). Debitura has invoiced the collection partner. Payment expected within 30 days.
      - `awaitingCollectionPartnerPaymentCount` integer
      - `readyToInvoiceDebituraReferralFeeUsd` number, double — Stage 4: Ready to invoice Debitura — PlatformInvoicingStatus=PaymentReceived and ReferralInvoicingStatus=null/Pending. Collection partner has paid Debitura. Referral partner can now invoice Debitura.
      - `readyToInvoiceDebituraCount` integer
      - `awaitingDebituraPaymentReferralFeeUsd` number, double — Stage 5: Awaiting Debitura payment — ReferralInvoicingStatus=Invoiced. NOT gated on PlatformInvoicingStatus: that tracks Debitura's own invoicing cycle with the collection partner, an independent axis from the referral partner's invoicing state (ConfirmedPipeline partners can be invoiced/paid before Debitura's own PlatformInvoicingStatus reaches PaymentReceived). Referral partner has invoiced Debitura. Payment expected within 20 business days. Disputed amounts are excluded — see Debitura.Web.ReferralPartnerApi.Models.Reporting.RevenueBreakdown.DisputedReferralFeeUsd.
      - `awaitingDebituraPaymentCount` integer
      - `paidReferralFeeUsd` number, double — Stage 6: Paid — ReferralInvoicingStatus=Paid. NOT gated on PlatformInvoicingStatus — see Stage 5. Debitura has paid the referral partner.
      - `paidCount` integer
      - `disputedReferralFeeUsd` number, double — Disputed — ReferralInvoicingStatus=Disputed. NOT gated on PlatformInvoicingStatus — see Stage 5. Deliberately excluded from every other bucket (including "ready to invoice" / "awaiting payment" totals): per business rules, disputed referral fees must be shown separately, not folded into a "payment expected" lifecycle stage, since the amount may still be reduced, corrected, or reverted.
      - `disputedCount` integer
    - `totalDebituraRevenueUsd` number, double — Total Debitura revenue across all transactions for reference

## Other responses

- `400` — Invalid request parameters (e.g., invalid date format, page size too large)
- `500` — Internal server error

---

[API](https://skmtc.net/debitura/apis/debitura-referral-partner-api.md) · [All operations](https://skmtc.net/debitura/apis/debitura-referral-partner-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/debitura/debitura-referral-partner-api/revisions/9c466e0e2bf4/schema)
