Skip to main content
PropertyValue
Dataset codeD16
Section codeS3 — Collections Cases
Endpoint path/exports/S3/D16
Cursor fieldupdated_at
Page size11000 (default 500)
AvailabilityAvailable (v1.2)
PaginationDirect (constant page size)
Each row is one collections case (deal) currently open or recently closed for a borrower. It includes the pipeline stage, communications pipeline, promise-to-pay (PTP) signals from both human agents and AI calls, and the do-not-contact flag.

Fields

FieldTypeDescriptionNotes
public_idstringCase identifier.Source: user_lender_detail_public_id. Renamed from case_public_id in v1.2. See the caveat below
deal_stage_idstringCurrent pipeline stage.
pipelinestringPipeline name.
comms_pipelinestringCommunications pipeline name.
amountnumberDeal amount.Minor units (fils/cents)
assigned_user_namestringAssigned agent display name.
dpd_due_datestringDPD calculation anchor (due date).DD/MM/YYYY — stored as-is, not ISO-8601. See the field-name note below
last_due_datestringLast due date observed.DD/MM/YYYY — stored as-is, not ISO-8601
ptp_date_humanstringPTP date set by a human agent (ISO-8601).
ptp_date_aistringPTP date set by an AI call (ISO-8601).
broken_ptp_date_humanstringWhen the human-set PTP was broken (ISO-8601).
broken_ptp_date_aistringWhen the AI-set PTP was broken (ISO-8601).
hasReachedRpcOrBeyondbooleantrue if at least one RPC (right-party contact) has happened.
do_not_contactbooleanDo-not-contact flag.
created_atstringRecord creation timestamp (ISO-8601).
updated_atstringLast-modified timestamp (ISO-8601).Cursor field
public_id on this dataset is the case/link identifier, not the deal document’s own id. It is sourced from user_lender_detail_public_id (the borrower-×-lender link). It was named case_public_id while D16 was unavailable; from v1.2 it follows the same convention as every other dataset and is exposed as public_id. See the Changelog.Because the value identifies the borrower-×-lender link rather than the deal row, do not assume it is unique per D16 row if a borrower can have more than one deal. If you need a guaranteed per-row key for upserts, deduplicate on public_id + another distinguishing field (e.g. created_at) or contact support before relying on it as a sole primary key.

Sample row

{
  "public_id": "7c1e9a02-5d38-4b6f-9012-a3e8c5d7b461",
  "deal_stage_id": "stage_negotiation",
  "pipeline": "Early Collections",
  "comms_pipeline": "Standard Outreach",
  "amount": 920000,
  "assigned_user_name": "Mariam Al-Shehri",
  "dpd_due_date": "01/05/2026",
  "last_due_date": "01/06/2026",
  "ptp_date_human": "2026-06-05T00:00:00.000Z",
  "ptp_date_ai": null,
  "broken_ptp_date_human": null,
  "broken_ptp_date_ai": null,
  "hasReachedRpcOrBeyond": true,
  "do_not_contact": false,
  "created_at": "2026-04-18T10:05:12.000Z",
  "updated_at": "2026-05-31T13:48:30.000Z"
}
Date formats differ by field. dpd_due_date and last_due_date are returned exactly as stored — DD/MM/YYYY strings (e.g. 01/06/2026), not ISO-8601. The PTP / broken-PTP fields and the system timestamps created_at / updated_at are ISO-8601. Parse them with separate format handling. See Date & time formats.
Known field-name issue on dpd_due_date. The export currently emits this field under the name dpd_due_date_timestamp, which does not match the source column (dpd_due_date). A service-side fix to correct the emitted key is pending. Until it ships, map the dpd_due_date_timestamp key in the response to dpd_due_date in your warehouse. The value is unaffected (DD/MM/YYYY).

Pagination characteristics

This dataset is direct — filtered to your tenant by lender_id on the collection itself, so each page returns a constant number of rows until the last page.

Use cases

  • Collections pipeline reporting and stage-funnel analysis.
  • PTP / broken-PTP tracking across human and AI channels.
  • DNC suppression upstream of marketing and outreach.

Need Help?

Our support team is available Monday-Friday, 9 AM - 6 PM GST. Reach out at support@cleargrid.co or visit our help center.