# ContinuationPagedResultDtoOfMerchantBillingHistoryItemDto

A model the API reference uses in a request or a response. The operation pages link every field typed as this model here.

Represents a page of results obtained through continuation-token paging.
Supports an approximate total count for display purposes.

## Fields
- `items` (array<[MerchantBillingHistoryItemDto](https://devportal.signapay-sbx.winkpg.io/docs/api/models/MerchantBillingHistoryItemDto.md)>): The items returned for this page. (nullable)
  Fields of each item:
  - `id` (string(uuid))
  - `periodKey` (string): Billing period the run covered (yyyyMM). (nullable)
  - `runStatus` ([MerchantBillingRunStatus](https://devportal.signapay-sbx.winkpg.io/docs/api/models/MerchantBillingRunStatus.md)): Overall status of the owning billing run. (nullable)
    Values:
    - `Pending`: Billing run created but not yet started.
    - `Running`: Billing run is currently processing merchants.
    - `Completed`: All merchants processed successfully.
    - `PartiallyCompleted`: Some merchants processed successfully, others failed.
    - `Failed`: All merchants failed or the run itself failed.
    - `Cancelled`: Billing run was manually cancelled.
  - `resultStatus` ([MerchantBillingRunResultStatus](https://devportal.signapay-sbx.winkpg.io/docs/api/models/MerchantBillingRunResultStatus.md)): Outcome of this merchant's result within the run. (nullable)
    Values:
    - `Success`: Merchant rated successfully. Terminal for a dry run; on a non-dry run it is a transient pre-dispatch state that the fulfillment dispatcher advances to a path-specific status (Invoiced or ChargePending).
    - `Failed`: Billing failed for this merchant.
    - `Skipped`: Merchant was skipped (e.g., inactive or excluded).
    - `NoPlan`: No active price plan assigned to this merchant.
    - `NoUsage`: No usage recorded for this merchant in the billing period.
    - `NoFulfillmentPath`: Neither ResellerBillingPreferences.DefaultFulfillmentPath nor the per-merchant MerchantBillingAssignment.FulfillmentPath override is set, so the resolver cannot decide how to collect payment for this merchant.
    - `NoPaymentMethod`: The effective fulfillment path is RecurringContract but no active MerchantBillingPaymentMethod row exists for the (ResellerId, MerchantId) pair, so the recurring charge has no token to draft against.
    - `MissingCollectionMerchant`: The effective fulfillment path is RecurringContract but the reseller has not configured a CollectionMerchantId, so there is no party to own the recurring contract.
    - `MissingHpp`: The effective fulfillment path is Invoicing but the reseller has not configured an HppPageId, so the generated invoice has no payment link destination.
    - `Invoiced`: The merchant was rated successfully and the Invoicing fulfillment path produced an issued invoice. Terminal for the Invoicing path: see MerchantBillingRunResult.InvoiceId for the artifact.
    - `Charged`: The RecurringContract path charge completed successfully. Set when the downstream charge reconciliation (tracked separately) confirms an approved transaction; see MerchantBillingRunResult.TransactionId.
    - `ChargePending`: The merchant was rated successfully and the RecurringContract path dispatched a charge request into the Transaction Manager. The charge has not yet been reconciled; the run records this as a non-terminal "awaiting result" state. See MerchantBillingRunResult.ContractId.
    - `ChargeFailed`: The RecurringContract path charge was attempted but declined or errored. Set by the downstream charge reconciliation (tracked separately).
    - `NoBillableUsage`: Usage was recorded for the merchant in the billing period, but the plan produced no positive-charge line item, so there is nothing to bill. Distinct from NoUsage (which means no usage aggregates existed at all): here the merchant genuinely transacted, the usage simply fell entirely within a rate entry's included/free allowance or matched no billable rate entry. Where a rate entry matched the usage, the rated run keeps the zero-billable line item visible so the operator can see the usage and why it was not charged; usage that matched no rate entry produces no line item.
    - `PlanNotActive`: The merchant's price plan cannot bill the period: it is marked inactive, its effective-from date falls after the period, or its effective-to date falls before it. Nothing is invoiced or charged, and the run counts the merchant as skipped. The result's error message names which condition failed. The rule is PricePlanBillingState, which the Collection Merchants roster applies too.
  - `merchantId` (string(uuid)): (nullable)
  - `merchantName` (string): Merchant display name snapshot taken at run time. (nullable)
  - `pricePlanId` (string(uuid)): (nullable)
  - `pricePlanName` (string): Price plan name snapshot taken at run time. (nullable)
  - `totalSellAmount` (number(double)): Total amount billed to the merchant for the period. (nullable)
  - `currency` (string): (nullable)
  - `isDryRun` (boolean): Whether the owning run was a dry (preview) run. (nullable)
  - `invoiceId` (string(uuid)): Id of the invoice generated for this result, when the Invoicing path ran. (nullable)
  - `startedAt` (string(date-time)): (nullable)
  - `completedAt` (string(date-time)): (nullable)
  - `creationTime` (string(date-time)): Creation time of the owning billing run (list default sort field).
  - `errorMessage` (string): Redacted failure indicator for failed results: the exception type name only, never the raw exception message. (nullable)
  - `lineItems` (array<[BillingRunLineItemDto](https://devportal.signapay-sbx.winkpg.io/docs/api/models/BillingRunLineItemDto.md)>): Calculated line items for this merchant in this run. (nullable)
- `nextContinuationToken` (string): Continuation token to use when requesting the next page. Null means no additional pages exist. (nullable)
- `approxTotalCount` (integer(int64)): An approximate total count of matching items. This value is optional and may be stale or estimated, so treat it as an approximation. (nullable)
- `pageItemCount` (integer(int32)): Convenience property for the number of items in this page. (read only)
- `retrievedAt` (string(date-time)): When the page was retrieved. Useful for diagnostics and cache behavior.

## See also

- [All documentation](https://devportal.signapay-sbx.winkpg.io/llms.txt): the machine-readable index of every public page on this site.
