Customer communication
The customer-communication endpoint: request and message fields for logging support conversations as structured records linked to one or more disputes.
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
- 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.
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.
Endpoint
POST https://api.chargeflow.io/public/2025-04-01/customer-communicationThis 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
| 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
| 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
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
If the same customer conversation is relevant to more than one dispute, include all relevant dispute IDs in the disputes array:
{
"source_id": "ticket_87659876b",
"disputes": [
"6684a99a2664656565656565",
"66e6ea9ecd94925a558060d9"
],
"messages": [...]
}Alternative: uploading a screenshot
If you prefer to submit a screenshot of the conversation instead of structured message records, use the Upload Evidence endpoint 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.