---
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: Fields whose names end in `Usd` are returned in USD. Native transaction amounts
retain their own currencies: case amounts use `case.currency`, collected amounts use
`payment.currency`, and `earnings.collectionPartnerAmount` uses
`earnings.collectionPartnerCurrency`.**

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 (case, payment, and collection-partner amounts in their identified native currencies; revenue-stage fields 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 with explicit native and USD currency fields
- 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 — Read-only row identity: the confirmation for received portions, otherwise the payout.
    - `payoutId` string, uuid — The original financial source. A transaction row identity is not an editable payout ID.
    - `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 — The creditor-original claim amount, frozen at the moment this payout was created. Never the invoice's live/current GrossAmount — a later claim edit or currency conversion does not change this value for an already-created payout.
      - `currency` string, nullable — ISO currency of Debitura.Web.ReferralPartnerApi.Models.Reporting.CaseInfo.OriginalAmount, frozen alongside it at payout creation. Not the case invoice's live/current currency.
      - `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 — ISO currency of Debitura.Web.ReferralPartnerApi.Models.Reporting.PaymentInfo.Amount, sourced from the collected payment and potentially different from the invoice and payout currencies.
      - `paymentDate` string, date-time
    - `earnings` DebituraWebReferralPartnerApiModelsReportingEarningsInfo
      - `currency` string, nullable — ISO currency of the payout-denominated earnings amounts, sourced from the payout's frozen currency. This can differ from Debitura.Web.ReferralPartnerApi.Models.Reporting.TransactionItem.Payment's currency.
      - `debituraRevenue` number, double — Debitura's share of the collection partner's commission on this payment, before your referral fee is deducted, in the original transaction currency.
      - `debituraRevenueUsd` number, double — Debitura's share of the collection partner's commission on this payment, before your referral fee is deducted, converted to USD.
      - `netDebituraRevenueUsd` number, double — Debitura's revenue on this payment after your referral fee is deducted (DebituraRevenueUsd - ReferralFeeAmountUsd). Not displayed in the Dashboard UI or CSV export, which both use the gross DebituraRevenueUsd above.
      - `successFeePercentageSnapshot` number, double, nullable — Contractual success-fee rate frozen when this payout was created, expressed in percentage points (for example, 30.00 means 30%). Null means no snapshot is available; it does not identify the pricing type. This rate is contractual metadata and may differ from the actual saved collection-partner allocation on non-standard payouts.
      - `collectionPartnerAmount` number, double — Actual gross amount saved for the collection partner on this payout, denominated in Debitura.Web.ReferralPartnerApi.Models.Reporting.EarningsInfo.CollectionPartnerCurrency. This persisted allocation is the source of truth and is not recalculated from Debitura.Web.ReferralPartnerApi.Models.Reporting.EarningsInfo.SuccessFeePercentageSnapshot.
      - `collectionPartnerCurrency` string, nullable — ISO currency of Debitura.Web.ReferralPartnerApi.Models.Reporting.EarningsInfo.CollectionPartnerAmount, sourced from the payout's frozen currency. Null when the payout currency is unavailable; payment currency is deliberately not used as a fallback because it is independently editable.
      - `referralFeePercentage` number, double
      - `referralFeeAmount` number, double — Referral fee owed to you on this payment, in the payout's native currency. Zero when not yet settled and Debitura.Web.ReferralPartnerApi.Models.Reporting.StatusInfo.CommissionPaymentStatus is "Credited" — the underlying collection-partner commission was written off. Already invoiced, paid or disputed referral earnings retain their recorded amount.
      - `referralFeeAmountUsd` number, double — Same as Debitura.Web.ReferralPartnerApi.Models.Reporting.EarningsInfo.ReferralFeeAmount, converted to USD, preserving the same settled-history exception.
      - `isEstimate` boolean — True only when CommissionPaymentStatus is "Unpaid" — the final amount may still change based on FX rates or the underlying commission not materializing. False for "Paid" (final) and for "Credited" (final: zero for pending earnings, or the retained amount for already invoiced, paid or disputed earnings).
    - `recognition` DebituraWebReferralPartnerApiModelsReportingRecognitionInfo
      - `isRecognized` boolean — Whether revenue has been recognized: PlatformInvoicingStatus == PaymentReceived AND the commission has not been written off, or its referral earnings were already invoiced, paid or disputed before the write-off.
      - `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 the collection partner has received the underlying commission. Unpaid = not yet received (estimate). Paid = confirmed and received. Credited = the commission was written off — the collection partner will not pay it. A Credited transaction remains visible here and in the unfiltered transactions list, but its pending earnings become zero and IsEstimate is false. Already invoiced, paid or disputed referral earnings retain their amounts and stages. Current revenue summary totals exclude credited transactions.
      - `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 — Pending stages exclude written-off commission. Already invoiced, paid or disputed referral earnings remain in their corresponding stages. Credited transactions remain visible in the unfiltered list with their commission status unchanged.
      - `pendingReferralFeeUsd` number, double — Stage 1: Pending — CommissionPaymentStatus=Unpaid (exactly), 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 — Current total Debitura revenue across all matching transactions, before referral fees are deducted. Excludes any transaction whose CommissionPaymentStatus is "Credited" — this is a current/non-Credited summary total, and intentionally does not equal the sum of gross Payout.DebituraRevenueInUsd still visible per-row in the unfiltered transactions list, since a credited payout's own record is never zeroed or recomputed there.
    - `netTotalDebituraRevenueUsd` number, double — Same as Debitura.Web.ReferralPartnerApi.Models.Reporting.TransactionsSummary.TotalDebituraRevenueUsd, after referral fees are deducted. Also excludes Credited transactions. Not currently displayed in the Dashboard UI or CSV export.

## Other responses

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

## Changes

- **2026-09-20** `b0bc60fbff11` — 18 info
  - added the optional property `data/items/earnings/collectionPartnerAmount` to the response with the `200` status (media type: text/plain)
  - added the optional property `data/items/earnings/collectionPartnerAmount` to the response with the `200` status (media type: application/json)
  - added the optional property `data/items/earnings/collectionPartnerAmount` to the response with the `200` status (media type: text/json)
  - added the optional property `data/items/earnings/collectionPartnerCurrency` to the response with the `200` status (media type: text/plain)
  - …14 more
- **2026-08-08** `9c466e0e2bf4` — 3 info
  - added the optional property `data/items/case/collectionPartner` to the response with the `200` status (media type: text/plain)
  - added the optional property `data/items/case/collectionPartner` to the response with the `200` status (media type: application/json)
  - added the optional property `data/items/case/collectionPartner` to the response with the `200` status (media type: text/json)

[Change history](https://skmtc.dev/debitura/apis/debitura-referral-partner-api/changes/reporting/transactions/get.md)

---

[API](https://skmtc.dev/debitura/apis/debitura-referral-partner-api.md) · [All operations](https://skmtc.dev/debitura/apis/debitura-referral-partner-api/llms.txt) · [OpenAPI document](https://skmtc.dev/debitura/apis/debitura-referral-partner-api/revisions/8186427c1a9b?raw)
