GHC Rate Engine & Invoicing
The MilMove Rate Engine and Invoicing components are responsible for processing requests from the GHC Prime to receive payment for services rendered by creating a Payment Request, pricing the Payment Request, and storing the pricing information and details about the inputs used for pricing to the database. Once this information is stored in the database, the TIO UI is able to query the database for Payment Request(s) details for display on the UI.
Once the TIO user has reviewed and approved a Payment Request for payment. The GHC Invoicing component will take the Payment Request and generate an EDI order to send to the Third Party Payment System (TPPS) to process the payment (pay the GHC Prime).
GHC Invoicing Diagram
High level overview diagrams
GHC Invoicing Flow
GHC Prime
- Creates Payment Request (optionally marked “final” to indicate no more payments due on this Task Order)
- Payment Request contains a subset of MTO Service Items from a Move or MoveTaskOrder (MTO)
- Sends “Proof of Service Document Package” to MilMove
- Creates Payment Request (optionally marked “final” to indicate no more payments due on this Task Order)
MilMove
- Receive Payment Request along with Proof of Service Doc Package
- Validates Payment Request
- Ensures that no previous “final” Payment Request has been sent
- Ensures that TOO has approved items on Task Order for which payment is requested. (Unapproved service items will not appear on the MTO.)
- Ensure that requested Service Item balances have not been covered in other Payment Requests
- Ensure that Service Item parameters obey validation logic
- Ensure that no other Payment Requests are open for these service items
- If valid, continue.
- If not valid
- Send rejection to GHC Prime
- End
Transportation Invoicing Officer
- Validates Payment Request (manual, web UI)
- Ensure Proof of Service Document Package exists and properly backs up requested Service Items
- TBD: if Prime submits unfinished payment request, what to do (this story needs to be cleaned up)
- If valid
- Approves Payment Request
- Continue
- If not valid
- Provides rejection reason
- Present rejection to GHC via MilMove
- End
- Ensure Proof of Service Document Package exists and properly backs up requested Service Items
- If last / “final” Payment Request, mark the Task Order “complete”
- No future Task Orders may be sent on this.
- Validates Payment Request (manual, web UI)
MilMove
- Sends EDI 858 order to TPPS (GEX) for payment
TPPS processes payment…
MilMove
- Receives EDI 997 to acknowledge receipt of the EDI
- If there are issues/errors with EDI 858, MilMove receives EDI 824 with a description of the issue
GHC Invoicing Mini Design Docs
- Discovery JobRunner
- JobRunner Async Handling for EDI Generation and Send to GEX-Syncada Proposal
- Discovery Auto-Validate Payment Request Implementation
- Discovery: TIO Pricing Details
- Invoice Processing Design
- Job Runner: EDI Responses Design
- Payment Request proposed model
- Recording Errors from 997 or 824
- GHC Fuel Surcharge Pricer
- SIT Pricing Notes
- Pricing Service Items Design
- (noodling) Reweighs: Invoicing engineer
- Payment Request Uploader Design and GH pull request for the refactor.
- SIT Pricing Distance Flow Design
- Design how data will be imported into production
- Initial PR to setup service item parameter lookup framework
- Service-object-based implementation of domestic linehaul pricer #2836
Miro boards
TXO UI
EDI/Syncada
TODO I think there are more docs than this, need to pull the relevant ones