> ## Documentation Index
> Fetch the complete documentation index at: https://docs.jaantonio.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Stamping rules

> The constraints Lambda follows when validating, stamping, and delivering fiscal documents.

These rules explain why Lambda sometimes continues automatically and sometimes pauses. They are product rules, not accountant instructions to “fix CargoWise.”

## Ownership

<AccordionGroup>
  <Accordion title="CargoWise owns accounting truth">
    Amounts, match lines, FX evidence, and transaction fields come from CargoWise. Lambda maps and
    reconciles that evidence; it does not invent missing accounting values.
  </Accordion>

  <Accordion title="Facturapi and SAT own stamp validity">
    Field catalogs, RFC rules, PUE/PPD constraints, and stamp or cancellation acceptance belong to
    Facturapi and SAT. Lambda surfaces those results in the workspace note.
  </Accordion>

  <Accordion title="Lambda owns safe continuation">
    Lambda decides when a document can stamp, wait for a parent, fail for review, or stop for
    support. Safe continuation always beats forcing a stamp.
  </Accordion>
</AccordionGroup>

## Document rules

<AccordionGroup>
  <Accordion title="PPD income gets REPs; PUE income does not">
    Paid-later income expects payment complements. Paid-at-invoice income must not receive a REP.
    Mixed receipts stamp only the PPD lines. Organizations may also use the [REP eligibility
    window](/stamping/special/rep-eligibility-window).
  </Accordion>

  <Accordion title="Payment balances must stay consistent">
    Each installment needs a coherent previous balance, paid amount, and remaining balance. When
    those disagree, Lambda pauses with labeled values in the note.
  </Accordion>

  <Accordion title="Parents must be fiscally usable">
    Payments and credits need verifiable parent evidence before they continue. Missing parents wait;
    contradictory parents fail with a note.
  </Accordion>

  <Accordion title="Exchange-difference lines stay out of REPs">
    CargoWise EXX lines are accounting adjustments and are excluded from the stamped payment
    complement. See [Exchange-difference lines](/stamping/special/exchange-difference-lines).
  </Accordion>

  <Accordion title="No invented FX">
    Cross-currency payments need proven rate or MXN evidence from CargoWise. Lambda will not invent
    `EquivalenciaDR` or a rate to make a stamp succeed.
  </Accordion>
</AccordionGroup>

## Lifecycle rules

<AccordionGroup>
  <Accordion title="Do not duplicate an in-flight stamp">
    While a document is processing or waiting on SAT, do not submit a separate stamp for the same
    work. Lambda and Facturapi already own that attempt. See [Retry safety](/stamping/retry/safety).
  </Accordion>

  <Accordion title="Stamp success and CargoWise delivery are separate">
    A CFDI can be issued while XML/PDF delivery is still retrying. Delivery retries do not re-stamp.
  </Accordion>

  <Accordion title="Post-stamp drift is not a silent re-stamp">
    If later CargoWise data disagrees with an already-issued CFDI, Lambda will not quietly stamp
    again to match. Recovery waits for matching evidence or a deliberate support path — see
    [Recovery paths](/stamping/retry/paths).
  </Accordion>

  <Accordion title="Failed vs system error">
    **Failed** with a document classification means continuing could create an invalid fiscal
    result. A system error means configuration, provider availability, delivery, or recovery blocked
    a document that is not necessarily wrong.
  </Accordion>

  <Accordion title="External stamps are observed, not re-created">
    When CargoWise reports a Government Number from outside Lambda, Lambda records **Stamped
    externally** and does not create another CFDI. See [External
    stamps](/stamping/special/external-stamps).
  </Accordion>
</AccordionGroup>

## How to use these rules

1. Read the workspace status — [Statuses](/stamping/statuses).
2. Read the note for observed values and the classification ID.
3. Match the ID to [Failures](/stamping/failures) or [System errors](/stamping/system-errors).
4. Follow [Troubleshooting](/troubleshooting) for the next action.

For Lambda-only completion routes, start with [Special behaviors](/stamping/special/overview). For the pipeline itself, start with [How stamping works](/stamping/how-it-works).
