Billing Runs: Counts the merchants a run bills that their plan does not price.
GET
/api/billing-runs/environment-coverage
deprecated
Requires: MerchantBilling.BillingRuns, merchant scope.
Counts the merchants a run for the reseller and period would bill, and how many of them meter into a SKU family their plan has no enabled rate entry for: a Sandbox merchant on a plan with no sandbox rate entries, or a Production merchant on a plan with no production rate entries. Those merchants are billed custom items only. Counts only; no merchant or plan is named. The reseller is the caller's own or one beneath it; any other reseller returns 404.
Example request
Every block below sends the same request. Replace {{BASE_URL}} with the address of the API you are calling and {{API_KEY}} with your own key.
The request body is a . See the Request body section below for its fields.
Parameters
| Name | In | Type | Description |
|---|---|---|---|
ResellerId
required |
query | string (uuid) | The reseller whose assigned merchants to count: the caller's own reseller or a live descendant of it (an admin may name any reseller). A reseller outside the caller's scope is reported as not found. |
PeriodKey
required |
query | string | The billing period in `yyyyMM` format. Only merchants whose assignment window overlaps the period are counted, the same set a run for that period bills. |
suppressNulls
required |
query | boolean | If true, omit properties with null values. |
Request body
application/json
, required
| Field | Type | Description |
|---|
This request body has no documented fields.
Responses
200 The counts for the reseller and period.
Body: BillingRunEnvironmentCoverageDto
Each item has these fields.
| Field | Type | Description |
|---|---|---|
assignedMerchantCount
required |
integer (int32) | Merchants a run for the period would bill: active, assigned a price plan, with an assignment window that overlaps the period. The reseller's collection merchant is not counted. |
unpricedSandboxMerchantCount
required |
integer (int32) | Assigned merchants that meter into the sandbox SKU family (every environment except Production) whose plan has no enabled sandbox rate entry. |
unpricedProductionMerchantCount
required |
integer (int32) | Assigned merchants in the Production environment whose plan has no enabled production rate entry. |
This response has no documented body fields.
404 The reseller does not exist or is outside the caller's scope.
Body:
Each item has these fields.
| Field | Type | Description |
|---|
This response has no body.
403 Forbidden
Body: RemoteServiceErrorResponse
Each item has these fields.
| Field | Type | Description |
|---|---|---|
error
required |
RemoteServiceErrorInfo |
This response has no documented body fields.
401 Unauthorized
Body: RemoteServiceErrorResponse
Each item has these fields.
| Field | Type | Description |
|---|---|---|
error
required |
RemoteServiceErrorInfo |
This response has no documented body fields.
400 Bad Request
Body: RemoteServiceErrorResponse
Each item has these fields.
| Field | Type | Description |
|---|---|---|
error
required |
RemoteServiceErrorInfo |
This response has no documented body fields.
501 Not Implemented
Body: RemoteServiceErrorResponse
Each item has these fields.
| Field | Type | Description |
|---|---|---|
error
required |
RemoteServiceErrorInfo |
This response has no documented body fields.
500 Internal Server Error
Body: RemoteServiceErrorResponse
Each item has these fields.
| Field | Type | Description |
|---|---|---|
error
required |
RemoteServiceErrorInfo |
This response has no documented body fields.
default The request failed. The body carries the standard error envelope: a machine-readable `error.code`, a human-readable `error.message`, and `error.validationErrors` when the failure was a validation rejection. See the error-code reference in this document's description for the values `error.code` can take.
Body: RemoteServiceErrorResponse
Each item has these fields.
| Field | Type | Description |
|---|---|---|
error
required |
RemoteServiceErrorInfo |
This response has no documented body fields.
429 The request was refused because a rate limit was exceeded. Wait at least the interval `Retry-After` names before retrying, then back off. Limits are tuned per deployment, so read the allowance from the response headers rather than assuming a fixed ceiling.
Body: RateLimitProblemDetails
Each item has these fields.
| Field | Type | Description |
|---|---|---|
type
required |
string | The problem type identifier. Always the same value: the failure is the status code itself, so there is no sub-type for a caller to branch on. nullable |
title
required |
string | A short, human-readable summary of the problem type. nullable |
status
required |
integer (int32) | The HTTP status code, repeated in the body as the problem-details format defines. |
detail
required |
string | A human-readable explanation of this occurrence of the problem. nullable |
retryAfterSeconds
required |
integer (int32) | How long to wait before retrying, in whole seconds, carrying the same figure as the `Retry-After` header. Always at least one: a value of zero would invite an immediate retry that is certain to be rejected again. |
This response has no documented body fields.
Errors
A failed request returns the platform error envelope. The
error reference lists every value
error.code can carry and shows the four response shapes.