# Customer communication (https://docs.chargeflow.io/docs/merchants/automation/enrich-a-dispute/customer-communications)



Documenting your interactions with a customer before and during a dispute is one of the most effective ways to strengthen a chargeback response. Issuers want to see that the merchant communicated proactively, honored their SLA, and that the customer was aware of their purchase and its terms.

## Why it matters [#why-it-matters]

* **SLA proof**: Showing that your support team responded within your stated SLA demonstrates good faith and operational maturity.
* **Awareness**: A record of the customer asking questions about, or acknowledging, a purchase directly counters "I didn't authorize this" claims.
* **Refund offers**: Documenting that you offered a refund or resolution before the dispute was filed can lead issuers to rule in your favor.

<Callout type="idea" title="Tip">
  Submit customer communication records early, ideally as soon as you receive the `dispute.created`
  event. The sooner Chargeflow has this data, the more effectively it can weave it into the dispute
  narrative.
</Callout>

## Endpoint [#endpoint]

```
POST https://api.chargeflow.io/public/2025-04-01/customer-communication
```

This endpoint accepts a JSON body (not multipart). It creates a structured customer communication record in Chargeflow that can be linked to one or more disputes.

## Request fields [#request-fields]

| Field        | Type             | Required       | Description                                                      |
| ------------ | ---------------- | -------------- | ---------------------------------------------------------------- |
| `source_id`  | string           | Yes            | Your internal ticket or conversation ID                          |
| `disputes`   | array of strings | Yes            | One or more Chargeflow dispute IDs to link this communication to |
| `messages`   | array of objects | Yes            | The individual messages in the conversation                      |
| `account_id` | string           | Platforms only | The Chargeflow account ID (required for platform users)          |

### Message object fields [#message-object-fields]

| Field             | Type              | Required | Description                                                                      |
| ----------------- | ----------------- | -------- | -------------------------------------------------------------------------------- |
| `sender`          | string            | Yes      | Email address of the sender, or `"buyer"` / `"merchant"`                         |
| `date`            | string (ISO 8601) | Yes      | When the message was sent                                                        |
| `body_plain_text` | string            | Yes      | The message content in plain text                                                |
| `type`            | string            | No       | Message channel: `email`, `chat`, `transcript`, `form`, `sms` (default: `email`) |
| `subject`         | string            | No       | Email subject line (max 100 characters)                                          |

## Example: logging a support conversation [#example-logging-a-support-conversation]

```bash title="Terminal"
curl -X POST https://api.chargeflow.io/public/2025-04-01/customer-communication \
  -H "x-api-key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "source_id": "ticket_87659876b",
    "disputes": ["6684a99a2664656565656565"],
    "messages": [
      {
        "type": "email",
        "sender": "buyer",
        "date": "2025-01-20T09:15:00Z",
        "subject": "Where is my order?",
        "body_plain_text": "Hi, I placed my order 5 days ago and it still has not arrived. Can you please provide an update?"
      },
      {
        "type": "email",
        "sender": "merchant",
        "date": "2025-01-20T10:30:00Z",
        "subject": "Re: Where is my order?",
        "body_plain_text": "Hi John, thank you for reaching out. Your order shipped on Jan 16 via FedEx, tracking number 1Z999AA10123456789. Expected delivery is Jan 22. Please let us know if you need anything further."
      }
    ]
  }'
```

## Linking to multiple disputes [#linking-to-multiple-disputes]

If the same customer conversation is relevant to more than one dispute, include all relevant dispute IDs in the `disputes` array:

```json title="Request body"
{
  "source_id": "ticket_87659876b",
  "disputes": [
    "6684a99a2664656565656565",
    "66e6ea9ecd94925a558060d9"
  ],
  "messages": [...]
}
```

## Alternative: uploading a screenshot [#alternative-uploading-a-screenshot]

If you prefer to submit a screenshot of the conversation instead of structured message records, use the [Upload Evidence endpoint](https://docs.chargeflow.io/docs/merchants/automation/upload-evidence) with `evidenceUploadCategory: "customer_communication"`.

Use structured messages (this endpoint) when you can extract the conversation from your helpdesk system programmatically. Use the file upload when you only have a screenshot.

## Next steps [#next-steps]

<Cards>
  <Card title="Enrich a dispute" href="/docs/merchants/automation/enrich-a-dispute">
    Link this communication record into the full dispute enrichment payload.
  </Card>

  <Card title="Upload evidence" href="/docs/merchants/automation/upload-evidence">
    Uploading file-based evidence including communication screenshots.
  </Card>

  <Card title="Enrich by business model" href="/docs/merchants/automation/enrich-a-dispute/by-business-model">
    Where communication records fit in the SaaS and e-commerce evidence sets.
  </Card>
</Cards>
