Skip to content

caracol.intercompany_movement_completed

Inter-tenant movement reaches ownership-transfer state (FOB-Destination = at receive; FOB-Origin = at dispatch). Triggers Constanza intercompany CFDI emission with partes-relacionadas detection (per OL-2).

Senders

  • caracol

Receivers

  • constanza

Data schema

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

json
{
  "type": "object",
  "required": [
    "movementId",
    "sellerRfc",
    "buyerRfc",
    "items",
    "fifoSnapshot",
    "terms",
    "isPartesRelacionadas"
  ],
  "properties": {
    "movementId": {
      "type": "string",
      "description": "Caracol inventoryMovements doc id"
    },
    "sellerRfc": {
      "type": "string",
      "description": "RFC of the dispatching tenant (transferor of ownership)"
    },
    "buyerRfc": {
      "type": "string",
      "description": "RFC of the receiving tenant (transferee of ownership)"
    },
    "items": {
      "type": "array",
      "description": "Line items at the moment of ownership transfer",
      "items": {
        "type": "object",
        "required": [
          "productId",
          "productName",
          "quantity",
          "unitPrice",
          "total"
        ],
        "properties": {
          "productId": {
            "type": "string"
          },
          "productName": {
            "type": "string"
          },
          "quantity": {
            "type": "number"
          },
          "unitPrice": {
            "type": "number"
          },
          "total": {
            "type": "number"
          }
        }
      }
    },
    "fifoSnapshot": {
      "type": "array",
      "description": "FIFO lots consumed for the movement",
      "items": {
        "type": "object",
        "required": [
          "source",
          "identifier",
          "quantity"
        ],
        "properties": {
          "source": {
            "type": "string",
            "enum": [
              "añada",
              "pedimento",
              "simple"
            ]
          },
          "identifier": {
            "type": "string"
          },
          "quantity": {
            "type": "number"
          },
          "pedimento": {
            "type": [
              "string",
              "null"
            ]
          }
        }
      }
    },
    "terms": {
      "type": "string",
      "enum": [
        "FOB-Origin",
        "FOB-Destination"
      ],
      "description": "INCOTERM that decides where ownership transfers (origin dock vs destination dock)"
    },
    "isPartesRelacionadas": {
      "type": "boolean",
      "description": "True when seller and buyer share controlling parties — Constanza enforces transfer-pricing documentation"
    },
    "transferPricingMethod": {
      "type": [
        "string",
        "null"
      ],
      "enum": [
        "CUP",
        "costo_adicionado",
        "precio_reventa",
        "MTU",
        "MEM",
        null
      ],
      "description": "Optional transfer-pricing method when isPartesRelacionadas is true"
    }
  }
}

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
{
  "type": {},
  "required": "example-required",
  "properties": "example-properties"
}

See also


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

Red Broom Software Ecosystem