Cards

Respond to card dispute

Queue a response to the card network for the current dispute stage.

post/issuing/card-disputes/{card_dispute_id}/respond

Request

  • Base URL: https://api.column.com
  • URL: https://api.column.com/issuing/card-disputes/{card_dispute_id}/respond
  • Auth: HTTP basic

Path parameters

card_dispute_idstring required

Request body

action'accept' | 'accept_partial' | 'decline' | 'escalate' required

A response action the platform can take against a dispute stage via POST /respond. Cardholder withdrawal is not a response action; it routes through POST /close.

amountinteger

Partial acceptance amount in smallest currency unit. Required for accept_partial.

cardholder_name_and_address_mismatchboolean

Certifies that the cardholder name and address the acquirer presented as compelling evidence do not match your records. Required when declining or partially accepting a fraud pre-arbitration in which the acquirer presented compelling evidence, and rejected for any other response. When false, narrative is sent to Visa as the explanation of why you are continuing the dispute.

compelling_evidence_reviewed_with_cardholderboolean

Certifies that you contacted the cardholder, reviewed the acquirer's compelling evidence with them, and the cardholder continues to dispute the transaction. Required when declining or partially accepting a fraud pre-arbitration in which the acquirer presented compelling evidence, and rejected for any other response. When true, narrative is sent to Visa as the explanation of why the cardholder continues to dispute.

evidence_document_idsstring[]

Legacy document IDs to use as evidence, uploaded via POST /issuing/card-disputes/documents. Documents uploaded via POST /documents are rejected.

narrativestring

Narrative evidence for the response.

Example request

{
  "narrative": "The merchant's response does not show that the cardholder authorized the transaction."
}

Response

Successful response

allowed_close_resolutionsCardDisputeCloseResolution[] required

Close resolutions Column will currently accept via POST /close, given the dispute's stage, workflow, and network state. Empty when no new close is possible.

allowed_response_actionsCardDisputeResponseAction[] required

Response actions Column will currently accept via POST /respond, given the dispute's stage, workflow, and network state. Empty when no response is possible.

amountinteger required

The dispute amount in smallest currency unit

card_account_idstring required

The ID of the card account

card_program_idstring required

The ID of the card program

card_transaction_idstring required

The ID of the card transaction

compelling_evidence_certification_requiredboolean required

Whether POST /respond currently requires compelling_evidence_reviewed_with_cardholder and cardholder_name_and_address_mismatch. True while you can decline or partially accept a fraud pre-arbitration in which the acquirer presented compelling evidence.

created_atstring date-time required

When the dispute was created

currencystring required

The currency code

idstring required

The ID of the card dispute

last_network_sync_atstring date-time nullable

When Column last synchronized the dispute's state from the network. This reflects Column's own sync job, not a live network read; refreshing the page does not force a new synchronization.

next_actionsCardDisputeNextAction[] required

Customer-visible next actions for the dispute.

platform_idstring required

The ID of the platform

provisional_creditboolean required

Whether a provisional credit has been issued for this dispute. Removing the credit while the dispute is a draft clears the flag. Otherwise it records credit issuance history: a reversal after the dispute is closed does not clear the flag, so outside of drafts it is not an indicator of a current outstanding credit balance.

reason'fraud' | 'no_authorization' | 'incorrect_amount' | 'incorrect_account_number' | 'merchandise_services_not_received' | 'canceled_recurring_transaction' | 'not_as_described' | 'counterfeit_merchandise' | 'misrepresentation' | 'credit_not_processed' | 'non_receipt_cash_at_atm' | 'other' | 'duplicate_processing' | 'paid_by_other_means' | 'incorrect_currency' | 'incorrect_transaction_code' | 'invalid_data' | 'canceled_merchandise_or_services' | 'damaged_or_defective_merchandise' | 'quality_of_merchandise_or_services' | 'original_credit_not_accepted' | 'terms_of_contract' required

