Cases
- Base URL
https://customer-api.debitura.com- Authentication
- API key in the
XApiKeyheader
List collection cases
/casesReturns a paginated list of collection cases for your account.
Pagination:
- page (default: 1) - Page number, starting from 1
- pageSize (default: 10, max: 100) - Number of results per page
Filters:
- statuses - Filter by case lifecycle status (comma-separated list) Valid values: PendingContractSigning, PendingVerificationInternal, PendingVerification, NeedsAdditionalDetails, Leads, LeadsQuoteGiven, Active, Paused, Closed, Merged (case-insensitive; both name and description forms accepted)
- divisionIds - Filter by creditor division IDs (comma-separated GUIDs, for multi-division creditors)
- debtorIds - Filter by specific debtor IDs (comma-separated GUIDs)
- ids - Filter by specific case IDs (comma-separated GUIDs)
Sorting:
- sort - Sort field and direction (format: 'field:direction') Valid sort fields: DateCreated, DateUpdated, DateFinished, DateCollectionStarted, DueDate, Date, GrossAmount, Remainder, InterestFees, CollectionFees, ReminderFees, Lifecycle, CloseCode, ClaimType, Reference, CreditorReference, CollectionPartnerReference, Type, Classification, Debtor, Creditor, Country, ExclusivityEndDate, ActiveCollectionPeriodEndDate, PaymentTotalSum, CurrentPhase, CollectionPartner, Jurisdiction, ManagedByPartner, CreditorDivision, AssignedCollectorUser, AssignedCreditorUser, AssignedManagingPartnerUser, ReferralPartner Examples: 'DateCreated:desc', 'DueDate:asc', 'GrossAmount:desc' Unknown fields return HTTP 400. Equal values are ordered by case ID in the last requested direction.
Response:
- Returns InvoiceListApiDTO with page metadata and cases array
- Page metadata includes: totalResults, currentPage, skipped, pageSize
Query parameters
PageintegerPageSizeintegerDebtorIdsarray of uuidsIdsarray of uuidsStatusesarray of stringsFilter by case lifecycle status. Valid values: PendingContractSigning, PendingVerificationInternal, PendingVerification, NeedsAdditionalDetails, Leads, LeadsQuoteGiven, Active, Paused, Closed, Merged (case-insensitive; both name and description forms accepted).
DivisionIdsarray of uuidsOptional list of division IDs to filter by
SortstringOptional sorting string "Field[:asc|desc][,Field2[:asc|desc]]…". Valid sort fields: DateCreated, DateUpdated, DateFinished, DateCollectionStarted, DueDate, Date, GrossAmount, Remainder, InterestFees, CollectionFees, ReminderFees, Lifecycle, CloseCode. Examples: 'DateCreated:desc', 'DueDate:asc'. Unknown fields are silently ignored.
Returns
200 List returned
pageobjectRequiredStable v1 pagination metadata shared by public list responses.
casesarray of objectsnullableV1 Invoice DTO for external partner APIs
curl https://customer-api.debitura.com/cases \-H "XApiKey: $DEBITURA_API_KEY"
{"page": {"totalResults": 42,"pageSize": 25,"currentPage": 1,"responseCount": 42,"totalPages": 1},"cases": [{"id": "3f2b6c1e-8a4d-4b7f-9c2e-5d1a0b9e7f31","dateCreated": "2026-10-01T14:05:00Z","dateUpdated": "2026-10-01T14:05:00Z","reference": "INV-2026-0042","creditorReference": "INV-2026-0042","creditorComments": "Payment plan agreed with the debtor.","claimDescription": "string","grossAmount": 2500,"remainder": 1.5,"interestFees": 2500,"reminderFees": 2500,"collectionFees": 2500,"totalAddedFees": 2500,"currency": "EUR","isTestCase": true,"lifecycle": "string","dueDate": "2026-10-01T14:05:00Z","date": "2026-10-01T14:05:00Z","dateFinished": "2026-10-01T14:05:00Z","dateCollectionStarted": "2026-10-01T14:05:00Z","closeCode": "string","currentEngagementPhase": "string","claimType": "string","creditorDivisionId": "3f2b6c1e-8a4d-4b7f-9c2e-5d1a0b9e7f31","debtor": {"type": "Company","name": "Pacific Trading LLC","contactPerson": "John Smith","companyRegistrationNumber": "47-1234567","address": "123 Market Street, Suite 400","zipCode": "94105","city": "San Francisco","state": "California","stateAlpha2": "CA","countryAlpha2": "US","country": "United States","email": "accounts@pacifictrading.com","phone": "+1 415 555 0123"},"collectionPartner": {"name": "Muster GmbH","officeEmail": "finance@example.com","officePhone": "+49 30 1234567","publicSite": "string","surveyCadenceMode": 0},"creditor": {"id": "3f2b6c1e-8a4d-4b7f-9c2e-5d1a0b9e7f31","companyName": "Muster GmbH","companyRegistrationNumber": "DE123456789","officeEmail": "finance@example.com","officePhone": "+49 30 1234567","address": "Friedrichstraße 68","city": "Berlin","zipCode": "10115","state": "string","country": "Germany","division": {"id": {},"name": {}}},"bankAccount": {"id": 3,"label": "string","scheme": "string","currencyCode": "EUR","bankCountryCode": "DE","accountHolderName": "Muster GmbH","iban": "string","bic": "string","accountNumber": "string","localIdentifier": "string","localIdentifierType": "string","bankName": "Muster GmbH","bankAddress": "Friedrichstraße 68","bankCity": "Berlin","bankZipCode": "10115","bankState": "string"},"blendedAgeUpliftPoints": 1.5,"preLegalSuccessFee": 2500,"solutionUrl": "https://app.debitura.com/…","signingHandoff": {"combinedSigningUrl": "https://app.debitura.com/…"},"exclusivePeriodEndDate": "2026-10-01T14:05:00Z","disputeStatus": "string","validation": {"needsInfo": true},"assignedUser": {"email": "finance@example.com","name": "Muster GmbH"},"allocationOutstanding": {"principal": 1.5,"interest": 1.5,"reminderFees": 2500,"collectionFees": 2500}}]}
Create collection case
/casesCreates a new collection case for debt collection.
Test Mode:
- Set isTest=true to create a test case (case IS created in the database but marked as test data)
- Test cases are excluded from production metrics and can be easily filtered or deleted
- Use test mode for integration testing and development
Debtor Rules:
- debtor.type must be "Company" or "Private"
- Company → debtor.name is mandatory (company name)
- Private → debtor.name is mandatory (person's full name)
Geographic Rules:
- debtor.countryAlpha2 (ISO 3166-1 alpha-2) is always required
- debtor.state is a free-text region description
- For US debtors: debtor.stateAlpha2 (two-letter state code) is also required – debtor.state is ignored in that scenario
- Customer API submissions are limited to cases that match an exclusive pre-legal partner. If no eligible partner matches, the API returns 422 and does not create a case. The interactive portal's custom-quote/network-lead fallback is not available through this API.
Claim Amount and Aging — three ways to send it:
amountToRecoverplus a singledueDateamountToRecoverplus the cumulativeamountToRecoverOver6/12/24MonthsbucketsclaimLines[]— send the unpaid invoices and let us do the arithmetic (recommended for multi-invoice claims)
"claimLines": [
{ "dueDate": "2024-01-15", "amount": 423.42, "reference": "INV-1001" },
{ "dueDate": "2025-05-02", "amount": 700.87, "reference": "INV-1042" }
]
amountis the outstanding balance on that invoice — what the debtor still owes on it, already net of payments received and credit notes issued. It is not the invoice's original face value. Leave fully settled invoices out; every amount must be greater than zero, with at most 2 decimals.- We derive
amountToRecoverand all three age buckets from the lines, so sendclaimLinesinstead ofamountToRecoverand theamountToRecoverOver6/12/24Monthsfields. Sending both is a 400. - Use
claimLineswhenever the debtor has already part-paid: it is the only way to express an honest age profile on a part-paid claim, because the buckets are then computed on the same outstanding balances the total is computed on. claimLinesis a pricing input only. It is not stored and is not shown to the collecting partner — include a per-invoice breakdown incommentsif the partner needs to see one.- Maximum 1000 lines. Per-line errors are returned keyed by index, e.g.
ClaimLines[2].DueDate. - If you omit the case-level
dueDate, it is set to the oldest due date across your lines — so in that casedatemust not be later than the earliestclaimLinesdue date, or the request is rejected with a 400 ondate. Send an explicitdueDateif you need a different case due date.
Optional Parameters:
- creditorDivisionId - Assign case to a specific division (for multi-division creditors)
- allowPendingContracts - Accept cases with unsigned contracts in 'PendingContractSigning' status instead of returning 422
Error Responses:
- 400: Field validation errors (returns JSON object with field names as keys and error arrays as values)
- 422: Business rule violations (returns BusinessErrorResponseApiDTO with type, message, and solutionUrl)
- 500: Server errors
Headers
Idempotency-KeystringOptional non-empty, non-whitespace idempotency key (max 255 characters) for safely retrying this request. If a previous request used the same key with an identical body, the original terminal response is replayed verbatim. Reusing the key with a different body returns 422 with
businessErrors[0].type: "IdempotencyConflict". Field-level 400 validation errors are not stored, so you may fix the request and retry with the same key.Max 255 characters
Request body
currencyCodestringnullableRequireddatedatetimedueDatedatetimenullablecommentsstringnullableOptional comments about the case, e.g. payment history or communication context.
Max 4000 charactersclaimDescriptionstringnullableClient provided description of the claim
Max 4000 characterscreditorReferencestringnullableMax 50 charactersdebtorobjectV1 Debtor DTO for external partner APIs. The debtor is the party that owes the debt.
creditorDivisionIduuidnullableamountToRecovernumberThe TOTAL amount to recover for this case. This represents the full principal amount across all invoices (if multiple invoices are bundled).
For multi-invoice cases with different ages, you can optionally provide age breakdown fields (AmountToRecoverOver12Months and AmountToRecoverOver24Months) to enable blended age-based pricing.
If age breakdown fields are omitted, age uplift will be calculated from the invoice due date (single-invoice pricing).
Required unless you send ClaimLines, in which case this must be omitted or 0 — the server derives the total by summing the outstanding balance of every claim line. Sending both a non-zero AmountToRecover and ClaimLines is rejected, because the two would disagree.
amountToRecoverOver6MonthsnumbernullableOPTIONAL - MULTI-INVOICE AGE BUCKET PRICING (PRICING ZONE 180-DAY THRESHOLD)
The portion of AmountToRecover that is more than 6 months (180 days) overdue. This includes amounts that are 12+ and 24+ months overdue.
This field is optional and can only be provided alongside AmountToRecoverOver12Months and AmountToRecoverOver24Months. It enables precise pricing tier selection based on the 180-day threshold. When omitted, the system falls back to deriving the threshold from AmountToRecoverOver12Months.
Validation rules:
- Must be ≤ AmountToRecover
- Must be ≥ AmountToRecoverOver12Months
amountToRecoverOver12MonthsnumbernullableOPTIONAL - MULTI-INVOICE AGE BUCKET PRICING
The portion of AmountToRecover that is more than 12 months overdue. This includes amounts that are 24+ months overdue.
If provided, AmountToRecoverOver24Months must also be provided. Both fields must be provided together or both omitted.
Used to calculate blended age uplift for multi-invoice cases:
- Amount under 12 months = AmountToRecover - AmountToRecoverOver12Months
- Amount 12-24 months = AmountToRecoverOver12Months - AmountToRecoverOver24Months
- Amount over 24 months = AmountToRecoverOver24Months
Blended uplift formula: ((A12-A24)×10 + A24×20) / AmountToRecover where A12 = AmountToRecoverOver12Months, A24 = AmountToRecoverOver24Months
Validation rules:
- Must be ≤ AmountToRecover
- Must be ≥ AmountToRecoverOver24Months
amountToRecoverOver24MonthsnumbernullableOPTIONAL - MULTI-INVOICE AGE BUCKET PRICING
The portion of AmountToRecover that is more than 24 months overdue.
If provided, AmountToRecoverOver12Months must also be provided. Both fields must be provided together or both omitted.
Used to calculate blended age uplift for multi-invoice cases. See AmountToRecoverOver12Months for full details on the calculation.
Validation rules:
- Must be ≤ AmountToRecoverOver12Months
- Must be ≤ AmountToRecover
claimLinesarray of objectsnullableOPTIONAL - the unpaid invoices making up this claim, one line per invoice, each carrying its own outstanding balance and payment deadline.
When supplied, the server derives AmountToRecover and all three cumulative age buckets from these lines, so send them instead of — never alongside — AmountToRecover and the AmountToRecoverOver6/12/24Months fields. Supplying both is rejected with a 400.
Use this whenever the debtor has already part-paid the claim: the buckets are then computed on the same outstanding balances the total is computed on, so the age profile stays honest. Maximum 1000 lines. When DueDate is omitted on the case, it is derived as the oldest line due date; an explicit DueDate is honoured.
Claim lines are a pricing input only — they are not stored and are never shown to the collecting partner.
allowPendingContractsbooleanWhen true, cases with unsigned contracts (SDCA/POA) are accepted in 'PendingContractSigning' status instead of being rejected with 422. The case transitions automatically once contracts are signed. Default: false (unsigned contracts return 422).
isTestbooleanWhen true, creates a test case that IS persisted to the database but marked as test data. Test cases are excluded from production metrics and can be easily filtered or deleted. Use this for integration testing and development.
tagstringnullableOptional tag for scoped test data grouping (e.g. "suite-run-{uuid}"). Use this to group test cases created by a single CI pipeline run so they can be bulk-deleted via DELETE /test/cases?tag={tag} without affecting parallel runs. Only meaningful when IsTest is true. Max 100 characters.
Max 100 charactersassignedUserEmailstringnullableOptional: Email address of the creditor team member to assign as the case owner. When provided, email notifications for this case will be sent only to this user instead of all team members. Must correspond to an active member of your team.
Max 320 characters · Email addressreturnUrlstringnullableOptional: URL the creditor user should land on after completing any pending signing chain (SDCA upgrade / PoA / JPA / KYC) on the Debitura Creditors app. Embedded, URL-encoded, into
BusinessErrorResponseApiDTO.SigningHandoff.CombinedSigningUrl(on 422 with pending signings) andInvoiceDto.SigningHandoff.CombinedSigningUrl(on 200 whenAllowPendingContracts=truewith signings remaining).Must be an absolute http(s) URL. Values that fail validation (relative URLs, non-http schemes, header-injection characters) are silently dropped — the combined URL is still emitted but without the returnUrl query parameter, and the Creditors app falls back to its own safe in-app default landing.
Additive. Existing integrations that omit this field see the same behaviour as before.
Max 2048 characters
Returns
200 Case created
iduuiddateCreateddatetimedateUpdateddatetimenullablereferencestringnullablecreditorReferencestringnullablecreditorCommentsstringnullableclaimDescriptionstringnullablegrossAmountnumberremaindernumberinterestFeesnumberreminderFeesnumbercollectionFeesnumbertotalAddedFeesnumbercurrencystringnullableisTestCasebooleanlifecyclestringnullabledueDatedatetimedatedatetimedateFinisheddatetimenullabledateCollectionStarteddatetimenullablecloseCodestringnullablecurrentEngagementPhasestringnullableThe current phase of the case's engagement: "Pre-legal", "Legal", or "Enforcement". A different axis from Lifecycle/CloseCode — an Active case can be in any of the three phases.
Null means "no active engagement" (e.g. lead / quoting / pre-contract-signing / unassigned, or a data-consistency gap) — this is a distinct third state, NOT a synonym for Pre-legal. Most cases legitimately read Pre-legal; phase only leaves Pre-legal on legal/enforcement quote flows.
Not guaranteed to be monotonic: an admin correction can move phase backwards (e.g. Legal back to Pre-legal).
Persists after case closure — reflects the case's last-known engagement phase, not the current Lifecycle. Note: this is a different field from a lead quote's own offered phase (the phase a partner's quote proposes to work the case at, if this case ever went through a quote flow) — this field is the case-level phase of its actual engagement, not a quote's terms.
claimTypestringnullableThe type of claim for this case (e.g. "Unpaid Invoice", "Loan Repayment", "Breach of Contract"). Null if not set.
creditorDivisionIduuidnullabledebtorobjectV1 Debtor DTO for external partner APIs. The debtor is the party that owes the debt.
collectionPartnerobjectV1 Collection Partner DTO for external partner APIs
creditorobjectCreditor (client) information for external partner APIs. Represents the party that the debtor owes money to.
bankAccountobjectBank account information for partner API. Full details provided as partners need this to:
- Provide payment instructions to debtors (when debtor pays client directly)
- Execute payouts to clients (when partner receives payment and pays out remainder)
blendedAgeUpliftPointsnumbernullableMULTI-INVOICE AGE BUCKET PRICING Calculated blended age uplift percentage points (0-20) for multi-invoice cases. Shows the additional fee percentage added due to invoice age. Formula: ((A12-A24)×10 + A24×20) / Total Principal Null for single-invoice cases (age uplift is calculated from due date instead).
preLegalSuccessFeenumbernullablePRE-LEGAL SUCCESS FEE The total pre-legal success fee percentage for this case. Includes base fee + age-based uplift (blended or single-invoice). Null if pricing has not been calculated yet or if case is not in pre-legal phase. Example: 20.5 represents 20.5% success fee.
solutionUrlstringnullableDeprecatedWhen the case is created with allowPendingContracts=true and required contracts are unsigned, this URL points to the signing page. Null when contracts are already signed or not applicable.
signingHandoffobjectPartner-facing handoff metadata for a creditor's pending signing chain. Returned on POST /cases responses (422 with pending-signing errors, or 200 with AllowPendingContracts=true when signings remain).
Designed as an envelope so future fields (expiration, suggested email copy, etc.) can be added without polluting the parent DTO.
exclusivePeriodEndDatedatetimenullableThe date the exclusive collection period ends (or ended). Null if no collection period has been created for this case (e.g. custom-terms cases). Use GET /cases/{id}/exclusive-period for the full chain including extensions.
disputeStatusstringnullableWhether the claim is disputed by the debtor. One of: "Yes, the claim is disputed", "No, the claim is not disputed", or "Don't Know". Null when the dispute status has not been set on the case.
validationobjectStable v1 validation summary used by ordinary and list mappings.
assignedUserobjectRepresents the creditor team member assigned to a case.
allocationOutstandingobjectOutstanding amount per bucket on the case: each bucket's total minus the payments allocated to it.
curl -X POST https://customer-api.debitura.com/cases \-H "XApiKey: $DEBITURA_API_KEY" \-H "Content-Type: application/json" \-d '{"currencyCode": "EUR","amountToRecover": 4000,"date": "2026-03-01","dueDate": "2026-03-09","claimDescription": "Custom mobile app development services","comments": "Outstanding invoice INV 2024 00789 for custom mobile app development delivered 15 Nov 2024; payment 60 days overdue despite two reminders.","creditorReference": "INV‑2024‑00789","isTest": true,"debtor": {"type": "Company","name": "Acme Corp","contactPerson": "John Doe","companyRegistrationNumber": "12345678","address": "123 Business Street","zipCode": "1000","city": "Lisbon","state": "Lisbon","countryAlpha2": "PT","email": "billing@acme‑corp.com","phone": "+351 123 456 789"}}'
{"id": "3f2b6c1e-8a4d-4b7f-9c2e-5d1a0b9e7f31","dateCreated": "2026-10-01T14:05:00Z","dateUpdated": "2026-10-01T14:05:00Z","reference": "INV-2026-0042","creditorReference": "INV-2026-0042","creditorComments": "Payment plan agreed with the debtor.","claimDescription": "string","grossAmount": 2500,"remainder": 1.5,"interestFees": 2500,"reminderFees": 2500,"collectionFees": 2500,"totalAddedFees": 2500,"currency": "EUR","isTestCase": true,"lifecycle": "string","dueDate": "2026-10-01T14:05:00Z","date": "2026-10-01T14:05:00Z","dateFinished": "2026-10-01T14:05:00Z","dateCollectionStarted": "2026-10-01T14:05:00Z","closeCode": "string","currentEngagementPhase": "string","claimType": "string","creditorDivisionId": "3f2b6c1e-8a4d-4b7f-9c2e-5d1a0b9e7f31","debtor": {"type": "Company","name": "Pacific Trading LLC","contactPerson": "John Smith","companyRegistrationNumber": "47-1234567","address": "123 Market Street, Suite 400","zipCode": "94105","city": "San Francisco","state": "California","stateAlpha2": "CA","countryAlpha2": "US","country": "United States","email": "accounts@pacifictrading.com","phone": "+1 415 555 0123"},"collectionPartner": {"name": "Muster GmbH","officeEmail": "finance@example.com","officePhone": "+49 30 1234567","publicSite": "string","surveyCadenceMode": 0},"creditor": {"id": "3f2b6c1e-8a4d-4b7f-9c2e-5d1a0b9e7f31","companyName": "Muster GmbH","companyRegistrationNumber": "DE123456789","officeEmail": "finance@example.com","officePhone": "+49 30 1234567","address": "Friedrichstraße 68","city": "Berlin","zipCode": "10115","state": "string","country": "Germany","division": {"id": "3f2b6c1e-8a4d-4b7f-9c2e-5d1a0b9e7f31","name": "Muster GmbH"}},"bankAccount": {"id": 3,"label": "string","scheme": "string","currencyCode": "EUR","bankCountryCode": "DE","accountHolderName": "Muster GmbH","iban": "string","bic": "string","accountNumber": "string","localIdentifier": "string","localIdentifierType": "string","bankName": "Muster GmbH","bankAddress": "Friedrichstraße 68","bankCity": "Berlin","bankZipCode": "10115","bankState": "string"},"blendedAgeUpliftPoints": 1.5,"preLegalSuccessFee": 2500,"solutionUrl": "https://app.debitura.com/…","signingHandoff": {"combinedSigningUrl": "https://app.debitura.com/…"},"exclusivePeriodEndDate": "2026-10-01T14:05:00Z","disputeStatus": "string","validation": {"needsInfo": true},"assignedUser": {"email": "finance@example.com","name": "Muster GmbH"},"allocationOutstanding": {"principal": 1.5,"interest": 1.5,"reminderFees": 2500,"collectionFees": 2500}}
Preview case eligibility and requirements
/cases/previewPreview what would happen if you submitted a case, without actually creating it.
What This Endpoint Returns:
- IsEligible - Whether the case can be submitted (partner available)
- PartnerAssignment - Which collection partner would handle the case
- RequiredActions - What contracts/documents need to be signed before submission
- Standard Debt Collection Agreement (SDCA)
- Power of Attorney (PoA) for the assigned partner
- PricingPreview - Estimated success fee with age-based surcharges
- Jurisdiction - Geographic details
Use This To:
- Check if a jurisdiction is supported before submitting
- Determine which documents need signing before case creation
- Get signing URLs to guide users through required actions
- Estimate pricing including age surcharges
Required Fields:
- AmountToRecover - Total principal amount
- CurrencyCode - ISO 4217 currency code (e.g., 'DKK', 'EUR', 'USD')
- Debtor.Type - 'Company' or 'Private'
- Debtor.CountryAlpha2 - ISO 3166-1 alpha-2 country code
- Debtor.StateAlpha2 - Required for US cases only (e.g., 'CA', 'NY')
Optional Fields (Multi-Invoice Age Pricing):
- AmountToRecoverOver12Months - Portion over 12 months overdue
- AmountToRecoverOver24Months - Portion over 24 months overdue (Both must be provided together if used)
- AmountToRecoverOver6Months - Portion over 6 months overdue (optional, improves pricing tier accuracy at the 180-day threshold; requires Over12/Over24)
Optional Fields (Claim Lines — recommended for multi-invoice claims): Instead of totalling the claim and computing the buckets yourself, send the unpaid invoices:
"claimLines": [
{ "dueDate": "2024-01-15", "amount": 423.42, "reference": "INV-1001" },
{ "dueDate": "2025-05-02", "amount": 700.87, "reference": "INV-1042" }
]
amountis the outstanding balance on that invoice, already net of payments and credit notes.- We derive
amountToRecoverand all three age buckets from the lines and price on them, so sendclaimLinesinstead ofamountToRecover, theamountToRecoverOver6/12/24Monthsfields, anddueDate. Combining any of those withclaimLinesis a 400. - Use
claimLineswhenever the debtor has already part-paid: it is the only way to express an honest age profile on a part-paid claim. - Maximum 1000 lines. Per-line errors are returned keyed by index, e.g.
ClaimLines[2].DueDate. - The same ledger produces the same quote here and on POST /cases.
Solution URLs Are Context-Aware:
- Bearer token (referral partner) → referral onboarding URLs
- XApiKey (creditor) → standard creditor app URLs
Important Notes:
- This endpoint does NOT create a case - it only previews what would happen
- A matched preview applies the same monetary admission rules as POST /cases; create revalidates all rules
- Monetary refusals return AmountBelowMinimum and admissionMinimum (rule, USD amount, request-currency amount and currency code)
- amountCheckUnavailable means monetary eligibility is provisional because a required conversion was unavailable
- Unmatched cases remain ineligible at every amount; this API does not offer network/custom-quote submission
- If multiple partners match (system limitation), the first match is returned
- All required actions must be completed before calling POST /cases
Example Workflow:
1. POST /cases/preview → Check eligibility and get signing URLs
2. User completes required actions (signs SDCA, signs PoA)
3. POST /cases → Create the actual case
Request body
amountToRecovernumberThe TOTAL amount to recover for this case. This represents the full principal amount across all invoices (if multiple invoices are bundled).
For multi-invoice cases with different ages, you can optionally provide age breakdown fields (AmountToRecoverOver12Months and AmountToRecoverOver24Months) to enable blended age-based pricing.
If age breakdown fields are omitted, the preview will show base pricing without age surcharge calculation.
Required unless you send ClaimLines, in which case this must be omitted or 0 — the server derives the total by summing the outstanding balance of every claim line. Sending both a non-zero AmountToRecover and ClaimLines is rejected, because the two would disagree.
currencyCodestringRequiredISO 4217 currency code for the amount (e.g., "DKK", "EUR", "USD")
3–3 charactersdebtorobjectRequiredSimplified debtor information for case preview. Only includes the minimum fields required for partner routing and eligibility checking.
amountToRecoverOver6MonthsnumbernullableOPTIONAL - MULTI-INVOICE AGE BUCKET PRICING (PRICING ZONE 180-DAY THRESHOLD)
The portion of AmountToRecover that is more than 6 months (180 days) overdue. This includes amounts that are 12+ and 24+ months overdue.
This field is optional and can only be provided alongside AmountToRecoverOver12Months and AmountToRecoverOver24Months. It enables precise pricing tier selection based on the 180-day threshold. When omitted, the system falls back to deriving the threshold from AmountToRecoverOver12Months.
Validation rules:
- Must be ≤ AmountToRecover
- Must be ≥ AmountToRecoverOver12Months
amountToRecoverOver12MonthsnumbernullableOPTIONAL - MULTI-INVOICE AGE BUCKET PRICING
The portion of AmountToRecover that is more than 12 months overdue. This includes amounts that are 24+ months overdue.
If provided, AmountToRecoverOver24Months must also be provided. Both fields must be provided together or both omitted.
Used to calculate blended age uplift for multi-invoice cases:
- Amount under 12 months = AmountToRecover - AmountToRecoverOver12Months
- Amount 12-24 months = AmountToRecoverOver12Months - AmountToRecoverOver24Months
- Amount over 24 months = AmountToRecoverOver24Months
Blended uplift formula: ((A12-A24)×10 + A24×20) / AmountToRecover where A12 = AmountToRecoverOver12Months, A24 = AmountToRecoverOver24Months
Validation rules:
- Must be ≤ AmountToRecover
- Must be ≥ AmountToRecoverOver24Months
amountToRecoverOver24MonthsnumbernullableOPTIONAL - MULTI-INVOICE AGE BUCKET PRICING
The portion of AmountToRecover that is more than 24 months overdue.
If provided, AmountToRecoverOver12Months must also be provided. Both fields must be provided together or both omitted.
Used to calculate blended age uplift for multi-invoice cases. See AmountToRecoverOver12Months for full details on the calculation.
Validation rules:
- Must be ≤ AmountToRecoverOver12Months
- Must be ≤ AmountToRecover
claimLinesarray of objectsnullableOPTIONAL - the unpaid invoices making up this claim, one line per invoice, each carrying its own outstanding balance and payment deadline.
When supplied, the server derives AmountToRecover and all three cumulative age buckets from these lines and prices on them, so send them instead of — never alongside — AmountToRecover, the AmountToRecoverOver6/12/24Months fields, or DueDate. Supplying any of those together with ClaimLines is rejected with a 400.
Use this whenever the debtor has already part-paid the claim: the buckets are then computed on the same outstanding balances the total is computed on, so the age profile stays honest. Maximum 1000 lines. Claim lines are a pricing input only and are never stored.
dueDatedatetimenullableOptional invoice due date. Mutually exclusive with age bucket fields and with ClaimLines. If provided, Debitura computes the age surcharge internally — no need to calculate age buckets. Cannot be a future date.
returnUrlstringnullableOptional: URL the creditor user should land on after completing any pending signing chain (SDCA upgrade / PoA / JPA / KYC) on the Debitura Creditors app. Embedded, URL-encoded, into
PreviewCaseResponseApiViewModel.Result.SigningHandoff.CombinedSigningUrl(when at least one signing-related required action is present) and intoBusinessErrorResponseApiDTO.SigningHandoff.CombinedSigningUrl/InvoiceDto.SigningHandoff.CombinedSigningUrlon POST/cases.Must be an absolute http(s) URL. Values that fail validation (relative URLs, non-http schemes, header-injection characters) are silently dropped — the combined URL is still emitted but without the returnUrl query parameter, and the Creditors app falls back to its own safe in-app default landing.
Additive. Existing integrations that omit this field see the same behaviour as before.
Max 2048 characters
Returns
200 Preview completed
resultobjectDetailed preview result for a case submission.
curl -X POST https://customer-api.debitura.com/cases/preview \-H "XApiKey: $DEBITURA_API_KEY" \-H "Content-Type: application/json" \-d '{"amountToRecover": 50000,"currencyCode": "USD","amountToRecoverOver12Months": 30000,"amountToRecoverOver24Months": 15000,"debtor": {"type": "Company","countryAlpha2": "US","stateAlpha2": "CA"}}'
{"result": {"isEligible": true,"ineligibilityReason": null,"ineligibilityReasonCode": null,"admissionMinimum": {"rule": "string","amountUsd": 2500,"amount": 2500,"currencyCode": "EUR"},"applicableMinimumAmount": 2500,"applicableMinimumCurrencyCode": "EUR","marketMinimumAmount": 2500,"marketMinimumCurrencyCode": "EUR","amountCheckUnavailable": true,"partnerAssignment": {"collectionPartnerId": "3f2b6c1e-8a4d-4b7f-9c2e-5d1a0b9e7f31","partnerName": "Muster GmbH","partnerCountry": "string"},"requiredActions": [{"type": "string","message": "Payment plan agreed with the debtor.","solutionUrl": "https://app.debitura.com/…","isBlocking": true}],"jurisdiction": {"id": 3,"name": "Muster GmbH","countryAlpha2": "DE","stateAlpha2": null},"pricingPreview": {"baseSuccessFeePercentage": 2500,"ageSurchargePercentage": 1.5,"totalSuccessFeePercentage": 2500,"currencyCode": "EUR","pricingSource": "string","pricingSourceDescription": "string"},"requiresKycVerification": true,"hasKycOnFile": true,"signingHandoff": {"combinedSigningUrl": "https://app.debitura.com/…"}}}
Fetch case by ID
/cases/{id}Returns case details for the provided Debitura case ID (a GUID).
Path parameters
iduuidRequired
Returns
200 Case found
iduuiddateCreateddatetimedateUpdateddatetimenullablereferencestringnullablecreditorReferencestringnullablecreditorCommentsstringnullableclaimDescriptionstringnullablegrossAmountnumberremaindernumberinterestFeesnumberreminderFeesnumbercollectionFeesnumbertotalAddedFeesnumbercurrencystringnullableisTestCasebooleanlifecyclestringnullabledueDatedatetimedatedatetimedateFinisheddatetimenullabledateCollectionStarteddatetimenullablecloseCodestringnullablecurrentEngagementPhasestringnullableThe current phase of the case's engagement: "Pre-legal", "Legal", or "Enforcement". A different axis from Lifecycle/CloseCode — an Active case can be in any of the three phases.
Null means "no active engagement" (e.g. lead / quoting / pre-contract-signing / unassigned, or a data-consistency gap) — this is a distinct third state, NOT a synonym for Pre-legal. Most cases legitimately read Pre-legal; phase only leaves Pre-legal on legal/enforcement quote flows.
Not guaranteed to be monotonic: an admin correction can move phase backwards (e.g. Legal back to Pre-legal).
Persists after case closure — reflects the case's last-known engagement phase, not the current Lifecycle. Note: this is a different field from a lead quote's own offered phase (the phase a partner's quote proposes to work the case at, if this case ever went through a quote flow) — this field is the case-level phase of its actual engagement, not a quote's terms.
claimTypestringnullableThe type of claim for this case (e.g. "Unpaid Invoice", "Loan Repayment", "Breach of Contract"). Null if not set.
creditorDivisionIduuidnullabledebtorobjectV1 Debtor DTO for external partner APIs. The debtor is the party that owes the debt.
collectionPartnerobjectV1 Collection Partner DTO for external partner APIs
creditorobjectCreditor (client) information for external partner APIs. Represents the party that the debtor owes money to.
bankAccountobjectBank account information for partner API. Full details provided as partners need this to:
- Provide payment instructions to debtors (when debtor pays client directly)
- Execute payouts to clients (when partner receives payment and pays out remainder)
blendedAgeUpliftPointsnumbernullableMULTI-INVOICE AGE BUCKET PRICING Calculated blended age uplift percentage points (0-20) for multi-invoice cases. Shows the additional fee percentage added due to invoice age. Formula: ((A12-A24)×10 + A24×20) / Total Principal Null for single-invoice cases (age uplift is calculated from due date instead).
preLegalSuccessFeenumbernullablePRE-LEGAL SUCCESS FEE The total pre-legal success fee percentage for this case. Includes base fee + age-based uplift (blended or single-invoice). Null if pricing has not been calculated yet or if case is not in pre-legal phase. Example: 20.5 represents 20.5% success fee.
solutionUrlstringnullableDeprecatedWhen the case is created with allowPendingContracts=true and required contracts are unsigned, this URL points to the signing page. Null when contracts are already signed or not applicable.
signingHandoffobjectPartner-facing handoff metadata for a creditor's pending signing chain. Returned on POST /cases responses (422 with pending-signing errors, or 200 with AllowPendingContracts=true when signings remain).
Designed as an envelope so future fields (expiration, suggested email copy, etc.) can be added without polluting the parent DTO.
exclusivePeriodEndDatedatetimenullableThe date the exclusive collection period ends (or ended). Null if no collection period has been created for this case (e.g. custom-terms cases). Use GET /cases/{id}/exclusive-period for the full chain including extensions.
disputeStatusstringnullableWhether the claim is disputed by the debtor. One of: "Yes, the claim is disputed", "No, the claim is not disputed", or "Don't Know". Null when the dispute status has not been set on the case.
validationobjectStable v1 validation summary used by ordinary and list mappings.
assignedUserobjectRepresents the creditor team member assigned to a case.
allocationOutstandingobjectOutstanding amount per bucket on the case: each bucket's total minus the payments allocated to it.
Errors
400 | ID missing, empty, or ID is not a collection case |
404 | Case not found, deleted, or does not belong to your account |
See Error handling.
curl https://customer-api.debitura.com/cases/3f2b6c1e-8a4d-4b7f-9c2e-5d1a0b9e7f31 \-H "XApiKey: $DEBITURA_API_KEY"
{"id": "3f2b6c1e-8a4d-4b7f-9c2e-5d1a0b9e7f31","dateCreated": "2026-10-01T14:05:00Z","dateUpdated": "2026-10-01T14:05:00Z","reference": "INV-2026-0042","creditorReference": "INV-2026-0042","creditorComments": "Payment plan agreed with the debtor.","claimDescription": "string","grossAmount": 2500,"remainder": 1.5,"interestFees": 2500,"reminderFees": 2500,"collectionFees": 2500,"totalAddedFees": 2500,"currency": "EUR","isTestCase": true,"lifecycle": "string","dueDate": "2026-10-01T14:05:00Z","date": "2026-10-01T14:05:00Z","dateFinished": "2026-10-01T14:05:00Z","dateCollectionStarted": "2026-10-01T14:05:00Z","closeCode": "string","currentEngagementPhase": "string","claimType": "string","creditorDivisionId": "3f2b6c1e-8a4d-4b7f-9c2e-5d1a0b9e7f31","debtor": {"type": "Company","name": "Pacific Trading LLC","contactPerson": "John Smith","companyRegistrationNumber": "47-1234567","address": "123 Market Street, Suite 400","zipCode": "94105","city": "San Francisco","state": "California","stateAlpha2": "CA","countryAlpha2": "US","country": "United States","email": "accounts@pacifictrading.com","phone": "+1 415 555 0123"},"collectionPartner": {"name": "Muster GmbH","officeEmail": "finance@example.com","officePhone": "+49 30 1234567","publicSite": "string","surveyCadenceMode": 0},"creditor": {"id": "3f2b6c1e-8a4d-4b7f-9c2e-5d1a0b9e7f31","companyName": "Muster GmbH","companyRegistrationNumber": "DE123456789","officeEmail": "finance@example.com","officePhone": "+49 30 1234567","address": "Friedrichstraße 68","city": "Berlin","zipCode": "10115","state": "string","country": "Germany","division": {"id": "3f2b6c1e-8a4d-4b7f-9c2e-5d1a0b9e7f31","name": "Muster GmbH"}},"bankAccount": {"id": 3,"label": "string","scheme": "string","currencyCode": "EUR","bankCountryCode": "DE","accountHolderName": "Muster GmbH","iban": "string","bic": "string","accountNumber": "string","localIdentifier": "string","localIdentifierType": "string","bankName": "Muster GmbH","bankAddress": "Friedrichstraße 68","bankCity": "Berlin","bankZipCode": "10115","bankState": "string"},"blendedAgeUpliftPoints": 1.5,"preLegalSuccessFee": 2500,"solutionUrl": "https://app.debitura.com/…","signingHandoff": {"combinedSigningUrl": "https://app.debitura.com/…"},"exclusivePeriodEndDate": "2026-10-01T14:05:00Z","disputeStatus": "string","validation": {"needsInfo": true},"assignedUser": {"email": "finance@example.com","name": "Muster GmbH"},"allocationOutstanding": {"principal": 1.5,"interest": 1.5,"reminderFees": 2500,"collectionFees": 2500}}
Fetch case by creditor reference
/cases/by-creditor-reference/{creditorReference}Returns case details for the provided creditor reference. The creditor reference is your own unique identifier for the case, as provided when the case was created.
Path parameters
creditorReferencestringRequired
Returns
200 Case found
iduuiddateCreateddatetimedateUpdateddatetimenullablereferencestringnullablecreditorReferencestringnullablecreditorCommentsstringnullableclaimDescriptionstringnullablegrossAmountnumberremaindernumberinterestFeesnumberreminderFeesnumbercollectionFeesnumbertotalAddedFeesnumbercurrencystringnullableisTestCasebooleanlifecyclestringnullabledueDatedatetimedatedatetimedateFinisheddatetimenullabledateCollectionStarteddatetimenullablecloseCodestringnullablecurrentEngagementPhasestringnullableThe current phase of the case's engagement: "Pre-legal", "Legal", or "Enforcement". A different axis from Lifecycle/CloseCode — an Active case can be in any of the three phases.
Null means "no active engagement" (e.g. lead / quoting / pre-contract-signing / unassigned, or a data-consistency gap) — this is a distinct third state, NOT a synonym for Pre-legal. Most cases legitimately read Pre-legal; phase only leaves Pre-legal on legal/enforcement quote flows.
Not guaranteed to be monotonic: an admin correction can move phase backwards (e.g. Legal back to Pre-legal).
Persists after case closure — reflects the case's last-known engagement phase, not the current Lifecycle. Note: this is a different field from a lead quote's own offered phase (the phase a partner's quote proposes to work the case at, if this case ever went through a quote flow) — this field is the case-level phase of its actual engagement, not a quote's terms.
claimTypestringnullableThe type of claim for this case (e.g. "Unpaid Invoice", "Loan Repayment", "Breach of Contract"). Null if not set.
creditorDivisionIduuidnullabledebtorobjectV1 Debtor DTO for external partner APIs. The debtor is the party that owes the debt.
collectionPartnerobjectV1 Collection Partner DTO for external partner APIs
creditorobjectCreditor (client) information for external partner APIs. Represents the party that the debtor owes money to.
bankAccountobjectBank account information for partner API. Full details provided as partners need this to:
- Provide payment instructions to debtors (when debtor pays client directly)
- Execute payouts to clients (when partner receives payment and pays out remainder)
blendedAgeUpliftPointsnumbernullableMULTI-INVOICE AGE BUCKET PRICING Calculated blended age uplift percentage points (0-20) for multi-invoice cases. Shows the additional fee percentage added due to invoice age. Formula: ((A12-A24)×10 + A24×20) / Total Principal Null for single-invoice cases (age uplift is calculated from due date instead).
preLegalSuccessFeenumbernullablePRE-LEGAL SUCCESS FEE The total pre-legal success fee percentage for this case. Includes base fee + age-based uplift (blended or single-invoice). Null if pricing has not been calculated yet or if case is not in pre-legal phase. Example: 20.5 represents 20.5% success fee.
solutionUrlstringnullableDeprecatedWhen the case is created with allowPendingContracts=true and required contracts are unsigned, this URL points to the signing page. Null when contracts are already signed or not applicable.
signingHandoffobjectPartner-facing handoff metadata for a creditor's pending signing chain. Returned on POST /cases responses (422 with pending-signing errors, or 200 with AllowPendingContracts=true when signings remain).
Designed as an envelope so future fields (expiration, suggested email copy, etc.) can be added without polluting the parent DTO.
exclusivePeriodEndDatedatetimenullableThe date the exclusive collection period ends (or ended). Null if no collection period has been created for this case (e.g. custom-terms cases). Use GET /cases/{id}/exclusive-period for the full chain including extensions.
disputeStatusstringnullableWhether the claim is disputed by the debtor. One of: "Yes, the claim is disputed", "No, the claim is not disputed", or "Don't Know". Null when the dispute status has not been set on the case.
validationobjectStable v1 validation summary used by ordinary and list mappings.
assignedUserobjectRepresents the creditor team member assigned to a case.
allocationOutstandingobjectOutstanding amount per bucket on the case: each bucket's total minus the payments allocated to it.
Errors
400 | Creditor reference missing or empty |
404 | No case found with this creditor reference |
See Error handling.
curl https://customer-api.debitura.com/cases/by-creditor-reference/INV-2026-0042 \-H "XApiKey: $DEBITURA_API_KEY"
{"id": "3f2b6c1e-8a4d-4b7f-9c2e-5d1a0b9e7f31","dateCreated": "2026-10-01T14:05:00Z","dateUpdated": "2026-10-01T14:05:00Z","reference": "INV-2026-0042","creditorReference": "INV-2026-0042","creditorComments": "Payment plan agreed with the debtor.","claimDescription": "string","grossAmount": 2500,"remainder": 1.5,"interestFees": 2500,"reminderFees": 2500,"collectionFees": 2500,"totalAddedFees": 2500,"currency": "EUR","isTestCase": true,"lifecycle": "string","dueDate": "2026-10-01T14:05:00Z","date": "2026-10-01T14:05:00Z","dateFinished": "2026-10-01T14:05:00Z","dateCollectionStarted": "2026-10-01T14:05:00Z","closeCode": "string","currentEngagementPhase": "string","claimType": "string","creditorDivisionId": "3f2b6c1e-8a4d-4b7f-9c2e-5d1a0b9e7f31","debtor": {"type": "Company","name": "Pacific Trading LLC","contactPerson": "John Smith","companyRegistrationNumber": "47-1234567","address": "123 Market Street, Suite 400","zipCode": "94105","city": "San Francisco","state": "California","stateAlpha2": "CA","countryAlpha2": "US","country": "United States","email": "accounts@pacifictrading.com","phone": "+1 415 555 0123"},"collectionPartner": {"name": "Muster GmbH","officeEmail": "finance@example.com","officePhone": "+49 30 1234567","publicSite": "string","surveyCadenceMode": 0},"creditor": {"id": "3f2b6c1e-8a4d-4b7f-9c2e-5d1a0b9e7f31","companyName": "Muster GmbH","companyRegistrationNumber": "DE123456789","officeEmail": "finance@example.com","officePhone": "+49 30 1234567","address": "Friedrichstraße 68","city": "Berlin","zipCode": "10115","state": "string","country": "Germany","division": {"id": "3f2b6c1e-8a4d-4b7f-9c2e-5d1a0b9e7f31","name": "Muster GmbH"}},"bankAccount": {"id": 3,"label": "string","scheme": "string","currencyCode": "EUR","bankCountryCode": "DE","accountHolderName": "Muster GmbH","iban": "string","bic": "string","accountNumber": "string","localIdentifier": "string","localIdentifierType": "string","bankName": "Muster GmbH","bankAddress": "Friedrichstraße 68","bankCity": "Berlin","bankZipCode": "10115","bankState": "string"},"blendedAgeUpliftPoints": 1.5,"preLegalSuccessFee": 2500,"solutionUrl": "https://app.debitura.com/…","signingHandoff": {"combinedSigningUrl": "https://app.debitura.com/…"},"exclusivePeriodEndDate": "2026-10-01T14:05:00Z","disputeStatus": "string","validation": {"needsInfo": true},"assignedUser": {"email": "finance@example.com","name": "Muster GmbH"},"allocationOutstanding": {"principal": 1.5,"interest": 1.5,"reminderFees": 2500,"collectionFees": 2500}}
Get contract signing status for a case
/cases/{id}/contract-statusReturns the signing status of the SDCA (Standard Debt Collection Agreement), PoA (Power of Attorney), and Jurisdiction Pricing Appendix for a case.
Use case: When a case is stuck in PendingContractSigning, use this endpoint to determine which contract is missing and get the signing URL.
Response:
- sdca: Always present — shows whether the debt collection agreement is signed
- poa: Present only if a collection partner is assigned — shows whether the power of attorney is signed for that partner
- NeedsPoaSigning: true when the case is blocked because a required PoA or Jurisdiction Pricing Appendix has not been signed
- Each contract item includes a solutionUrl if signing or re-signing is needed
- The solutionUrl is context-aware: referral partner bearer tokens get referral onboarding URLs, API keys get creditor app URLs
Path parameters
iduuidRequired
Returns
200 Contract status returned
sdcaobjectStatus of an individual contract (SDCA, PoA, or Pricing Appendix).
poaobjectStatus of an individual contract (SDCA, PoA, or Pricing Appendix).
pricingAppendixobjectStatus of an individual contract (SDCA, PoA, or Pricing Appendix).
collectionPartnerNamestringnullableName of the assigned collection partner, if any.
needsPoaSigningbooleanWhether the creditor needs to sign (or re-sign) a Power of Attorney. True when: POA is missing or stale, OR the debtor's country has an active jurisdiction pricing zone and the Jurisdiction Pricing Appendix (presented as POA) is missing or stale.
Errors
400 | ID missing, empty, or not a collection case |
404 | Case not found, deleted, or does not belong to your account |
See Error handling.
curl https://customer-api.debitura.com/cases/3f2b6c1e-8a4d-4b7f-9c2e-5d1a0b9e7f31/contract-status \-H "XApiKey: $DEBITURA_API_KEY"
{"sdca": {"signed": true,"requiresResigning": true,"solutionUrl": "https://app.debitura.com/…"},"poa": {"signed": true,"requiresResigning": true,"solutionUrl": "https://app.debitura.com/…"},"pricingAppendix": {"signed": true,"requiresResigning": true,"solutionUrl": "https://app.debitura.com/…"},"collectionPartnerName": "Muster GmbH","needsPoaSigning": true}
Fetch case by reference
/cases/case-reference/{caseReference}Returns case details for the provided Debitura case reference (example: Q8OAXF3W).
Path parameters
caseReferencestringRequired
Returns
200 Case found
iduuiddateCreateddatetimedateUpdateddatetimenullablereferencestringnullablecreditorReferencestringnullablecreditorCommentsstringnullableclaimDescriptionstringnullablegrossAmountnumberremaindernumberinterestFeesnumberreminderFeesnumbercollectionFeesnumbertotalAddedFeesnumbercurrencystringnullableisTestCasebooleanlifecyclestringnullabledueDatedatetimedatedatetimedateFinisheddatetimenullabledateCollectionStarteddatetimenullablecloseCodestringnullablecurrentEngagementPhasestringnullableThe current phase of the case's engagement: "Pre-legal", "Legal", or "Enforcement". A different axis from Lifecycle/CloseCode — an Active case can be in any of the three phases.
Null means "no active engagement" (e.g. lead / quoting / pre-contract-signing / unassigned, or a data-consistency gap) — this is a distinct third state, NOT a synonym for Pre-legal. Most cases legitimately read Pre-legal; phase only leaves Pre-legal on legal/enforcement quote flows.
Not guaranteed to be monotonic: an admin correction can move phase backwards (e.g. Legal back to Pre-legal).
Persists after case closure — reflects the case's last-known engagement phase, not the current Lifecycle. Note: this is a different field from a lead quote's own offered phase (the phase a partner's quote proposes to work the case at, if this case ever went through a quote flow) — this field is the case-level phase of its actual engagement, not a quote's terms.
claimTypestringnullableThe type of claim for this case (e.g. "Unpaid Invoice", "Loan Repayment", "Breach of Contract"). Null if not set.
creditorDivisionIduuidnullabledebtorobjectV1 Debtor DTO for external partner APIs. The debtor is the party that owes the debt.
collectionPartnerobjectV1 Collection Partner DTO for external partner APIs
creditorobjectCreditor (client) information for external partner APIs. Represents the party that the debtor owes money to.
bankAccountobjectBank account information for partner API. Full details provided as partners need this to:
- Provide payment instructions to debtors (when debtor pays client directly)
- Execute payouts to clients (when partner receives payment and pays out remainder)
blendedAgeUpliftPointsnumbernullableMULTI-INVOICE AGE BUCKET PRICING Calculated blended age uplift percentage points (0-20) for multi-invoice cases. Shows the additional fee percentage added due to invoice age. Formula: ((A12-A24)×10 + A24×20) / Total Principal Null for single-invoice cases (age uplift is calculated from due date instead).
preLegalSuccessFeenumbernullablePRE-LEGAL SUCCESS FEE The total pre-legal success fee percentage for this case. Includes base fee + age-based uplift (blended or single-invoice). Null if pricing has not been calculated yet or if case is not in pre-legal phase. Example: 20.5 represents 20.5% success fee.
solutionUrlstringnullableDeprecatedWhen the case is created with allowPendingContracts=true and required contracts are unsigned, this URL points to the signing page. Null when contracts are already signed or not applicable.
signingHandoffobjectPartner-facing handoff metadata for a creditor's pending signing chain. Returned on POST /cases responses (422 with pending-signing errors, or 200 with AllowPendingContracts=true when signings remain).
Designed as an envelope so future fields (expiration, suggested email copy, etc.) can be added without polluting the parent DTO.
exclusivePeriodEndDatedatetimenullableThe date the exclusive collection period ends (or ended). Null if no collection period has been created for this case (e.g. custom-terms cases). Use GET /cases/{id}/exclusive-period for the full chain including extensions.
disputeStatusstringnullableWhether the claim is disputed by the debtor. One of: "Yes, the claim is disputed", "No, the claim is not disputed", or "Don't Know". Null when the dispute status has not been set on the case.
validationobjectStable v1 validation summary used by ordinary and list mappings.
assignedUserobjectRepresents the creditor team member assigned to a case.
allocationOutstandingobjectOutstanding amount per bucket on the case: each bucket's total minus the payments allocated to it.
Errors
400 | Reference missing or reference is not a collection case |
404 | Reference not found or case does not belong to your account |
See Error handling.
curl https://customer-api.debitura.com/cases/case-reference/INV-2026-0042 \-H "XApiKey: $DEBITURA_API_KEY"
{"id": "3f2b6c1e-8a4d-4b7f-9c2e-5d1a0b9e7f31","dateCreated": "2026-10-01T14:05:00Z","dateUpdated": "2026-10-01T14:05:00Z","reference": "INV-2026-0042","creditorReference": "INV-2026-0042","creditorComments": "Payment plan agreed with the debtor.","claimDescription": "string","grossAmount": 2500,"remainder": 1.5,"interestFees": 2500,"reminderFees": 2500,"collectionFees": 2500,"totalAddedFees": 2500,"currency": "EUR","isTestCase": true,"lifecycle": "string","dueDate": "2026-10-01T14:05:00Z","date": "2026-10-01T14:05:00Z","dateFinished": "2026-10-01T14:05:00Z","dateCollectionStarted": "2026-10-01T14:05:00Z","closeCode": "string","currentEngagementPhase": "string","claimType": "string","creditorDivisionId": "3f2b6c1e-8a4d-4b7f-9c2e-5d1a0b9e7f31","debtor": {"type": "Company","name": "Pacific Trading LLC","contactPerson": "John Smith","companyRegistrationNumber": "47-1234567","address": "123 Market Street, Suite 400","zipCode": "94105","city": "San Francisco","state": "California","stateAlpha2": "CA","countryAlpha2": "US","country": "United States","email": "accounts@pacifictrading.com","phone": "+1 415 555 0123"},"collectionPartner": {"name": "Muster GmbH","officeEmail": "finance@example.com","officePhone": "+49 30 1234567","publicSite": "string","surveyCadenceMode": 0},"creditor": {"id": "3f2b6c1e-8a4d-4b7f-9c2e-5d1a0b9e7f31","companyName": "Muster GmbH","companyRegistrationNumber": "DE123456789","officeEmail": "finance@example.com","officePhone": "+49 30 1234567","address": "Friedrichstraße 68","city": "Berlin","zipCode": "10115","state": "string","country": "Germany","division": {"id": "3f2b6c1e-8a4d-4b7f-9c2e-5d1a0b9e7f31","name": "Muster GmbH"}},"bankAccount": {"id": 3,"label": "string","scheme": "string","currencyCode": "EUR","bankCountryCode": "DE","accountHolderName": "Muster GmbH","iban": "string","bic": "string","accountNumber": "string","localIdentifier": "string","localIdentifierType": "string","bankName": "Muster GmbH","bankAddress": "Friedrichstraße 68","bankCity": "Berlin","bankZipCode": "10115","bankState": "string"},"blendedAgeUpliftPoints": 1.5,"preLegalSuccessFee": 2500,"solutionUrl": "https://app.debitura.com/…","signingHandoff": {"combinedSigningUrl": "https://app.debitura.com/…"},"exclusivePeriodEndDate": "2026-10-01T14:05:00Z","disputeStatus": "string","validation": {"needsInfo": true},"assignedUser": {"email": "finance@example.com","name": "Muster GmbH"},"allocationOutstanding": {"principal": 1.5,"interest": 1.5,"reminderFees": 2500,"collectionFees": 2500}}
Fetch case timeline
/cases/{id}/timelineReturns the full event timeline for the case along with the current engagement phase.
Response shape:
items— chronological list of timeline eventscurrentEngagementPhase— current phase of the active engagement: "Pre-legal", "Legal", or "Enforcement". Null when no active engagement exists.
Path parameters
iduuidRequired
Returns
200 Timeline returned
itemsarray of objectsnullableRequiredChronological list of events on the case.
currentEngagementPhasestringnullableThe current engagement phase of the case, sourced from CaseEngagement.CurrentPhase. Possible values: "Pre-legal", "Legal", "Enforcement". Null when no active engagement exists (e.g. case not yet assigned to a partner).
curl https://customer-api.debitura.com/cases/3f2b6c1e-8a4d-4b7f-9c2e-5d1a0b9e7f31/timeline \-H "XApiKey: $DEBITURA_API_KEY"
{"items": [{"date": "2026-10-01T14:05:00Z","type": "string","title": "string","description": "string","relatedCases": [{"id": {},"reference": {}}],"actor": {"type": "string","name": "Muster GmbH"}}],"currentEngagementPhase": "string"}
Fetch case chats
/cases/{id}/chatsReturns all chat messages attached to the case.
Path parameters
iduuidRequired
Returns
200 Chats returned — a list of the objects below.
iduuiddateCreateddatetimedateUpdateddatetimenullableroleenumDeprecatedDeprecated: kept as a number and never removed, but not extended — read
roleLabelinstead. Sender role: 0 = Partner, 1 = Creditor, 2 = ManagedByPartner.One of012roleLabelstringnullableThe sender role, readable. Always one of "Partner", "Creditor" or "Managed by partner" — these values are stable.
messagestringnullableisSeenbooleanuserobject
curl https://customer-api.debitura.com/cases/3f2b6c1e-8a4d-4b7f-9c2e-5d1a0b9e7f31/chats \-H "XApiKey: $DEBITURA_API_KEY"
[{"id": "3f2b6c1e-8a4d-4b7f-9c2e-5d1a0b9e7f31","dateCreated": "2026-10-01T14:05:00Z","dateUpdated": "2026-10-01T14:05:00Z","role": 0,"roleLabel": "string","message": "Payment plan agreed with the debtor.","isSeen": true,"user": {"id": 3,"dateCreated": "2026-10-01T14:05:00Z","dateUpdated": "2026-10-01T14:05:00Z","firstName": "Anna","lastName": "Schmidt","email": "finance@example.com"}}]
Send a chat message
/cases/{id}/chatsPosts a new chat message on a case, visible to both you and the collection partner.
Message Details:
- The message is attributed to the team member identified by
userId - The collection partner will receive an email notification about the new message
- Messages appear in the case chat timeline in chronological order
Prerequisites:
- The case must exist and belong to your account
- The
userIdmust be a valid user ID fromGET /usersbelonging to your team
Use Case: Use this endpoint to communicate with collection partners about case progress, provide additional information, or respond to partner questions. Messages sent via this endpoint are equivalent to messages sent through the creditor portal chat.
Path parameters
iduuidRequired
Request body
messagestringRequiredThe chat message content to send.
Max 10000 charactersuserIduuidnullableDeprecatedID of the team member sending this message. Must be a valid user ID from GET /users belonging to your team. Deprecated: use UserEmail instead. At least one of UserId or UserEmail must be provided.
userEmailstringnullableEmail address of the team member sending this message. Must correspond to an active member of your team (same account as the API key). Preferred over UserId. At least one of UserEmail or UserId must be provided.
Email address
Returns
200 Chat message sent successfully
iduuiddateCreateddatetimedateUpdateddatetimenullableroleenumDeprecatedDeprecated: kept as a number and never removed, but not extended — read
roleLabelinstead. Sender role: 0 = Partner, 1 = Creditor, 2 = ManagedByPartner.One of012roleLabelstringnullableThe sender role, readable. Always one of "Partner", "Creditor" or "Managed by partner" — these values are stable.
messagestringnullableisSeenbooleanuserobject
Errors
400 | Validation error — missing fields, invalid userId, or invalid request body |
404 | Case not found |
500 | Internal server error |
See Error handling.
curl -X POST https://customer-api.debitura.com/cases/3f2b6c1e-8a4d-4b7f-9c2e-5d1a0b9e7f31/chats \-H "XApiKey: $DEBITURA_API_KEY" \-H "Content-Type: application/json" \-d '{"message": "Please provide the signed contract for this case.","userId": "3fa85f64-5717-4562-b3fc-2c963f66afa6","userEmail": "john.doe@example.com"}'
{"id": "3f2b6c1e-8a4d-4b7f-9c2e-5d1a0b9e7f31","dateCreated": "2026-10-01T14:05:00Z","dateUpdated": "2026-10-01T14:05:00Z","role": 0,"roleLabel": "string","message": "Payment plan agreed with the debtor.","isSeen": true,"user": {"id": 3,"dateCreated": "2026-10-01T14:05:00Z","dateUpdated": "2026-10-01T14:05:00Z","firstName": "Anna","lastName": "Schmidt","email": "finance@example.com"}}
Fetch case payments
/cases/{id}/paymentsReturns every payment recorded on the case.
Path parameters
iduuidRequired
Returns
200 Payments returned — a list of the objects below.
iduuiddateCreateddatetimedateUpdateddatetimenullabledatedatetimegrossAmountnumberrecipientstringnullableRequiredmethodstringnullableRequiredcurrencystringnullableRequiredinvoiceobjectRequired
curl https://customer-api.debitura.com/cases/3f2b6c1e-8a4d-4b7f-9c2e-5d1a0b9e7f31/payments \-H "XApiKey: $DEBITURA_API_KEY"
[{"id": "3f2b6c1e-8a4d-4b7f-9c2e-5d1a0b9e7f31","dateCreated": "2026-10-01T14:05:00Z","dateUpdated": "2026-10-01T14:05:00Z","date": "2026-10-01T14:05:00Z","grossAmount": 2500,"recipient": "string","method": "string","currency": "EUR","invoice": {"status": "string","reference": "INV-2026-0042","invoiceId": "3f2b6c1e-8a4d-4b7f-9c2e-5d1a0b9e7f31"}}]
Get case files
/cases/{id}/filesReturns all files associated with the specified case.
Path parameters
iduuidRequired
Returns
200 Files retrieved successfully — a list of the objects below.
iduuiddateCreateddatetimedateUpdateddatetimecaseIduuidentityTypestringnullableentityIduuidfileNamestringnullableurlstringnullabledescriptionstringnullabledocumentTypestringnullable
curl https://customer-api.debitura.com/cases/3f2b6c1e-8a4d-4b7f-9c2e-5d1a0b9e7f31/files \-H "XApiKey: $DEBITURA_API_KEY"
[{"id": "3f2b6c1e-8a4d-4b7f-9c2e-5d1a0b9e7f31","dateCreated": "2026-10-01T14:05:00Z","dateUpdated": "2026-10-01T14:05:00Z","caseId": "3f2b6c1e-8a4d-4b7f-9c2e-5d1a0b9e7f31","entityType": "string","entityId": "3f2b6c1e-8a4d-4b7f-9c2e-5d1a0b9e7f31","fileName": "Muster GmbH","url": "https://app.debitura.com/…","description": "string","documentType": "string"}]
Upload a file to a case
/cases/{id}/filesUploads a file and associates it with a case.
File requirements:
- Maximum file size: 25MB
- Allowed file types: PDF (.pdf), Excel (.xls, .xlsx), CSV (.csv), Text (.TXT), Images (.jpg, .jpeg, .png, .gif)
The file will be stored securely and associated with the specified case.
Document type (optional, case-insensitive). Omit it when you do not know it; the file is then stored as not specified.
- OriginalInvoice - Invoice or credit note
- AccountStatement - Statement of account
- Contract - Contract or agreement
- TermsAndConditions - Terms and conditions
- ProofOfDelivery - Order or proof of delivery
- DemandLetter - Reminder or demand letter
- Correspondence - Correspondence with the debtor
- PaymentProof - Proof of payment
- CourtDocument - Court or legal document
- IdentityDocument - Identity document
- Miscellaneous - Other
Still accepted for existing integrations: DebtorDocuments, CreditorDocuments, PartnerDocuments. Any other value is rejected with 400 and error InvalidDocumentType.
Path parameters
iduuidRequired
Request bodymultipart/form-data
DescriptionstringDocumentTypestringFilefileRequired
Returns
200 File uploaded successfully
iduuiddateCreateddatetimedateUpdateddatetimecaseIduuidentityTypestringnullableentityIduuidfileNamestringnullableurlstringnullabledescriptionstringnullabledocumentTypestringnullable
Errors
400 | Invalid request |
404 | Case not found |
413 | File too large |
415 | Unsupported file type |
500 | Server error |
See Error handling.
curl -X POST https://customer-api.debitura.com/cases/3f2b6c1e-8a4d-4b7f-9c2e-5d1a0b9e7f31/files \-H "XApiKey: $DEBITURA_API_KEY" \-F "file=@invoice.pdf"
{"id": "3f2b6c1e-8a4d-4b7f-9c2e-5d1a0b9e7f31","dateCreated": "2026-10-01T14:05:00Z","dateUpdated": "2026-10-01T14:05:00Z","caseId": "3f2b6c1e-8a4d-4b7f-9c2e-5d1a0b9e7f31","entityType": "string","entityId": "3f2b6c1e-8a4d-4b7f-9c2e-5d1a0b9e7f31","fileName": "Muster GmbH","url": "https://app.debitura.com/…","description": "string","documentType": "string"}
List quote requests for a case
/cases/{id}/quote-requestsReturns all quote requests for the specified case. Multiple quote requests can exist per case.
Path parameters
iduuidRequired
Returns
200 Quote requests returned
quoteRequestsarray of objectsnullableRequiredV1 Lead DTO for external customer APIs (summary view)
curl https://customer-api.debitura.com/cases/3f2b6c1e-8a4d-4b7f-9c2e-5d1a0b9e7f31/quote-requests \-H "XApiKey: $DEBITURA_API_KEY"
{"quoteRequests": [{"quoteRequestId": "3f2b6c1e-8a4d-4b7f-9c2e-5d1a0b9e7f31","caseId": "3f2b6c1e-8a4d-4b7f-9c2e-5d1a0b9e7f31","status": "string","leadFlowStatus": "string","quoteType": "string","maxQuotes": 3,"currentQuotesCount": 42,"outcome": "string","purpose": "string","dateCreated": "2026-10-01T14:05:00Z","dateQualified": "2026-10-01T14:05:00Z","leadsDoneOffered": "2026-10-01T14:05:00Z","dateReminderSent": "2026-10-01T14:05:00Z","dateReminderTwoSent": "2026-10-01T14:05:00Z","dateOutcomeSelected": "2026-10-01T14:05:00Z"}]}
Get quote request details
/cases/{id}/quote-requests/{quoteRequestId}Returns detailed information for a specific quote request including computed properties.
Path parameters
iduuidRequiredquoteRequestIduuidRequired
Returns
200 Quote request found
quoteRequestIduuidcaseIduuidstatusstringnullableRequiredleadFlowStatusstringnullableRequiredquoteTypestringnullableRequiredmaxQuotesintegercurrentQuotesCountintegerisMaxBidCountReachedbooleanoutcomestringnullablerequeststringnullableexistingFeesstringnullabledateCreateddatetimedateQualifieddatetimenullableleadsDoneOffereddatetimenullabledateReminderSentdatetimenullabledateReminderTwoSentdatetimenullabledateOutcomeSelecteddatetimenullable
curl https://customer-api.debitura.com/cases/3f2b6c1e-8a4d-4b7f-9c2e-5d1a0b9e7f31/quote-requests/3f2b6c1e-8a4d-4b7f-9c2e-5d1a0b9e7f31 \-H "XApiKey: $DEBITURA_API_KEY"
{"quoteRequestId": "3f2b6c1e-8a4d-4b7f-9c2e-5d1a0b9e7f31","caseId": "3f2b6c1e-8a4d-4b7f-9c2e-5d1a0b9e7f31","status": "string","leadFlowStatus": "string","quoteType": "string","maxQuotes": 3,"currentQuotesCount": 42,"isMaxBidCountReached": true,"outcome": "string","request": "string","existingFees": "string","dateCreated": "2026-10-01T14:05:00Z","dateQualified": "2026-10-01T14:05:00Z","leadsDoneOffered": "2026-10-01T14:05:00Z","dateReminderSent": "2026-10-01T14:05:00Z","dateReminderTwoSent": "2026-10-01T14:05:00Z","dateOutcomeSelected": "2026-10-01T14:05:00Z"}
List quotes for a quote request
/cases/{id}/quote-requests/{quoteRequestId}/quotesReturns all partner quotes received for the specified quote request.
Path parameters
iduuidRequiredquoteRequestIduuidRequired
Returns
200 Quotes returned
quotesarray of objectsnullableRequiredV1 Lead Quote DTO for external customer APIs (summary view)
curl https://customer-api.debitura.com/cases/3f2b6c1e-8a4d-4b7f-9c2e-5d1a0b9e7f31/quote-requests/3f2b6c1e-8a4d-4b7f-9c2e-5d1a0b9e7f31/quotes \-H "XApiKey: $DEBITURA_API_KEY"
{"quotes": [{"quoteId": "3f2b6c1e-8a4d-4b7f-9c2e-5d1a0b9e7f31","quoteRequestId": "3f2b6c1e-8a4d-4b7f-9c2e-5d1a0b9e7f31","partnerId": "3f2b6c1e-8a4d-4b7f-9c2e-5d1a0b9e7f31","partnerName": "Muster GmbH","status": "string","agreementType": "string","hourlyRate": 1.5,"hourlyEstimated": 1.5,"flatFeeEstimate": 2500,"successFee": 2500,"hybridEstimate": 1.5,"proposedSolution": "string","partnerWhyUsSection": "string","phase": "string","offerNature": "string","currency": "EUR","dateCreated": "2026-10-01T14:05:00Z"}]}
Get quote details
/cases/{id}/quote-requests/{quoteRequestId}/quotes/{quoteId}Returns complete details for a specific quote including full pricing breakdown.
Path parameters
iduuidRequiredquoteRequestIduuidRequiredquoteIduuidRequired
Returns
200 Quote found
quoteIduuidquoteRequestIduuidpartnerIduuidpartnerNamestringnullableRequiredstatusstringnullableRequiredagreementTypestringnullableRequiredpricingobjectRequiredNested pricing details for a lead quote
currencystringnullableRequiredproposedSolutionstringnullablefeeCommentsstringnullablepartnerWhyUsSectionstringnullablefullQuoteLinkstringnullabledateCreateddatetimedateUpdateddatetimenullable
Errors
400 | Invalid ID |
404 | Quote, quote request, or case not found |
500 | Internal server error |
See Error handling.
curl https://customer-api.debitura.com/cases/3f2b6c1e-8a4d-4b7f-9c2e-5d1a0b9e7f31/quote-requests/3f2b6c1e-8a4d-4b7f-9c2e-5d1a0b9e7f31/quotes/3f2b6c1e-8a4d-4b7f-9c2e-5d1a0b9e7f31 \-H "XApiKey: $DEBITURA_API_KEY"
{"quoteId": "3f2b6c1e-8a4d-4b7f-9c2e-5d1a0b9e7f31","quoteRequestId": "3f2b6c1e-8a4d-4b7f-9c2e-5d1a0b9e7f31","partnerId": "3f2b6c1e-8a4d-4b7f-9c2e-5d1a0b9e7f31","partnerName": "Muster GmbH","status": "string","agreementType": "string","pricing": {"hourlyRate": 1.5,"hourlyEstimated": 1.5,"flatFeeEstimate": 2500,"successFeeFee": 2500,"hybridEstimate": 1.5,"costProcessMisc": 1.5},"currency": "EUR","proposedSolution": "string","feeComments": "Payment plan agreed with the debtor.","partnerWhyUsSection": "string","fullQuoteLink": "https://app.debitura.com/…","dateCreated": "2026-10-01T14:05:00Z","dateUpdated": "2026-10-01T14:05:00Z"}
Get exclusive collection period chain
/cases/{id}/exclusive-periodReturns the full exclusive collection period chain for a case, including the initial period and any extensions triggered by debtor actions (promise to pay, payment agreement, or actual payment).
Path parameters
iduuidRequired
Returns
200 Chain returned
engagementStartDatedatetimeStart date of the initial exclusivity engagement.
currentEndDatedatetimeCurrent end date of the exclusive period (after any extensions).
daysRemainingintegerDays remaining until the period ends. Negative when the period has naturally expired. Zero when the engagement was terminated early (partner change or withdrawal), regardless of the original end date.
statusstringnullableCurrent status of the exclusive period: Active, Expired, or Terminated. Active — partner has exclusive rights. Expired — period ended naturally (time elapsed or case resolved). Terminated — period was ended early (partner change, withdrawal, etc.).
extensionsarray of objectsnullableEach extension event that occurred within the current engagement, in chronological order. Empty for cases that have never had an extension triggered.
Errors
400 | ID missing or empty |
404 | Case not found, does not belong to your account, or no collection period exists |
See Error handling.
curl https://customer-api.debitura.com/cases/3f2b6c1e-8a4d-4b7f-9c2e-5d1a0b9e7f31/exclusive-period \-H "XApiKey: $DEBITURA_API_KEY"
{"engagementStartDate": "2026-10-01T14:05:00Z","currentEndDate": "2026-10-01T14:05:00Z","daysRemaining": 3,"status": "string","extensions": [{"type": "string","eventDate": "2026-10-01T14:05:00Z","newEndDate": "2026-10-01T14:05:00Z"}]}
Get full validation detail for a case
/cases/{id}/validationReturns the full creditor-facing validation status for a case, including the resolution area and description for each outstanding item.
When to call: Check validation.needsInfo on GET /cases/{id}. If true, call this endpoint to retrieve the item-level breakdown of what the creditor must supply.
Safety: Only creditor-facing resolution areas are returned. Internal areas (InternalReview, AdminReview) and sensitive fields (Rationale, Confidence) are never exposed.
Path parameters
iduuidRequired
Returns
200 Full validation status returned
needsInfobooleancreditorRespondedAtdatetimenullableitemsarray of objectsnullable
Errors
400 | ID missing, empty, or not a collection case |
404 | Case not found or does not belong to your account |
See Error handling.
curl https://customer-api.debitura.com/cases/3f2b6c1e-8a4d-4b7f-9c2e-5d1a0b9e7f31/validation \-H "XApiKey: $DEBITURA_API_KEY"
{"needsInfo": true,"creditorRespondedAt": "2026-10-01T14:05:00Z","items": [{"resolutionArea": "string","description": "string"}]}
List tasks for a case
/cases/{id}/tasksReturns every open task (action-item) attached to this specific case. Same data as GET /tasks, scoped to one case — use this when you're already working a specific case and want just its outstanding tasks.
Note: account-level tasks that aren't tied to a single case (e.g. SignContract, AssignBankAccount — these block your whole account, not one case) never appear here; call GET /tasks to see those. The same goes for lead-scoped tasks (e.g. SelectQuoteWinner), which are attached to a lead rather than a case.
Note: the quote-review tasks (IncumbentLegalQuotePending, ReviewQuotes) DO appear here — they are attached to the case — but they are decided on the lead behind it, so they normally carry a leadId and their solutionUrl points at that lead rather than this case. On the rare row with no lead recorded, leadId is null and solutionUrl falls back to this case's page.
Filtering:
- status (default: Open) — Open or Solved
- type (repeatable, e.g. ?type=ReplyToChat) — restrict to specific task types
No pagination — a single case has few tasks.
Path parameters
iduuidRequired
Query parameters
statusstringtypearray of strings
Returns
200 Tasks returned — a list of the objects below.
iduuidThe task's unique ID.
typestringnullableStable string code for the task type (e.g.
"ReplyToChat"). This is the public, additive-safe contract — it does NOT track the internal integer enum used in storage.typeLabelstringnullableHuman-readable label for Type (e.g. "Reply to chat").
titlestringnullableShort task title, as shown in the Creditor app.
descriptionstringnullableOptional longer description of what the task requires.
statusstringnullableEither
"Open"or"Solved".caseIduuidnullableThe case (collection case / invoice) this task belongs to, when applicable. Null for account-level tasks not tied to a single case (e.g. SignContract, AssignBankAccount).
caseReferencestringnullableYour reference for CaseId, if any.
leadIduuidnullableThe lead this task belongs to, if any. Populated for lead-scoped tasks, and for the quote-review tasks (
IncumbentLegalQuotePending,ReviewQuotes) — which are attached to a case but decided on the lead, so those carry bothcaseIdandleadId, and theirsolutionUrlpoints at the lead. Null for every other task type. On the rare quote-review row with no lead recorded,leadIdis null andsolutionUrlfalls back to the case page — the two never disagree.deadlinedatetimenullableWhen this task is due, if a deadline is set.
dateCreateddatetimeWhen the task was created.
dateSolveddatetimenullableWhen the task was resolved, if it has been.
solutionUrlstringnullableAbsolute URL — identical to the one the Creditor app itself links to — where a human can resolve this task. Always present, regardless of whether Action is populated.
actionobjectA machine-readable hint pointing at the existing API call that resolves a task, e.g.
{ "method": "POST", "path": "/cases/{caseId}/chats" }for a chat-driven task.Path uses the same
{param}placeholder style as this API's own documented routes — substitute in the real IDs before calling.
curl https://customer-api.debitura.com/cases/3f2b6c1e-8a4d-4b7f-9c2e-5d1a0b9e7f31/tasks \-H "XApiKey: $DEBITURA_API_KEY"
[{"id": "3f2b6c1e-8a4d-4b7f-9c2e-5d1a0b9e7f31","type": "string","typeLabel": "string","title": "string","description": "string","status": "string","caseId": "3f2b6c1e-8a4d-4b7f-9c2e-5d1a0b9e7f31","caseReference": "INV-2026-0042","leadId": "3f2b6c1e-8a4d-4b7f-9c2e-5d1a0b9e7f31","deadline": "2026-10-01T14:05:00Z","dateCreated": "2026-10-01T14:05:00Z","dateSolved": "2026-10-01T14:05:00Z","solutionUrl": "https://app.debitura.com/…","action": {"method": "string","path": "string"}}]