{
 "corpus": "orca-changes",
 "format_version": "1",
 "built": "2026-09-26",
 "snapshot": "2026-09-20",
 "commit": "019924ac64ee0aa0742b8f02a04488a83633385d",
 "license": {
  "name": "Creative Commons Attribution 4.0 International (CC BY 4.0)",
  "spdx": "CC-BY-4.0",
  "url": "https://creativecommons.org/licenses/by/4.0/",
  "attribution": "Data from Orca (https://qstve.com/orca/), CC BY 4.0. Snapshot 2026-09-20.",
  "notice": "Reference material about published payment rules. Not legal, compliance or financial advice. Orca cites rulebooks by section and edition and does not reproduce them; rights in the cited documents stay with their authors."
 },
 "history": {
  "available": true,
  "unit": "commit",
  "branch": "main",
  "shallow": false,
  "truncated": false,
  "scanned": 20,
  "published": 20,
  "reformat_only": 0
 },
 "method": {
  "derived_from": "the repository's own git history, read at build time with git log, git diff-tree and git cat-file",
  "unit": "one commit on this branch's first-parent line that touched corpus/. Git holds no record of what was published, so a commit is the finest honest unit. A merge appears as one change and says so.",
  "substantive_test": "two versions of a file are compared as parsed JSON at named field paths, never as text, with every string's leading, trailing and repeated whitespace collapsed and object key order ignored. Indentation, key order, a trailing newline, a re-sorted object and a whitespace-only edit therefore produce nothing. A file that changed and produced no item is counted under files_reformatted and is never presented as a rule change.",
  "kinds": [
   "added",
   "removed",
   "superseded",
   "deadline",
   "action",
   "meaning",
   "demoted",
   "promoted",
   "sources",
   "stale",
   "gap",
   "other"
  ],
  "unknown_fields": "a field path the build does not recognise is reported under \"other\", so a field added to the schema later cannot go unwatched.",
  "stale": "a version reads stale under the same rule the corpus applies, secondary sources only and the newest check more than 24 months old, measured against the day of its own commit. A record that crosses that line while nothing touched it is not a commit and is not here; the live figure is on the dashboard. A Core corroboration names a RuleSource uid instead of carrying a class, so such a record is not tested for staleness.",
  "not_counted": "a rail's watch block (when someone last looked at a source, not what a rule says), meta.brief, and the files outside corpus/<rail>/ such as the conflict register and the ISO 20022 crosswalk.",
  "limits": "the last 20 substantive changes, at most 24 items each, each value cut to 160 characters. The full history is in the repository."
 },
 "totals": {
  "added": 228,
  "removed": 0,
  "superseded": 0,
  "deadline": 1,
  "action": 1,
  "meaning": 73,
  "demoted": 1,
  "promoted": 129,
  "sources": 229,
  "stale": 0,
  "gap": 5,
  "other": 73
 },
 "changes": [
  {
   "commit": "81d85a39d4fee9bcbe018fa3d1de5b49de60b867",
   "date": "2026-09-26",
   "at": "2026-09-26T05:42:23-04:00",
   "merge": false,
   "subject": "rtp-return-request:UAPA: type effective_to 2026-09-30, IDS reporting widens UAPA (interpretation 1.d.ii); record scoped to the meaning in force until then",
   "rails": [
    "rtp-return-request"
   ],
   "files_changed": 1,
   "files_reformatted": 0,
   "counts": {
    "deadline": 1,
    "action": 1,
    "meaning": 2,
    "sources": 1,
    "other": 2
   },
   "items": [
    {
     "kind": "deadline",
     "uid": "rtp-return-request:UAPA",
     "rail": "rtp-return-request",
     "name": "Fraudulently induced payment",
     "file": "corpus/rtp-return-request/reason-codes/UAPA.json",
     "field": "facts.return_windows[0].deadline",
     "from": "until 2027-03-01 no stated deadline; from 2027-03-01, no later than 2 business days after the fraud determination (Fraud Reporting and Acting on Alerts inter...",
     "to": "none stated while this record applies; the interpretation's two business day limit (section 1.c) starts 2027-03-01, after this record's effective_to"
    },
    {
     "kind": "action",
     "uid": "rtp-return-request:UAPA",
     "rail": "rtp-return-request",
     "name": "Fraudulently induced payment",
     "file": "corpus/rtp-return-request/reason-codes/UAPA.json",
     "field": "actions",
     "from": "[\"Sending participant: send a Request for Return of Funds (camt.056) with UAPA as the fraud report required by Operating Rule II.G.2; email to TCH is not a s...",
     "to": "[\"Sending participant: send a Request for Return of Funds (camt.056) with UAPA as the fraud report required by Operating Rule II.G.2; email to TCH is not a s..."
    },
    {
     "kind": "meaning",
     "uid": "rtp-return-request:UAPA",
     "rail": "rtp-return-request",
     "name": "Fraudulently induced payment",
     "file": "corpus/rtp-return-request/reason-codes/UAPA.json",
     "field": "summary",
     "from": "The sending participant asks for money back, and reports fraud to TCH, because it has determined that the sender authorized the RTP payment but was tricked i...",
     "to": "The sending participant asks for money back, and reports fraud to TCH, because it has determined that the sender authorized an RTP-native payment but was dec..."
    },
    {
     "kind": "meaning",
     "uid": "rtp-return-request:UAPA",
     "rail": "rtp-return-request",
     "name": "Fraudulently induced payment",
     "file": "corpus/rtp-return-request/reason-codes/UAPA.json",
     "field": "triggers",
     "from": "[\"The sending participant determines the sender was deceived into sending an RTP-native payment, for example by someone impersonating a trusted party\",\"A Sen...",
     "to": "[\"The sending participant determines the sender was deceived into sending an RTP-native payment, for example by someone impersonating a trusted party\"]"
    },
    {
     "kind": "sources",
     "uid": "rtp-return-request:UAPA",
     "rail": "rtp-return-request",
     "name": "Fraudulently induced payment",
     "file": "corpus/rtp-return-request/reason-codes/UAPA.json",
     "field": "basis.sources",
     "from": "TCH RTP Rules Interpretation, Fraud Reporting and Acting on Alerts, RTP Operating Rule II.G, dated 2026-09-14 (marked Public), sections 1.a, 1.b (category ch...",
     "to": "TCH RTP Rules Interpretation, Fraud Reporting and Acting on Alerts, RTP Operating Rule II.G, dated 2026-09-14 (marked Public), sections 1.a, 1.b (category ch..."
    },
    {
     "kind": "other",
     "uid": "rtp-return-request:UAPA",
     "rail": "rtp-return-request",
     "name": "Fraudulently induced payment",
     "file": "corpus/rtp-return-request/reason-codes/UAPA.json",
     "field": "currency.effective_note",
     "from": "UAPA fraud reporting required from 2026-03-31; two business day reporting deadline in force 2027-03-01; IDS reporting 2026-09-30; OBO reporting 2027-03-01. F...",
     "to": "UAPA fraud reporting required from 2026-03-31 (section 1.b). This record's statement stops applying 2026-09-30: from that date, under section 1.d.ii of the r..."
    },
    {
     "kind": "other",
     "uid": "rtp-return-request:UAPA",
     "rail": "rtp-return-request",
     "name": "Fraudulently induced payment",
     "file": "corpus/rtp-return-request/reason-codes/UAPA.json",
     "field": "currency.effective_to",
     "to": "2026-09-30"
    }
   ],
   "items_omitted": 0
  },
  {
   "commit": "59204ebd76a068148dc9af044db9dc8a826053ef",
   "date": "2026-09-26",
   "at": "2026-09-26T05:31:08-04:00",
   "merge": true,
   "subject": "Merge branch 'worktree-agent-aa6d5ba3b31e6344c'",
   "rails": [
    "us-ach"
   ],
   "files_changed": 1,
   "files_reformatted": 0,
   "counts": {
    "added": 1
   },
   "items": [
    {
     "kind": "added",
     "uid": "us-ach:cal.federal-reserve-banks",
     "rail": "us-ach",
     "name": "Federal Reserve Banks banking days",
     "file": "corpus/us-ach/core/cal.federal-reserve-banks.json",
     "detail": "Calendar, draft"
    }
   ],
   "items_omitted": 0
  },
  {
   "commit": "fd5ef9fa3c6ad41d99b2038803eae827411f1083",
   "date": "2026-09-24",
   "at": "2026-09-24T07:35:40-04:00",
   "merge": true,
   "subject": "Merge branch 'worktree-agent-aa754c435158d911c'",
   "rails": [
    "pix"
   ],
   "files_changed": 5,
   "files_reformatted": 0,
   "counts": {
    "promoted": 5,
    "sources": 5
   },
   "items": [
    {
     "kind": "promoted",
     "uid": "pix:codeset.pain012-authorisation-rejection-reasons-from-2026",
     "rail": "pix",
     "name": "Pix Automatico authorisation rejection reasons (pain.012), catalog 5.13.1",
     "file": "corpus/pix/core/codeset.pain012-authorisation-rejection-reasons-from-2026.json",
     "field": "currency.status",
     "from": "draft",
     "to": "corroborated"
    },
    {
     "kind": "promoted",
     "uid": "pix:codeset.pain014-instruction-errors-from-2026",
     "rail": "pix",
     "name": "Pix Automatico instruction errors (pain.014), catalog 5.13.1",
     "file": "corpus/pix/core/codeset.pain014-instruction-errors-from-2026.json",
     "field": "currency.status",
     "from": "draft",
     "to": "corroborated"
    },
    {
     "kind": "promoted",
     "uid": "pix:rule.consumer-law-the-limit-panel-must-be-where-the-customer-from-2026",
     "rail": "pix",
     "name": "The limit panel must be where the customer already is, from 2026-10-01",
     "file": "corpus/pix/core/rule.consumer-law-the-limit-panel-must-be-where-the-customer-from-2026.json",
     "field": "currency.status",
     "from": "draft",
     "to": "corroborated"
    },
    {
     "kind": "promoted",
     "uid": "pix:rule.limits-contactless-and-initiation-without-redirection-from-2026",
     "rail": "pix",
     "name": "Contactless and initiation without redirection, from 2026-10-01",
     "file": "corpus/pix/core/rule.limits-contactless-and-initiation-without-redirection-from-2026.json",
     "field": "currency.status",
     "from": "draft",
     "to": "corroborated"
    },
    {
     "kind": "promoted",
     "uid": "pix:rule.limits-the-user-can-drive-the-limit-in-both-directions-from-2026",
     "rail": "pix",
     "name": "The user can drive the limit in both directions, from 2026-10-01",
     "file": "corpus/pix/core/rule.limits-the-user-can-drive-the-limit-in-both-directions-from-2026.json",
     "field": "currency.status",
     "from": "draft",
     "to": "corroborated"
    },
    {
     "kind": "sources",
     "uid": "pix:codeset.pain012-authorisation-rejection-reasons-from-2026",
     "rail": "pix",
     "name": "Pix Automatico authorisation rejection reasons (pain.012), catalog 5.13.1",
     "file": "corpus/pix/core/codeset.pain012-authorisation-rejection-reasons-from-2026.json",
     "change": "added",
     "field": "currency.corroboration",
     "to": "class from its RuleSource: pix:src.bcb-definicoes-detalhadas-mensagens-spi"
    },
    {
     "kind": "sources",
     "uid": "pix:codeset.pain014-instruction-errors-from-2026",
     "rail": "pix",
     "name": "Pix Automatico instruction errors (pain.014), catalog 5.13.1",
     "file": "corpus/pix/core/codeset.pain014-instruction-errors-from-2026.json",
     "change": "added",
     "field": "currency.corroboration",
     "to": "class from its RuleSource: pix:src.bcb-definicoes-detalhadas-mensagens-spi"
    },
    {
     "kind": "sources",
     "uid": "pix:rule.consumer-law-the-limit-panel-must-be-where-the-customer-from-2026",
     "rail": "pix",
     "name": "The limit panel must be where the customer already is, from 2026-10-01",
     "file": "corpus/pix/core/rule.consumer-law-the-limit-panel-must-be-where-the-customer-from-2026.json",
     "change": "added",
     "field": "currency.corroboration",
     "to": "class from its RuleSource: pix:src.bcb-in-746-2026-limites"
    },
    {
     "kind": "sources",
     "uid": "pix:rule.limits-contactless-and-initiation-without-redirection-from-2026",
     "rail": "pix",
     "name": "Contactless and initiation without redirection, from 2026-10-01",
     "file": "corpus/pix/core/rule.limits-contactless-and-initiation-without-redirection-from-2026.json",
     "change": "added",
     "field": "currency.corroboration",
     "to": "class from its RuleSource: pix:src.bcb-in-746-2026-limites"
    },
    {
     "kind": "sources",
     "uid": "pix:rule.limits-the-user-can-drive-the-limit-in-both-directions-from-2026",
     "rail": "pix",
     "name": "The user can drive the limit in both directions, from 2026-10-01",
     "file": "corpus/pix/core/rule.limits-the-user-can-drive-the-limit-in-both-directions-from-2026.json",
     "change": "added",
     "field": "currency.corroboration",
     "to": "class from its RuleSource: pix:src.bcb-in-746-2026-limites"
    }
   ],
   "items_omitted": 0
  },
  {
   "commit": "387572878d7af8c7615048bfd312050b43061151",
   "date": "2026-09-24",
   "at": "2026-09-24T07:28:06-04:00",
   "merge": true,
   "subject": "Merge branch 'worktree-agent-af25fbabce1c7db26'",
   "rails": [
    "pix"
   ],
   "files_changed": 11,
   "files_reformatted": 0,
   "counts": {
    "added": 6,
    "other": 10
   },
   "items": [
    {
     "kind": "added",
     "uid": "pix:codeset.pain012-authorisation-rejection-reasons-from-2026",
     "rail": "pix",
     "name": "Pix Automatico authorisation rejection reasons (pain.012), catalog 5.13.1",
     "file": "corpus/pix/core/codeset.pain012-authorisation-rejection-reasons-from-2026.json",
     "detail": "CodeSet, draft"
    },
    {
     "kind": "added",
     "uid": "pix:codeset.pain014-instruction-errors-from-2026",
     "rail": "pix",
     "name": "Pix Automatico instruction errors (pain.014), catalog 5.13.1",
     "file": "corpus/pix/core/codeset.pain014-instruction-errors-from-2026.json",
     "detail": "CodeSet, draft"
    },
    {
     "kind": "added",
     "uid": "pix:rule.consumer-law-the-limit-panel-must-be-where-the-customer-from-2026",
     "rail": "pix",
     "name": "The limit panel must be where the customer already is, from 2026-10-01",
     "file": "corpus/pix/core/rule.consumer-law-the-limit-panel-must-be-where-the-customer-from-2026.json",
     "detail": "Rule, draft"
    },
    {
     "kind": "added",
     "uid": "pix:rule.limits-contactless-and-initiation-without-redirection-from-2026",
     "rail": "pix",
     "name": "Contactless and initiation without redirection, from 2026-10-01",
     "file": "corpus/pix/core/rule.limits-contactless-and-initiation-without-redirection-from-2026.json",
     "detail": "Rule, draft"
    },
    {
     "kind": "added",
     "uid": "pix:rule.limits-the-user-can-drive-the-limit-in-both-directions-from-2026",
     "rail": "pix",
     "name": "The user can drive the limit in both directions, from 2026-10-01",
     "file": "corpus/pix/core/rule.limits-the-user-can-drive-the-limit-in-both-directions-from-2026.json",
     "detail": "Rule, draft"
    },
    {
     "kind": "added",
     "uid": "pix:src.bcb-in-746-2026-limites",
     "rail": "pix",
     "name": "Instrucao Normativa BCB n. 746/2026, amending the Pix value limits",
     "file": "corpus/pix/core/src.bcb-in-746-2026-limites.json",
     "detail": "RuleSource, draft"
    },
    {
     "kind": "other",
     "uid": "pix:codeset.pain012-authorisation-rejection-reasons",
     "rail": "pix",
     "name": "Pix Automatico authorisation rejection reasons (pain.012)",
     "file": "corpus/pix/core/codeset.pain012-authorisation-rejection-reasons.json",
     "field": "currency.effective_note",
     "from": "Drafted 2026-09-22 by the Pix Automatico and Cobranca drafting session from the documents named in basis, each opened and read that day. Values are the domai...",
     "to": "Drafted 2026-09-22 by the Pix Automatico and Cobranca drafting session from the documents named in basis, each opened and read that day. Values are the domai..."
    },
    {
     "kind": "other",
     "uid": "pix:codeset.pain012-authorisation-rejection-reasons",
     "rail": "pix",
     "name": "Pix Automatico authorisation rejection reasons (pain.012)",
     "file": "corpus/pix/core/codeset.pain012-authorisation-rejection-reasons.json",
     "field": "currency.effective_to",
     "to": "2026-10-25"
    },
    {
     "kind": "other",
     "uid": "pix:codeset.pain014-instruction-errors",
     "rail": "pix",
     "name": "Pix Automatico instruction errors (pain.014)",
     "file": "corpus/pix/core/codeset.pain014-instruction-errors.json",
     "field": "currency.effective_note",
     "from": "Drafted 2026-09-22 by the Pix Automatico and Cobranca drafting session from the documents named in basis, each opened and read that day. Values are the domai...",
     "to": "Drafted 2026-09-22 by the Pix Automatico and Cobranca drafting session from the documents named in basis, each opened and read that day. Values are the domai..."
    },
    {
     "kind": "other",
     "uid": "pix:codeset.pain014-instruction-errors",
     "rail": "pix",
     "name": "Pix Automatico instruction errors (pain.014)",
     "file": "corpus/pix/core/codeset.pain014-instruction-errors.json",
     "field": "currency.effective_to",
     "to": "2026-10-25"
    },
    {
     "kind": "other",
     "uid": "pix:rule.consumer-law-the-limit-panel-must-be-where-the-customer",
     "rail": "pix",
     "name": "The limit panel must be where the customer already is",
     "file": "corpus/pix/core/rule.consumer-law-the-limit-panel-must-be-where-the-customer.json",
     "field": "currency.effective_note",
     "from": "Split out of pix:consumer-law by the 2026-09 Orca Core migration; no rule change identified. effective_since is the fact's.",
     "to": "Split out of pix:consumer-law by the 2026-09 Orca Core migration; no rule change identified. effective_since is the fact's. Stops applying 2026-10-01, when I..."
    },
    {
     "kind": "other",
     "uid": "pix:rule.consumer-law-the-limit-panel-must-be-where-the-customer",
     "rail": "pix",
     "name": "The limit panel must be where the customer already is",
     "file": "corpus/pix/core/rule.consumer-law-the-limit-panel-must-be-where-the-customer.json",
     "field": "currency.effective_to",
     "to": "2026-10-01"
    },
    {
     "kind": "other",
     "uid": "pix:rule.limits-contactless-and-initiation-without-redirection",
     "rail": "pix",
     "name": "Contactless and initiation without redirection",
     "file": "corpus/pix/core/rule.limits-contactless-and-initiation-without-redirection.json",
     "field": "currency.effective_note",
     "from": "Split out of pix:limits by the 2026-09 Orca Core migration; no rule change identified. The line itself dates this from 2025-12-01.",
     "to": "Split out of pix:limits by the 2026-09 Orca Core migration; no rule change identified. The line itself dates this from 2025-12-01. Stops applying 2026-10-01,..."
    },
    {
     "kind": "other",
     "uid": "pix:rule.limits-contactless-and-initiation-without-redirection",
     "rail": "pix",
     "name": "Contactless and initiation without redirection",
     "file": "corpus/pix/core/rule.limits-contactless-and-initiation-without-redirection.json",
     "field": "currency.effective_to",
     "to": "2026-10-01"
    },
    {
     "kind": "other",
     "uid": "pix:rule.limits-the-user-can-drive-the-limit-in-both-directions",
     "rail": "pix",
     "name": "The user can drive the limit in both directions",
     "file": "corpus/pix/core/rule.limits-the-user-can-drive-the-limit-in-both-directions.json",
     "field": "currency.effective_note",
     "from": "Split out of pix:limits by the 2026-09 Orca Core migration; no rule change identified. effective_since is the fact's.",
     "to": "Split out of pix:limits by the 2026-09 Orca Core migration; no rule change identified. effective_since is the fact's. Stops applying 2026-10-01, when IN BCB ..."
    },
    {
     "kind": "other",
     "uid": "pix:rule.limits-the-user-can-drive-the-limit-in-both-directions",
     "rail": "pix",
     "name": "The user can drive the limit in both directions",
     "file": "corpus/pix/core/rule.limits-the-user-can-drive-the-limit-in-both-directions.json",
     "field": "currency.effective_to",
     "to": "2026-10-01"
    }
   ],
   "items_omitted": 0
  },
  {
   "commit": "b4bc9a14df776f361524ce3c129bb0723868b5ea",
   "date": "2026-09-24",
   "at": "2026-09-24T05:37:04-04:00",
   "merge": true,
   "subject": "Merge branch 'worktree-agent-a9461c0602fc2f142'",
   "rails": [
    "sepa-sct-inst"
   ],
   "files_changed": 4,
   "files_reformatted": 0,
   "counts": {
    "meaning": 12,
    "promoted": 1,
    "sources": 20,
    "gap": 3,
    "other": 10
   },
   "items": [
    {
     "kind": "meaning",
     "uid": "sepa-sct-inst:consumer-law",
     "rail": "sepa-sct-inst",
     "name": "What consumer law applies, and what does it give a consumer that the rules do not?",
     "file": "corpus/sepa-sct-inst/profile/consumer-law.json",
     "field": "applies_to",
     "from": "a consumer payer or payee on a SEPA Instant Credit Transfer whose account is held in an EEA Member State, with the national transposition of the Payment Serv...",
     "to": "a consumer payer or payee on a SEPA Instant Credit Transfer whose account is held in an EEA Member State, with the national transposition of the Payment Serv..."
    },
    {
     "kind": "meaning",
     "uid": "sepa-sct-inst:consumer-law",
     "rail": "sepa-sct-inst",
     "name": "What consumer law applies, and what does it give a consumer that the rules do not?",
     "file": "corpus/sepa-sct-inst/profile/consumer-law.json",
     "field": "details",
     "from": "[{\"label\":\"Which instruments the rulebook names\",\"value\":\"Participation is conditional on complying with the SEPA Regulation, the Regulation on information a...",
     "to": "[{\"label\":\"Which instruments the rulebook names\",\"value\":\"Participation is conditional on complying with the SEPA Regulation, the Regulation on information a..."
    },
    {
     "kind": "meaning",
     "uid": "sepa-sct-inst:consumer-law",
     "rail": "sepa-sct-inst",
     "name": "What consumer law applies, and what does it give a consumer that the rules do not?",
     "file": "corpus/sepa-sct-inst/profile/consumer-law.json",
     "field": "exceptions",
     "from": "[\"Business customers can opt out of the payee check for bulk submissions, and can opt back in whenever they like. Their bank has to explain the liability con...",
     "to": "[\"Business customers sending payment orders as a package may switch the payee check off, and back on at any time; consumers have no such option. When a busin..."
    },
    {
     "kind": "meaning",
     "uid": "sepa-sct-inst:consumer-law",
     "rail": "sepa-sct-inst",
     "name": "What consumer law applies, and what does it give a consumer that the rules do not?",
     "file": "corpus/sepa-sct-inst/profile/consumer-law.json",
     "field": "statement",
     "from": "The rulebook binds banks to each other and gives a customer nothing directly. A consumer's position comes from the Payment Services Directive as nationally t...",
     "to": "The rulebook binds banks to each other and gives a customer nothing directly. A consumer's position comes from the Payment Services Directive as nationally t..."
    },
    {
     "kind": "meaning",
     "uid": "sepa-sct-inst:messages",
     "rail": "sepa-sct-inst",
     "name": "What messages exist on this rail, and what standard are they in?",
     "file": "corpus/sepa-sct-inst/profile/messages.json",
     "field": "caveat",
     "from": "An implementer cannot build from the rulebook, and on this scheme the gap matters more, because the confirmation message is the whole control flow. Field nam...",
     "to": "The confirmation message is the whole control flow on this scheme, so the mapping matters more than on SCT: the same pacs.002 says yes or no, and a returned ..."
    },
    {
     "kind": "meaning",
     "uid": "sepa-sct-inst:messages",
     "rail": "sepa-sct-inst",
     "name": "What messages exist on this rail, and what standard are they in?",
     "file": "corpus/sepa-sct-inst/profile/messages.json",
     "field": "details",
     "from": "[{\"label\":\"The ten datasets\",\"value\":\"DS-01 the customer's instruction to its PSP, DS-02 the inter-PSP payment, DS-03 the confirmation message, DS-04 what th...",
     "to": "[{\"label\":\"The ten datasets\",\"value\":\"DS-01 the customer's instruction to its PSP, DS-02 the inter-PSP payment, DS-03 the confirmation message, DS-04 what th..."
    },
    {
     "kind": "meaning",
     "uid": "sepa-sct-inst:messages",
     "rail": "sepa-sct-inst",
     "name": "What messages exist on this rail, and what standard are they in?",
     "file": "corpus/sepa-sct-inst/profile/messages.json",
     "field": "exceptions",
     "from": "[\"The ISO message identifiers for this scheme are in the two Implementation Guidelines and not in the rulebook. This record does not assert them. [Unverified...",
     "to": "[\"The customer-side datasets, DS-01, DS-04 and DS-10, are mapped in the SCT Inst Customer-to-PSP Implementation Guidelines, which were not read for this reco..."
    },
    {
     "kind": "meaning",
     "uid": "sepa-sct-inst:messages",
     "rail": "sepa-sct-inst",
     "name": "What messages exist on this rail, and what standard are they in?",
     "file": "corpus/sepa-sct-inst/profile/messages.json",
     "field": "statement",
     "from": "The rulebook names no ISO message. It defines ten datasets and a list of attributes and leaves the ISO 20022 XML mapping to two Implementation Guidelines it ...",
     "to": "The rulebook names no ISO message. It defines ten datasets and a list of attributes and leaves the ISO 20022 XML mapping to two Implementation Guidelines it ..."
    },
    {
     "kind": "meaning",
     "uid": "sepa-sct-inst:participants",
     "rail": "sepa-sct-inst",
     "name": "Who can be on this rail, in what roles, and who cannot?",
     "file": "corpus/sepa-sct-inst/profile/participants.json",
     "field": "applies_to",
     "from": "adherence to the EPC SEPA Instant Credit Transfer scheme and the roles of the parties to a transaction made under it",
     "to": "adherence to the EPC SEPA Instant Credit Transfer scheme and the roles of the parties to a transaction made under it, and, where it sits in front of an SCT I..."
    },
    {
     "kind": "meaning",
     "uid": "sepa-sct-inst:participants",
     "rail": "sepa-sct-inst",
     "name": "Who can be on this rail, in what roles, and who cannot?",
     "file": "corpus/sepa-sct-inst/profile/participants.json",
     "field": "details",
     "from": "[{\"label\":\"The four roles in a payment\",\"value\":\"The originator who instructs, the originator PSP that reserves and sends, the beneficiary PSP that receives,...",
     "to": "[{\"label\":\"The four roles in a payment\",\"value\":\"The originator who instructs, the originator PSP that reserves and sends, the beneficiary PSP that receives,..."
    },
    {
     "kind": "meaning",
     "uid": "sepa-sct-inst:participants",
     "rail": "sepa-sct-inst",
     "name": "Who can be on this rail, in what roles, and who cannot?",
     "file": "corpus/sepa-sct-inst/profile/participants.json",
     "field": "exceptions",
     "from": "[\"Adherence is per scheme. A Participant in SCT Inst is not thereby in SCT, SDD Core or SDD B2B. [Inference: each scheme's rulebook carries its own Adherence...",
     "to": "[\"Adherence is per scheme. A Participant in SCT Inst is not thereby in SCT, SDD Core or SDD B2B. [Inference: each scheme's rulebook carries its own Adherence..."
    },
    {
     "kind": "meaning",
     "uid": "sepa-sct-inst:participants",
     "rail": "sepa-sct-inst",
     "name": "Who can be on this rail, in what roles, and who cannot?",
     "file": "corpus/sepa-sct-inst/profile/participants.json",
     "field": "statement",
     "from": "The eligibility tests are the SEPA Credit Transfer (SCT) tests almost word for word, but the participation duty is not. On SCT a Participant has to do both d...",
     "to": "The eligibility tests are the SEPA Credit Transfer (SCT) tests almost word for word, but the participation duty is not. On SCT a Participant has to do both d..."
    },
    {
     "kind": "promoted",
     "uid": "sepa-sct-inst:consumer-law",
     "rail": "sepa-sct-inst",
     "name": "What consumer law applies, and what does it give a consumer that the rules do not?",
     "file": "corpus/sepa-sct-inst/profile/consumer-law.json",
     "field": "currency.status",
     "from": "draft",
     "to": "corroborated"
    },
    {
     "kind": "sources",
     "uid": "sepa-sct-inst:consumer-law",
     "rail": "sepa-sct-inst",
     "name": "What consumer law applies, and what does it give a consumer that the rules do not?",
     "file": "corpus/sepa-sct-inst/profile/consumer-law.json",
     "change": "added",
     "field": "currency.corroboration",
     "to": "authoritative_primary: https://www.europeanpaymentscouncil.eu/sites/default/files/kb/file/2025-10/EPC004-16%202025%20SCT%20Instant%20Rulebook%20v1.1.pdf"
    },
    {
     "kind": "sources",
     "uid": "sepa-sct-inst:consumer-law",
     "rail": "sepa-sct-inst",
     "name": "What consumer law applies, and what does it give a consumer that the rules do not?",
     "file": "corpus/sepa-sct-inst/profile/consumer-law.json",
     "change": "added",
     "field": "currency.corroboration",
     "to": "authoritative_primary: https://www.europeanpaymentscouncil.eu/sites/default/files/kb/file/2026-03/EPC218-23%20v1.1%202026%20Verification%20Of%20Payee%20Schem..."
    },
    {
     "kind": "sources",
     "uid": "sepa-sct-inst:consumer-law",
     "rail": "sepa-sct-inst",
     "name": "What consumer law applies, and what does it give a consumer that the rules do not?",
     "file": "corpus/sepa-sct-inst/profile/consumer-law.json",
     "change": "added",
     "field": "currency.corroboration",
     "to": "authoritative_primary: https://www.europeanpaymentscouncil.eu/sites/default/files/kb/file/2026-05/EPC103-24%20v1.1.1%20VOP%20API%20Specifications.pdf"
    },
    {
     "kind": "sources",
     "uid": "sepa-sct-inst:consumer-law",
     "rail": "sepa-sct-inst",
     "name": "What consumer law applies, and what does it give a consumer that the rules do not?",
     "file": "corpus/sepa-sct-inst/profile/consumer-law.json",
     "change": "added",
     "field": "currency.corroboration",
     "to": "authoritative_primary: https://www.europeanpaymentscouncil.eu/sites/default/files/kb/file/2024-10/EPC288-23%20v1.0%20EPC%20Recommendations%20for%20the%20Matc..."
    },
    {
     "kind": "sources",
     "uid": "sepa-sct-inst:consumer-law",
     "rail": "sepa-sct-inst",
     "name": "What consumer law applies, and what does it give a consumer that the rules do not?",
     "file": "corpus/sepa-sct-inst/profile/consumer-law.json",
     "change": "added",
     "field": "currency.corroboration",
     "to": "authoritative_primary: https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:02012R0260-20240408"
    },
    {
     "kind": "sources",
     "uid": "sepa-sct-inst:consumer-law",
     "rail": "sepa-sct-inst",
     "name": "What consumer law applies, and what does it give a consumer that the rules do not?",
     "file": "corpus/sepa-sct-inst/profile/consumer-law.json",
     "change": "added",
     "field": "currency.corroboration",
     "to": "authoritative_primary: https://eur-lex.europa.eu/eli/dir/2015/2366/oj"
    },
    {
     "kind": "sources",
     "uid": "sepa-sct-inst:consumer-law",
     "rail": "sepa-sct-inst",
     "name": "What consumer law applies, and what does it give a consumer that the rules do not?",
     "file": "corpus/sepa-sct-inst/profile/consumer-law.json",
     "field": "basis.sources",
     "from": "EPC004-16 SEPA Instant Credit Transfer Scheme Rulebook 2025 version 1.1 (effective 2025-10-05, marked Public), read for this record: sections 0.1.1, 3.1, 4.2...",
     "to": "EPC004-16 SEPA Instant Credit Transfer Scheme Rulebook 2025 version 1.1 (effective 2025-10-05, marked Public), read for this record: sections 0.1.1, 3.1, 4.2..."
    },
    {
     "kind": "sources",
     "uid": "sepa-sct-inst:messages",
     "rail": "sepa-sct-inst",
     "name": "What messages exist on this rail, and what standard are they in?",
     "file": "corpus/sepa-sct-inst/profile/messages.json",
     "change": "added",
     "field": "currency.corroboration",
     "to": "authoritative_primary: https://www.europeanpaymentscouncil.eu/sites/default/files/kb/file/2025-10/EPC122-16%20SCT%20Inst%20Inter-PSP%20IG%202025%20V1.0.pdf"
    },
    {
     "kind": "sources",
     "uid": "sepa-sct-inst:messages",
     "rail": "sepa-sct-inst",
     "name": "What messages exist on this rail, and what standard are they in?",
     "file": "corpus/sepa-sct-inst/profile/messages.json",
     "change": "added",
     "field": "currency.corroboration",
     "to": "authoritative_primary: https://www.europeanpaymentscouncil.eu/sites/default/files/kb/file/2025-10/EPC131-17%20v4.0%20Clarification%20Paper%20SCT%20and%20SCT%..."
    },
    {
     "kind": "sources",
     "uid": "sepa-sct-inst:messages",
     "rail": "sepa-sct-inst",
     "name": "What messages exist on this rail, and what standard are they in?",
     "file": "corpus/sepa-sct-inst/profile/messages.json",
     "change": "added",
     "field": "currency.corroboration",
     "to": "authoritative_primary: https://www.europeanpaymentscouncil.eu/sites/default/files/kb/file/2023-03/EPC207-14%20EPC%20Payment%20Scheme%20Management%20Rules%20v..."
    },
    {
     "kind": "sources",
     "uid": "sepa-sct-inst:messages",
     "rail": "sepa-sct-inst",
     "name": "What messages exist on this rail, and what standard are they in?",
     "file": "corpus/sepa-sct-inst/profile/messages.json",
     "change": "added",
     "field": "currency.corroboration",
     "to": "authoritative_primary: https://www.europeanpaymentscouncil.eu/sites/default/files/kb/file/2025-10/EPC059-18%20v7.0%20Guidance%20on%20Reason%20Codes%20for%20S..."
    }
   ],
   "items_omitted": 22
  },
  {
   "commit": "e48a8d075fe5d6081f39c27a1c82b244a85d8bdd",
   "date": "2026-09-24",
   "at": "2026-09-24T04:59:02-04:00",
   "merge": true,
   "subject": "Merge branch 'worktree-agent-ab4a42c65f55a52b9'",
   "rails": [
    "pix"
   ],
   "files_changed": 45,
   "files_reformatted": 0,
   "counts": {
    "promoted": 45,
    "sources": 71
   },
   "items": [
    {
     "kind": "promoted",
     "uid": "pix:codeset.pain011-cancellation-reasons",
     "rail": "pix",
     "name": "Pix Automatico cancellation reasons (pain.011)",
     "file": "corpus/pix/core/codeset.pain011-cancellation-reasons.json",
     "field": "currency.status",
     "from": "draft",
     "to": "corroborated"
    },
    {
     "kind": "promoted",
     "uid": "pix:codeset.pain012-authorisation-rejection-reasons",
     "rail": "pix",
     "name": "Pix Automatico authorisation rejection reasons (pain.012)",
     "file": "corpus/pix/core/codeset.pain012-authorisation-rejection-reasons.json",
     "field": "currency.status",
     "from": "draft",
     "to": "corroborated"
    },
    {
     "kind": "promoted",
     "uid": "pix:codeset.pain014-instruction-errors",
     "rail": "pix",
     "name": "Pix Automatico instruction errors (pain.014)",
     "file": "corpus/pix/core/codeset.pain014-instruction-errors.json",
     "field": "currency.status",
     "from": "draft",
     "to": "corroborated"
    },
    {
     "kind": "promoted",
     "uid": "pix:mandate.pix-automatico-authorisation",
     "rail": "pix",
     "name": "Pix Automatico authorisation",
     "file": "corpus/pix/core/mandate.pix-automatico-authorisation.json",
     "field": "currency.status",
     "from": "draft",
     "to": "corroborated"
    },
    {
     "kind": "promoted",
     "uid": "pix:rule.agendado-and-scheduled-charges-settle-00-to-08-with-an-evening-retry",
     "rail": "pix",
     "name": "Pix Agendado and scheduled due date charges: the settlement window and the evening retry",
     "file": "corpus/pix/core/rule.agendado-and-scheduled-charges-settle-00-to-08-with-an-evening-retry.json",
     "field": "currency.status",
     "from": "draft",
     "to": "corroborated"
    },
    {
     "kind": "promoted",
     "uid": "pix:rule.automatico-a-cycle-on-a-day-the-month-lacks",
     "rail": "pix",
     "name": "Pix Automatico: when a cycle's day does not exist in the month",
     "file": "corpus/pix/core/rule.automatico-a-cycle-on-a-day-the-month-lacks.json",
     "field": "currency.status",
     "from": "draft",
     "to": "corroborated"
    },
    {
     "kind": "promoted",
     "uid": "pix:rule.automatico-a-faulty-payment-is-refunded-within-24-hours",
     "rail": "pix",
     "name": "Pix Automatico: the payer's bank refunds a faulty payment within 24 hours",
     "file": "corpus/pix/core/rule.automatico-a-faulty-payment-is-refunded-within-24-hours.json",
     "field": "currency.status",
     "from": "draft",
     "to": "corroborated"
    },
    {
     "kind": "promoted",
     "uid": "pix:rule.automatico-a-pending-request-lapses-after-30-days",
     "rail": "pix",
     "name": "Pix Automatico: a journey 1 request stays open for at most 30 days",
     "file": "corpus/pix/core/rule.automatico-a-pending-request-lapses-after-30-days.json",
     "field": "currency.status",
     "from": "draft",
     "to": "corroborated"
    },
    {
     "kind": "promoted",
     "uid": "pix:rule.automatico-a-pre-approved-credit-line-may-fund-it",
     "rail": "pix",
     "name": "Pix Automatico: a pre-approved credit line may pay what the balance cannot",
     "file": "corpus/pix/core/rule.automatico-a-pre-approved-credit-line-may-fund-it.json",
     "field": "currency.status",
     "from": "draft",
     "to": "corroborated"
    },
    {
     "kind": "promoted",
     "uid": "pix:rule.automatico-a-settlement-error-allows-a-same-day-resend",
     "rail": "pix",
     "name": "Pix Automatico: resending after an error in the settlement flow",
     "file": "corpus/pix/core/rule.automatico-a-settlement-error-allows-a-same-day-resend.json",
     "field": "currency.status",
     "from": "draft",
     "to": "corroborated"
    },
    {
     "kind": "promoted",
     "uid": "pix:rule.automatico-a-standing-authorisation-not-a-debit-pull",
     "rail": "pix",
     "name": "Pix Automatico: one authorisation, then collections the payer's bank pushes",
     "file": "corpus/pix/core/rule.automatico-a-standing-authorisation-not-a-debit-pull.json",
     "field": "currency.status",
     "from": "draft",
     "to": "corroborated"
    },
    {
     "kind": "promoted",
     "uid": "pix:rule.automatico-cancelling-one-scheduled-payment",
     "rail": "pix",
     "name": "Pix Automatico: calling off one scheduled payment",
     "file": "corpus/pix/core/rule.automatico-cancelling-one-scheduled-payment.json",
     "field": "currency.status",
     "from": "draft",
     "to": "corroborated"
    },
    {
     "kind": "promoted",
     "uid": "pix:rule.automatico-cancelling-the-authorisation-stops-what-is-scheduled",
     "rail": "pix",
     "name": "Pix Automatico: what a cancellation does to payments already scheduled",
     "file": "corpus/pix/core/rule.automatico-cancelling-the-authorisation-stops-what-is-scheduled.json",
     "field": "currency.status",
     "from": "draft",
     "to": "corroborated"
    },
    {
     "kind": "promoted",
     "uid": "pix:rule.automatico-either-side-may-cancel-the-authorisation",
     "rail": "pix",
     "name": "Pix Automatico: cancelling the authorisation, and the recorded reasons",
     "file": "corpus/pix/core/rule.automatico-either-side-may-cancel-the-authorisation.json",
     "field": "currency.status",
     "from": "draft",
     "to": "corroborated"
    },
    {
     "kind": "promoted",
     "uid": "pix:rule.automatico-five-recurrence-periods",
     "rail": "pix",
     "name": "Pix Automatico: weekly, monthly, quarterly, half-yearly or yearly, and one charge per cycle",
     "file": "corpus/pix/core/rule.automatico-five-recurrence-periods.json",
     "field": "currency.status",
     "from": "draft",
     "to": "corroborated"
    },
    {
     "kind": "promoted",
     "uid": "pix:rule.automatico-four-journeys-to-an-authorisation",
     "rail": "pix",
     "name": "Pix Automatico: the four ways an authorisation is given",
     "file": "corpus/pix/core/rule.automatico-four-journeys-to-an-authorisation.json",
     "field": "currency.status",
     "from": "draft",
     "to": "corroborated"
    },
    {
     "kind": "promoted",
     "uid": "pix:rule.automatico-instructions-go-2-to-10-days-ahead",
     "rail": "pix",
     "name": "Pix Automatico: when a collection instruction may be sent",
     "file": "corpus/pix/core/rule.automatico-instructions-go-2-to-10-days-ahead.json",
     "field": "currency.status",
     "from": "draft",
     "to": "corroborated"
    },
    {
     "kind": "promoted",
     "uid": "pix:rule.automatico-journey-3-needs-the-first-payment-to-settle",
     "rail": "pix",
     "name": "Pix Automatico: in journey 3 the first payment is a condition of the authorisation",
     "file": "corpus/pix/core/rule.automatico-journey-3-needs-the-first-payment-to-settle.json",
     "field": "currency.status",
     "from": "draft",
     "to": "corroborated"
    },
    {
     "kind": "promoted",
     "uid": "pix:rule.automatico-retries-on-later-days",
     "rail": "pix",
     "name": "Pix Automatico: retries on later days, at most 3 within 7 days",
     "file": "corpus/pix/core/rule.automatico-retries-on-later-days.json",
     "field": "currency.status",
     "from": "draft",
     "to": "corroborated"
    },
    {
     "kind": "promoted",
     "uid": "pix:rule.automatico-settlement-date-is-the-due-date",
     "rail": "pix",
     "name": "Pix Automatico: the settlement date is the due date, and payments run on any day",
     "file": "corpus/pix/core/rule.automatico-settlement-date-is-the-due-date.json",
     "field": "currency.status",
     "from": "draft",
     "to": "corroborated"
    },
    {
     "kind": "promoted",
     "uid": "pix:rule.automatico-settles-between-00-and-08-with-an-evening-retry",
     "rail": "pix",
     "name": "Pix Automatico: the settlement window on the day and the same day retry",
     "file": "corpus/pix/core/rule.automatico-settles-between-00-and-08-with-an-evening-retry.json",
     "field": "currency.status",
     "from": "draft",
     "to": "corroborated"
    },
    {
     "kind": "promoted",
     "uid": "pix:rule.automatico-the-pacs008-is-marked-auto",
     "rail": "pix",
     "name": "Pix Automatico: how the settlement message identifies it",
     "file": "corpus/pix/core/rule.automatico-the-pacs008-is-marked-auto.json",
     "field": "currency.status",
     "from": "draft",
     "to": "corroborated"
    },
    {
     "kind": "promoted",
     "uid": "pix:rule.automatico-the-payer-sets-the-maximum-the-business-sets-its-floor",
     "rail": "pix",
     "name": "Pix Automatico: who fixes the ceiling on a variable authorisation",
     "file": "corpus/pix/core/rule.automatico-the-payer-sets-the-maximum-the-business-sets-its-floor.json",
     "field": "currency.status",
     "from": "draft",
     "to": "corroborated"
    },
    {
     "kind": "promoted",
     "uid": "pix:rule.automatico-the-payers-bank-schedules-within-2-hours-or-refuses",
     "rail": "pix",
     "name": "Pix Automatico: the payer's bank schedules within two hours or refuses",
     "file": "corpus/pix/core/rule.automatico-the-payers-bank-schedules-within-2-hours-or-refuses.json",
     "field": "currency.status",
     "from": "draft",
     "to": "corroborated"
    }
   ],
   "items_omitted": 92
  },
  {
   "commit": "3a1aede181b02a7e34d99e95259a36bc8294d44b",
   "date": "2026-09-24",
   "at": "2026-09-24T04:50:15-04:00",
   "merge": false,
   "subject": "in-upi: corroborate rule.upi-autopay-every-mandate-event-is-notified against NPCI UPI Consolidated Circular",
   "rails": [
    "in-upi"
   ],
   "files_changed": 1,
   "files_reformatted": 0,
   "counts": {
    "promoted": 1,
    "sources": 1
   },
   "items": [
    {
     "kind": "promoted",
     "uid": "in-upi:rule.upi-autopay-every-mandate-event-is-notified",
     "rail": "in-upi",
     "name": "UPI AutoPay: the customer hears about every change to a mandate, twice",
     "file": "corpus/in-upi/core/rule.upi-autopay-every-mandate-event-is-notified.json",
     "field": "currency.status",
     "from": "draft",
     "to": "corroborated"
    },
    {
     "kind": "sources",
     "uid": "in-upi:rule.upi-autopay-every-mandate-event-is-notified",
     "rail": "in-upi",
     "name": "UPI AutoPay: the customer hears about every change to a mandate, twice",
     "file": "corpus/in-upi/core/rule.upi-autopay-every-mandate-event-is-notified.json",
     "change": "added",
     "field": "currency.corroboration",
     "to": "class from its RuleSource: in-upi:src.npci-upi-consolidated-circular-2026"
    }
   ],
   "items_omitted": 0
  },
  {
   "commit": "da8b0d794786250b1f4ef69bba6e9627a60cf17f",
   "date": "2026-09-24",
   "at": "2026-09-24T04:50:06-04:00",
   "merge": false,
   "subject": "in-upi: corroborate rule.upi-autopay-validity-and-expiry against NPCI UPI Consolidated Circular",
   "rails": [
    "in-upi"
   ],
   "files_changed": 1,
   "files_reformatted": 0,
   "counts": {
    "promoted": 1,
    "sources": 1
   },
   "items": [
    {
     "kind": "promoted",
     "uid": "in-upi:rule.upi-autopay-validity-and-expiry",
     "rail": "in-upi",
     "name": "UPI AutoPay: a mandate lasts at most 30 years and lapses at its end date",
     "file": "corpus/in-upi/core/rule.upi-autopay-validity-and-expiry.json",
     "field": "currency.status",
     "from": "draft",
     "to": "corroborated"
    },
    {
     "kind": "sources",
     "uid": "in-upi:rule.upi-autopay-validity-and-expiry",
     "rail": "in-upi",
     "name": "UPI AutoPay: a mandate lasts at most 30 years and lapses at its end date",
     "file": "corpus/in-upi/core/rule.upi-autopay-validity-and-expiry.json",
     "change": "added",
     "field": "currency.corroboration",
     "to": "class from its RuleSource: in-upi:src.npci-upi-consolidated-circular-2026"
    }
   ],
   "items_omitted": 0
  },
  {
   "commit": "516ce90591ae5fa2ee759ae511b9683587e1f778",
   "date": "2026-09-24",
   "at": "2026-09-24T04:49:57-04:00",
   "merge": false,
   "subject": "in-upi: corroborate rule.upi-autopay-revocation against NPCI UPI Consolidated Circular",
   "rails": [
    "in-upi"
   ],
   "files_changed": 1,
   "files_reformatted": 0,
   "counts": {
    "promoted": 1,
    "sources": 1
   },
   "items": [
    {
     "kind": "promoted",
     "uid": "in-upi:rule.upi-autopay-revocation",
     "rail": "in-upi",
     "name": "UPI AutoPay: revoking a mandate, from either side",
     "file": "corpus/in-upi/core/rule.upi-autopay-revocation.json",
     "field": "currency.status",
     "from": "draft",
     "to": "corroborated"
    },
    {
     "kind": "sources",
     "uid": "in-upi:rule.upi-autopay-revocation",
     "rail": "in-upi",
     "name": "UPI AutoPay: revoking a mandate, from either side",
     "file": "corpus/in-upi/core/rule.upi-autopay-revocation.json",
     "change": "added",
     "field": "currency.corroboration",
     "to": "class from its RuleSource: in-upi:src.npci-upi-consolidated-circular-2026"
    }
   ],
   "items_omitted": 0
  },
  {
   "commit": "c21affa982a99ace67fb419e50a4843d0f907375",
   "date": "2026-09-24",
   "at": "2026-09-24T04:49:46-04:00",
   "merge": false,
   "subject": "in-upi: corroborate rule.upi-autopay-pause-and-unpause against NPCI UPI Consolidated Circular",
   "rails": [
    "in-upi"
   ],
   "files_changed": 1,
   "files_reformatted": 0,
   "counts": {
    "promoted": 1,
    "sources": 1
   },
   "items": [
    {
     "kind": "promoted",
     "uid": "in-upi:rule.upi-autopay-pause-and-unpause",
     "rail": "in-upi",
     "name": "UPI AutoPay: pausing a mandate and lifting the pause",
     "file": "corpus/in-upi/core/rule.upi-autopay-pause-and-unpause.json",
     "field": "currency.status",
     "from": "draft",
     "to": "corroborated"
    },
    {
     "kind": "sources",
     "uid": "in-upi:rule.upi-autopay-pause-and-unpause",
     "rail": "in-upi",
     "name": "UPI AutoPay: pausing a mandate and lifting the pause",
     "file": "corpus/in-upi/core/rule.upi-autopay-pause-and-unpause.json",
     "change": "added",
     "field": "currency.corroboration",
     "to": "class from its RuleSource: in-upi:src.npci-upi-consolidated-circular-2026"
    }
   ],
   "items_omitted": 0
  },
  {
   "commit": "63cd701d92c4d077b0a2b0152a6a44bdfda87606",
   "date": "2026-09-24",
   "at": "2026-09-24T04:49:35-04:00",
   "merge": false,
   "subject": "in-upi: corroborate state.upi-autopay-revoked against NPCI UPI Consolidated Circular",
   "rails": [
    "in-upi"
   ],
   "files_changed": 1,
   "files_reformatted": 0,
   "counts": {
    "promoted": 1,
    "sources": 1
   },
   "items": [
    {
     "kind": "promoted",
     "uid": "in-upi:state.upi-autopay-revoked",
     "rail": "in-upi",
     "name": "UPI AutoPay mandate: revoked",
     "file": "corpus/in-upi/core/state.upi-autopay-revoked.json",
     "field": "currency.status",
     "from": "draft",
     "to": "corroborated"
    },
    {
     "kind": "sources",
     "uid": "in-upi:state.upi-autopay-revoked",
     "rail": "in-upi",
     "name": "UPI AutoPay mandate: revoked",
     "file": "corpus/in-upi/core/state.upi-autopay-revoked.json",
     "change": "added",
     "field": "currency.corroboration",
     "to": "class from its RuleSource: in-upi:src.npci-upi-consolidated-circular-2026"
    }
   ],
   "items_omitted": 0
  },
  {
   "commit": "4543491617582c2fcd6b465f3c0c94923516c7ae",
   "date": "2026-09-24",
   "at": "2026-09-24T04:49:23-04:00",
   "merge": false,
   "subject": "in-upi: corroborate state.upi-autopay-expired against NPCI UPI Consolidated Circular",
   "rails": [
    "in-upi"
   ],
   "files_changed": 1,
   "files_reformatted": 0,
   "counts": {
    "promoted": 1,
    "sources": 1
   },
   "items": [
    {
     "kind": "promoted",
     "uid": "in-upi:state.upi-autopay-expired",
     "rail": "in-upi",
     "name": "UPI AutoPay mandate: expired",
     "file": "corpus/in-upi/core/state.upi-autopay-expired.json",
     "field": "currency.status",
     "from": "draft",
     "to": "corroborated"
    },
    {
     "kind": "sources",
     "uid": "in-upi:state.upi-autopay-expired",
     "rail": "in-upi",
     "name": "UPI AutoPay mandate: expired",
     "file": "corpus/in-upi/core/state.upi-autopay-expired.json",
     "change": "added",
     "field": "currency.corroboration",
     "to": "class from its RuleSource: in-upi:src.npci-upi-consolidated-circular-2026"
    }
   ],
   "items_omitted": 0
  },
  {
   "commit": "c516729d8f4dd8f5a864a1c1eae2056d92cc4070",
   "date": "2026-09-24",
   "at": "2026-09-24T04:49:13-04:00",
   "merge": false,
   "subject": "in-upi: corroborate state.e-mandate-withdrawn against RBI E-mandate Framework 2026",
   "rails": [
    "in-upi"
   ],
   "files_changed": 1,
   "files_reformatted": 0,
   "counts": {
    "promoted": 1,
    "sources": 1
   },
   "items": [
    {
     "kind": "promoted",
     "uid": "in-upi:state.e-mandate-withdrawn",
     "rail": "in-upi",
     "name": "UPI recurring e-mandate: withdrawn by the customer",
     "file": "corpus/in-upi/core/state.e-mandate-withdrawn.json",
     "field": "currency.status",
     "from": "draft",
     "to": "corroborated"
    },
    {
     "kind": "sources",
     "uid": "in-upi:state.e-mandate-withdrawn",
     "rail": "in-upi",
     "name": "UPI recurring e-mandate: withdrawn by the customer",
     "file": "corpus/in-upi/core/state.e-mandate-withdrawn.json",
     "change": "added",
     "field": "currency.corroboration",
     "to": "class from its RuleSource: in-upi:src.rbi-e-mandate-framework-2026"
    }
   ],
   "items_omitted": 0
  },
  {
   "commit": "f7758458c012a46b30127f2c3daca644299029b5",
   "date": "2026-09-24",
   "at": "2026-09-24T04:49:03-04:00",
   "merge": false,
   "subject": "in-upi: corroborate state.e-mandate-registered against RBI E-mandate Framework 2026",
   "rails": [
    "in-upi"
   ],
   "files_changed": 1,
   "files_reformatted": 0,
   "counts": {
    "promoted": 1,
    "sources": 1
   },
   "items": [
    {
     "kind": "promoted",
     "uid": "in-upi:state.e-mandate-registered",
     "rail": "in-upi",
     "name": "UPI recurring e-mandate: registered",
     "file": "corpus/in-upi/core/state.e-mandate-registered.json",
     "field": "currency.status",
     "from": "draft",
     "to": "corroborated"
    },
    {
     "kind": "sources",
     "uid": "in-upi:state.e-mandate-registered",
     "rail": "in-upi",
     "name": "UPI recurring e-mandate: registered",
     "file": "corpus/in-upi/core/state.e-mandate-registered.json",
     "change": "added",
     "field": "currency.corroboration",
     "to": "class from its RuleSource: in-upi:src.rbi-e-mandate-framework-2026"
    }
   ],
   "items_omitted": 0
  },
  {
   "commit": "5866bed9d48b75951946cb47ec5f59769eb20efe",
   "date": "2026-09-24",
   "at": "2026-09-24T04:45:02-04:00",
   "merge": true,
   "subject": "Merge branch 'worktree-agent-a93284e1b13aa6251'",
   "rails": [
    "in-upi"
   ],
   "files_changed": 12,
   "files_reformatted": 0,
   "counts": {
    "added": 9,
    "sources": 2,
    "other": 3
   },
   "items": [
    {
     "kind": "added",
     "uid": "in-upi:rule.upi-autopay-every-mandate-event-is-notified",
     "rail": "in-upi",
     "name": "UPI AutoPay: the customer hears about every change to a mandate, twice",
     "file": "corpus/in-upi/core/rule.upi-autopay-every-mandate-event-is-notified.json",
     "detail": "Rule, draft"
    },
    {
     "kind": "added",
     "uid": "in-upi:rule.upi-autopay-modification",
     "rail": "in-upi",
     "name": "UPI AutoPay: changing a live mandate's amount or payee",
     "file": "corpus/in-upi/core/rule.upi-autopay-modification.json",
     "detail": "Rule, draft"
    },
    {
     "kind": "added",
     "uid": "in-upi:rule.upi-autopay-pause-and-unpause",
     "rail": "in-upi",
     "name": "UPI AutoPay: pausing a mandate and lifting the pause",
     "file": "corpus/in-upi/core/rule.upi-autopay-pause-and-unpause.json",
     "detail": "Rule, draft"
    },
    {
     "kind": "added",
     "uid": "in-upi:rule.upi-autopay-revocation",
     "rail": "in-upi",
     "name": "UPI AutoPay: revoking a mandate, from either side",
     "file": "corpus/in-upi/core/rule.upi-autopay-revocation.json",
     "detail": "Rule, draft"
    },
    {
     "kind": "added",
     "uid": "in-upi:rule.upi-autopay-validity-and-expiry",
     "rail": "in-upi",
     "name": "UPI AutoPay: a mandate lasts at most 30 years and lapses at its end date",
     "file": "corpus/in-upi/core/rule.upi-autopay-validity-and-expiry.json",
     "detail": "Rule, draft"
    },
    {
     "kind": "added",
     "uid": "in-upi:src.npci-upi-consolidated-circular-2026",
     "rail": "in-upi",
     "name": "NPCI UPI Consolidated Circular, version 1.0 (2026)",
     "file": "corpus/in-upi/core/src.npci-upi-consolidated-circular-2026.json",
     "detail": "RuleSource, draft"
    },
    {
     "kind": "added",
     "uid": "in-upi:state.upi-autopay-expired",
     "rail": "in-upi",
     "name": "UPI AutoPay mandate: expired",
     "file": "corpus/in-upi/core/state.upi-autopay-expired.json",
     "detail": "LifecycleState, draft"
    },
    {
     "kind": "added",
     "uid": "in-upi:state.upi-autopay-paused",
     "rail": "in-upi",
     "name": "UPI AutoPay mandate: paused",
     "file": "corpus/in-upi/core/state.upi-autopay-paused.json",
     "detail": "LifecycleState, draft"
    },
    {
     "kind": "added",
     "uid": "in-upi:state.upi-autopay-revoked",
     "rail": "in-upi",
     "name": "UPI AutoPay mandate: revoked",
     "file": "corpus/in-upi/core/state.upi-autopay-revoked.json",
     "detail": "LifecycleState, draft"
    },
    {
     "kind": "sources",
     "uid": "in-upi:state.e-mandate-registered",
     "rail": "in-upi",
     "name": "UPI recurring e-mandate: registered",
     "file": "corpus/in-upi/core/state.e-mandate-registered.json",
     "field": "basis.sources",
     "from": "Reserve Bank of India, Digital Payments - E-mandate Framework, 2026 (RBI/DPSS/2026-27/396), paragraphs 2, 4, 5 and 6, read 2026-09-23 on rbi.org.in. The dire...",
     "to": "Reserve Bank of India, Digital Payments - E-mandate Framework, 2026 (RBI/DPSS/2026-27/396), paragraphs 2, 4, 5 and 6, read 2026-09-23 on rbi.org.in. The dire..."
    },
    {
     "kind": "sources",
     "uid": "in-upi:state.e-mandate-withdrawn",
     "rail": "in-upi",
     "name": "UPI recurring e-mandate: withdrawn by the customer",
     "file": "corpus/in-upi/core/state.e-mandate-withdrawn.json",
     "field": "basis.sources",
     "from": "Reserve Bank of India, Digital Payments - E-mandate Framework, 2026 (RBI/DPSS/2026-27/396), paragraphs 4 and 6, read 2026-09-23 on rbi.org.in. The directions...",
     "to": "Reserve Bank of India, Digital Payments - E-mandate Framework, 2026 (RBI/DPSS/2026-27/396), paragraphs 4 and 6, read 2026-09-23 on rbi.org.in. The directions..."
    },
    {
     "kind": "other",
     "uid": "in-upi:mandate.upi-recurring",
     "rail": "in-upi",
     "name": "UPI recurring payment mandate",
     "file": "corpus/in-upi/core/mandate.upi-recurring.json",
     "field": "relations",
     "from": "[{\"type\":\"given_by\",\"to\":\"in-upi:role.customer\"},{\"type\":\"given_to\",\"to\":\"in-upi:role.merchant\"},{\"type\":\"authorises\",\"to\":\"in-upi:txn.recurring\"},{\"type\":\"g...",
     "to": "[{\"type\":\"given_by\",\"to\":\"in-upi:role.customer\"},{\"type\":\"given_to\",\"to\":\"in-upi:role.merchant\"},{\"type\":\"authorises\",\"to\":\"in-upi:txn.recurring\"},{\"type\":\"g..."
    },
    {
     "kind": "other",
     "uid": "in-upi:state.e-mandate-registered",
     "rail": "in-upi",
     "name": "UPI recurring e-mandate: registered",
     "file": "corpus/in-upi/core/state.e-mandate-registered.json",
     "field": "relations",
     "from": "[{\"type\":\"precedes\",\"to\":\"in-upi:state.e-mandate-withdrawn\"},{\"type\":\"governed_by\",\"to\":\"in-upi:rule.e-mandate-registration-and-withdrawal\"},{\"type\":\"governe...",
     "to": "[{\"type\":\"precedes\",\"to\":\"in-upi:state.e-mandate-withdrawn\"},{\"type\":\"precedes\",\"to\":\"in-upi:state.upi-autopay-paused\"},{\"type\":\"precedes\",\"to\":\"in-upi:state..."
    },
    {
     "kind": "other",
     "uid": "in-upi:state.e-mandate-withdrawn",
     "rail": "in-upi",
     "name": "UPI recurring e-mandate: withdrawn by the customer",
     "file": "corpus/in-upi/core/state.e-mandate-withdrawn.json",
     "field": "relations",
     "from": "[{\"type\":\"governed_by\",\"to\":\"in-upi:rule.e-mandate-registration-and-withdrawal\"},{\"type\":\"governed_by\",\"to\":\"in-upi:rule.e-mandate-notice-before-each-charge\"...",
     "to": "[{\"type\":\"governed_by\",\"to\":\"in-upi:rule.e-mandate-registration-and-withdrawal\"},{\"type\":\"governed_by\",\"to\":\"in-upi:rule.e-mandate-notice-before-each-charge\"..."
    }
   ],
   "items_omitted": 0
  },
  {
   "commit": "77d415e1957ae984a4f6a46ee3bb51401e2893ee",
   "date": "2026-09-24",
   "at": "2026-09-24T04:39:36-04:00",
   "merge": true,
   "subject": "Merge branch 'worktree-agent-af9a3c3405e48af17'",
   "rails": [
    "au-npp"
   ],
   "files_changed": 5,
   "files_reformatted": 0,
   "counts": {
    "promoted": 5,
    "sources": 10
   },
   "items": [
    {
     "kind": "promoted",
     "uid": "au-npp:state.mandate-active",
     "rail": "au-npp",
     "name": "PayTo agreement: active",
     "file": "corpus/au-npp/core/state.mandate-active.json",
     "field": "currency.status",
     "from": "draft",
     "to": "corroborated"
    },
    {
     "kind": "promoted",
     "uid": "au-npp:state.mandate-awaiting-authorisation",
     "rail": "au-npp",
     "name": "PayTo agreement: created, awaiting the payer's authorisation",
     "file": "corpus/au-npp/core/state.mandate-awaiting-authorisation.json",
     "field": "currency.status",
     "from": "draft",
     "to": "corroborated"
    },
    {
     "kind": "promoted",
     "uid": "au-npp:state.mandate-cancelled",
     "rail": "au-npp",
     "name": "PayTo agreement: cancelled",
     "file": "corpus/au-npp/core/state.mandate-cancelled.json",
     "field": "currency.status",
     "from": "draft",
     "to": "corroborated"
    },
    {
     "kind": "promoted",
     "uid": "au-npp:state.mandate-declined",
     "rail": "au-npp",
     "name": "PayTo agreement: declined by the payer",
     "file": "corpus/au-npp/core/state.mandate-declined.json",
     "field": "currency.status",
     "from": "draft",
     "to": "corroborated"
    },
    {
     "kind": "promoted",
     "uid": "au-npp:state.mandate-suspended",
     "rail": "au-npp",
     "name": "PayTo agreement: suspended (paused)",
     "file": "corpus/au-npp/core/state.mandate-suspended.json",
     "field": "currency.status",
     "from": "draft",
     "to": "corroborated"
    },
    {
     "kind": "sources",
     "uid": "au-npp:state.mandate-active",
     "rail": "au-npp",
     "name": "PayTo agreement: active",
     "file": "corpus/au-npp/core/state.mandate-active.json",
     "change": "added",
     "field": "currency.corroboration",
     "to": "class from its RuleSource: au-npp:src.npp-regulations-v21"
    },
    {
     "kind": "sources",
     "uid": "au-npp:state.mandate-active",
     "rail": "au-npp",
     "name": "PayTo agreement: active",
     "file": "corpus/au-npp/core/state.mandate-active.json",
     "change": "added",
     "field": "currency.corroboration",
     "to": "class from its RuleSource: au-npp:src.auspayplus-payto-faqs"
    },
    {
     "kind": "sources",
     "uid": "au-npp:state.mandate-awaiting-authorisation",
     "rail": "au-npp",
     "name": "PayTo agreement: created, awaiting the payer's authorisation",
     "file": "corpus/au-npp/core/state.mandate-awaiting-authorisation.json",
     "change": "added",
     "field": "currency.corroboration",
     "to": "class from its RuleSource: au-npp:src.npp-regulations-v21"
    },
    {
     "kind": "sources",
     "uid": "au-npp:state.mandate-awaiting-authorisation",
     "rail": "au-npp",
     "name": "PayTo agreement: created, awaiting the payer's authorisation",
     "file": "corpus/au-npp/core/state.mandate-awaiting-authorisation.json",
     "change": "added",
     "field": "currency.corroboration",
     "to": "class from its RuleSource: au-npp:src.npp-payto-service-overview-v2"
    },
    {
     "kind": "sources",
     "uid": "au-npp:state.mandate-cancelled",
     "rail": "au-npp",
     "name": "PayTo agreement: cancelled",
     "file": "corpus/au-npp/core/state.mandate-cancelled.json",
     "change": "added",
     "field": "currency.corroboration",
     "to": "class from its RuleSource: au-npp:src.npp-regulations-v21"
    },
    {
     "kind": "sources",
     "uid": "au-npp:state.mandate-cancelled",
     "rail": "au-npp",
     "name": "PayTo agreement: cancelled",
     "file": "corpus/au-npp/core/state.mandate-cancelled.json",
     "change": "added",
     "field": "currency.corroboration",
     "to": "class from its RuleSource: au-npp:src.npp-payto-service-overview-v2"
    },
    {
     "kind": "sources",
     "uid": "au-npp:state.mandate-declined",
     "rail": "au-npp",
     "name": "PayTo agreement: declined by the payer",
     "file": "corpus/au-npp/core/state.mandate-declined.json",
     "change": "added",
     "field": "currency.corroboration",
     "to": "class from its RuleSource: au-npp:src.npp-regulations-v21"
    },
    {
     "kind": "sources",
     "uid": "au-npp:state.mandate-declined",
     "rail": "au-npp",
     "name": "PayTo agreement: declined by the payer",
     "file": "corpus/au-npp/core/state.mandate-declined.json",
     "change": "added",
     "field": "currency.corroboration",
     "to": "class from its RuleSource: au-npp:src.auspayplus-payto-faqs"
    },
    {
     "kind": "sources",
     "uid": "au-npp:state.mandate-suspended",
     "rail": "au-npp",
     "name": "PayTo agreement: suspended (paused)",
     "file": "corpus/au-npp/core/state.mandate-suspended.json",
     "change": "added",
     "field": "currency.corroboration",
     "to": "class from its RuleSource: au-npp:src.npp-regulations-v21"
    },
    {
     "kind": "sources",
     "uid": "au-npp:state.mandate-suspended",
     "rail": "au-npp",
     "name": "PayTo agreement: suspended (paused)",
     "file": "corpus/au-npp/core/state.mandate-suspended.json",
     "change": "added",
     "field": "currency.corroboration",
     "to": "class from its RuleSource: au-npp:src.npp-payto-service-overview-v2"
    }
   ],
   "items_omitted": 0
  },
  {
   "commit": "8785b73dc343ea2b160636c286c56abf417e932d",
   "date": "2026-09-24",
   "at": "2026-09-24T04:33:44-04:00",
   "merge": false,
   "subject": "Corroborate blik:state.recurring-payment-active",
   "rails": [
    "blik"
   ],
   "files_changed": 1,
   "files_reformatted": 0,
   "counts": {
    "promoted": 1,
    "sources": 3
   },
   "items": [
    {
     "kind": "promoted",
     "uid": "blik:state.recurring-payment-active",
     "rail": "blik",
     "name": "BLIK recurring payment: active",
     "file": "corpus/blik/core/state.recurring-payment-active.json",
     "field": "currency.status",
     "from": "draft",
     "to": "corroborated"
    },
    {
     "kind": "sources",
     "uid": "blik:state.recurring-payment-active",
     "rail": "blik",
     "name": "BLIK recurring payment: active",
     "file": "corpus/blik/core/state.recurring-payment-active.json",
     "change": "added",
     "field": "currency.corroboration",
     "to": "class from its RuleSource: blik:src.blik-recurring-payments-introduction"
    },
    {
     "kind": "sources",
     "uid": "blik:state.recurring-payment-active",
     "rail": "blik",
     "name": "BLIK recurring payment: active",
     "file": "corpus/blik/core/state.recurring-payment-active.json",
     "change": "added",
     "field": "currency.corroboration",
     "to": "class from its RuleSource: blik:src.blik-recurring-payments-model-a"
    },
    {
     "kind": "sources",
     "uid": "blik:state.recurring-payment-active",
     "rail": "blik",
     "name": "BLIK recurring payment: active",
     "file": "corpus/blik/core/state.recurring-payment-active.json",
     "change": "added",
     "field": "currency.corroboration",
     "to": "class from its RuleSource: blik:src.blik-faq"
    }
   ],
   "items_omitted": 0
  },
  {
   "commit": "92817b7b52233a3707b126b3e14f71f9b49c095e",
   "date": "2026-09-23",
   "at": "2026-09-23T19:08:44-04:00",
   "merge": true,
   "subject": "Merge branch 'main' into worktree-agent-a550e6d1992d16f98",
   "rails": [
    "au-npp",
    "blik",
    "boleto",
    "in-upi",
    "ph-instapay",
    "pix",
    "pix-reject",
    "us-ach"
   ],
   "files_changed": 289,
   "files_reformatted": 0,
   "counts": {
    "added": 212,
    "meaning": 59,
    "demoted": 1,
    "promoted": 25,
    "sources": 59,
    "gap": 2,
    "other": 48
   },
   "items": [
    {
     "kind": "added",
     "uid": "au-npp:src.npp-payto-service-overview-v2",
     "rail": "au-npp",
     "name": "NPP Australia, PayTo Service Overview v2.0, November 2021",
     "file": "corpus/au-npp/core/src.npp-payto-service-overview-v2.json",
     "detail": "RuleSource, draft"
    },
    {
     "kind": "added",
     "uid": "au-npp:state.mandate-active",
     "rail": "au-npp",
     "name": "PayTo agreement: active",
     "file": "corpus/au-npp/core/state.mandate-active.json",
     "detail": "LifecycleState, draft"
    },
    {
     "kind": "added",
     "uid": "au-npp:state.mandate-awaiting-authorisation",
     "rail": "au-npp",
     "name": "PayTo agreement: created, awaiting the payer's authorisation",
     "file": "corpus/au-npp/core/state.mandate-awaiting-authorisation.json",
     "detail": "LifecycleState, draft"
    },
    {
     "kind": "added",
     "uid": "au-npp:state.mandate-cancelled",
     "rail": "au-npp",
     "name": "PayTo agreement: cancelled",
     "file": "corpus/au-npp/core/state.mandate-cancelled.json",
     "detail": "LifecycleState, draft"
    },
    {
     "kind": "added",
     "uid": "au-npp:state.mandate-declined",
     "rail": "au-npp",
     "name": "PayTo agreement: declined by the payer",
     "file": "corpus/au-npp/core/state.mandate-declined.json",
     "detail": "LifecycleState, draft"
    },
    {
     "kind": "added",
     "uid": "au-npp:state.mandate-suspended",
     "rail": "au-npp",
     "name": "PayTo agreement: suspended (paused)",
     "file": "corpus/au-npp/core/state.mandate-suspended.json",
     "detail": "LifecycleState, draft"
    },
    {
     "kind": "added",
     "uid": "blik:state.recurring-payment-active",
     "rail": "blik",
     "name": "BLIK recurring payment: active",
     "file": "corpus/blik/core/state.recurring-payment-active.json",
     "detail": "LifecycleState, draft"
    },
    {
     "kind": "added",
     "uid": "blik:state.recurring-payment-deleted-by-user",
     "rail": "blik",
     "name": "BLIK recurring payment: deleted by the user",
     "file": "corpus/blik/core/state.recurring-payment-deleted-by-user.json",
     "detail": "LifecycleState, draft"
    },
    {
     "kind": "added",
     "uid": "blik:state.recurring-payment-expired",
     "rail": "blik",
     "name": "BLIK recurring payment: past its expiry date",
     "file": "corpus/blik/core/state.recurring-payment-expired.json",
     "detail": "LifecycleState, draft"
    },
    {
     "kind": "added",
     "uid": "boleto:src.nuclea-siloc-manual-operacoes",
     "rail": "boleto",
     "name": "Manual de Operações do SILOC (MAPX-OP002-2004), Núclea",
     "file": "corpus/boleto/core/src.nuclea-siloc-manual-operacoes.json",
     "detail": "RuleSource, draft"
    },
    {
     "kind": "added",
     "uid": "in-upi:state.e-mandate-registered",
     "rail": "in-upi",
     "name": "UPI recurring e-mandate: registered",
     "file": "corpus/in-upi/core/state.e-mandate-registered.json",
     "detail": "LifecycleState, draft"
    },
    {
     "kind": "added",
     "uid": "in-upi:state.e-mandate-withdrawn",
     "rail": "in-upi",
     "name": "UPI recurring e-mandate: withdrawn by the customer",
     "file": "corpus/in-upi/core/state.e-mandate-withdrawn.json",
     "detail": "LifecycleState, draft"
    },
    {
     "kind": "added",
     "uid": "pix:codeset.pain011-cancellation-reasons",
     "rail": "pix",
     "name": "Pix Automatico cancellation reasons (pain.011)",
     "file": "corpus/pix/core/codeset.pain011-cancellation-reasons.json",
     "detail": "CodeSet, draft"
    },
    {
     "kind": "added",
     "uid": "pix:codeset.pain012-authorisation-rejection-reasons",
     "rail": "pix",
     "name": "Pix Automatico authorisation rejection reasons (pain.012)",
     "file": "corpus/pix/core/codeset.pain012-authorisation-rejection-reasons.json",
     "detail": "CodeSet, draft"
    },
    {
     "kind": "added",
     "uid": "pix:codeset.pain014-instruction-errors",
     "rail": "pix",
     "name": "Pix Automatico instruction errors (pain.014)",
     "file": "corpus/pix/core/codeset.pain014-instruction-errors.json",
     "detail": "CodeSet, draft"
    },
    {
     "kind": "added",
     "uid": "pix:exc.bloqueio-cautelar",
     "rail": "pix",
     "name": "Bloqueio cautelar (precautionary hold)",
     "file": "corpus/pix/core/exc.bloqueio-cautelar.json",
     "detail": "Exception, corroborated"
    },
    {
     "kind": "added",
     "uid": "pix:exc.devolucao",
     "rail": "pix",
     "name": "Devolucao (return)",
     "file": "corpus/pix/core/exc.devolucao.json",
     "detail": "Exception, corroborated"
    },
    {
     "kind": "added",
     "uid": "pix:exc.med",
     "rail": "pix",
     "name": "Mecanismo Especial de Devolucao and Recuperacao de Valores",
     "file": "corpus/pix/core/exc.med.json",
     "detail": "Exception, corroborated"
    },
    {
     "kind": "added",
     "uid": "pix:exc.notificacao-de-infracao",
     "rail": "pix",
     "name": "Notificacao de infracao (infraction notice)",
     "file": "corpus/pix/core/exc.notificacao-de-infracao.json",
     "detail": "Exception, corroborated"
    },
    {
     "kind": "added",
     "uid": "pix:mandate.pix-automatico-authorisation",
     "rail": "pix",
     "name": "Pix Automatico authorisation",
     "file": "corpus/pix/core/mandate.pix-automatico-authorisation.json",
     "detail": "Mandate, draft"
    },
    {
     "kind": "added",
     "uid": "pix:role.bcb",
     "rail": "pix",
     "name": "Banco Central do Brasil",
     "file": "corpus/pix/core/role.bcb.json",
     "detail": "Role, corroborated"
    },
    {
     "kind": "added",
     "uid": "pix:role.direct-participant",
     "rail": "pix",
     "name": "Direct participant in the SPI",
     "file": "corpus/pix/core/role.direct-participant.json",
     "detail": "Role, corroborated"
    },
    {
     "kind": "added",
     "uid": "pix:role.indirect-participant",
     "rail": "pix",
     "name": "Indirect participant in the SPI",
     "file": "corpus/pix/core/role.indirect-participant.json",
     "detail": "Role, corroborated"
    },
    {
     "kind": "added",
     "uid": "pix:role.payer",
     "rail": "pix",
     "name": "Usuario pagador",
     "file": "corpus/pix/core/role.payer.json",
     "detail": "Role, corroborated"
    }
   ],
   "items_omitted": 382
  },
  {
   "commit": "03115925dc2ca2a3da0f2c200369cd909fa7ec75",
   "date": "2026-09-21",
   "at": "2026-09-21T10:22:02-04:00",
   "merge": false,
   "subject": "corroborate: 11 of the 12 au-npp rail facts, leave liability draft",
   "rails": [
    "au-npp"
   ],
   "files_changed": 11,
   "files_reformatted": 0,
   "counts": {
    "promoted": 11,
    "sources": 19
   },
   "items": [
    {
     "kind": "promoted",
     "uid": "au-npp:consumer-law",
     "rail": "au-npp",
     "name": "What consumer law sits above the NPP?",
     "file": "corpus/au-npp/profile/consumer-law.json",
     "field": "currency.status",
     "from": "draft",
     "to": "corroborated"
    },
    {
     "kind": "promoted",
     "uid": "au-npp:decision-points",
     "rail": "au-npp",
     "name": "Where does somebody decide something on the NPP?",
     "file": "corpus/au-npp/profile/decision-points.json",
     "field": "currency.status",
     "from": "draft",
     "to": "corroborated"
    },
    {
     "kind": "promoted",
     "uid": "au-npp:finality",
     "rail": "au-npp",
     "name": "When is an NPP payment final, and can it be undone?",
     "file": "corpus/au-npp/profile/finality.json",
     "field": "currency.status",
     "from": "draft",
     "to": "corroborated"
    },
    {
     "kind": "promoted",
     "uid": "au-npp:hours",
     "rail": "au-npp",
     "name": "When is the NPP open?",
     "file": "corpus/au-npp/profile/hours.json",
     "field": "currency.status",
     "from": "draft",
     "to": "corroborated"
    },
    {
     "kind": "promoted",
     "uid": "au-npp:limits",
     "rail": "au-npp",
     "name": "Is there a limit on an NPP payment?",
     "file": "corpus/au-npp/profile/limits.json",
     "field": "currency.status",
     "from": "draft",
     "to": "corroborated"
    },
    {
     "kind": "promoted",
     "uid": "au-npp:messages",
     "rail": "au-npp",
     "name": "What messages does the NPP use, and what codes do they carry?",
     "file": "corpus/au-npp/profile/messages.json",
     "field": "currency.status",
     "from": "draft",
     "to": "corroborated"
    },
    {
     "kind": "promoted",
     "uid": "au-npp:participants",
     "rail": "au-npp",
     "name": "Who takes part in the NPP?",
     "file": "corpus/au-npp/profile/participants.json",
     "field": "currency.status",
     "from": "draft",
     "to": "corroborated"
    },
    {
     "kind": "promoted",
     "uid": "au-npp:recall",
     "rail": "au-npp",
     "name": "Can an NPP payment be recalled?",
     "file": "corpus/au-npp/profile/recall.json",
     "field": "currency.status",
     "from": "draft",
     "to": "corroborated"
    },
    {
     "kind": "promoted",
     "uid": "au-npp:refund",
     "rail": "au-npp",
     "name": "Can a customer get an NPP payment refunded?",
     "file": "corpus/au-npp/profile/refund.json",
     "field": "currency.status",
     "from": "draft",
     "to": "corroborated"
    },
    {
     "kind": "promoted",
     "uid": "au-npp:return",
     "rail": "au-npp",
     "name": "How does money come back on the NPP?",
     "file": "corpus/au-npp/profile/return.json",
     "field": "currency.status",
     "from": "draft",
     "to": "corroborated"
    },
    {
     "kind": "promoted",
     "uid": "au-npp:settlement",
     "rail": "au-npp",
     "name": "How and when does an NPP payment settle?",
     "file": "corpus/au-npp/profile/settlement.json",
     "field": "currency.status",
     "from": "draft",
     "to": "corroborated"
    },
    {
     "kind": "sources",
     "uid": "au-npp:consumer-law",
     "rail": "au-npp",
     "name": "What consumer law sits above the NPP?",
     "file": "corpus/au-npp/profile/consumer-law.json",
     "change": "added",
     "field": "currency.corroboration",
     "to": "class from its RuleSource: au-npp:src.scams-prevention-framework-act-2025"
    },
    {
     "kind": "sources",
     "uid": "au-npp:consumer-law",
     "rail": "au-npp",
     "name": "What consumer law sits above the NPP?",
     "file": "corpus/au-npp/profile/consumer-law.json",
     "change": "added",
     "field": "currency.corroboration",
     "to": "class from its RuleSource: au-npp:src.spf-regulated-sectors-designation-2026"
    },
    {
     "kind": "sources",
     "uid": "au-npp:consumer-law",
     "rail": "au-npp",
     "name": "What consumer law sits above the NPP?",
     "file": "corpus/au-npp/profile/consumer-law.json",
     "change": "added",
     "field": "currency.corroboration",
     "to": "class from its RuleSource: au-npp:src.epayments-code-2022"
    },
    {
     "kind": "sources",
     "uid": "au-npp:decision-points",
     "rail": "au-npp",
     "name": "Where does somebody decide something on the NPP?",
     "file": "corpus/au-npp/profile/decision-points.json",
     "change": "added",
     "field": "currency.corroboration",
     "to": "class from its RuleSource: au-npp:src.npp-regulations-v21"
    },
    {
     "kind": "sources",
     "uid": "au-npp:decision-points",
     "rail": "au-npp",
     "name": "Where does somebody decide something on the NPP?",
     "file": "corpus/au-npp/profile/decision-points.json",
     "change": "added",
     "field": "currency.corroboration",
     "to": "class from its RuleSource: au-npp:src.epayments-code-2022"
    },
    {
     "kind": "sources",
     "uid": "au-npp:finality",
     "rail": "au-npp",
     "name": "When is an NPP payment final, and can it be undone?",
     "file": "corpus/au-npp/profile/finality.json",
     "change": "added",
     "field": "currency.corroboration",
     "to": "class from its RuleSource: au-npp:src.npp-regulations-v21"
    },
    {
     "kind": "sources",
     "uid": "au-npp:finality",
     "rail": "au-npp",
     "name": "When is an NPP payment final, and can it be undone?",
     "file": "corpus/au-npp/profile/finality.json",
     "change": "added",
     "field": "currency.corroboration",
     "to": "class from its RuleSource: au-npp:src.rba-about-rits"
    },
    {
     "kind": "sources",
     "uid": "au-npp:hours",
     "rail": "au-npp",
     "name": "When is the NPP open?",
     "file": "corpus/au-npp/profile/hours.json",
     "change": "added",
     "field": "currency.corroboration",
     "to": "class from its RuleSource: au-npp:src.npp-regulations-v21"
    },
    {
     "kind": "sources",
     "uid": "au-npp:hours",
     "rail": "au-npp",
     "name": "When is the NPP open?",
     "file": "corpus/au-npp/profile/hours.json",
     "change": "added",
     "field": "currency.corroboration",
     "to": "class from its RuleSource: au-npp:src.rba-about-rits"
    },
    {
     "kind": "sources",
     "uid": "au-npp:limits",
     "rail": "au-npp",
     "name": "Is there a limit on an NPP payment?",
     "file": "corpus/au-npp/profile/limits.json",
     "change": "added",
     "field": "currency.corroboration",
     "to": "class from its RuleSource: au-npp:src.npp-regulations-v21"
    },
    {
     "kind": "sources",
     "uid": "au-npp:messages",
     "rail": "au-npp",
     "name": "What messages does the NPP use, and what codes do they carry?",
     "file": "corpus/au-npp/profile/messages.json",
     "change": "added",
     "field": "currency.corroboration",
     "to": "class from its RuleSource: au-npp:src.npp-regulations-v21"
    },
    {
     "kind": "sources",
     "uid": "au-npp:messages",
     "rail": "au-npp",
     "name": "What messages does the NPP use, and what codes do they carry?",
     "file": "corpus/au-npp/profile/messages.json",
     "change": "added",
     "field": "currency.corroboration",
     "to": "class from its RuleSource: au-npp:src.npp-payment-initiation-messages-v4"
    },
    {
     "kind": "sources",
     "uid": "au-npp:participants",
     "rail": "au-npp",
     "name": "Who takes part in the NPP?",
     "file": "corpus/au-npp/profile/participants.json",
     "change": "added",
     "field": "currency.corroboration",
     "to": "class from its RuleSource: au-npp:src.npp-regulations-v21"
    }
   ],
   "items_omitted": 6
  },
  {
   "commit": "ca5179ee6c09db709f90ec740a54051286eb908f",
   "date": "2026-09-21",
   "at": "2026-09-21T10:19:55-04:00",
   "merge": false,
   "subject": "corroborate: au-npp TransactionTypes, LifecycleStates, Exceptions and Mandates",
   "rails": [
    "au-npp"
   ],
   "files_changed": 28,
   "files_reformatted": 0,
   "counts": {
    "promoted": 28,
    "sources": 31
   },
   "items": [
    {
     "kind": "promoted",
     "uid": "au-npp:exc.clearing-rejection",
     "rail": "au-npp",
     "name": "Clearing rejection",
     "file": "corpus/au-npp/core/exc.clearing-rejection.json",
     "field": "currency.status",
     "from": "draft",
     "to": "corroborated"
    },
    {
     "kind": "promoted",
     "uid": "au-npp:exc.duplicate-or-error-payment-return-request",
     "rail": "au-npp",
     "name": "Request for the return of a duplicate or error payment",
     "file": "corpus/au-npp/core/exc.duplicate-or-error-payment-return-request.json",
     "field": "currency.status",
     "from": "draft",
     "to": "corroborated"
    },
    {
     "kind": "promoted",
     "uid": "au-npp:exc.mandate-claim",
     "rail": "au-npp",
     "name": "Mandate claim",
     "file": "corpus/au-npp/core/exc.mandate-claim.json",
     "field": "currency.status",
     "from": "draft",
     "to": "corroborated"
    },
    {
     "kind": "promoted",
     "uid": "au-npp:exc.misdirected-payment-return-request",
     "rail": "au-npp",
     "name": "Request for the return of a misdirected payment",
     "file": "corpus/au-npp/core/exc.misdirected-payment-return-request.json",
     "field": "currency.status",
     "from": "draft",
     "to": "corroborated"
    },
    {
     "kind": "promoted",
     "uid": "au-npp:exc.mistaken-internet-payment",
     "rail": "au-npp",
     "name": "ePayments Code mistaken internet payment",
     "file": "corpus/au-npp/core/exc.mistaken-internet-payment.json",
     "field": "currency.status",
     "from": "draft",
     "to": "corroborated"
    },
    {
     "kind": "promoted",
     "uid": "au-npp:exc.mistaken-payment-return-request",
     "rail": "au-npp",
     "name": "Request for the return of a mistaken payment",
     "file": "corpus/au-npp/core/exc.mistaken-payment-return-request.json",
     "field": "currency.status",
     "from": "draft",
     "to": "corroborated"
    },
    {
     "kind": "promoted",
     "uid": "au-npp:exc.payment-initiation-rejection",
     "rail": "au-npp",
     "name": "Payment initiation rejection",
     "file": "corpus/au-npp/core/exc.payment-initiation-rejection.json",
     "field": "currency.status",
     "from": "draft",
     "to": "corroborated"
    },
    {
     "kind": "promoted",
     "uid": "au-npp:exc.settlement-rejection",
     "rail": "au-npp",
     "name": "Settlement rejection, which voids a cleared payment",
     "file": "corpus/au-npp/core/exc.settlement-rejection.json",
     "field": "currency.status",
     "from": "draft",
     "to": "corroborated"
    },
    {
     "kind": "promoted",
     "uid": "au-npp:exc.spf-scam-complaint",
     "rail": "au-npp",
     "name": "Scams Prevention Framework complaint",
     "file": "corpus/au-npp/core/exc.spf-scam-complaint.json",
     "field": "currency.status",
     "from": "draft",
     "to": "corroborated"
    },
    {
     "kind": "promoted",
     "uid": "au-npp:exc.unauthorised-transaction-claim",
     "rail": "au-npp",
     "name": "ePayments Code unauthorised transaction claim",
     "file": "corpus/au-npp/core/exc.unauthorised-transaction-claim.json",
     "field": "currency.status",
     "from": "draft",
     "to": "corroborated"
    },
    {
     "kind": "promoted",
     "uid": "au-npp:exc.unsolicited-return",
     "rail": "au-npp",
     "name": "Unsolicited return",
     "file": "corpus/au-npp/core/exc.unsolicited-return.json",
     "field": "currency.status",
     "from": "draft",
     "to": "corroborated"
    },
    {
     "kind": "promoted",
     "uid": "au-npp:mandate.authorised-payment-mandate",
     "rail": "au-npp",
     "name": "Authorised Payment Mandate (a PayTo agreement)",
     "file": "corpus/au-npp/core/mandate.authorised-payment-mandate.json",
     "field": "currency.status",
     "from": "draft",
     "to": "corroborated"
    },
    {
     "kind": "promoted",
     "uid": "au-npp:mandate.migrated-ddr-mandate",
     "rail": "au-npp",
     "name": "Migrated DDR Mandate",
     "file": "corpus/au-npp/core/mandate.migrated-ddr-mandate.json",
     "field": "currency.status",
     "from": "draft",
     "to": "corroborated"
    },
    {
     "kind": "promoted",
     "uid": "au-npp:state.applied-to-the-payee-account",
     "rail": "au-npp",
     "name": "Applied to the payee's account",
     "file": "corpus/au-npp/core/state.applied-to-the-payee-account.json",
     "field": "currency.status",
     "from": "draft",
     "to": "corroborated"
    },
    {
     "kind": "promoted",
     "uid": "au-npp:state.cleared",
     "rail": "au-npp",
     "name": "Cleared",
     "file": "corpus/au-npp/core/state.cleared.json",
     "field": "currency.status",
     "from": "draft",
     "to": "corroborated"
    },
    {
     "kind": "promoted",
     "uid": "au-npp:state.rejected-at-clearing",
     "rail": "au-npp",
     "name": "Rejected by the payee participant",
     "file": "corpus/au-npp/core/state.rejected-at-clearing.json",
     "field": "currency.status",
     "from": "draft",
     "to": "corroborated"
    },
    {
     "kind": "promoted",
     "uid": "au-npp:state.returned",
     "rail": "au-npp",
     "name": "Returned",
     "file": "corpus/au-npp/core/state.returned.json",
     "field": "currency.status",
     "from": "draft",
     "to": "corroborated"
    },
    {
     "kind": "promoted",
     "uid": "au-npp:state.settled",
     "rail": "au-npp",
     "name": "Settled in the Fast Settlement Service",
     "file": "corpus/au-npp/core/state.settled.json",
     "field": "currency.status",
     "from": "draft",
     "to": "corroborated"
    },
    {
     "kind": "promoted",
     "uid": "au-npp:state.submitted-to-the-gateway",
     "rail": "au-npp",
     "name": "Submitted to the payer participant's gateway",
     "file": "corpus/au-npp/core/state.submitted-to-the-gateway.json",
     "field": "currency.status",
     "from": "draft",
     "to": "corroborated"
    },
    {
     "kind": "promoted",
     "uid": "au-npp:state.voided-by-settlement-rejection",
     "rail": "au-npp",
     "name": "Void, because the settlement service rejected it",
     "file": "corpus/au-npp/core/state.voided-by-settlement-rejection.json",
     "field": "currency.status",
     "from": "draft",
     "to": "corroborated"
    },
    {
     "kind": "promoted",
     "uid": "au-npp:txn.bsct",
     "rail": "au-npp",
     "name": "Basic Single Credit Transfer (BSCT)",
     "file": "corpus/au-npp/core/txn.bsct.json",
     "field": "currency.status",
     "from": "draft",
     "to": "corroborated"
    },
    {
     "kind": "promoted",
     "uid": "au-npp:txn.ifti-payment",
     "rail": "au-npp",
     "name": "IFTI Payment",
     "file": "corpus/au-npp/core/txn.ifti-payment.json",
     "field": "currency.status",
     "from": "draft",
     "to": "corroborated"
    },
    {
     "kind": "promoted",
     "uid": "au-npp:txn.mandate-payment",
     "rail": "au-npp",
     "name": "Mandate Payment (PayTo)",
     "file": "corpus/au-npp/core/txn.mandate-payment.json",
     "field": "currency.status",
     "from": "draft",
     "to": "corroborated"
    },
    {
     "kind": "promoted",
     "uid": "au-npp:txn.non-value-message",
     "rail": "au-npp",
     "name": "Non-Value Message",
     "file": "corpus/au-npp/core/txn.non-value-message.json",
     "field": "currency.status",
     "from": "draft",
     "to": "corroborated"
    }
   ],
   "items_omitted": 35
  }
 ]
}