The reason for a card dispute, which selects the Visa dispute condition Column files: fraud (10), no_authorization (11), incorrect_transaction_code (12.2), incorrect_currency (12.3), incorrect_account_number (12.4), incorrect_amount (12.5), duplicate_processing (12.6.1), paid_by_other_means (12.6.2), invalid_data (12.7), merchandise_services_not_received (13.1), canceled_recurring_transaction (13.2), not_as_described (13.3), damaged_or_defective_merchandise (13.3), quality_of_merchandise_or_services (13.3), terms_of_contract (13.3, Visa Commercial Card Virtual Account transactions), counterfeit_merchandise (13.4), misrepresentation (13.5), credit_not_processed (13.6), canceled_merchandise_or_services (13.7), original_credit_not_accepted (13.8) and non_receipt_cash_at_atm (13.9). other has no Visa dispute condition and is not filed with the network.

reason_for_partial_disputestring nullable

Explanation of why the cardholder is disputing less than the full transaction amount, stored when the claim is partial. Not used for incorrect_amount disputes.

requested_resolution'accept_cardholder_claim' | 'cardholder_withdrew'

How a dispute is resolved when the platform closes it in the cardholder's favor or the cardholder withdraws the claim.

resolution_reason'merchant_accepted' | 'rapid_dispute_resolution' | 'arbitration_network_ruling' | 'issuer_liability' | 'exceeded_filing_date' | 'customer_accepted_liability' nullable

The resolution reason for the dispute

respond_bystring date

The date by which the next network action is due.

stage'initiated' | 'disputed' | 'merchant_responded' | 'merchant_response_recalled' | 'prearbitration' | 'prearbitration_responded' | 'arbitration' | 'dispute_won' | 'dispute_close' required

The current stage of the dispute

status'open' | 'requires_action' | 'manual_review_required' | 'closed' required
submission_errorstring nullable

The most recent network submission error. Populated only when submission_status is failed; never set for requires_action, which is a normal state in which the network is awaiting the platform's response.

submission_status'not_required' | 'draft' | 'pending_submission' | 'submitted' | 'requires_action' | 'failed' required

The dispute network submission status.

submitted_atstring date-time nullable

When the dispute was submitted to the network. Null while the dispute has never been sent, including drafts and queued submissions.

updated_atstring date-time required

When the dispute was last updated

workflow'collaboration' | 'allocation' required

The Visa dispute workflow a dispute follows, selected by its dispute reason. Collaboration disputes negotiate through chargeback, representment, and pre-arbitration; allocation disputes cover fraud-related claims the acquirer responds to directly.

Example response

