---
title: "Preview managed-case routing."
method: POST
path: "/managed-cases/preview"
tags: ["ManagedCases"]
---

# Preview managed-case routing.

`POST /managed-cases/preview`

## Request

- Base URL: `https://collectionpartner-api.debitura.com`
- URL: `https://collectionpartner-api.debitura.com/managed-cases/preview`
- Auth: API key in header `XApiKey`

Optional, read-only snapshot. HasPreLegalPartner describes a routing candidate, not permission to
create a case. No match may lead to internal review and potentially network quotes on submission;
neither acceptance nor a quote is guaranteed. Full validation, agreements and admission rules
still apply on creation. No client, case or routing reservation is created by this endpoint.
Send outstanding principal, currency and debtor type/country/state; invoice lines and pricing
inputs are not evaluated. Model-binding errors use ValidationProblemDetails.
            
`marketMinimumAmount` is the smallest claim the market takes for this debtor country and type (never
below the platform minimum of 100 USD). `applicableMinimumAmount` is not populated by this endpoint.
            
**Examples**
            
**Matched** — request `{"amountToRecover": 15000, "currencyCode": "USD", "debtor": {"type": "Company", "countryAlpha2": "US", "stateAlpha2": "NY"}}`
→ response `{"hasPreLegalPartner": true, "collectionPartnerId": "...", "routingSource": "Automatic", "marketMinimumAmount": 500, "marketMinimumCurrencyCode": "USD"}`.
            
**No match, amount below minimum** — request `{"amountToRecover": 175, "currencyCode": "USD", "debtor": {"type": "Company", "countryAlpha2": "US", "stateAlpha2": "NY"}}`
→ response `{"hasPreLegalPartner": false, "ineligibilityReasonCode": "AmountBelowMinimum", "marketMinimumAmount": 500, "marketMinimumCurrencyCode": "USD"}`.
            
**No match, no geographic coverage** — request `{"amountToRecover": 2000, "currencyCode": "USD", "debtor": {"type": "Company", "countryAlpha2": "VN"}}`
→ response `{"hasPreLegalPartner": false, "ineligibilityReasonCode": "NoGeographicCoverage", "marketMinimumAmount": null}`.
            
**Excluded for this client** — request with a `clientId` excluded from every remaining candidate
→ response `{"hasPreLegalPartner": false, "ineligibilityReasonCode": "ExcludedForClient"}`.
            
**Explicit override** — request `{"amountToRecover": 2000, "currencyCode": "USD", "collectionPartnerId": "(a partner id)", "debtor": {...}}`
→ response `{"hasPreLegalPartner": true, "collectionPartnerId": "(the same id)", "routingSource": "Requested"}`.
            
**Degraded FX** — an unquotable request currency still returns a selected candidate where one exists:
response `{"hasPreLegalPartner": true, "routingSource": "Automatic", "ineligibilityReasonCode": "EligibilityUndetermined", "amountCheckUnavailable": true, "marketMinimumAmount": null}`.

## Request body

- DebituraWebExternalApiContractsV1CasesRequestsPreviewManagedCaseRequest: Routing inputs only; this is not a full case-creation validation request.
  - `amountToRecover` number, double, required: Positive outstanding principal in CurrencyCode. For invoice lines, send their summed outstanding balance.
  - `currencyCode` string, required: Supported three-letter ISO currency code, for example USD or EUR.
  - `debtor` DebituraWebExternalApiContractsV1CasesRequestsPreviewDebtorDto, required: Simplified debtor information for case preview. Only includes the minimum fields required for partner routing and eligibility checking.
    - `type` string, required: Debtor type. Valid values: "Company" or "Private" This affects partner selection as different partners may specialize in B2B vs B2C collection.
    - `countryAlpha2` string, required: Country code (ISO 3166-1 alpha-2 format, e.g., "DK", "US", "PL") Used to determine jurisdiction and available collection partners.
    - `stateAlpha2` string, nullable: US state code (e.g., "CA", "NY") REQUIRED for United States cases only, as US partner coverage is state-specific. Optional for other countries.
  - `clientId` string, uuid, nullable: Optional represented client owned by your partner account. Omit to preview a new inline client without creating one.
  - `collectionPartnerId` string, uuid, nullable: Optional explicit receiving partner. Takes precedence over automatic and test-case routing.
  - `isTest` boolean: Preview test routing. Without an explicit receiving partner, test/demo cases route to your own partner account.

