AWS Cloud Financial Management

Configuring your AWS Invoices using Invoice Configuration

Today, AWS announced Invoice Configuration, which provides you the ability to customize your invoices to fit your unique business needs. You can use Invoice Configuration to help you receive separate AWS invoices for member accounts belonging to each of your business entities such as subsidiaries, cost centers, legal entities, departments etc., which are a part of the same AWS Organization.

Invoice Configuration can enable you to split AWS charges on a business entity level, designate a separate Invoice Receiver, and receive separate invoices for member accounts corresponding to your business entities. This not only enables you to process your AWS Invoices faster, but can enable you to track funding for each business entity separately and enables you to customize your AWS Invoices to adhere with unique FinOps processes that you may have across your business entities.

Mitigating expensive and time-consuming invoice splits, while maximizing your AWS discounts

If you have an AWS Organization with Consolidated Billing enabled, you receive AWS invoices for usage across your member accounts within a single AWS Organization. We often heard from customers with multiple business entities that in order to manage their AWS invoices, they had to either create a separate AWS Organizations for each business entity to receive separate invoices for their usage, or manually split the charges from their invoices and allocate it to the designated business entity. While creating separate AWS Organizations results in them losing on volume discounts, manual splitting the charges is time-consuming and increases the overhead of processing AWS invoices. With Invoice Configuration, you can simplify the processing of AWS Invoices by managing groups of member accounts belonging to each of your business entities and then receiving a separate AWS Invoice for each of your business entities.

We will walk you through a scenario, where an enterprise has a unique requirement of their AWS accounts to be mapped to various business entities. We will first walk through the Invoice Configuration UI to aggregate member accounts belonging to business entities into Invoice Units. Instructions on how you can programmatically do the same operations will also be provided in the end.

Customizing your AWS Invoice Configuration

You can start customizing your invoice configuration by creating an Invoice Unit for member accounts belonging to each of your business entities in three steps. First, create and name the Invoice Unit. Second, assign an Invoice Receiver, which is the account that will be the recipient of the invoice. You can choose which member accounts are a part of this Invoice Unit. Third, once the Invoice Unit is created, you can then optionally associate a Purchase Order with one or more Invoice Units. Associating Purchase Order to an Invoice Unit enables you to track the funding for each of your business entities separately. Invoice Configuration also supports SDKs listed here. Alternatively, you can also use AWS CloudFormation to deploy your resources and provision Invoice Units.

Scenario

In this scenario, the business entity structure consists of three cost centers, which are represented by AWS Accounts (A,B,C) and the AWS Organization has a Management Account (M). There are two other accounts – Account (D) and Account (E) which are in the same cost center as Account (C). The requirement for the organization is to receive a separate Invoice for Cost Center (C) and this Invoice should be addressed to Account (C) with usage corresponding to Account (C), (D) and (E). Prior to Invoice Configuration, the Management Account(M) would receive a single, consolidated invoice for all of the accounts within this organization. However, with Invoice Units, the Management account (M) can receive separate invoices corresponding to each cost center. Each invoice will only contain charges for the accounts that are a part of that Invoice Unit.

Figure 1. An illustration of a multi-layer business structure within the AWS Organization

Figure 1. An illustration of a multi-layer business structure within the AWS Organization

Getting Started

Invoice Configuration is a preference, available at the Management account level. To get started, ensure that all your accounts have the right tax settings populated. You can verify this by logging into the Billing and Cost Management console and selecting Tax Settings. Here, you will need to verify that the accounts have the correct business legal name, address, and Tax registration information configured. In our example, we are assuming that all the accounts have the same Tax Settings.

Note: For jurisdictions where AWS does not collect Tax Information, verify that you have the correct billing address and billing contacts set up in payment preferences. Based on the location of your account, AWS calculates taxes on your AWS invoices. For more details on how the taxes are calculated, visit https://thinkwithwp.com/tax-help/location/.

Step 1: Creating Invoice Units

Select “Invoice Configuration” on the left navigation bar. To receive a separate invoice for Cost Center (C) and the accounts within Cost Center (C), you can refer to the steps mentioned here. In our scenario, Account (C) will be designated as the Invoice Receiver. Selecting Account (C) as the Invoice receiver means that Account (C) will receive the invoices pertaining to this Invoice Unit. You optionally select the Management account as the Invoice Receiver if you have the requirement to split the invoices but still be delivered to the Management account(M). Account (C), (D) and (E) as the members for this Invoice Unit.