{
  "events": [
    {
      "id": "cdse_2x8gszy5folpA9s0TOCseE9ABDM",
      "linked_transaction_event_id": "ctxe_2x8gszy5folpA9s0TOCseE9ABDM"
    }
  ],
  "evidence": [
    {
      "id": "cdev_2x8gszy5folpA9s0TOCseE9ABDM",
      "narrative": "The cardholder did not authorize this transaction and still has the card."
    }
  ],
  "id": "cdsp_2x8gszy5folpA9s0TOCseE9ABDM",
  "reason_details": {
    "canceled_merchandise_or_services": {
      "cancellation_method": "The cardholder canceled by email to the merchant's support address.",
      "merchandise_disposition": "The cardholder still has the merchandise and can return it on request.",
      "order_details": "A pair of running shoes ordered from the merchant's website.",
      "return_attempt_details": "The cardholder requested a return label, but the merchant did not respond.",
      "return_method_details": "The cardholder dropped the merchandise off at the merchant's retail store.",
      "return_tracking_number": "1Z999AA10123456784"
    },
    "canceled_recurring_transaction": {
      "cancellation_method": "The cardholder canceled by email to the merchant's support address.",
      "merchant_contact_application_name": "Acme Support Chat",
      "merchant_contact_email_address": "support@example.com",
      "merchant_contact_phone_number": "+14155550123"
    },
    "counterfeit_merchandise": {
      "counterfeit_details": "The brand's authentication service confirmed the item is not genuine.",
      "merchandise_disposition": "The cardholder still has the merchandise and can return it on request.",
      "order_details": "A pair of running shoes ordered from the merchant's website."
    },
    "credit_not_processed": {
      "late_credit_explanation": "The merchant delayed the credit while negotiating a partial refund with the cardholder."
    },
    "damaged_or_defective_merchandise": {
      "merchandise_disposition": "The cardholder still has the merchandise and can return it on request.",
      "negotiation_details": "The cardholder emailed the merchant twice asking for a refund and received no response.",
      "order_details": "A pair of running shoes ordered from the merchant's website.",
      "return_attempt_details": "The cardholder requested a return label, but the merchant did not respond.",
      "return_method_details": "The cardholder dropped the merchandise off at the merchant's retail store.",
      "return_tracking_number": "1Z999AA10123456784"
    },
    "duplicate_processing": {
      "other_card_transaction_id": "ctxn_3y9htaz6gomqB0t1UPDtfF0BCEN",
      "other_network_transaction_id": "305123456789012"
    },
    "fraud": {
      "card_mailed_postal_code": "94107"
    },
    "incorrect_currency": {
      "correct_currency": "USD"
    },
    "incorrect_transaction_code": {
      "credit_card_transaction_id": "ctxn_3y9htaz6gomqB0t1UPDtfF0BCEN",
      "credit_error_explanation": "The merchant processed a credit instead of reversing the original charge."
    },
    "invalid_data": {
      "authorization_decline_explanation": "The card had expired, so an authorization request with the correct expiration date would have been declined."
    },
    "merchandise_services_not_received": {
      "cancellation_method": "The cardholder canceled by email to the merchant's support address.",
      "dispute_before_expected_date_explanation": "The merchant confirmed the order was canceled and will not ship.",
      "late_delivery_details": "The merchandise was delivered three weeks after the agreed delivery date.",
      "order_details": "A pair of running shoes ordered from the merchant's website."
    },
    "misrepresentation": {
      "cancellation_method": "The cardholder canceled by email to the merchant's support address.",
      "misrepresentation_details": "The merchant advertised the jacket as waterproof, but it is not.",
      "negotiation_details": "The cardholder emailed the merchant twice asking for a refund and received no response.",
      "order_details": "A pair of running shoes ordered from the merchant's website.",
      "return_attempt_details": "The cardholder requested a return label, but the merchant did not respond.",
      "return_method_details": "The cardholder dropped the merchandise off at the merchant's retail store.",
      "return_tracking_number": "1Z999AA10123456784"
    },
    "not_as_described": {
      "cancellation_method": "The cardholder canceled by email to the merchant's support address.",
      "merchandise_disposition": "The cardholder still has the merchandise and can return it on request.",
      "negotiation_details": "The cardholder emailed the merchant twice asking for a refund and received no response.",
      "order_details": "A pair of running shoes ordered from the merchant's website.",
      "return_attempt_details": "The cardholder requested a return label, but the merchant did not respond.",
      "return_method_details": "The cardholder dropped the merchandise off at the merchant's retail store.",
      "return_tracking_number": "1Z999AA10123456784"
    },
    "original_credit_not_accepted": {
      "explanation": "The recipient's account was closed before the original credit arrived."
    },
    "paid_by_other_means": {
      "other_card_transaction_id": "ctxn_3y9htaz6gomqB0t1UPDtfF0BCEN",
      "other_network_transaction_id": "305123456789012"
    },
    "quality_of_merchandise_or_services": {
      "cancellation_method": "The cardholder canceled by email to the merchant's support address.",
      "merchandise_disposition": "The cardholder still has the merchandise and can return it on request.",
      "negotiation_details": "The cardholder emailed the merchant twice asking for a refund and received no response.",
      "order_details": "A pair of running shoes ordered from the merchant's website.",
      "return_attempt_details": "The cardholder requested a return label, but the merchant did not respond.",
      "return_method_details": "The cardholder dropped the merchandise off at the merchant's retail store.",
      "return_tracking_number": "1Z999AA10123456784"
    },
    "terms_of_contract": {
      "terms_not_honored_details": "The merchant did not deliver the services within the timeframe in the contract."
    }
  },
  "stage": "disputed",
  "submission_status": "submitted"
}

Changes

No recorded changes to this operation across all 1 revision of this API.