Skip to main content

Workflow: Communication Center

Manage all case-related communications between creditors, debtors, and collection partners through the Customer API. This guide covers messaging, document management, and communication tracking.

Overview

The Communication Center provides a unified interface for managing all communications related to your debt collection cases. Track messages, share documents, maintain conversation history, and ensure all parties stay informed throughout the collection process.

Communication Types

Email Communications

Sending emails:

  • Payment reminders to debtors
  • Case updates to creditors
  • Document requests
  • Settlement offers
  • Status notifications

Receiving emails:

  • Debtor responses
  • Payment confirmations
  • Dispute notifications
  • Document submissions

SMS Communications

Use cases:

  • Quick payment reminders
  • Important deadline alerts
  • Payment confirmation
  • Appointment reminders

System Messages

Automated notifications:

  • Status change alerts
  • Payment received confirmations
  • Document upload notifications
  • Deadline approaching warnings

Sending Messages

Send Email

Send an email related to a case:

Endpoint: POST /api/cases/{caseId}/messages

POST /api/cases/550e8400-e29b-41d4-a716-446655440000/messages
Authorization: Bearer your-access-token
Content-Type: application/json

{
"messageType": "email",
"to": "debtor@example.com",
"subject": "Payment Reminder - Invoice INV-2024-001",
"body": "Dear customer,\n\nThis is a reminder...",
"cc": ["creditor@example.com"],
"priority": "normal",
"templateId": "payment-reminder-v1"
}

Response:

{
"messageId": "msg_123",
"caseId": "550e8400-e29b-41d4-a716-446655440000",
"messageType": "email",
"to": ["debtor@example.com"],
"subject": "Payment Reminder - Invoice INV-2024-001",
"status": "sent",
"sentAt": "2024-01-10T14:30:00Z",
"sentBy": "Collection Partner A"
}

Send SMS

Send SMS notification:

POST /api/cases/550e8400-e29b-41d4-a716-446655440000/messages
Authorization: Bearer your-access-token
Content-Type: application/json

{
"messageType": "sms",
"to": "+4512345678",
"body": "Payment reminder: Invoice INV-2024-001 due. Please contact us.",
"priority": "high"
}

Message Templates

Use predefined templates for consistency:

Endpoint: GET /api/message-templates

{
"templates": [
{
"templateId": "payment-reminder-v1",
"name": "Standard Payment Reminder",
"type": "email",
"subject": "Payment Reminder - Invoice {{invoiceNumber}}",
"variables": ["invoiceNumber", "amount", "dueDate", "debtorName"]
},
{
"templateId": "first-notice",
"name": "First Collection Notice",
"type": "email",
"subject": "Collection Notice - {{caseNumber}}",
"variables": ["caseNumber", "amount", "deadline"]
}
]
}

Using templates:

{
"templateId": "payment-reminder-v1",
"variables": {
"invoiceNumber": "INV-2024-001",
"amount": "15,000 DKK",
"dueDate": "January 15, 2024",
"debtorName": "Example Company ApS"
}
}

Receiving Messages

Retrieve Messages

Get all messages for a case:

Endpoint: GET /api/cases/{caseId}/messages

GET /api/cases/550e8400-e29b-41d4-a716-446655440000/messages
Authorization: Bearer your-access-token

Response:

{
"messages": [
{
"messageId": "msg_123",
"messageType": "email",
"direction": "outbound",
"from": "noreply@debitura.com",
"to": ["debtor@example.com"],
"subject": "Payment Reminder",
"sentAt": "2024-01-10T14:30:00Z",
"status": "delivered"
},
{
"messageId": "msg_124",
"messageType": "email",
"direction": "inbound",
"from": "debtor@example.com",
"to": ["support@debitura.com"],
"subject": "Re: Payment Reminder",
"receivedAt": "2024-01-11T09:00:00Z",
"hasAttachments": true
}
],
"totalCount": 2
}

Filter Messages

Filter messages by various criteria:

GET /api/cases/{caseId}/messages?type=email&direction=inbound&dateFrom=2024-01-01

Message Webhooks

Receive notifications for new messages:

{
"event": "message.received",
"messageId": "msg_124",
"caseId": "550e8400-e29b-41d4-a716-446655440000",
"caseNumber": "DEB-2024-12345",
"messageType": "email",
"from": "debtor@example.com",
"subject": "Re: Payment Reminder",
"hasAttachments": true,
"timestamp": "2024-01-11T09:00:00Z"
}

Document Management

Upload Documents

Attach documents to cases:

Endpoint: POST /api/cases/{caseId}/documents

POST /api/cases/550e8400-e29b-41d4-a716-446655440000/documents
Authorization: Bearer your-access-token
Content-Type: multipart/form-data

file=@invoice.pdf
documentType=invoice
description=Original invoice INV-2024-001

Response:

{
"documentId": "doc_456",
"caseId": "550e8400-e29b-41d4-a716-446655440000",
"fileName": "invoice.pdf",
"documentType": "invoice",
"size": 245760,
"uploadedAt": "2024-01-02T10:35:00Z",
"uploadedBy": "API User"
}

Document Types

Supported document categories:

  • invoice - Original invoices
  • contract - Contracts and agreements
  • correspondence - Email and letter correspondence
  • payment_proof - Payment confirmations
  • settlement - Settlement agreements
  • legal - Legal documents
  • other - Other documents

Download Documents

Endpoint: GET /api/documents/{documentId}/download

GET /api/documents/doc_456/download
Authorization: Bearer your-access-token

List Case Documents

Endpoint: GET /api/cases/{caseId}/documents

