You run paid social for six clients. The media spend goes out on your agency’s card program, lands in your expense platform, and by the fifth of the month somebody has to turn that pile of transactions into six separate rebill lines before invoices go out. The question to settle before you sign: does Ramp or Brex do that last step, or does a person still do it in a spreadsheet? Both vendor pages were checked directly on 2026-09-07.
Where the reconciliation actually breaks
The workflow has three moves and only the first two are automated anywhere. Spend happens: a card assigned to a media buyer, or a virtual card per ad account, gets charged by the ad platform. The transaction lands in the expense platform, which enriches it with a merchant name, a general ledger account, and whatever internal dimension the company sorts costs by. Then somebody has to attach a client identity to it, because a charge cannot become an invoice line until the system knows which of your six clients it belongs to.
That third move is where the tooling stops, for a structural reason rather than an oversight. Expense platforms are built for internal spend, and the assumption underneath them is that the company holding the card is the only entity being billed. So the useful dimensions are the ones an internal finance team reports on: merchant, GL account, department, location, entity. An agency inverts that. The charge is internal in that the agency’s card paid for it, external in that a client will be billed for it, and no field in a standard expense taxonomy carries that second meaning. The automated categorization these platforms advertise is real. It just automates the wrong half of an agency’s month.
What Ramp’s own pricing page promises
Ramp lists two self-serve plans on ramp.com/pricing, checked 2026-09-07. Free is $0/mo/user. Plus is $15/mo/user, and the page adds “+ Platform fee based on team size,” so the per-seat number is not the whole cost.
Ramp’s tooltip on the Basic accounting rules row says the product will “Categorize transactions by category, merchant, department, or location to map to your accounting fields.” Four dimensions, all internal. On Plus, Ramp adds Custom field support: “Import any field from your accounting software to code within Ramp, including chart of accounts, departments, and vendors.” The paid tiers also add approval routing that can “Route based on GL code, entity, and other accounting conditions.”
Read that description again. The verb is import. Custom field support pulls in dimensions that already exist in your connected accounting software. It is a synchronization feature, not a field builder. If your chart of accounts has no per-client dimension, Ramp has nothing to import and nothing to code against. Across the visible text of that page on 2026-09-07, the words client, billable and rebill do not appear at all.
What Brex’s own pricing page promises
Brex lists Essentials at $0 user/month and Premium at $12 user/month on www.brex.com/pricing, checked 2026-09-07. The page footer repeats both numbers. Enterprise sits above that at custom pricing.
Brex’s expense management page describes the automation in its own FAQ text: “Receipts auto-generate for common merchants. AI handles categorization and memo creation.” Its own product copy on that page promises to “sync to your ERP” and to save time with “AI-powered mapping suggestions, GL coding, and auto-categorization.” The accounting dimensions appear in the pricing page’s Automated accounting field mapping row, which promises to “Auto-sync with your ERP, including GL account, department, location.” The same internal axes, reached by a different route.
Brex’s answer to bespoke needs is a row called Custom field management. It lets you “Customize fields and capabilities such as employee editing, policy requirements, expense types, and addendums.” Every item points inward at your own staff and policy. The word client does not appear in that description, and on the comparison table the row is unmarked for Essentials and marked for Premium and Enterprise.
Ramp vs. Brex on the one thing agencies need
| Ramp | Brex | |
|---|---|---|
| Entry price per user | $0/mo/user (Free) | $0 user/month (Essentials) |
| Next paid tier per user | $15/mo/user plus a platform fee based on team size (Plus) | $12 user/month (Premium) |
| Client-level or billable-to-client field | Not stated on vendor page | Not stated on vendor page |
| Categorization dimensions the page names | Category, merchant, department, location | GL account, department, location, plus merchant data and GL coding on the expense management page |
| Custom fields on the free entry plan | No. Custom field support is marked on Plus, unmarked on Free | No. Custom field management is marked on Premium and Enterprise, unmarked on Essentials |
The third row matters. “Not stated on vendor page” is narrower than “impossible.” An admin with an accounting integration can configure things these pages do not describe. What you cannot do is buy the feature on the strength of the marketing, because the marketing does not claim it.
The workaround, and where it runs out
Given only the field behaviour both vendors document, one move is obvious: repurpose a dimension that already exists. Department is the usual candidate, since it appears in both platforms’ categorization lists. Create a department per client, assign the virtual card for that ad account to it, and let the automated categorization do the tagging. Location works the same way if the field is idle. On Ramp’s paid tier you can import a dimension from the accounting software and code against it inside Ramp.
Two limits follow from the vendors’ own descriptions. The first is collision. A department or location field usually already has a job, telling you where a cost reports internally. Overload it with a client name and you have spent your only departmental axis, so when your finance lead asks what the creative team costs against the media team, the answer is not in the system.
The second is sharper. Ramp’s custom field support imports fields “from your accounting software,” and an imported field is only as granular as the chart of accounts already is. Sign a new client on the eleventh and there is no tag for them until someone creates one upstream and the sync runs. Your card program is never the system of record for client identity.
[EVIDENCE NEEDED: a citable source documenting how commonly agencies repurpose a department or location field this way. The workaround above is derived from the documented field behaviour on both pricing pages, not from a survey or a named agency.]
What a month-end close actually still requires
Picture that same agency, six clients, one card program. Through the month, charges from the ad platforms hit cards issued to two media buyers. On the second of the following month the finance person opens the expense platform to build the rebill.
The export is clean on its own terms: every transaction, dated, with a merchant name, a GL account and a department. Receipts attached, GL coding done, totals footing correctly into the accounting sync.
What it does not give them is a column that says Client. So they export to a spreadsheet and build one. With the department workaround in place they filter by department and rename the buckets to client names, checking that no charge landed under a stale department. Without it, they go ad account by ad account, matching each charge to the client who owns it. Then they subtotal by client, apply the markup the contract specifies, and hand six numbers to whoever raises the invoices. That step survives both platforms, on every tier.
Before you buy either one
Before a demo call, ask each vendor one question in writing: can a transaction carry a field identifying an external client, and does that field survive the export and the accounting sync. Two neighbouring workflows: time tracking for social retainers, the labour side of the same invoice, and invoicing tools for social media freelancers, billing your own time rather than reconciling spend you fronted.
Prices verified 2026-09-07 against Ramp’s and Brex’s own pages, linked below. This is a blog post, not Watchdog data, and it is not on the re-verification schedule, so check the vendor page before you commit to a number. followedapp is published by the team behind RecurPost, and RecurPost is covered on this site under the same rules as every other vendor.
FAQ
Does Ramp or Brex have a client field for tagging ad spend?
Neither vendor documents one. Ramp’s pricing page describes categorization “by category, merchant, department, or location” and custom field support that imports fields already present in your accounting software. Brex describes Custom field management as covering “employee editing, policy requirements, expense types, and addendums.” Both lists are internal dimensions. As of 2026-09-07 the words client, billable and rebill appear nowhere on Ramp’s pricing page.
Where would client-level rebilling actually get built, if not in the card platform?
Downstream, in whatever system already holds your chart of accounts, because that is where both vendors point. Ramp says custom field support imports fields from your accounting software, so the client dimension has to exist there before the expense platform can code against it. This piece verified Ramp and Brex only. It did not survey accounting platforms or the agency-billing category, and names no third vendor because no third vendor’s page was fetched.
Sources
- Ramp, Pricing and Plans. Plan prices, categorization and custom field tooltips, approval routing. Fetched 2026-09-07, HTTP 200.
- Brex, Pricing Plans. Plan prices, accounting field mapping and Custom field management rows. Fetched 2026-09-07, HTTP 200.
- Brex, Expense Management. Receipt auto-generation, AI categorization and GL coding language. Fetched 2026-09-07, HTTP 200.
