Full Time Role   |   Product Design

Global Multi-Entity Billing

At Brex, I worked on the Global Accounts team within the Global Financial Services organization. One of our major goals was to enable Global Multi-Entity Billing for our customers. This would allow customers to have multiple entities within their company be billed separately, whether they were in the US or not.

This project was broken up into two phases:
  • Phase 1: Enable card billing for multiple entities
  • Phase 2: Enable card billing for global entities


Product Design


Product Designer


Jan - Oct 2022

Phase 1: Multi-Entity Card Billing

Before multi-entity billing, customers would receive one credit bill that was paid from one bank account, regardless of how many legal entities they had. This diagram shows card spend from Acme HQ, Acme LLC, and Acme Corp are all consolidated into a single credit bill.

With multi-entity support, customers can choose entities to be billed separately from a parent entity - allowing them to have multiple entities with multiple bills, being paid from multiple bank accounts.

Adapting the Accounts page to a Multi-entity World

With my initial explorations, I simply adapted our existing L1 Accounts page to include multiple entities under the credit section.

Exploration sketches

L1 Accounts Page v1

Additional rows to the Brex credit section

This solution was very clean and simple, but concerns around scalability arose. After feedback during a director review, we agreed that the additional complexity and depth that came with a multi-entity world warranted an L1 > L2 > L3 page structure as opposed to clicking directly into an entity from the L1 page.


After some iteration, I landed on the following designs.

L1 Page

L2 Page

L3 Page

Phase 2: Global Card Billing

Now that customers were able to bill multiple entities individually, the next step was to allow these entities to be international — billed in non-USD currencies.

Why Global?

One of Brex's major initiatives in 2022 is to become an increasingly global company as customers became more and more global themselves. Customers that are global inevitably face problems when using a product that was built with just the US in mind.

Employees of global customers need to spend in their local currency, but Brex only supports billing in USD. This which forces them to deal with FX rates when making payments and intercompany transactions where local entities need to repay the parent for their share of the bill.

In this pre-global support world, entities could be operating in their local currency but get bills in USD that need to be paid in USD.

The goal was to unlock an experience where entities could have employees spending in their local currency, getting billed in their local currency, and paying out of a bank account in their local currency.

What's so different about non-USD billing?

The main difference between US and non-US billing has to do with payments. For entities billed in USD, customers set up autopay and they pay on the 15th of each month — pretty simple. For non-USD, an autopay feature where Brex automatically pulls money from an account is not possible. Instead, customers have to push payments manually from their local bank accounts in order to pay off their balance.

So instead of choosing an autopay account to pay bills from, Brex would set up a local bank account in the entity's country and provide that account's details to the user. The user would then go log in to their own bank account and send a wire to the account set up by Brex. After 3-5 days, Brex would receive the money and the entity's balance would be cleared.

Edit Billing Flow

For multi-entity, there needed to be a flow where users could select an entity to be billed separately by selecting the entity and the autopay account. For non-USD billing, there are no autopay accounts so the flow needed to be modified.

These designs show how a user would select an international entity to be billed separately in its local currency.

Edit Billing Flow - Select entity

Select billing currency

Manual payment disclaimer

Review screen

Non-USD entities have their bills cut on the same day as USD entities, but because they need to be paid manually, there is a 12 day grace period after the bill is cut where customers can make their payment. On the L2 designs below, you can see non-USD entities with a "Payment due" status and a button to view their manual payment info.

L2 page before bills are cut

L2 page after bills are cut

View payment info button --> Side panel

When the user clicks the "View payment info" button, a side panel opens where they can view their payment info (due date + amount) as well as the account details of the bank they need to manually wire. There is also a checkbox to mark the payment as initiated to disable email reminders and let other admins know that the payment process has already been started for this entity.

The L3 page for a non-USD entity also is adapted to show amounts in local currency along with the same "View payment info" button that opens the side panel.

L3 page with amounts in local currency

Lastly, I considered how to make the L1 page reflect the global changes that were made in the L2 and L3 pages. I wanted to showcase Brex's global nature without overloading the page or being redundant with content that was on the L2/L3 pages. I settled on a hover state where users can see a breakdown of the different currencies that make up their credit balance.

L1 Page

Currency breakdown on hover

The End

After 10 months at Brex, I was unfortunately included in the 11% of the company that was laid off in October 2022. I grew so much as a designer in 2022 working with all of the talented people at Brex and am really grateful for the opportunity I had!