Citi · Schema

DisputeCaseStatusUpdate

BankingFinancial ServicesOpen BankingPaymentsTreasuryISO 20022Commercial CardsForeign ExchangeCustodyTrade FinanceCorporate BankingAPI Gateway

Properties

Name Type Description
trackingId string Unique identifier associated with the client’s original request. This ID matches the value returned in the synchronous acknowledgement for the corresponding API call (create, update, or upload) and en
reasonCode string Reason Code provided in the Case Creation request for the Dispute reason
eventType string Specifies the type of event that triggered this webhook notification, helping the client understand the context and purpose of the payload.
disputeCaseDetails array Details of dispute case
View JSON Schema on GitHub

JSON Schema

citi-dispute-case-status-update-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/citi/main/json-schema/citi-dispute-case-status-update-schema.json",
  "title": "DisputeCaseStatusUpdate",
  "x-generated": "2026-10-12",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/citi-dispute-webhook-api-openapi.yml#/components/schemas/DisputeCaseStatusUpdate",
  "properties": {
    "trackingId": {
      "type": "string",
      "format": "string",
      "title": "trackingId",
      "description": "Unique identifier associated with the client’s original request. This ID matches the value returned in the synchronous acknowledgement for the corresponding API call (create, update, or upload) and enables the client to track and reconcile webhook notifications."
    },
    "reasonCode": {
      "type": "string",
      "format": "string",
      "title": "reasonCode",
      "description": "Reason Code provided in the Case Creation request for the Dispute reason"
    },
    "eventType": {
      "type": "string",
      "format": "string",
      "description": "Specifies the type of event that triggered this webhook notification, helping the client understand the context and purpose of the payload.",
      "title": "eventType",
      "enum": [
        "CREATE",
        "UPDATE",
        "STATUS_CHANGE",
        "UPLOAD_DOCUMENT"
      ]
    },
    "disputeCaseDetails": {
      "description": "Details of dispute case",
      "type": "array",
      "title": "disputeCaseDetails",
      "items": {
        "$ref": "#/$defs/DisputeCaseDetails"
      }
    }
  },
  "required": [
    "trackingId",
    "disputeCaseDetails"
  ],
  "$defs": {
    "DisputeCaseDetails": {
      "properties": {
        "requestId": {
          "description": "Request ID sent by client in case creation request",
          "type": "string",
          "format": "alphanumeric",
          "title": "requestId",
          "maxLength": 36,
          "minLength": 36
        },
        "acquirerReferenceNumber": {
          "description": "Acquirer Reference Number (ARN)",
          "type": "string",
          "format": "numeric",
          "title": "acquirerReferenceNumber",
          "maxLength": 24,
          "minLength": 23
        },
        "caseId": {
          "description": "The unique identifier assigned to the dispute case related to this webhook event.",
          "type": "string",
          "format": "alphanumeric",
          "title": "caseId",
          "minLength": 11,
          "maxLength": 11
        },
        "statusDescription": {
          "description": "Case status description. Possible values - OP - Open; CP - Awaiting Information from Cardholder; CR - Cancelled / Rejected; CM - Closed in favour of bank; CC - Closed in favour of cardholder; CB - Chargeback submitted to Network",
          "type": "string",
          "format": "string",
          "title": "statusDescription"
        },
        "statusAsOnDate": {
          "description": "This is the Date Timestamp that the status was last updated. This is in the GMT timezone with format YYYYMMDD HH:MM:SS:MMM",
          "type": "string",
          "format": "alphanumeric",
          "title": "statusAsOnDate"
        },
        "status": {
          "description": "Status of update or upload event. eg: SUCCESS, FAILED",
          "type": "string",
          "format": "string",
          "title": "status"
        },
        "documentReferenceId": {
          "description": "Document Id",
          "type": "string",
          "format": "string",
          "title": "documentReferenceId",
          "maxLength": 19,
          "minLength": 19
        },
        "remarks": {
          "description": "The latest remarks or comments  added to the dispute case id to provide additional information to the client.",
          "type": "string",
          "format": "string",
          "title": "remarks"
        },
        "remarksLastUpdatedOn": {
          "description": "Timestamp indicating when the remarks associated with the case were last updated.",
          "type": "string",
          "format": "string",
          "title": "remarksLastUpdatedOn"
        },
        "errors": {
          "title": "errors",
          "type": "array",
          "items": {
            "$ref": "#/$defs/ErrorMessage"
          }
        }
      }
    },
    "ErrorMessage": {
      "title": "ErrorMessage",
      "properties": {
        "errorCode": {
          "type": "string",
          "description": "ErrorCode * `DISP250` * `DISP251` * `DISP252` * `DISP253` * `DISP254` * `DISP255` * `DISP256` * `DISP257` * `DISP258` * `DISP259` * `DISP260` * `DISP261` * `DISP262` * `DISP263` * `DISP264` * `DISP265` * `DISP266` * `DISP267` * `DISP200` * `GRC0014`\n"
        },
        "errorDescription": {
          "type": "string",
          "description": "ErrorDescription * `DisPute case creation failed- Invalid dispute Reason Code` * `Dispute case creation failed- Settlement Details cannot be fetched for the given ARN` * `Dispute case creation failed- Invalid Client relationship number (GCN)` * `Dispute case creation failed- Invalid dispute Amount` * `Dispute case creation failed- Dispute Amount higher than amount cap` * `Dispute case creation failed- Internal technical failure` * `Dispute case creation failed- Dispute request transaction not posted to cardholder statement` * `Dispute case creation failed- Transaction should be a purchase to dispute` * `Dispute case creation failed- Transaction aging is beyond 90 days` * `Dispute case creation failed- Blocked card. Cannot be disputed` * `Dispute case creation failed- C2AT type transaction. Cannot be disputed` * `Dispute case creation failed- Internal Processing error` * `Dispute case creation failed- Internal Processing error` * `Dispute case creation failed- Internal Processing error` * `Dispute case creation failed- Internal Processing error` * `Dispute case creation failed- Internal Processing error` * `Dispute case creation failed- Internal Processing error` * `Dispute case creation failed- Internal Processing error` * `We have encountered an error and couldn't process your request. Please call the Dispute Status Enquiry API using the ARN to see whether a case ID was created. If a case ID was not created, please try your case creation request again, or contact Citi support if you have any further questions or comments.`\n"
        }
      },
      "required": [
        "requestId",
        "acquirerReferenceNumber"
      ]
    }
  }
}

Work with this as data

Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for schemas

4 MCP tools reach this
  • find_json_schemasBrowse and filter every JSON Schema in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/citi-dispute-case-status-update"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.