Consent & contact eligibility
Combine destination, purpose-scoped consent, local time, frequency, restrictions, debt state, representation, and current facts into one expiring decision for one proposed contact.
Consent is an input to contact eligibility, not its synonym. An active grant cannot override a bankruptcy restriction, cease instruction, inconvenient-time policy, wrong-party risk, or resolved debt.
Decision inputs
customer + contact point + channel + purpose + direction + proposed time
├─ destination verification and deliverability
├─ typed consent grants, texting permission, and revocation
├─ customer local time and convenient-time facts
├─ contact history and debt-scoped budgets
├─ cease, representation, bankruptcy, dispute, fraud restrictions
├─ current debt, case, payment, and promise state
└─ applicable tenant policy and rule versions
↓
expiring eligibility decision
Evaluate Harbor voice contact
curl -X POST "$BASE/v1/servicing/compliance/contact-eligibility" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: hbr-contact-check-2027-05-01T101158" \
-d '{
"caseId": "case_HBR_COL_51",
"customerId": "412",
"loanId": "7204",
"channel": "voice",
"purpose": "collections",
"contactPointId": "512",
"requestedAt": "2027-05-01T10:11:58-07:00"
}'
{
"decisionId": "dec_CONTACT_81",
"outcome": "allowed",
"localTime": "2027-05-01T10:11:58-07:00",
"contactBudget": {
"attemptsRemaining": 3,
"windowEndsAt": "2027-05-05T23:59:59-07:00"
},
"blockingRestrictions": []
}
Use GET /v1/servicing/compliance/decisions/dec_CONTACT_81 for rule, fact, provenance, freshness, and expiry detail.
Time-zone resolution
The worker’s clock is irrelevant. Policy resolves the customer’s applicable local time from approved facts, with explicit behavior for conflicting or unknown zones and daylight-saving transitions. Missing a required zone fails closed or routes to a narrower safe channel; it never assumes the operator’s time zone.
Revocation propagation
An SMS STOP, voice request, portal change, or other verified opt-out closes the relevant consent interval and may create a broader restriction review. Cached eligibility is invalidated immediately. Queued work rechecks before execution.
Recording and artificial voice
Recording consent, call permission, and artificial/prerecorded-voice policy are separate controls. Passing one does not pass the others. The configured journey records capture method, evidence, terms version, effective time, and applicable destination/purpose.
Decision is not send
Eligibility evaluation supports planning. The interaction endpoint owns execution and re-evaluates volatile facts immediately before provider invocation. A caller cannot attach an earlier decision ID and force a send after it becomes stale.