If there is a requirement for Account (A) and Account (B) to receive a separate invoice, you can optionally configure Invoice Units corresponding to them. If you don’t configure an Invoice Unit for Account (A) or Account (B), any usage corresponding to these accounts will follow the same behavior as before – they will both be consolidated into a single invoice (per SOR) and issued to the Management Account (M).

Note: If the Management Account (M) does not have any usage, AWS will select an account to receive this invoice.

Figure 2.Updated business structure represented with configured Invoice Unit for Cost Center C

Figure 2.Updated business structure represented with configured Invoice Unit for Cost Center C

Step 2: Updating the Invoice Unit

Lets assume that there is an Organizational change and Account (B) is now mapped to the Cost Center (C) along with Account (D) and (E).

Figure 3. Updated business structure represented with configured Invoice Unit for Cost Center C with Account B

Figure 3. Updated business structure represented with configured Invoice Unit for Cost Center C with Account B

For the AWS Invoices to reflect this change, we can simply update the Invoice Unit that we created in the previous step, and add Account (B) as a member of this Invoice Unit. Refer to the documentation here Updating Invoice Units.

Note: Changes to Invoice Units can be done any time during the month. For Anniversary Invoices, for example, if Account (B) is added to the Invoice Unit for Cost Center (C) on the 15th of the month, the entire month of usage corresponding to this account will be a part of the anniversary Invoice for the Invoice Unit.

Step 3: Associating a Purchase Order (PO) with the Invoice Unit

Prior to Invoice Configuration, you were only able to associate Purchase Orders to the Management Account. With Invoice Configuration, you can associate a PO to each of your Invoice Units. If your organization has separate funding processes for each business entity, and you want to track your costs against that funding, you can simply create an Invoice Unit to receive a separate Invoice for that business entity and assign a PO to the Invoice Unit. Refer to Purchase Order documentation for step by step instructions.

Step 4: Retrieving the Invoices

We can access the Invoices corresponding to the Invoice Unit from the Bills page within the Billing Console. The Invoices will also be emailed to the Management account and the Invoice receiver account’s email address.

Programmatically managing the Invoice Units

You may be creating and managing tens or hundreds of accounts across your business entities. For this use case, you can programmatically map business entities to Invoice Units and also manage the addition and updates of the accounts within your Invoice Units using the Invoice Configuration APIs. Invoice Configuration APIs are supported by AWS CLI, AWS SDKs and AWS CloudFormation. To get started, visit the API Reference. As you create new accounts, you can programmatically add those accounts into already created Invoice Units or programmatically create new Invoice Units for your business entities.

Conclusion

Invoice Configuration is a preference that enables you to customize your AWS Invoices for member accounts belonging to each of your business entities and provides you the ability to add a separate recipient and a Purchase Order for each of your AWS invoices corresponding to your business entities. This capability enables you to receive separate AWS invoices, while maximizing your volume discounts. Use Invoice Configuration either through the AWS Billing and Cost Management Console or programmatically, to create and manage Invoice Units and receive separate Invoices for each of your business entities.

TAGS:
Vinni Satija Sagar

Vinni Satija Sagar

Vinni Satija is a Product Manager for AWS AppConfig and is based in Washington D.C. She is passionate about taking a working backward approach with customers. She enjoys using technology to create solutions that address customer needs.

Micah Bowonthamachakr

Micah Bowonthamachakr

Micah is a Software Development Engineer for AWS Invoicing, where he focuses on designing new features and building practical solutions to directly innovate the customer experience. Micah is an avid bodybuilder, enjoys reading theology and philosophy, and is constantly excited for the next fishing or camping trip.

Nitin Nair

Nitin Nair

Nitin is a Software Development Manager in AWS Billing. He loves building products for leveraging customer experience and helping customers achieve business objectives. In his free time he enjoys exploring culinary sciences and making music.

Vijay Nattanmai Viswanathan

Vijay Nattanmai Viswanathan

Vijay is a software development engineer at AWS Invoicing where they focus on creating intuitive invoicing solutions for millions of AWS customers worldwide. Vijay spends their weekdays in the cloud and weekends scaling rock walls, hunting down the best eats in town, fostering adorable kittens, or battling it out in their favorite video games.