TREASURY UNCLASSIFIED // EXTERNAL

L EAD ∙ T RANSFORM ∙ D ELIVER

G-Invoicing

API Changes for BizApps

and Feature Management 

(Planned Future Enhancements)

Version 1.0 – May 25, 2022
TREASURY UNCLASSIFIED // EXTERNAL

Page 2 L EAD ∙ T RANSFORM ∙ D ELIVER

Business Application (BizApp)

• BizApp will be a new data element on the GT&C Header Detail tab

– Definition: A particular product line or type of operation, typically 

documented on an agreement between two business partners, and used to 

control attributes of that agreement and/or characterize transactions 

occurring under that agreement

• Eliminates the need to continually add new indicators to the GT&C

• Allows G-Invoicing to apply conditional logic to govern documents

– Example conditions for BizApp ‘EZ 10k’

• Order Originating Partner Indicator (OOPI) must be Servicing

– Non-negotiable

– OOPI is already an attribute of GT&C

• Reject Days = 30

– Non-negotiable

– Reject Days is an attribute of BizApp ‘EZ 10k’ (i.e., not stored on each GT&C)

• Allowed values will be limited by Feature Management

– Example 1: BizApp ‘GSA Fleet Leasing’ is not yet supported

– Example 2: Agency XYZ is ready to use BizApp ‘EZ 10k’
TREASURY UNCLASSIFIED // EXTERNAL

Page 3 L EAD ∙ T RANSFORM ∙ D ELIVER

Feature Management

• G-Invoicing must control how new features are released

̶ Not all agencies will be ready to use a new feature at the same time

o Each ERP vendor releases new features on their own cadence

o Agencies upgrade software on their own cadence

o G-Invoicing users will have immediate access to new features

̶ G-Invoicing documents all involve two partnering agencies

̶ New features are great, but agency readiness must be considered

• Feature Management is a software development tool that will be 

leveraged to control usage of new features

1. Treasury will release a new application feature (r4.5) complete

2. Agencies will declare readiness to use each feature (planned for r4.6)

o Readiness may be declared at the Group level (release TBD)

3. G-Invoicing will ensure both partners are ready to use a feature (r4.5) complete

4. Treasury may require that all agencies must use a feature (r4.5) complete

o Agencies may be granted an exception (release TBD)

5. New API endpoint to expose feature data (planned for Winter 22-23 release)
TREASURY UNCLASSIFIED // EXTERNAL

Page 4 L EAD ∙ T RANSFORM ∙ D ELIVER

Feature Management Challenges

• Controls may be needed at 

different organizational levels

 Government-wide

 By agency account

 Requesting side separate 

from servicing side

 Controls by Org Group (and 

descendants) may be needed 

o Allows larger agencies to 

transition in waves

o Designed to be added later

o Half of agency survey responses desire controls at Group level

- Agencies may be transitioning to new ERP systems one bureau at a time

- Agencies may be training one bureau/division on new feature at a time

• Winter 22-23 release will support controls at agency account level

̶ Plans beyond that have not been determined

Government-Wide

Yes/ No

Agency Account

Yes/ No

Group + Descendants

Feature Flag Values:

Yes = Feature ON

No = Feature OFF
TREASURY UNCLASSIFIED // EXTERNAL

Page 5 L EAD ∙ T RANSFORM ∙ D ELIVER

• Is your agency ready to support a new feature?

– Set (yes/no) flags by Feature, by Agency, and by “side” (Buy/Sell Indicator)

– Table below shows three agencies for the four known 7600EZ Business Applications

• Examples:

1. Servicing Agency ABC wants to send ‘EZ 10k’ invoices to Agency GHI

̶ Either partner establishes a GT&C for BizApp = EZ 10k

 ABC – Servicing flag for EZ 10k is Yes

X GHI – Requesting flag for EZ 10k is No  Not Allowed

2. Servicing Agency GHI wants to send ‘EZ Print’ invoices to Agency ABC

̶ Either partner establishes a GT&C for BizApp = EZ Print

 GHI – Servicing flag for EZ Print is Yes

 ABC – Requesting flag for EZ Print is Yes  Allowed

Agency Buy/Sell EZ 10k EZ Fleet EZ Supply EZ Print

ABC Requesting Yes Yes Yes

ABC Servicing Yes Yes Yes

DEF Requesting Yes Yes

DEF Servicing No Yes

GHI Requesting No Yes

GHI Servicing Yes Yes

