Returns the merchant's terminal settlement runs, newest first.
GET
/api/transactions/settlements/recent-outcomes
deprecated
Requires: Transactions.Settlement.View, merchant scope.
The outcome half of a manual close, over a lookback window the caller chooses. `TriggerAsync` answers "accepted" and nothing more, so a caller that has to report what the close actually did reads it here. The v1 compatibility facade reads it after a `SettleAll` once `GetSettlementRunStateAsync` reports the run finished, because v1's `SettleAll` was synchronous and answered a host result code. A pending batch is not returned, so every row is a final status for one processor. That is not the same as the run having finished: its other batches may not have been written yet. An all-processor close stamps one row per processor, every one carrying the trigger's run id, so a caller correlating by run id gets a set and collapses it itself. Authorization is enforced by the `[Authorize(SettlementPermissions.View)]` on the app-service method and merchant scoping by the repository's own data filters; this controller widens nothing. A GET, so the class-level anti-forgery opt-out is not in play.
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 |
|---|---|---|---|
MerchantId
required |
query | string (uuid) | The merchant whose recent settlement outcomes should be returned. |
LookbackHours
required |
query | integer (int32) | How far back to look. Clamped server-side to a sane maximum so a caller cannot turn this into a full-history scan. Null uses the server default. |
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 OK
Body: SettlementRunOutcomesDto
Each item has these fields.
| Field | Type | Description |
|---|---|---|
merchantId
required |
string (uuid) | |
queriedAtUtc
required |
string (date-time) | |
windowStartUtc
required |
string (date-time) | The start of the window the outcomes were drawn from. |
items
required |
array of SettlementRunOutcomeDto | Terminal outcomes in the window, newest first. nullable |
This response has no documented body fields.
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.
404 Not Found
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, or because something a later retry can clear stopped it. A rate limit refusal carries an `application/problem+json` body: 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. Any other refusal carries the standard error envelope as `application/json`, and its `error.code` names the cause.
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.