# Draft: l10n(pt-BR): resync against refreshed English and adopt "payment rail" [DOC-6059]

## 1. What this is

The first real maintenance pass of the pipeline, end to end. The English refresh (!1455)
left 12 sections stale; this brings the approved Portuguese back in line with them.

- Branch: `l10n/pt-br/resync-2026-09`, now merged up to `l10n/pt-br/bootstrap` at `dba9f0fd6`.


**Updated 2026-09-15, second pass.** After the original 12-section resync, two further
English changes landed: the second refresh (!1466) and the terminology standardization
(!1463), which retired "payout rail" in favour of "payment rail". This branch absorbs both
rather than landing a resync against English that had already moved.

- Jira: epic DOC-6059.
- English source is unmodified.


## 2. Scope of this MR

4 new sections translated, 8 changed sections revised minimally per `CLAUDE.md` §8.2c, a
38-occurrence terminology sweep adopting "payment rail", the termbase entry collapsed to
one live term, and `manifest.json` regenerated so the hashes match current English.

**The terminology half is mechanical, verified rather than assumed.** All 14 sections that
!1463 and !1466 left stale were confirmed term-only: each section's pre-refresh English,
with `payout rail`/`payout-rail` normalized, is byte-identical to its post-refresh
counterpart. So no Portuguese needed re-translating for that half, only sweeping.

Not in this MR: no TM harvest (see §12), no termbase change, no config, no English.

## 3. Files changed (CLAUDE.md §3: source files / sections changed)

| Source file | Sections | Detail |
|  --- | --- | --- |
| `introduction/concepts/payment-identities.md` | 10 | 3 new, 7 revised |
| `api-docs/developer-guides/create-a-payment.md` | 1 | revised |
| `api-docs/integration-resources/latam/br/brl.md` | 1 | new |


**New sections, translated in full (~770 words):**

- `the-originator-s-account-number` and `how-originatoraccountnumber-behaves`, the
`originatorAccountNumber` documentation
- `accepted-document-types-by-corridor`, two corridor/role enum tables
- `brl.md` → `accepted-identity-document-types`


**Changed sections, revised minimally (not re-translated):**

- `identity-metadata`: new `originatorAccountNumber` row, cross-reference appended to
`internalId`, and the `validatePayoutRails` enum list brought in line
- `supported-values`: `US_ACH` description rewritten, `CN_TRADE` / `CN_INDIVIDUAL` /
`CN_INDIVIDUAL_TRADE` removed, `AU_NPP` / `JP_ZENGIN` added
- `idempotency-and-deduplication-with-internalid` and `recommended-patterns`: one new
bullet and one appended sentence, both pointing at `originatorAccountNumber`
- `relationship-to-financial-instruments`: **meaning reversed**, see §8.1
- `identity-document-structure` and `business-registration-structure`: enum caveat and
cross-reference appended
- `create-a-payment` step 3: **meaning reversed**, see §8.1


## 4. English source reference

Resynced against `bootstrap` at `99cfca35d`. Section-level diffs were taken against the
pre-refresh English at `2e0f6d467`, so each change was verified as a real content change
before the Portuguese was touched, per `CLAUDE.md` §8.2b.

One section the drift check flagged nothing for, `corridor-specific-and-rail-specific-requirements`,
differs by 2 raw lines between the two English versions but hashes identically
(`a6c0b7e37f46d35f`): the difference is trailing blank lines and a horizontal rule, which
`contentForHash` strips. Left untouched, correctly.

## 5. Mirrored-OpenAPI render check

n/a. The spec is out of scope as of !1459.

## 6. Structural preservation (CLAUDE.md §5)

- Section count now matches exactly: `payment-identities.md` 39/39, `brl.md` 5/5, and
positional order verified id by id.
- The two new pipe tables mirror the English source's pipe tables rather than being
converted to the house `{% table %}` style, because §5.2 requires structure preserved as
found. The rest of the file continues to use `{% table %}` because the English does.
- Markdoc attributes (`{% width="20%" %}`) preserved; only visible cell text translated.
- The regex `/^[A-Za-z0-9/?:().,'+ -]+$/` is carried byte-for-byte as code.
- **Fragment links:** 3 new same-page links point at the new headings' translated slugs
(`#o-número-de-conta-do-ordenante`, `#tipos-de-documento-aceitos-por-corredor`). All 8
same-page fragments across the 4 translated files resolve, checked with the pipeline's
own sectionizer.


## 7. Terminology and termbase