Feature Management Examples

In the future, agencies 

could be allowed to 

manage feature flags 

by Org Group 
TREASURY UNCLASSIFIED // EXTERNAL

Page 6 L EAD ∙ T RANSFORM ∙ D ELIVER

Connecting the Dots

• When and how will Feature Management interact with BizApp?

– This information is offered from the perspective of the G-Invoicing developer/tester

– Every BizApp is a Feature, but not every Feature is a BizApp

• Examples:

1. User attempts to create a GT&C for a specific BizApp (e.g., EZ 10k)

a. User drafts a GT&C, selecting their trading partner’s Org Group and ALC

b. BizApp chosen for GT&C (EZ 10k) must follow these rules

 BizApp ‘EZ 10k’ must be active in the BizApp table

 BizApp ‘EZ 10k’ must appear in the Feature Registry

 One of the following conditions must be true for Feature ‘EZ 10k’:

 Feature is Centrally Managed government-wide, and neither partner is exempt

 Both partners’ Feature Flags are “Yes” at Agency Account level

2. Agency user or client attempts to Revert an Order Modification

a. G-Invoicing will check both agencies for readiness

 One of the following conditions must be true for Feature ‘Order Revert’:

 Feature is Centrally Managed government-wide, and neither partner is exempt

 Both partners’ Feature Flags are “Yes” at Agency Account level

BizApp 

always aligns 

with Feature

This Feature 

has nothing to 

do w/ BizApp
TREASURY UNCLASSIFIED // EXTERNAL

Page 7 L EAD ∙ T RANSFORM ∙ D ELIVER

Feature Management Tables

The following Feature Management data will be deployed with the 4.6 release

Inactive features will not be visible in G-Invoicing.

Future features include EZ Fleet, COA, Order Revert, Zero-Quantity Refund, etc.

Agencies may choose to place themselves on a “whitelist”, indicating they are ready to use a Feature.

In a future release, there will be another table to capture Centrally Managed Exceptions, in “blacklist” fashion. 

• See next slide

These are Agency Account IDs

FEATURE_CD FEATURE_DISPLAY FEATURE_Desc ACTIVE_FLG CENTRALLY_MANAGED_FLG

STANDARD Standard Order Processing Agreement used to create standard (BIO/SFO) Orders Y Y

EZ_10K 7600EZ (under 10k) 7600EZ not to exceed $10,000 Y N

EZ_FLEET GSA Fleet Leasing (7600EZ) 7600EZ for GSA Fleet Leasing N N

EZ_SUPPLY GSA Global Supply (7600EZ) 7600EZ for GSA Global Supply N N

EZ_PRINT GPO Print/Publishing (7600EZ) 7600EZ for GPO Print/Publishing Services Y N

COA Constructive Order Acceptance Contructive Order Acceptance after 'n' days N N

ORDER_UPLOAD Batch Order Upload Upload Orders using CSV template Y N

FEATURE_CD ORG_ACCOUNT_ID (org name) PARTNER_IND ACTIVE_FLG UI_FLG EFFECTIVE_DT DEACTIVE_DT

EZ_10k 121616099 Agency Account 1 R Y Y 1/11/2022

EZ_10k 121616099 Agency Account 1 S Y Y 1/11/2022

EZ_10k 508749 Agency Account 2 R Y Y 1/11/2022

EZ_10k 508749 Agency Account 2 S Y Y 1/11/2022

EZ_10k 424941 Agency Account 3 R N N 1/11/2022 1/14/2022

UI Flag may be used in future to 

limit how Feature is made available
TREASURY UNCLASSIFIED // EXTERNAL

Page 8 L EAD ∙ T RANSFORM ∙ D ELIVER

Centrally Managed Features

• Requirements

1. There may come a time when Treasury requires that a Feature be used by 

all agencies

2. But there may be exceptions (i.e., agency is exempt)

3. Exceptions need to be managed by Central Administrators

4. Central Admin can set up Centrally Managed in advance (not MVP)

• Exceptions

̶ Blacklist approach to capture exempted agencies

• Central Admin is only user that can maintain Feature Agency Exceptions

• ‘No’ flag in Feature Agency Exceptions is an exception for Req or Serv side

• When Centrally Managed is Yes, look at Feature Agency Exception flags

• Would allow Centrally Managed setting to go from Yes to No too
TREASURY UNCLASSIFIED // EXTERNAL

Page 9 L EAD ∙ T RANSFORM ∙ D ELIVER

