Member communications (optional)

Casap handles communication with the member: acknowledgement, document requests, the decision letter, everything Regulation E and Regulation Z require, in your branding and on the clocks the rules set. Nothing here is needed for that.

Two optional entries exist for an organization that would rather send from its own channels; Casap enables them on request, and until then neither appears.

  • REQUIRED_ACTION_TYPE_COLLECT_CUSTOMER_INFORMATION, details in collectCustomerInformation: ask the member for a document or an answer, and pass it back to Casap.
  • REQUIRED_ACTION_TYPE_NOTIFY_CUSTOMER, details in notifyCustomer: tell the member something happened, in your own words and language.

Collect information

  • transactionUuid (string) - The transaction the request is about.
  • requestedItemKey (string) - The kind of item, for example PoliceReport. Absent when the request is free text.
  • customRequestedItems (array of string) - Free text items. Absent when requestedItemKey is set.
  • deadlineTimestamp (string) - Unix seconds. When the answer is due.

It stays in the list until the member has answered.

Notify

  • key (string) - Which event to tell the member about. See the table below.
  • transactionUuid (string) - Absent when the event concerns the dispute as a whole.
  • amount (object) - Present when the event concerns an amount.
  • effectiveTimestamp (string) - Unix seconds. When the event took effect.
  • finalDecision (object) - On the three FINAL_DECISION_* keys: reasonKey, an optional subReasonKey, provisionalCreditIssued, and provisionalCreditReversal with timing and amount when a credit is being taken back.
  • informationRequest (object) - On MORE_INFO_REQUESTED: requestedItemKey or requestedItems, and deadlineTimestamp.

Every value is a key, never a sentence, so you write the member's message in whichever languages you support. The two exceptions are otherReason and customMessage on a decision, which arrive as an agent typed them. Casap shares the full set of reasonKey and subReasonKey values with you when it enables this entry.

key Names a transaction
NOTIFICATION_KEY_DISPUTE_RECEIVED No
NOTIFICATION_KEY_INVESTIGATION_STARTED No
NOTIFICATION_KEY_MORE_INFO_REQUESTED Yes
NOTIFICATION_KEY_PROVISIONAL_CREDIT_ISSUED Yes
NOTIFICATION_KEY_MERCHANT_CONTACTED Usually
NOTIFICATION_KEY_CHARGEBACK_FILED Yes
NOTIFICATION_KEY_FINAL_DECISION_APPROVED Yes
NOTIFICATION_KEY_FINAL_DECISION_DENIED Yes
NOTIFICATION_KEY_FINAL_DECISION_CANCELLED Yes

Notifications are sent once

Every other entry stays in requiredActions until the work is done, so a missed message is corrected by the next one. A notifyCustomer entry appears only in the message for the change that caused it and is gone from the next, whether or not you acted. Three things follow:

  • A lost message takes its notification with it.
  • Two messages arriving out of order can put member communications in the wrong sequence.
  • Store the entry before you acknowledge the delivery, and send the member's message as a separate step you can retry.

To detect a missed notification, tell Casap before you go live.

{
  "type": "REQUIRED_ACTION_TYPE_NOTIFY_CUSTOMER",
  "notifyCustomer": {
    "key": "NOTIFICATION_KEY_FINAL_DECISION_DENIED",
    "transactionUuid": "txn-1",
    "effectiveTimestamp": "1759190400",
    "finalDecision": {
      "reasonKey": "merchantIssues",
      "subReasonKey": "merchandiseDelivered",
      "provisionalCreditIssued": true,
      "provisionalCreditReversal": {
        "timing": "REVERSAL_TIMING_IMMEDIATE",
        "reversalTimestamp": "1785585600",
        "amount": { "amountInCents": 4500, "currency": "USD" }
      }
    }
  }
}