Skip to content

Portilla, Ruy-Díaz & Aguilar — billing reconciliation

Source: Casa Moksha M365 tenant ([email protected] mailbox), mined 2026-05-09. PDFs of every debit note pulled to source-data/portilla/debit-notes/; structured extract at source-data/portilla/debit-notes-parsed.json.

Cross-checked against: Brex transaction history (Primary 8798 + Casa Moksha Ops 3753, both pulled live from /v2/transactions/cash/...) and live Xero state for ContactID 4e028e3c-66e7-4a9c-9dba-abac89452ebc.

Status (2026-05-09): APPLIED to live Xero. Austin approved the dry-run plan; scripts/fpa/xero_portilla_ap_cleanup.py --execute posted 25 new ACCPAY bills + 22 payments (15 against the new bills, 7 against the existing 8692/8777/8788/8986/8988/9010/9056). Live state now: 32 bills total, 22 PAID ($37,140.41), 10 AUTHORISED ($22,421.34). Audit manifests in source-data/portilla/exec-manifest-*.json (one per execute run, with every InvoiceID + PaymentID for rollback). The intercompany RFH→RHG clearing for the $11,601.78 of Primary-paid bills is not yet posted — that's a separate manual journal pending Pearce / Austin sign-off on the clearing-account convention.

Status: complete for Nov 2024 → Apr 2026. Pre-Nov-2024 invoices are referenced in Brex (2024-11-27 -$747 "payment Oct 2024 invoice" and the three 2025-10-02 wires below) but the underlying NC PDFs predate the mining window and were not pulled.


Headline numbers

Amount (USD) Count
Invoiced (NC 4906 → NC 9205) $59,561.75 32
Paid via Brex (matched to specific NCs) $37,140.41 22
Paid via Brex (unmatched — pre-NC-4906 invoices) $5,405 4
Outstanding (per this reconciliation) $22,421.34 10
Wire attempts that bounced and were never re-tried $1,798 1 (NC 8478)

Outstanding = invoiced minus payments that match a specific NC. The 4 "unmatched" payments cleared bills that predate this pull and are assumed cleared on the legacy ledger.

Matter buckets

Portilla labels every debit note with a matter reference. Three buckets:

Bucket Count Total invoiced Description
CORPORATE 27 $53,833.75 RHG S.A. de C.V. → S. de R.L. de C.V. conversion + general RHG corporate work + GASTOS (expenses) sub-bills
CONSIGNACION CINDY 4 $4,781.44 Cindy Canto removal via Mexican payment-consignation proceeding
LABORAL 1 $946.56 Mexican IMSS/employment-contract compliance matter (Aug 2025). Confirmed 2026-05-09 by reading the bill: NOT Cindy-specific — work was an HR consultation on "employment contracts to be executed with the company, migration of the employees, execution dates and possible risk with the social security institute." Different attorney (JOT = Juan Carlos Origel Torres, $408/hr) and different matter code (959PRY-CDMX, vs. 687PRY for CORPORATE and 1063PRY for CINDY). Probably triggered by the Cindy-era bookkeeping audit surfacing IMSS exposure across the staff (Alfredo, Rosa Maria, Lucila, Miroslava). The bill carries 16% IVA because labor advice for Mexican operations is taxable at the standard rate, unlike the Corporate bills which are 0% (foreign legal services to a foreign client).
TOTAL 32 $59,561.75

Entity allocation: every Portilla bill in this pull is RHG-attributable work. None is RFH-only. The current bookkeeping pattern of paying some from Brex Primary (RFH) is an intercompany allocation problem, not a classification problem — see "Entity-allocation reframing" below.


Invoice-level table (chronological)

Issue dates are local Mexico time as printed on Portilla's debit notes; period is the work-month covered. Status: ✅ paid (matched to Brex), ⏳ unpaid, ⚠ attempted-and-bounced.

