Skip to main content

Dispute Lifecycle

Dispute Creation

A dispute (also known as chargeback) is created when a cardholder contacts their card issuer to question a payment. The card issuer opens a chargeback and returns the questioned funds to the cardholder. JustiFi is notified of the chargeback, creates a dispute associated with the payment and pulls the payment funds (and a dispute fee) back from the merchant. As soon as JustiFi has created the dispute:

  1. Notification: You receive a payment.dispute.created webhook event
  2. Timeline: You have 7-10 business days to respond (varies by card network)

Response Phase

Building Your Response

During the response phase, you can:

Response Fields

Provide comprehensive information across these categories:

Customer Information

  • customer_name - Full customer name
  • customer_email_address - Customer email
  • customer_billing_address - Billing address
  • customer_purchase_ip_address - IP address at purchase time

Transaction Details

  • product_description - Detailed product/service description
  • service_date - Date service was provided
  • duplicate_charge_original_payment_id - Reference for duplicate charges
  • duplicate_charge_explanation - Explanation for duplicate charges

Shipping Information

  • shipping_address - Delivery address
  • shipping_carrier - Shipping company
  • shipping_date - Ship date
  • shipping_tracking_number - Tracking number

Policy Information

  • refund_policy_disclosure - Refund policy terms
  • cancellation_policy_disclosure - Cancellation policy terms
  • refund_refusal_explanation - Why refund was refused
  • cancellation_rebuttal - Response to cancellation claims

Additional Context

  • additional_statement - Free-form additional information

Evidence Management

Evidence Categories

CategoryBest Used For
receiptPurchase confirmations, invoices
shipping_documentationDelivery proof, tracking info
customer_communicationEmail exchanges, support tickets
customer_signatureSigned delivery receipts
refund_policyTerms of service, policies
cancellation_policyCancellation terms
service_documentationProof of service delivery
duplicate_charge_documentationDuplicate charge evidence
activity_logSystem logs, usage data
uncategorized_fileOther supporting documents

File Requirements

  • Supported formats: PDF, JPG, JPEG, PNG, ZIP
  • Validation: File extension must match MIME type

Submission and Review

Forfeiture Option

If you choose not to contest the dispute either use the submit dispute response API with the following body:

{
"forfeit": true
}

Or instead forfeit the dispute via Dispute Management web component.

This immediately transitions the dispute to lost status.

Resolution Phase

Possible Outcomes

Won (won status)

  • Funds Returned: Disputed amount returned to your merchant's account.
  • Notification: payment.dispute.closed webhook event

Lost (lost status)

  • Funds Retained: No funds are moved.
  • Notification: payment.dispute.closed webhook event

Dispute Reversals

Card networks can reverse lost disputes:

  1. Reversal Trigger: New evidence or network decision
  2. Dispute updated: Status of dispute is updated to won
  3. Fund Return: Previously lost funds are returned
  4. Notification: payment.dispute.closed webhook event

Status Transitions

needs_response → under_review → won/lost

forfeited

Status Descriptions

  • needs_response - Initial status, response deadline active
  • under_review - Response submitted, card network is reviewing
  • won - Dispute resolved in merchant's favor
  • lost - Dispute resolved against the merchant

Webhook Events

Monitor these events for real-time updates:

  • payment.dispute.created - Lets you know anytime a customer opens a payment dispute
  • payment.dispute.closed - Lets you know anytime a payment dispute is closed
  • payment.dispute.funds_returned - Lets you know anytime a payment dispute won and funds are returned
  • payment.dispute_evidence.created - Lets you know anytime a dispute evidence is created
  • payment.dispute_evidence.uploaded - Lets you know anytime a dispute evidence is uploaded
  • payment.dispute.forfeited - Lets you know anytime a dispute response is forfeited
  • payment.dispute.submitted - Lets you know anytime a dispute response is submitted