Create collection case
POST/cases
Creates 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)
- collectionPartnerId - Override automatic partner assignment with a specific collection partner
- skipDebituraVerification - Skip internal verification steps (advanced use)
- skipCreationEmails - Deprecated: accepted for backwards compatibility but ignored server-side. Creation emails are always suppressed in favour of the hourly CasesStarted digest
- 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
Request
Responses
- 200
- 400
- 422
- 500
Case created
Invalid request
Business rule violation
Server error