Skip to main content
Let Midaz ask Tracer about a transaction before any balance moves.

Participants


  • Your institution. Your system creates, commits and cancels the transactions in Midaz.
  • Midaz. The ledger. It asks Tracer before it moves any balance, and confirms or releases the capacity that Tracer holds.
  • Tracer. Evaluates your active rules, holds capacity on your spending limits, and returns the decision to Midaz.

Before you start


Diagram


Transaction

Check Midaz transactions with Tracer: Transaction

Pending transaction

Check Midaz transactions with Tracer: Pending transaction

How you know it finished


Midaz returned the transaction, or the committed or canceled pending transaction.

Rules


  • The v1 transaction routes do not call Tracer.
  • In advisory mode, Midaz calls Tracer and never blocks the transaction.
  • In enforce mode, when Tracer does not answer in time, tracer.failPosture decides. With open, the default, the transaction goes on without the check. With closed, Midaz rejects it.
  • When no rule matches, Tracer does not apply the default decision on this path.
  • Tracer checks the account of the first source of the transaction, with its segment and portfolio. The amount includes fees.
  • Tracer receives only scalar metadata values, as text. Compare them as strings in the rules for this path.
  • A revert counts against your spending limits. Tracer does not apply your rules to it.
  • If a confirmation or a release does not reach Tracer, the result of the transaction does not change.
  • A request can skip the Tracer check with skip.tracer only when the ledger setting overrides.allowTracerSkip is true.

What can go wrong


The codes 0177, 0531, 0532, 0535 and 0178 come only from a ledger in enforce mode. The Midaz error list describes each code.