Issue date NC Period Matter Total USD Paid date Paid from Status
2024-11-20 4906 Oct 2024 CORPORATE $5,747.00 ⏳ unpaid
2024-12-11 5108 Nov 2024 CORPORATE $1,596.40 ⏳ unpaid
2024-12-31 5190 Nov 2024 CORPORATE $1,438.00 2025-01-07 CM Ops 3753
2025-01-10 5317 Dec 2024 CORPORATE $150.00 2025-03-11 CM Ops 3753
2025-03-18 5886 Feb 2025 CORPORATE $8,652.00 2025-04-03 CM Ops 3753
2025-04-10 6210 Mar 2025 CORPORATE $2,813.00 2025-04-23 CM Ops 3753
2025-05-14 6438 Apr 2025 CORPORATE $2,178.00 2025-05-29 CM Ops 3753
2025-06-05 6598 May 2025 CORPORATE $59.00 2025-08-08 CM Ops 3753
2025-07-23 6936 Jun 2025 CORPORATE $2,426.00 2025-08-08 CM Ops 3753
2025-08-08 7144 Jul 2025 CORPORATE $3,032.00 ⏳ unpaid
2025-09-11 7447 Aug 2025 CORPORATE $3,333.00 ⏳ unpaid
2025-09-18 7461 Aug 2025 LABORAL (IMSS/employment contracts) $946.56 ⏳ unpaid
2025-10-10 7588 Oct 2025 CORPORATE $3,000.00 2025-10-16 CM Ops 3753
2025-10-20 7712 Sep 2025 CORPORATE / GASTOS $501.63 2025-11-18 CM Ops 3753
2025-11-13 7934 Oct 2025 CORPORATE $1,091.30 ⏳ unpaid
2025-11-13 7940 Oct 2025 CORPORATE $2,484.00 ⏳ unpaid
2025-11-18 7649 Sep 2025 CORPORATE $1,321.00 2025-11-24 CM Ops 3753
2025-11-18 7954 Nov 2025 CORPORATE $3,000.00 2025-11-24 CM Ops 3753
2025-11-24 7996 Nov 2025 CORPORATE / EXPENSES $501.00 2025-12-10 Primary 8798
2025-12-15 8248 Nov 2025 CORPORATE $1,180.00 2025-12-22 Primary 8798
2026-01-20 8478 Dec 2025 CORPORATE $1,798.00 (attempted Feb 4/6/9) Primary 8798 ⚠ bounced
2026-02-13 8691 Jan 2026 CONSIGNACION CINDY $2,301.44 ⏳ unpaid
2026-02-13 8692 Jan 2026 CORPORATE $2,860.00 2026-03-11 Primary 8798
2026-02-17 8747 Jan 2026 CORPORATE $91.64 ⏳ unpaid
2026-02-23 8777 Jan 2026 CORPORATE $406.41 2026-03-11 Primary 8798
2026-02-25 8788 Jan 2026 CONSIGNACION CINDY $1,984.00 2026-03-11 Primary 8798
2026-03-10 8986 Feb 2026 CONSIGNACION CINDY $248.00 2026-03-23 Primary 8798
2026-03-10 8988 Feb 2026 CORPORATE $2,350.00 2026-03-23 Primary 8798
2026-03-11 9010 Feb 2026 CORPORATE $152.93 2026-03-23 Primary 8798
2026-03-19 9056 Mar 2026 CORPORATE / GASTOS $617.44 2026-03-23 Primary 8798
2026-04-07 9204 Mar 2026 CORPORATE $1,054.00 2026-04-24 Primary 8798
2026-04-07 9205 Mar 2026 CONSIGNACION CINDY $248.00 2026-04-24 Primary 8798

Unpaid invoices (10 bills, $22,420.34)

In age order — the 4906 / 5108 pair is over 17 months old.

NC Issue date Matter Total USD Notes
4906 2024-11-20 CORPORATE $5,747.00 Oldest unpaid. No matching wire in Brex Primary or CM Ops.
5108 2024-12-11 CORPORATE $1,596.40 Same period — never picked up after 5190 was paid Jan 7.
7144 2025-08-08 CORPORATE $3,032.00 Three 2025-10-02 wires totaling $4,658 may relate but don't sum cleanly — see "Unmatched payments" below.
7447 2025-09-11 CORPORATE $3,333.00 Same period as the 2025-10-02 wires — possibly partially paid.
7461 2025-09-18 LABORAL $946.56 The only LABORAL bill in the file. Likely Cindy-precursor work.
7934 2025-11-13 CORPORATE $1,091.30
7940 2025-11-13 CORPORATE $2,484.00
8478 2026-01-20 CORPORATE $1,798.00 Wire attempted from Primary 8798 on 2026-02-04, 2026-02-06, and 2026-02-09 — all four legs cancelled (net 0). Re-attempt has not been initiated as of 2026-04-24.
8691 2026-02-13 CONSIGNACION CINDY $2,301.44 The Mar 11 batch paid 8692 / 8777 / 8788 but not 8691. Likely an oversight when scheduling the wire batch.
8747 2026-02-17 CORPORATE $91.64 Small bill, probably bundled with another and missed.
TOTAL $22,420.34

Unmatched payments (4 wires, $5,405)

Brex shows the following Portilla outflows that don't pair to a debit note in this pull window — they predate the earliest NC we have (4906, Nov 2024).

