Skip to main content

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:

  1. amountToRecover plus a single dueDate
  2. amountToRecover plus the cumulative amountToRecoverOver6/12/24Months buckets
  3. claimLines[] — 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" }
]
  • amount is 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 amountToRecover and all three age buckets from the lines, so send claimLines instead of amountToRecover and the amountToRecoverOver6/12/24Months fields. Sending both is a 400.
  • Use claimLines whenever 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.
  • claimLines is a pricing input only. It is not stored and is not shown to the collecting partner — include a per-invoice breakdown in comments if 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 case date must not be later than the earliest claimLines due date, or the request is rejected with a 400 on date. Send an explicit dueDate if 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

Case created