## Response `200`

OK

- DebituraWebExternalApiContractsV1CasesPreviewManagedCaseResponse: Advisory routing snapshot, not permission to create a case or a guarantee of assignment. A missing pre-legal match may lead to internal review and potentially network quotes after submission. Agreements, admission rules and full case validation still apply when creating the case.
  - `hasPreLegalPartner` boolean: Whether a routing destination is selected now. Does not certify acceptance of the case.
  - `collectionPartnerId` string, uuid, nullable: Selected candidate, or null when no pre-legal partner was selected.
  - `routingSource` 'Automatic' | 'ClientConfigured' | 'Requested' | 'SelfManaged' | 'null', nullable: How the candidate was selected. Null when no candidate was selected.
  - `jurisdiction` DebituraWebExternalApiContractsV1CasesJurisdictionDto: Geographic jurisdiction information for the case.
    - `id` integer: Internal jurisdiction identifier.
    - `name` string, nullable: Display name of the jurisdiction (e.g., "Denmark", "United States - California").
    - `countryAlpha2` string, nullable: ISO 3166-1 alpha-2 country code.
    - `stateAlpha2` string, nullable: ISO 3166-2 state/region code (only for countries with state-level routing like the US).
  - `ineligibilityReasonCode` string, nullable: Stable matching reason code. May be EligibilityUndetermined even with a selected candidate when amount checks were unavailable.
  - `ineligibilityReason` string, nullable: Matching diagnosis, not a refusal of case admission.
  - `applicableMinimumAmount` number, double, nullable: Not populated by this endpoint (always null): a managed claim without a partner is not refused, and no amount is suggested. Use MarketMinimumAmount for the market floor.
  - `applicableMinimumCurrencyCode` string, nullable: Always null on this endpoint; see ApplicableMinimumAmount.
  - `marketMinimumAmount` number, double, nullable: Smallest claim the marketplace takes for this jurisdiction and debtor type, in the request currency: the lowest partner floor, never below the platform minimum of 100 USD. A market statement, returned whether or not a partner is selected. Not the admission rules applied when a case is created. Null when no partner covers the market or the amount cannot be priced (see AmountCheckUnavailable).
  - `marketMinimumCurrencyCode` string, nullable: Currency of MarketMinimumAmount.
  - `amountCheckUnavailable` boolean: Amount conditions could not be fully evaluated. May be true even when a candidate is selected.

## Other responses

- `400`: Bad Request
- `401`: Unauthorized
- `404`: Not Found
- `500`: Internal Server Error

## Changes

- **2026-10-14** `3b5344b912ba`: 2 info
  - api tag `ManagedCases` added
  - api tag `ManagedCasePreview` removed
- **2026-10-12** `f8145be751d0`: 3 breaking, 3 warning
  - the response property `routingSource` became nullable for the status `200` (media type: text/plain)
  - the response property `routingSource` became nullable for the status `200` (media type: application/json)
  - the response property `routingSource` became nullable for the status `200` (media type: text/json)
  - added the new `undefined` enum value to the `routingSource` response property for the response status `200` (media type: text/plain)
  - …2 more
- **2026-10-01** `460a861d7d9b`: 6 info
  - added the optional property `marketMinimumAmount` to the response with the `200` status (media type: text/plain)
  - added the optional property `marketMinimumAmount` to the response with the `200` status (media type: application/json)
  - added the optional property `marketMinimumAmount` to the response with the `200` status (media type: text/json)
  - added the optional property `marketMinimumCurrencyCode` to the response with the `200` status (media type: text/plain)
  - …2 more
- **2026-09-26** `447045e59ef6`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/debitura/apis/debitura-collection-partner-api/changes/managed-cases/preview/post.md)

---

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