Date Account Amount Brex memo Likely source
2024-11-27 CM Ops 3753 $747.00 "PORTILLA, RUY-DÍAZ & AGUILAR, S.C. - payment Oct 2024 invoice" Pre-NC-numbering bill (Oct 2024).
2025-10-02 CM Ops 3753 $408.00 "Renfroe Holdings via Brex" Three wires same day; total $4,658. None of the unpaid 2025 NCs sum to these amounts cleanly. Probable explanation: paying 1+ Portilla bills that predate our NC window.
2025-10-02 CM Ops 3753 $1,760.00 same
2025-10-02 CM Ops 3753 $2,490.00 same
TOTAL $5,405.00

If these wires are actually paying NCs 7144 / 7447 / 7461 with FX rounding losses, the 5 NCs flagged "unpaid" above would shrink. Worth asking Mary Infante ([email protected]) for a statement of account through 2025-09-30 to settle this.


Xero state vs. reality (drift) — pre-cleanup baseline

Resolved 2026-05-09. Section preserved as the pre-cleanup audit trail. Post-cleanup state: 32 Portilla bills, 22 PAID, 10 AUTHORISED; open AP $22,421.34. See "Status" up top.

Xero org Renfroe Holdings historically had 7 Portilla bills, all AUTHORISED (none marked paid), totaling $8,618.78:

InvoiceNumber Bill date Total
8692NCH-CDMX 2026-02-26 $2,860.00
8777NCH-CDMX 2026-02-26 $406.41
8788NCH-CDMX 2026-02-26 $1,984.00
8986NCH-CDMX 2026-03-19 $248.00
8988NCH-CDMX 2026-03-19 $2,350.00
9010NCH-CDMX 2026-03-19 $152.93
9056NCH-CDMX 2026-03-19 $617.44

Two structural problems:

  1. AP overstatement: $8,618.78. All 7 of these bills were paid out of Brex Primary on 2026-03-11 and 2026-03-23 (per the wire history above) but no payment was ever applied in Xero. The $8,618.78 AP should be $0 for these specific bills.
  2. 22 missing bills. Every NC issued before 2026-02-26 (NCs 4906 through 8478) is not in Xero at all. That's $25,693.30 of legal activity that is invisible to the GL — including the four oldest unpaid bills (4906, 5108, 7144, 7447, 7461, 7934, 7940, 8478) totaling $19,028.26 of real outstanding AP that should be on the books.
  3. 3 bills missing from Xero but already paid: NCs 9056 ($617.44), 9204 ($1,054), 9205 ($248). The 9056 bill was paid same-day from the batch that paid 8986/8988/9010, but only 4 of those 5 made it into Xero. NCs 9204 + 9205 (paid 2026-04-24) are post-Xero-backup.

Entity-allocation reframing

Per accounting/vendor-mappings.md, Portilla is flagged "RHG or RFH (paid from both sides)." After this pull the picture is sharper:

  • Every Portilla bill in this file is RHG-attributable work. Not a single one is general RFH-level corporate housekeeping.
  • 27 bills are CORPORATE — RHG SA → S. de R.L. de C.V. conversion + related RHG corporate filings (PSM, shareholder meetings, financial statement approvals).
  • 4 bills are CINDY consignación — RHG cap-table cleanup.
  • 1 bill is LABORAL — Mexican labor matter, almost certainly Cindy-adjacent.
  • The "paid from both sides" pattern is operational, not legal. Through 2025-11, payments came out of Casa Moksha Ops 3753 (correctly hitting RHG cash). Starting 2025-12-10, payments shifted to Brex Primary 8798 (RFH cash) — initially $501 + $1,180, then the failed $1,798 attempts, then the $5,250 (Mar 11) + $3,368 (Mar 23) + $1,302 (Apr 24) batches.
  • All Primary-paid Portilla wires need intercompany re-allocation — treat as RFH paying on RHG's behalf, then RHG owes RFH the amount. Aligns with the 2026-04-19 decision (decisions/log.md: "Intercompany transfers between RFH and RHG as intercompany settlements"). The amounts to reclass:
Period Primary-paid total Currently bookable as
2025-12-10 → 2025-12-22 $1,681.00 RFH expense → reclass RHG via due-from
2026-03-11 (settled batch) $5,250.41 (4 of 5 are in Xero; reclass at payment time)
2026-03-23 (settled batch) $3,368.37 (3 of 4 are in Xero; reclass at payment time)
2026-04-24 $1,302.00 (neither is in Xero yet; bills + payment to be added)
TOTAL $11,601.78

The CM-Ops-paid total $30,943.63 needs no reclass — it correctly hits RHG cash already.


Why the failed attempts on NC 8478 matter

