---
updatedAt: 2026-04-22T15:15:32.000Z
agentTools:
  siteIndex: https://developers.pismo.io/llms.txt
  projectIndex: https://developers.pismo.io/pismo-docs/llms.txt
---

# Update dispute migration

Update dispute migration.

Only use this endpoint if the dispute's status is `FAILED_MIGRATION` and you need to update something that went wrong.


# OpenAPI definition

```json
{
  "openapi": "3.1.0",
  "info": {
    "title": "Card issuing - Disputes",
    "version": "1.0.0",
    "description": "Disputes API endpoints",
    "contact": {
      "name": "API Support",
      "url": "https://developers.pismo.io/support/"
    },
    "license": {
      "name": "Copyright Pismo"
    }
  },
  "servers": [
    {
      "url": "https://sandbox.pismolabs.io/disputes",
      "description": "Sandbox API server for testing"
    }
  ],
  "security": [
    {
      "BearerAuth": []
    }
  ],
  "tags": [
    {
      "name": "Migration",
      "description": "Endpoints to manage dispute migration"
    }
  ],
  "components": {
    "parameters": {
      "disputeId": {
        "name": "disputeId",
        "in": "path",
        "description": "Dispute ID",
        "required": true,
        "schema": {
          "type": "number"
        }
      }
    },
    "schemas": {
      "AccountID": {
        "type": "number",
        "description": "Pismo account ID",
        "example": 577830
      },
      "CreatedAtUTC": {
        "type": "string",
        "description": "Dispute created in UTC date/time.",
        "format": "date-time",
        "example": "2021-02-21T22:51:43.000000000Z"
      },
      "DisputeID": {
        "type": "number",
        "description": "Dispute ID",
        "example": 48670
      },
      "OrgID": {
        "type": "string",
        "description": "Organization/tenant ID.",
        "example": "TN-34778262-f4f0-464d-b4c6-a14exxxxxxxx"
      },
      "TransactionAmount": {
        "type": "number",
        "description": "Transaction amount",
        "example": 86753.09
      },
      "Comment": {
        "type": "string",
        "description": "Client custom dispute comment.\n\n**REQUIRED** for Visa partial dispute to explain why partial.\n",
        "nullable": true,
        "example": "Custom comment",
        "maxLength": 5000
      },
      "reasonCode": {
        "type": "number",
        "description": "Each card network, such as Visa or Mastercard, defines and maintains their own unique set of reason codes, which banks that issue credit and debit cards under their brands apply to disputes. Here's a reason code [quick reference](https://www.chargebackgurus.com/blog/a-definitive-guide-to-chargeback-reason-codes-by-card-network#chargback-reason-code-quick-reference-guide) for the major credit card networks.\n\nFor Visa, this would be either `10` (fraud - card present), `11` (authorization), `12` (processing error), or `13` (consumer dispute).\n\nFor more infomation, refer to the [Visa](https://usa.visa.com/dam/VCOM/global/support-legal/documents/chargeback-management-guidelines-for-visa-merchants-vbs-19-may-16-%20v2.pdf) or [Mastercard](https://www.mastercard.us/content/dam/public/mastercardcom/na/global-site/documents/chargeback-guide.pdf) chargeback quides.\n\nFor example - `4853` (Mastercard - cardholder dispute), `12` (Visa - processing error) or `72` (ELO - denied authorization)\n",
        "example": 4853
      },
      "DisputeGroupStatus": {
        "description": "Group status enums\n",
        "type": "string",
        "example": "OPEN",
        "enum": [
          "OPEN",
          "APPROVED",
          "DENIED",
          "CARDNETWORK_CHARGEBACK",
          "ANALYSING",
          "CARDNETWORK_SECOND_PRESENTMENT",
          "FAILED",
          "CARDNETWORK_PREARBITRATION",
          "RESEND",
          "LOSS",
          "WON",
          "REJECTED",
          "FAILED_PROCESSED"
        ]
      },
      "DisputeStatus": {
        "type": "string",
        "description": "Dispute status enums.\n",
        "example": "PENDING",
        "enum": [
          "OPENED",
          "PENDING",
          "CANCELED",
          "FAILED",
          "CHARGEBACK_REJECTED",
          "CHARGEBACK_CREATED",
          "CHARGEBACK_ACCEPTED",
          "CHARGEBACK_CLOSED",
          "SECOND_PRESENTMENT",
          "PRE_ARBITRATION_OPENED",
          "PRE_ARBITRATION_ACCEPTED",
          "PRE_ARBITRATION_DECLINED",
          "PRE_ARBITRATION_RECALL",
          "PRE_ARB_ALLOCATION_OPENED",
          "FAILED_PRE_ARBITRATION",
          "PRE_ARB_ALLOCATION_ACCEPTED",
          "PRE_ARB_ALLOCATION_DECLINED",
          "PRE_ARB_ALLOCATION_RECALLED",
          "FAILED_DECLINE_PRE_ARB",
          "FAILED_ACCEPT_PRE_ARB",
          "FAILED_ON_CLOSE",
          "EXPIRED",
          "ISSUER_LOSS",
          "MIGRATION",
          "FAILED_MIGRATION"
        ]
      },
      "DisputeResponse": {
        "type": "object",
        "properties": {
          "id": {
            "$ref": "#/components/schemas/DisputeID"
          },
          "org_id": {
            "$ref": "#/components/schemas/OrgID"
          },
          "account_id": {
            "$ref": "#/components/schemas/AccountID"
          },
          "authorization_id": {
            "type": "number",
            "example": 4352243,
            "description": "Authorization ID."
          },
          "comment": {
            "$ref": "#/components/schemas/Comment"
          },
          "dispute_reason": {
            "$ref": "#/components/schemas/reasonCode"
          },
          "modality": {
            "type": "number",
            "example": 4855,
            "description": "Dispute *modality* - legacy term for reason code to file the dispute."
          },
          "dispute_status": {
            "$ref": "#/components/schemas/DisputeStatus"
          },
          "dispute_status_group": {
            "$ref": "#/components/schemas/DisputeGroupStatus"
          },
          "created_at": {
            "$ref": "#/components/schemas/CreatedAt"
          },
          "updated_at": {
            "$ref": "#/components/schemas/UpdatedAt2"
          },
          "created_at_utc": {
            "$ref": "#/components/schemas/CreatedAtUTC"
          },
          "updated_at_utc": {
            "$ref": "#/components/schemas/UpdatedAtUTC"
          },
          "timeline": {
            "type": "string",
            "example": "{ \"data\": \"test\"}",
            "description": "Client custom timeline information.",
            "nullable": true
          },
          "protocol": {
            "$ref": "#/components/schemas/Protocol"
          },
          "metadata": {
            "$ref": "#/components/schemas/Metadata"
          },
          "disputed_amount": {
            "$ref": "#/components/schemas/DisputedAmount"
          },
          "is_network": {
            "type": "boolean",
            "example": true,
            "description": "Does dispute have a network authorization?"
          },
          "is_dispute_migrated": {
            "type": "boolean",
            "description": "Has this dispute been migrated to the Pismo platform?",
            "example": false
          },
          "reversal_id": {
            "type": "number",
            "description": "Event-generated reversal ID",
            "example": 123
          },
          "network_return_reason_code": {
            "type": "string",
            "description": "Network reason code.",
            "example": "4853"
          },
          "network_brand_type": {
            "$ref": "#/components/schemas/NetworkBrand"
          },
          "transaction_date": {
            "type": "string",
            "description": "Transaction date, format = yyyy-mm-dd hh:mm:ss",
            "example": "2022-08-04 14:26:20"
          },
          "transaction_amount": {
            "$ref": "#/components/schemas/TransactionAmount"
          },
          "currency_code": {
            "type": "string",
            "description": "ISO-4217 code for transaction currency. For example, `986` = Brazilian real.  \n",
            "example": "986"
          }
        }
      },
      "IsPartial": {
        "type": "boolean",
        "description": "Is partial amount chargeback? Default is `false`.",
        "default": false,
        "example": false
      },
      "NetworkBrand": {
        "type": "string",
        "example": "Visa",
        "description": "Network brand",
        "enum": [
          "Visa",
          "Mastercard",
          "Elo"
        ]
      },
      "DisputeInstallmentId": {
        "type": "integer",
        "description": "Dispute installment ID.",
        "example": 8675309
      },
      "DisputedAmount": {
        "type": "number",
        "example": 10,
        "description": "Disputed amount."
      },
      "Metadata": {
        "type": "object",
        "description": "Can be used for caller's dispute information and process. Objects and name-value pairs.\n\n **Note**: This field must not be used to send Personally Identifiable Information (PII), Payment Card Industry (PCI) data, or any sensitive/regulated information. Metadata fields are intended for operational, non-sensitive data only. For sensitive data, use the specific parameters designed for that purpose. For more information, refer to [Get started with Pismo APIs](https://developers.pismo.io/pismo-docs/reference/get-started-with-pismo-apis#metadata).\n",
        "example": {
          "field1": "value",
          "field2": "value"
        }
      },
      "Protocol": {
        "type": "string",
        "description": "Client custom protocol ID. This is primarily for you to internally identify a request. If not provided, Pismo creates a CID (correlation ID) field for this purpose.\n",
        "maxLength": 500,
        "example": "20251128111532456"
      },
      "UpdateMigrationRequest": {
        "type": "object",
        "description": "Update dispute migration request object",
        "required": [
          "claim_id",
          "chargeback_id",
          "disputed_amount",
          "dispute_installment_id",
          "network_brand_type"
        ],
        "properties": {
          "claim_id": {
            "type": "string",
            "description": "Claim ID, same as case number for VISA.",
            "example": "474749409"
          },
          "chargeback_id": {
            "type": "string",
            "description": "Chargeback ID, same as dispute ID for VISA.",
            "example": "88996"
          },
          "disputed_amount": {
            "$ref": "#/components/schemas/DisputedAmount"
          },
          "dispute_installment_id": {
            "$ref": "#/components/schemas/DisputeInstallmentId"
          },
          "network_brand_type": {
            "$ref": "#/components/schemas/NetworkBrand"
          },
          "is_partial": {
            "$ref": "#/components/schemas/IsPartial"
          },
          "arn": {
            "type": "string",
            "description": "Acquirer reference number. **REQUIRED** for Zero balance integration."
          },
          "transaction_date": {
            "type": "string",
            "description": "Transaction date. **REQUIRED** for Zero balance integration.",
            "example": "2023-02-23"
          }
        }
      },
      "CreatedAt": {
        "type": "string",
        "description": "Created at datetime, format = yyyy-mm-dd hh:mm:ss\"",
        "example": "2024-10-18 11:21:45"
      },
      "UpdatedAt2": {
        "type": "string",
        "description": "Dispute last updated date, format = yyyy-mm-dd.",
        "format": "date",
        "example": "2021-02-22"
      },
      "UpdatedAtUTC": {
        "type": "string",
        "description": "When dispute updated in UTC date/time.",
        "example": "2022-10-13T19:56:010000000Z"
      }
    },
    "securitySchemes": {
      "BearerAuth": {
        "type": "http",
        "scheme": "bearer",
        "description": "Account access token. Tokens can expire quickly, which can result in an \"Unauthorized\" error.",
        "bearerFormat": "JWT"
      }
    },
    "responses": {
      "400BadRequest": {
        "description": "Bad Request"
      },
      "401Unauthorized": {
        "description": "Unauthorized. Invalid or missing access token."
      },
      "422UnprocessableEntity": {
        "description": "Unprocessable entity"
      },
      "500InternalServerError": {
        "description": "Internal server error"
      }
    }
  },
  "paths": {
    "/v1/migration/{disputeId}": {
      "put": {
        "summary": "Update dispute migration",
        "operationId": "put-update-migration",
        "description": "Update dispute migration.\n\nOnly use this endpoint if the dispute's status is `FAILED_MIGRATION` and you need to update something that went wrong.\n",
        "tags": [
          "Migration"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/disputeId"
          }
        ],
        "requestBody": {
          "description": "Migration data",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateMigrationRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DisputeResponse"
                },
                "examples": {
                  "Updated status": {
                    "value": {
                      "id": 1009087,
                      "org_id": "TN-34778262-f4f0-464d-b4c6-a14exxxxxxxx",
                      "account_id": 30605,
                      "authorization_id": 4352243,
                      "comment": "Some comment",
                      "dispute_reason": 4855,
                      "modality": 4855,
                      "dispute_status": "OPENED",
                      "dispute_status_group": "ANALYSING",
                      "timeline": "{ \"data\": \"test\"}",
                      "protocol": "20190321L123456"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/401Unauthorized"
          },
          "422": {
            "$ref": "#/components/responses/422UnprocessableEntity"
          },
          "500": {
            "$ref": "#/components/responses/500InternalServerError"
          }
        }
      }
    }
  }
}
```