Use Cases for Feature Flags

• Agency systems may want to know what Features are supported by 

which agencies

̶ Otherwise, clients should expect some 400 errors when calling our services

• Use cases (from client perspective)

1. Can we submit an EZ Invoice?

o Client should have pulled down an open GT&C with an ‘EZ’ BizApp Type

2. Can we revert an Order modification back to its previous version?

o Client knows the Feature and the Order Number

3. Can we push a Zero-Quantity Refund?

o Client knows the Feature and the Order Number

4. Can we report Performance while the Order is being modified?

o Client knows the Feature and the Order Number

5. Can we create an Order while the GT&C is being modified?

o Client knows the Feature and the GT&C Number

6. Can we create a GT&C for BizApp XXX with partner ABC?

o (This assumes we expose a Push GT&C service)

o Client would need to know both partners and their respective Org Groups
TREASURY UNCLASSIFIED // EXTERNAL

Page 10 L EAD ∙ T RANSFORM ∙ D ELIVER

Options for Pull Feature API

• Several possible endpoints were explored with ERP vendors

̶ Periodic requests

1. Pull of features, showing agencies with flags set to Yes

o Example: 10 features x 150 agency accounts x Req/Serv = 3,000 flags

2. Pull of agencies, showing features with flags set to Yes

3. Pull raw Feature data, including features, agency feature flags, and (eventually) 

centrally managed exceptions

o Response includes data from 3-4 tables (depending on upcoming decisions)

o Interpretation of data gets complicated once we support centrally managed exceptions

o Data becomes voluminous if we support flags by Org Group (and descendants)

o This service is possible, but G-Invoicing team recommends we do not support it

̶ Real-time requests

4. Can these two partners (one requesting, one servicing) use this Feature? (Y/N)

5. What features are supported for these two partners? (List)

6. What partners can use this feature with this partner? (List)

̶ Recommended approach is #1 above
TREASURY UNCLASSIFIED // EXTERNAL

Page 11 L EAD ∙ T RANSFORM ∙ D ELIVER

Challenges for Pull Feature API

• What exactly is a “feature”?

̶ Features will be included in an API payload and can be posted on website

• What exactly is an “agency”?

̶ Agency Account is a logical grouping of users, chosen by agency 

leadership and orchestrated by Master Administrator(s)

̶ Today, Agency Account is only visible in a drop-down list on the GT&C

̶ Agency Account ID and Name will be included in the Pull GT&C payload

• If/when we decide to go down to Group level:

̶ Payload gets more complex for endpoints 1, 2, 3 and 6 on previous slide

̶ Can all ERP vendors handle information down to Org Group level?

̶ How does a client identify Org Groups for the two partners?

o Partners can be identified from documents:

a) GT&C identifies Agencies, each with a list of possible groups

b) Order identifies specific Org Groups

c) EZ Invoice identifies specific Org Groups

o Create new Pull Org services to give out all agency group names and/or IDs?

- Are there security concerns giving out other agencies’ org structures?
TREASURY UNCLASSIFIED // EXTERNAL

Page 12 L EAD ∙ T RANSFORM ∙ D ELIVER

Periodic Pull Feature Requests

• Recommend a daily service call to Feature Reference endpoint

̶ Features are static (per G-Invoicing release) and agency flags will rarely change

̶ Pull API of features, showing agencies that are ready 

• Resulting data set can be stored in agency system table(s) 

̶ Feature Code (e.g., ORDER_REVERT)

̶ Feature Description (e.g., Revert an Order modification back to the previous version)

̶ Identifiers for each eligible Agency Account – requesting and servicing

̶ Agency Account IDs are used to check eligibility of GT&C partners

̶ G-Invoicing manages complexities of feature flags and centrally managed exceptions

̶ Potential JSON content:

– features

>> featureCode

>> featureName

>> featureDescription

>> requestingAgencyAccounts >> servicingAgencyAccounts

- agencyaccountID - agencyaccountID

- agencyaccountID - agencyaccountID

• Real-time requests will not be supported
TREASURY UNCLASSIFIED // EXTERNAL

Page 13 L EAD ∙ T RANSFORM ∙ D ELIVER

BizApp Tables

BIZAPP]

FEATURE_CD Name Description Type Active Flag

STANDARD Standard Order Processing Agreement used to create standard BIO/SFO Orders STD Y

EZ_10K 7600EZ (under 10k) 7600EZ not to exceed $10,000 EZ Y