NC 8478 ($1,798, December 2025 corporate work) shows a striking pattern in Brex Primary:

2026-02-04  +$1,798.00  / -$1,798.00   (queued + reversed same day)
2026-02-06  -$1,798.00                 (queued again)
2026-02-09  +$1,798.00                 (refunded — never settled)
NET CASH MOVEMENT: $0

Likely cause: Santander rejected the wire (instructions, name mismatch, or sender verification). No retry from CM Ops or Primary has shown up since. NC 8478 is genuinely unpaid as of 2026-04-24 and no one has re-initiated payment.

This is a process gap worth surfacing — Alex / Austin should ask Mary Infante at Portilla what wire instructions caused the bounce, and either re-attempt or merge into the next batch.


Counterparty / process notes

  • Wire instructions: Portilla accepts wires to Banco Santander S.A. (BMSXMXMM, account 82-50040150-6, CLABE 014680825004015064). The most recent debit notes (2026-04-17) also include Banorte as a fallback (MENOMXMT, account 1132682858). Wire path is RFH (Brex) → Santander Mexico USD → Portilla.
  • Billing cadence: Portilla bills monthly. Each calendar month generates one CORPORATE bill plus, when applicable, separate CINDY, LABORAL, and EXPENSES (gastos) bills. Months with multiple bills: Jan 2026 (4 bills), Feb 2026 (3 bills), Mar 2026 (4 bills).
  • Hourly rate: $248/hr USD across all attorneys (LRV = Luis Miguel Reyes Vázquez, DAT = Diego Alcántara Trejo, LLZ = Luis Lara Zavala). Same rate has held since at least Aug 2025.
  • Lead per matter: LRV = CORPORATE conversion work (PSM filings, shareholder meetings); DAT = CINDY consignación (Yucatán court runs); LRV = LABORAL.

What would close out the picture

  • Statement of account from Mary Infante through 2025-09-30, to reconcile the 2024-11-27 $747 wire and the 2025-10-02 $4,658 trio against actual Portilla AR. High-value ask — would either move $5,405 of "unmatched paid" into specific NCs or confirm those NCs we listed as unpaid are actually still owed.
  • Re-initiate NC 8478 ($1,798) wire, or get Mary to re-issue with corrected instructions if the Santander route had a problem.
  • Pay the 8 unpaid in-window bills ($14,373.34 = 4906 + 5108 + 7144 + 7447 + 7934 + 7940 + 8691 + 8747) or get them written off / partially settled.
  • Bring Xero AP into agreement with reality: (a) apply payments to the 4 of 4 Mar 11 batch bills in Xero (drops AP $5,250.41); (b) apply payments to the 3 of 4 Mar 23 batch bills in Xero (drops AP $2,750.93); © add the 22 missing bills (NCs 4906 through 8478, plus 9056, 9204, 9205) and their payments where applicable; (d) reclassify the Primary-paid bills from RFH to RHG via intercompany clearing.
  • Identify the LABORAL bill (NC 7461)resolved 2026-05-09 by reading the bill directly: NOT Cindy-specific. JOT (Juan Carlos Origel Torres) advised on Casa Moksha employment-contract migration + IMSS risk for the staff. Probably the audit response to the Cindy-era bookkeeping problems. Bill carries 16% IVA because Mexican labor advice is domestic-taxable. Treat as CORPORATE-bucket overhead at the matter-level roll-up (or split into a fourth "HR/COMPLIANCE" bucket if more LABORAL bills surface).

Maintenance / refresh procedure

# 1. Re-pull any new Portilla emails + PDFs
export BW_SESSION="$(cat ~/.config/bw/session)"
python3 scripts/inboxes/portilla_pull.py

# 2. Re-parse to JSON/CSV
python3 scripts/inboxes/portilla_parse.py

# 3. Run the AP-cleanup planner (dry-run by default).
#    Reads parsed PDFs + live Brex + live Xero; emits the full plan
#    (bills to create, payments to apply, unpaid bills, unmatched wires).
python3 scripts/fpa/xero_portilla_ap_cleanup.py

xero_portilla_ap_cleanup.py is the operational corollary to this file. Re-run it to refresh the deltas; re-run this file's invoice table when the plan reveals new NCs (e.g. after a new monthly Portilla email). With --execute, the script will POST the plan to Xero — but execution is intentionally not implemented yet (the dry-run output is the authoritative review surface; Austin should approve the plan, then a follow-up commit can wire up the POST calls following the scripts/fpa/xero_merge_portilla.py pattern).

The intercompany RFH→RHG clearing for Primary-paid Portilla wires (~$11,601.78 lifetime) is not part of this planner — book that as a separate manual journal once the bill+payment side lands.