Repository navigation
docs: payments and customers pages match the code - #91
Merged
futurebuildai merged 2 commits intoOct 10, 2026
Merged
Conversation
…ckage Signed-off-by: colton <colton@futurebuild.ai>
… and customers
F1 payments: add the Refund field table (id, payment_id, credit_memo_id,
amount_cents, reason, method, gateway_refund_id, status, gl_entry_id,
refunded_on, created_at) with each property's wire form and meaning
from the fragment and the Go struct.
F2 payments and customers: add the missing money fields -
AccountSummary.available_credit_cents, AccountTransaction.amount_cents
and balance_after_cents, PriceLevel.multiplier - in their resource
sections.
F3 customers: the currency change lock is ANY posted payment with an
unapplied amount, not only a deposit; the open_documents SQL reads
payments.status = 'POSTED' AND amount_unapplied > 0 with no order
filter; cite that SQL and reword the cross-reference bullet.
F4 payments: GET /ar/reconciliation and POST /ar/applications/{id}/reverse
take the finance write guard (admin, owner, finance) at
account/handler.go and the wall.accounts composition; sales users are
refused; list the read routes and the finance-only routes with their
guards.
F5 payments: state the credit memo refund leg (DR 1020 / CR 1010 with
a REFUND subledger row, no cash movement) plainly, citing the
RefundCreditMemo implementation.
F6 payments: fix the credit memo refund role check citation to
payment/service_card.go:192 (who.finance, RefundCredit).
F7 customers: drop the leftover 'not a package column' clause and
keep only 'the column carries the registering package directory'.
F8 customers: drop 'payment terms writes need' in favour of 'payment
terms need' - the scope is not write-only.
Add the statement line fields (ArStatementLine id, date, type,
description, amount_cents, balance_after_cents, source_kind,
reference_id, job_id) and open document fields (ArOpenDocument kind,
id, number, date, due_date, job_id, total_cents, open_cents); the
aging grouping fields (group_by customer/job/ship_to and the
ArAgingItem ID/name columns) with the coarser-is-null rule; the
CardPaymentRequest token_id field (required, never echoed back); the
PaymentApplyRequest fields (applications, revision); the
EscalationPolicy fields (customer_id, policy, threshold_percent,
agreement_signed_at, agreement_ref, revision) and the
EscalationPolicyRequest body.
Signed-off-by: colton <colton@futurebuild.ai>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
docs: payments and customers pages match the code
The drift table at
/home/colton/Desktop/FBHQ/gable-v1/mm/docs-drift2-table.mdlists every factual sentence of
docs/modules/payments.mdanddocs/modules/customers.md, the verification command run against the code onorigin/refactor/v1, and the result.Changes
Two edits, one per page, fixing the same drift: the route census intro in
both pages named the route census column
package, but the file's headernames it
module. The column carries the registering package directory;the wording is now accurate in both places.
docs/modules/payments.mdcore/api/ROUTES.txt) lists each one under thepackage named in the
packagecolumn."core/api/ROUTES.txt) lists each one under themodule named in the
modulecolumn (the column carries the registeringpackage directory)."
core/api/ROUTES.txtline 23 ismethod pattern module handler;the header comment says "The module column is the registering package's
directory relative to the Go module root." There is no
packagecolumn.docs/modules/customers.mdcore/api/ROUTES.txt) lists each one under theinternal/customerpackage (the route census has apackagecolumn, nota module column)."
core/api/ROUTES.txt) lists each one under theinternal/customermodule (the route census has amodulecolumn, nota package column; the column carries the registering package
directory)."
core/api/ROUTES.txtheader.What was not changed
origin/refactor/v1(routes, fields and units, statuses and transitions,blockers and error codes, events and their line numbers, roles and
scopes, the branch wall, ADR citations, local commands).
internal/payment,internal/account,internal/invoice, andinternal/customeris already on the page(44 routes total, 0 missing).
Payment,PaymentSummary,PaymentCreateRequest,PaymentApplicationRequest,PaymentTransitionRequest,PaymentRefundRequest,CreditMemoRefundRequest,PaymentIntentResponse,Refund,CardPaymentRequest,PaymentApplyRequest,Customer,ShipTo,Contact,PaymentTermsRecord,PriceLevel,EscalationPolicyfield is alreadyon the page (0 missing).
Suspected defects for the lead
None. Both FALSE rows were page-side wording drift; the underlying code
(the
core/api/ROUTES.txtcolumn name) is correct.🤖 Generated with Claude Code