{
"documents": [
{
"documentId": "doc_456",
"fileName": "invoice.pdf",
"documentType": "invoice",
"size": 245760,
"uploadedAt": "2024-01-02T10:35:00Z"
},
{
"documentId": "doc_457",
"fileName": "payment_confirmation.pdf",
"documentType": "payment_proof",
"size": 125440,
"uploadedAt": "2024-01-25T15:20:00Z"
}
]
}

Conversation Threads

Thread Management

Messages are organized into conversation threads:

Endpoint: GET /api/cases/{caseId}/threads

{
"threads": [
{
"threadId": "thread_001",
"subject": "Payment Reminder Discussion",
"participants": [
"debtor@example.com",
"partner@debitura.com"
],
"messageCount": 5,
"lastMessageAt": "2024-01-15T10:00:00Z",
"status": "active"
}
]
}

View Thread Messages

Endpoint: GET /api/threads/{threadId}/messages

{
"threadId": "thread_001",
"messages": [
{
"messageId": "msg_123",
"from": "partner@debitura.com",
"body": "Initial payment reminder sent",
"timestamp": "2024-01-10T14:30:00Z"
},
{
"messageId": "msg_124",
"from": "debtor@example.com",
"body": "Request for payment plan",
"timestamp": "2024-01-11T09:00:00Z"
}
]
}

Communication Tracking

Message Status Tracking

Track delivery and read status:

Email statuses:

  • queued - Message queued for sending
  • sent - Message sent successfully
  • delivered - Message delivered to recipient
  • opened - Message opened by recipient
  • clicked - Link in message clicked
  • failed - Delivery failed
  • bounced - Email bounced

SMS statuses:

  • queued - SMS queued for sending
  • sent - SMS sent to carrier
  • delivered - SMS delivered to recipient
  • failed - Delivery failed

Delivery Reports

Get message delivery report:

Endpoint: GET /api/messages/{messageId}/delivery-report

{
"messageId": "msg_123",
"status": "delivered",
"events": [
{
"event": "queued",
"timestamp": "2024-01-10T14:30:00Z"
},
{
"event": "sent",
"timestamp": "2024-01-10T14:30:05Z"
},
{
"event": "delivered",
"timestamp": "2024-01-10T14:30:12Z"
},
{
"event": "opened",
"timestamp": "2024-01-10T15:45:00Z"
}
]
}

Communication Preferences

Set Debtor Preferences

Configure debtor communication preferences:

Endpoint: PUT /api/cases/{caseId}/communication-preferences

{
"preferredChannel": "email",
"emailAddress": "debtor@example.com",
"phoneNumber": "+4512345678",
"allowSms": true,
"allowEmail": true,
"preferredLanguage": "da",
"doNotContact": false,
"contactHours": {
"start": "09:00",
"end": "17:00",
"timezone": "Europe/Copenhagen"
}
}

Opt-Out Management

Handle communication opt-outs:

{
"doNotContact": true,
"reason": "Debtor requested no contact",
"effectiveDate": "2024-01-15",
"exceptions": ["legal_notices", "payment_confirmations"]
}

Notes and Comments

Add Internal Notes

Add notes visible only to creditor and partners:

Endpoint: POST /api/cases/{caseId}/notes

{
"note": "Debtor called requesting payment plan. Discussed 6-month installment option.",
"visibility": "internal",
"category": "call_log",
"tags": ["payment_plan", "phone_call"]
}

Retrieve Notes

Endpoint: GET /api/cases/{caseId}/notes

{
"notes": [
{
"noteId": "note_001",
"note": "Debtor called requesting payment plan.",
"createdAt": "2024-01-15T10:30:00Z",
"createdBy": "John Doe",
"category": "call_log"
}
]
}

Best Practices

Communication Strategy

  1. Consistent messaging: Use templates for standardized communication
  2. Track all interactions: Document every communication
  3. Respect preferences: Honor debtor communication preferences
  4. Timely responses: Respond to debtor messages promptly
  5. Professional tone: Maintain professional communication standards

Document Management

  1. Organize documents: Use proper document types
  2. Secure storage: Ensure document security and compliance
  3. Version control: Track document versions
  4. Retention policies: Follow data retention requirements
  5. Access control: Limit document access appropriately

Compliance

  1. GDPR compliance: Ensure data protection compliance
  2. Fair debt collection: Follow collection regulations
  3. Communication hours: Respect contact time restrictions
  4. Opt-out handling: Honor do-not-contact requests
  5. Record keeping: Maintain compliance documentation

Integration Patterns

Email Integration

Connect with email systems:

  • SMTP/IMAP integration
  • Exchange/Office 365 sync
  • Gmail API integration
  • Email archiving

Document Management Systems

Integrate with DMS platforms:

  • SharePoint integration
  • Google Drive sync
  • Dropbox Business
  • Box integration

CRM Integration

Sync communication with CRM:

  • Salesforce integration
  • Microsoft Dynamics
  • HubSpot integration
  • Custom CRM systems

Code Examples

Node.js - Send Message

// Send email message
async function sendMessage(caseId, messageData) {
const response = await fetch(
`https://api.debitura.com/api/cases/${caseId}/messages`,
{
method: 'POST',
headers: {
'Authorization': `Bearer ${accessToken}`,
'Content-Type': 'application/json'
},
body: JSON.stringify(messageData)
}
);

return response.json();
}

C# - Upload Document

// Upload document to case
public async Task<DocumentResponse> UploadDocument(
string caseId,
Stream fileStream,
string fileName,
string documentType)
{
using var content = new MultipartFormDataContent();
content.Add(new StreamContent(fileStream), "file", fileName);
content.Add(new StringContent(documentType), "documentType");

var response = await _httpClient.PostAsync(
$"https://api.debitura.com/api/cases/{caseId}/documents",
content
);

return await response.Content.ReadFromJsonAsync<DocumentResponse>();
}

For secure communication handling, all messages and documents are encrypted in transit and at rest.