Skip to content

payment.chargeback_resolved

A MercadoPago chargeback reached a terminal state. Colectiva emits this when verdict.terminal && outcome ∈ {lost, won, coverage}. Constanza uses it to post a counter-póliza and (on lost + originalCfdiUuid present) cancel the original CFDI. Canonical contract is whatever colectiva/src/lib/services/ecosystem-webhook.service.js notifyPaymentChargebackResolved emits.

Senders

  • colectiva

Receivers

  • constanza
  • agora
  • mancha
  • servilleta
  • cosmos-pet
  • caracol

Data schema

Each field maps to a type hint. | null indicates an optional field.

json
{
  "chargebackId": "string",
  "paymentId": "string | null (Firestore payments doc id; null if no local payment)",
  "mpPaymentId": "string | null (MercadoPago payment id)",
  "outcome": "\"lost\" | \"won\" | \"coverage\"",
  "chargebackStatus": "string (raw MP enum, debug aid)",
  "isPartial": "boolean",
  "amount": "number (chargeback amount, currency-native MP minor units)",
  "originalAmount": "number | null",
  "currency": "string (ISO 4217)",
  "reason": "string | null",
  "coverageApplied": "boolean (chargeback.coverage === true)",
  "resolvedAt": "string (ISO datetime; chargeback.dateClosed || now())",
  "paymentMethod": "string | null",
  "referenceId": "string | null (Colectiva-internal earnings reference; from originalEarnings[0].reference_id)",
  "referenceType": "string | null (Colectiva-internal earnings type, e.g. merchant_commission/credits_purchase/subscription_renewal)",
  "paymentReferenceId": "string | null (application-level reference set by source app, e.g. agora invoice id; from originalPayment.reference_id)",
  "paymentReferenceType": "string | null (application-level reference type, e.g. legal_invoice/shipment/reservation; from originalPayment.reference_type)",
  "originalEarningPeriod": "string | null (YYYY-MM)",
  "originalCfdiUuid": "string | null (best-effort lookup from ai_invoice_batches)",
  "reversalEarningIds": "string[] (Phase 1 recordEarningReversal results)"
}

Example payload

The following is a synthetic payload that matches the schema. Production payloads are signed with HMAC-SHA256 and delivered to each receiver's registered webhook endpoint.

json
{
  "chargebackId": "example-chargebackId",
  "paymentId": "example-paymentId",
  "mpPaymentId": "example-mpPaymentId",
  "outcome": "example-outcome",
  "chargebackStatus": "raw MP enum, debug aid",
  "isPartial": true,
  "amount": 0,
  "originalAmount": 0,
  "currency": "example-currency",
  "reason": "example-reason",
  "coverageApplied": true,
  "resolvedAt": "2026-04-17T12:00:00.000Z",
  "paymentMethod": "example-paymentMethod",
  "referenceId": "example-referenceId",
  "referenceType": "example-referenceType",
  "paymentReferenceId": "example-paymentReferenceId",
  "paymentReferenceType": "example-paymentReferenceType",
  "originalEarningPeriod": "example-originalEarningPeriod",
  "originalCfdiUuid": "example-originalCfdiUuid",
  "reversalEarningIds": [
    "example-reversalEarningIds"
  ]
}

See also


Generated from ecosystem-sdk/packages/mcp-server/src/registry/events.json. Do not edit by hand.

Red Broom Software Ecosystem