**The `payout rail` entry is renamed to `payment rail`**, because !1463 retired the
"payout rail" spelling from the English entirely (it is now 0 occurrences against 142).
Edited in the xlsx source of record with the CSVs regenerated, never hand-edited. DNT stays
`Yes`; the usage note and the Do-Not-Translate rule both record that "payout rail" was the
retired variant and must not be reintroduced, and that `validatePayoutRails` is a separate
identifier that is never reworded.

`payout network` is unchanged: the English still uses it, 21 occurrences.

38 Portuguese occurrences swept (37 prose plus one fragment-link slug), and three headings
renamed with their slugs. Agreement re-checked per §6: no feminine determiners or
adjectives adjacent to the new masculine noun.

Term parity after the sweep: `payout rail` 0 in both trees, `validatePayoutRails` intact at
50 English / 23 Portuguese.

This pass also consumes !1461: `payment rail` and `payout network` stay English per that decision, `ordenante` /
`beneficiário` / `corredor` / `parceiro de pagamento` follow existing approved usage, and
`ACTIVE` / `ORIGINATOR` / `BENEFICIARY` / enum values / `HTTP 409 Conflict` stay English as
in the pilot text.

`tm-lookup` reported 77.0% word-level reuse across the batch before translation, so most of
the revised text is unchanged approved Portuguese.

## 8. Reviewer attention items (CLAUDE.md §3)

1. **Two sections reversed meaning, and the Portuguese now says the opposite of what it
said.** Both concern multiple financial instruments per identity:
  - `relationship-to-financial-instruments` used to read "Uma identidade pode estar
associada a um ou mais instrumentos financeiros". The English now states each identity
has one active financial instrument, with multiple support "planned for a future
release". The Portuguese follows.
  - `create-a-payment` step 3 used to read "Isso permite que o mesmo beneficiário mantenha
várias contas bancárias sob uma única identidade". Same correction.
These are not wording tweaks. If the English is wrong about this, the Portuguese is now
wrong in two places, so it is worth a second pair of eyes on the English claim rather
than only on the translation.
2. **`defini-lo`, not `definí-lo`.** Caught and fixed on review; flagging the class because
a sweep will not catch enclitic accentuation. `adaptá-la` and `preservá-lo` are correct
(from `-ar` verbs); `defini-lo` is correct (from `definir`).
3. **`Todos` for `All`** in the corridor tables, where `All` means the full document-type
enum. Confirm that reads correctly in a table cell rather than, say, `Todos os tipos`.
4. **Enum parity** between English and Portuguese rail lists was checked mechanically: 32
rails each, identical code sets. Worth confirming the two new descriptions
(`AU_NPP`, `JP_ZENGIN`) read naturally.


## 9. English-screenshot gap log

n/a. No screenshots in the resynced sections.

## 10. Source defects found (CLAUDE.md §9)

One, already fixed upstream: the old English admonition title read "Identities & financial
istruments" (typo). The refreshed English corrects it to "Identities and financial
instruments". Reported here only for the record; nothing to do.

## 11. Config changes

None.

## 12. Translation memory

**`tm.jsonl` is unchanged. No harvest was run.**

`harvest-tm.mjs --dry-run` now reports **0 alignment problems** and 90 new records, where
before this branch it reported 3 skipped sections and would have written a misaligned pair
from `create-a-payment.md`. So the §4.9 hazard is cleared by this MR.

The remaining gate is approval, not alignment: `CLAUDE.md` §8.3 harvests on native-reviewer
approval. When that happens, the 35 records carrying `trilho` / `rede de pagamento` are
superseded and the last-wins resolution from !1454 serves the corrected wording.

## 13. Pipeline / manifest

- `manifest.json` regenerated: **4 files, 72 sections**.
- `generate-manifest.mjs --check`: **manifest up to date**, 0 stale, 0 removed. The 9
REMOVED entries the refresh produced were the `payout-rails` heading rename; regenerating
retires those IDs and records the `payment-rails` ones.
- `selftest.mjs`: **all checks passed.**
- `harvest-tm.mjs --dry-run`: **0 alignment problems**, 90 new records.
- All 8 same-page fragment links in the translated files resolve after the heading renames.


## 14. Review gate

Do not self-approve, mark ready, merge, or resolve discussions. This is Portuguese and
needs native review. Route to Luis Pain; Tiago Leite has not responded to any MR or
terminology message on this initiative.

The GitLab review bot comments once per push and validates internal consistency, not
premises. Do not count a green bot pass as review.

## 15. Open items and human calls

1. **`originatorAccountNumber` wording is assumed settled.** Confirmed as a working
assumption on 2026-09-15 with the caveat that PII-service details change. If the English
description moves, these two sections (418 words) are the rework.
2. The `originatorAccountNumber` work has related open items outside this MR: three ADR
corrections and the `USR_122` error documentation.
3. Harvest after approval, per §12.