EZ_SUPPLY GSA Global Supply (7600EZ) 7600EZ for GSA Global Supply EZ N

EZ_PRINT GPO Print/Publishing (7600EZ) 7600EZ for GPO Print/Publishing Services EZ Y

BIZAPP_CONDITION

BizApp ID Name Entity Operator Value Display Value Active Flag

<EZ_10K> Order Originating Partner Indicator GTC = (EQ) S Servicing Agency Y

<EZ_10K> Max Buyer Reverse Days EZ Reject <= (LTE) 30 30 Y

<EZ_10K> Max Amount EZ Invoice <= (LTE) 10000 $10,000 Y

<EZ_PRINT> Order Originating Partner Indicator GTC = (EQ) S Servicing Agency Y

<EZ_PRINT> Max Buyer Reverse Days EZ Reject <= (LTE) 30 30 Y

<EZ_PRINT> Servicing Agency GTC = (EQ) 123456 Government Publishing Office Y

Back to BizApps ...

The following Business Application data will be deployed with the 4.6 release

Each BizApp points to a Feature so agency can manage their Feature Flags to allow/prevent use of the BizApp

Display Values of BizApp Conditions are shown to the users, while the Values are used in conditional rules

Entity shows where the conditional rule is applied (e.g., OOPI must be ‘S’ on the GT&C for EZ_10K)
TREASURY UNCLASSIFIED // EXTERNAL

Page 14 L EAD ∙ T RANSFORM ∙ D ELIVER

Adding BizApp to Pull GT&C

• Agency systems will need to know what BizApp is assigned to a GT&C

̶ Does a particular GT&C support Orders or EZ Invoices?

o G-Invoicing will accept one and decline the other, depending on BizApp Type

o BizApp Conditions play a supporting role in validations (see next slide)

• With the 4.6 release, the new Pull GT&C API version will return a JSON 

payload, including the BizApp

̶ BizApp Feature Code (e.g., STANDARD, EZ_10K)

̶ BizApp Type

o ‘STD’ type supports Orders and Performance

o ‘EZ’ type allows EZ Invoice, Reverse, Accept and Reject

Note: Values for BizApp Feature Code and Type will not change in the reference 

data and cannot be changed on a GT&C once an Order or Invoice has been created

̶ Agency Account will be added to the GT&C payload to relate agencies to 

their Feature Flag settings

o Agency Account ID and Name

Note: Previously, the Agency Account ID has not been shared with agencies and the 

Agency Account Name only appears on the GT&C Details page in the UI
TREASURY UNCLASSIFIED // EXTERNAL

Page 15 L EAD ∙ T RANSFORM ∙ D ELIVER

• Additional BizApp info will be made available to agency systems

̶ Feature Code (relates the BizApp on the GT&C to additional BizApp info)

̶ Name (e.g., Standard Order Processing) 

̶ Description (e.g., Agreement used to create standard BIO/SFO Orders)

̶ Conditions (Name, Operator, Value, Entity and Display Value), for example:

o e.g., Max Amount on EZ Invoice must be less than or equal to $10,000

̶ As of the 4.6 release, BizApp Conditions may be viewed by clicking on an 

informational icon on the Header/Detail tab of the GT&C Details page

Additional BizApp Information

Name Entity Operator Value Display Value

Order Originating Partner Indicator GTC = (EQ) S Servicing Agency

Max Buyer Reverse Days EZ Reject <= (LTE) 30 30

Max Amount EZ Invoice <= (LTE) 10000 $10,000
TREASURY UNCLASSIFIED // EXTERNAL

Page 16 L EAD ∙ T RANSFORM ∙ D ELIVER

Periodic Pull BizApp Requests

• New Pull APIs for BizApps and Conditions

̶ BizApp reference data will be made available via API through a new 

resource for periodic pulling

o Possible JSON content

– bizApps

» bizAppFeatureCode

» bizAppName

» bizAppType

» bizAppDescription

» bizAppConditions

- conditionName

- conditionEntity

- conditionOperator

- conditionValue

- conditionDisplayValue

o Not all BizApps will have Conditions

o BizApps may be referenced by the bizAppFeatureCode found in the GT&C 

payload
TREASURY UNCLASSIFIED // EXTERNAL

Page 17 L EAD ∙ T RANSFORM ∙ D ELIVER

Version History

Version Date Release Description

v1.0 5/25/2022 4.6 First version for publishing to G-Invoicing website