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-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

FieldTypeRequiredDescription
source_idstringYesYour internal ticket or conversation ID
disputesarray of stringsYesOne or more Chargeflow dispute IDs to link this communication to
messagesarray of objectsYesThe individual messages in the conversation
account_idstringPlatforms onlyThe Chargeflow account ID (required for platform users)

Message object fields

FieldTypeRequiredDescription
senderstringYesEmail address of the sender, or "buyer" / "merchant"
datestring (ISO 8601)YesWhen the message was sent
body_plain_textstringYesThe message content in plain text
typestringNoMessage channel: email, chat, transcript, form, sms (default: email)
subjectstringNoEmail subject line (max 100 characters)

Example: logging a support conversation

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

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

Request body
{
  "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.

Next steps

Was this page helpful?

On this page