For Industry

How to Submit an Invoice in WAWF

Step-by-step for new federal contractors. WAWF’s interface feels like 1985, but the workflow is straightforward once you know the order of operations and what to gather first. Here is the whole process.

Last updated April 2026.

Before you dive in: MyInvoice. Once you’ve submitted an invoice, there’s a tool called MyInvoice that shows where each invoice is in processing and when payment is scheduled. It’s an application inside PIEE. If you see it as a tile on your PIEE home page, click in. If you don’t see it, request access through your GAM the same way you’d request any other PIEE application. We don’t cover MyInvoice in detail on this page because five minutes of clicking around will get you what you need. Just so you know it exists.
Verified Walkthrough

Watch the actual click-by-click first

A small-business owner recorded a live, over-the-shoulder demo of submitting a real WAWF invoice. I watched the whole thing and verified her process from a contracting officer’s perspective. Her steps are correct. If I were sitting next to a brand-new contractor walking them through their first invoice, this is exactly how I’d do it.

Video by Trenell at The Proposal Pro Coach. She runs the Proposal Pro Academy and posts a lot of practical federal-contracting content for small businesses; worth a subscribe if this video was useful.

Watch hers for the live walkthrough. Use this page for the broader context she explicitly chose to skip: setup, picking the right document type, what happens after you submit, the Prompt Payment Act, and the top reasons invoices get rejected.

What is WAWF and why do I have to use it?

WAWF stands for Wide Area Workflow. It is the Department of Defense’s system for receiving invoices from contractors. It lives inside PIEE (Procurement Integrated Enterprise Environment) at piee.eb.mil. If you have a DoD contract, your contract almost certainly requires you to invoice through WAWF. Paper invoices are rare and getting rarer.

Civilian agencies do not use WAWF. They use the Invoice Processing Platform (IPP) or agency-specific portals. If your contract is with the Department of Energy, the Department of Veterans Affairs, GSA, etc., this page does not apply. Check your contract for the invoicing system they require.

Heads up. WAWF’s interface looks like a website from the 1990s. That is the look of a system that has worked the same way for two decades. Treat the dated UI as a feature, not a warning sign.

Before you start: pull out your contract

Do not log into WAWF first. Open your contract document and gather these four things. Without them, you will get stuck halfway through and have to start over.

  1. Contract number. Found on page 1 of your contract. Be careful when typing it later. WAWF does not accept letter O’s. Every “0” in the contract number is a zero. The system rejects letter O’s as invalid.
  2. The DoDAAC table. Find the section titled “Wide Area Workflow Payment Instructions” in your contract (typically inside Section G, Contract Administration Data). The table lists codes for Pay DoDAAC, Issue DoDAAC, Admin DoDAAC, Ship-to or Service Acceptor, and Inspection. You’ll cross-check these against what WAWF auto-fills.
  3. The document type. Specified in the same WAWF Payment Instructions section. Read the entire description, not just the bold name. The wrong document type is one of the top rejection reasons. (See the document type picker below.)
  4. Your billing schedule. Are you billing monthly? Per delivery? At the end of the year? Your contract’s CLIN structure tells you. This affects which CLIN you select and how you set the unit price.

You also need the following set up before you can invoice:

  • A PIEE vendor account. Free. Created at piee.eb.mil. Your company needs a Group Administrator (GAM) who provisions sub-users (see the section below for how to become one or get approved by one).
  • An active SAM.gov registration with banking information. The bank info in SAM must match what DFAS expects to pay. A mismatch is a guaranteed rejection.
  • Your CAGE code linked to your PIEE account. Done during account setup.
Pro tip. Print page 1 of your contract and the WAWF Payment Instructions section before you start. Cross off each item as you enter it into WAWF. The page-flipping is half the friction.

What’s a GAM and how do I get one?

GAM stands for Group Administrator. In PIEE, every company has at least one. The GAM is the person at your company who can:

  • Approve new user accounts for anyone at the company who needs PIEE access
  • Assign roles (Vendor, Vendor View, Acceptor, etc.) to those users
  • Manage which CAGE codes users can act under
  • Remove users who leave the company

Without a GAM, no one at your company can get a working PIEE account, which means no one can submit invoices in WAWF. Setting one up is the very first thing you do, and it has to be done before anyone else at your company tries to register.

If you’re the first person at the company in PIEE: become the GAM

Walkthrough:

  1. Go to piee.eb.mil and click Register.
  2. Choose user type Vendor.
  3. When you reach the role-selection screen, request the Group Administrator (GAM) role for your company’s CAGE code.
  4. Complete the rest of the registration. PIEE will validate your authority by cross-checking your information against your company’s SAM.gov entity record (specifically the Entity Administrator and points of contact listed there).
  5. If your information matches the SAM record, the GAM role is typically auto-approved within a few business days.
  6. If it doesn’t match, PIEE will request supporting documentation (usually a letter on company letterhead from a corporate officer authorizing you as the GAM). Once they get it, allow 5–10 business days for approval.
This is why your SAM record matters. The smoother your SAM Entity Administrator and POC information is, the smoother the GAM approval. If the SAM record is stale (old contacts, old addresses), expect manual review and delays.

If your company already has a GAM: just request a regular account

If someone else at your company is already the GAM, you don’t need to be one too (and probably shouldn’t; one or two GAMs per CAGE is plenty). Instead:

  1. Go to piee.eb.mil and click Register.
  2. Choose user type Vendor.
  3. Request the Vendor role (and any other roles your job requires; e.g., Vendor View if you only need to see invoices, not submit them).
  4. Submit. Your existing company GAM gets a notification and approves you.
  5. Once approved, you can log in and start working.

If you don’t know who your company’s GAM is, ask your finance lead or whoever has historically dealt with WAWF invoices. Someone in the company set this up.

The orphaned-CAGE problem (and how to recover)

The most painful GAM scenario: your company’s GAM left, and nobody set up a replacement. Now no one at the company can approve new PIEE users, which means no one can invoice. The CAGE is “orphaned.”

Recovery:

  1. Contact the DISA PIEE Help Desk. Phone: 1-866-618-5988. Hours: 24/7. They handle PIEE access issues; the Federal Service Desk (fsd.gov) handles SAM, not PIEE.
  2. Tell them your CAGE code is orphaned (no active GAM) and you need to be designated as the new GAM.
  3. They’ll require documentation: a letter on company letterhead, signed by a corporate officer, naming you as the new Entity Administrator / GAM. Sometimes additional verification (driver’s license, tax records).
  4. Submit the documentation through the help desk ticket they open.
  5. Allow 1–3 weeks. Sometimes faster, sometimes much slower depending on backlog.
Avoid the orphaned-CAGE trap. If your current GAM is leaving the company (even if they’re just changing roles internally), designate a backup GAM before they go. Adding a second GAM takes 30 minutes; recovering an orphaned CAGE takes weeks. Most companies don’t think about it until it’s already broken.

For COs reading this: how to help a contractor sort GAM issues

If a contractor tells you they can’t submit an invoice because of PIEE access, the underlying issue is almost always a GAM problem. Three things you can do:

  • Confirm whether the contractor’s CAGE has an active GAM. If they don’t know, point them to the orphaned-CAGE recovery steps above.
  • Verify their SAM registration is active and the Entity Administrator info is current. A stale SAM record is the #1 reason GAM approvals stall.
  • If they’re actively waiting on a payment that’s being held up by GAM issues, document the cause in the contract file. Prompt Payment Act constructive acceptance can apply if the delay is on the government’s side. But if it’s the contractor’s GAM problem, that’s on them, not DFAS.

Pick the right document type

WAWF supports several invoice types. Your contract tells you which one to use. Read the full description in your contract: do not just match the bold name. Here are the most common:

Document Type When To Use
Invoice 2-in-1 Fixed-price services with no shipment. Combines invoice and receiving report into one submission. The most common type for service contractors.
Invoice and Receiving Report (Combo) Fixed-price supplies that require shipment of physical deliverables. Don’t confuse this with 2-in-1 just because both say “invoice and receiving report.”
Standalone Invoice When the receiving report is being submitted separately by the government or another party. Less common.
Construction Invoice Construction contracts. Includes pay application data and retention.
Cost Voucher Cost-reimbursement contracts (CPFF, CPIF, T&M). Used to bill incurred costs and fee separately. DCAA usually has a hand in approval.
Progress Payment Request For contracts authorized to receive progress payments before delivery.
Performance-Based Payment For contracts using performance-based payments tied to milestones.
Read the whole line. The contract might say “Invoice and Receiving Report” but then specify “for fixed-price line items that require shipment of deliverable.” If you have a service, that’s not your document, even though the title sounds like it might be. Read all the way through the description.

The click-by-click: submitting your first invoice

This walkthrough assumes you have your PIEE account, your contract documents in hand, and you’ve picked the right document type. The example uses Invoice 2-in-1 for services. Other document types follow a similar flow.

  1. Log in to PIEE. Go to piee.eb.mil and sign in. Click the Wide Area Workflow (WAWF) tile.
  2. Click “Create Document.” You are a Vendor. Click Create Document to start.
  3. Enter the contract number. Use the number from page 1 of your contract. Remember: every “0” is a zero. No letter O’s. Click Next.
  4. Select your CLIN. WAWF will pull up the contract’s line items (CLINs). If your contract has option years or multiple CLINs, select only the CLIN that matches what you are billing for in this invoice.
    Don’t click multiple CLINs unless you mean to. If you select the wrong CLIN, the invoice gets rejected and you start over. Each CLIN represents a different period or item.
  5. Choose the document type. Pick the one your contract specifies (see the table above). Click Next.
  6. Verify the auto-filled DoDAACs. WAWF will pre-fill most of the routing information. Verify each asterisk (*) field against the DoDAAC table in your contract’s WAWF Payment Instructions section.
    Asterisk rule. Fields with an asterisk are required. Fields without an asterisk: do not touch them. Leave them alone. The system has reasons for what it auto-fills, and tinkering with non-required fields tends to cause routing errors.
  7. Enter the invoice number. You create this. It can be numbers, letters, or both. At minimum one character. Most vendors use a sequence like INV-2026-001 or just 001. Each invoice number must be unique: you can’t reuse one.

    Also on this page: Final Invoice. The default question is whether this is the very last invoice you will ever submit on this contract. If it’s not, click No. Clicking Yes locks the contract and can take a month to undo.

  8. Edit the line item. Click Edit on the line item that appeared. You’ll see fields for:
    • Product/Service ID (PSC). Pre-filled from the contract. Verify against page 1 of your contract. Don’t change unless you have a real reason.
    • Quantity and Unit of Measure. If your contract uses “Job” for the unit and you’re billing once per month, quantity is 1 and unit is Job. Don’t panic if a label says “Ship Qty” on a service contract; it just means the count.
    • Unit Price. If the contract’s CLIN has an annual value but you’re billing monthly, change the unit price to your monthly amount. WAWF may show a warning that the unit price differs from the contract. That’s expected when the contract is divided into monthly billings, and the warning will not block submission.
    • ACRN. Accounting Classification Reference Number. Pre-filled. Verify it matches your contract.
    • Description. Always write what period the invoice covers. Example: “Payment for services May 1–31, 2026.” The COR will know exactly what they’re approving.

    Click Save CLIN to return to the document page.

  9. Submit. Click Submit. If you forgot something, the system will tell you what tab the error is on. Common one: even on a service contract with no shipment, WAWF may force you to enter a shipment number. Just enter something different from your invoice number (e.g., SHIP001) and set Final Shipment to No.
  10. Confirmation. When the submission goes through, you’ll see a confirmation. The invoice is now in the queue for the COR or designated acceptor to review.

What happens after you submit?

Your invoice now flows through several hands before money lands in your bank account:

  1. Inspector / Acceptor (your COR or designated acceptor). Reviews and accepts (or rejects) the invoice in WAWF. Acceptance starts the Prompt Payment Act clock.
  2. Local Processing Officer (LPO), if your contract requires one. Reviews funding and routing.
  3. DFAS (Defense Finance and Accounting Service) processes the actual payment. They schedule an ACH transfer to the bank account on file in SAM.
  4. Money lands in your account via ACH (direct deposit). Usually 1-2 business days after DFAS schedules it.

Realistic timing: on a clean invoice with prompt acceptance, payment in 14-21 days from submission is typical. Up to 30 days is normal. Longer than 30 days, something is stuck.

Prompt Payment Act: when you can collect interest

The Prompt Payment Act requires the government to pay you within 30 days of acceptance for most goods and services. (Faster cycles apply to perishable agricultural commodities, dairy products, edible fats and oils, and fresh or frozen fish, which run on a 7-day clock per 5 CFR 1315.4(b).) If they pay late, you are entitled to interest at the published Treasury rate.

The clock starts when the invoice is accepted, not when you submitted. If your COR sits on the invoice for two weeks before accepting, the 30 days starts from acceptance, not from your submission.

You don’t need to demand interest separately. It’s automatic. If DFAS misses the deadline, the interest gets added to your next payment. If it doesn’t show up, raise it with the contracting officer.

The most common WAWF rejections (and how to avoid each)

  1. Banking info doesn’t match SAM. The routing or account number in WAWF doesn’t match what’s in your SAM record. Fix: update SAM first, wait for it to revalidate, then submit.
  2. Wrong DoDAAC routing. Pay, Issue, Admin, or Ship-to is wrong. Fix: verify against page 17 of the contract, line by line.
  3. CLIN doesn’t match contract. Selected the wrong CLIN, or amount exceeds CLIN value. Fix: re-read the CLIN structure; pick the CLIN that matches the period and item being billed.
  4. Quantity exceeds CLIN value. You’re billing more than the CLIN can hold. Fix: split across multiple CLINs or talk to the CO if a mod is needed.
  5. Wrong document type. Selected combo when you should have selected 2-in-1, or vice versa. Fix: re-read the contract’s WAWF Payment Instructions, paying attention to the full description.
  6. Submitted before delivery (FFP supplies). Government can’t accept what hasn’t arrived. Fix: wait until delivery is complete and the receiving report can be submitted alongside.
  7. Missing supporting documentation. Some contracts require attachments (DD250 lines for supplies, daily reports, etc.). Fix: check the contract for required attachments before submitting.
  8. Inspection or Acceptance routing wrong. Origin vs. destination matters. Fix: match what the contract says exactly.
  9. LPO not designated. When required, an LPO must be in the routing. Fix: ask your CO who the LPO is for your contract.
  10. Final Invoice = Yes by mistake. Locks the contract. Fix: takes about a month to undo via the CO. Just click No unless you really mean it.

My invoice has been pending for weeks. What now?

WAWF lets you check the status of every invoice you’ve submitted. Look for the document and check who currently holds it. The status will be one of:

  • Submitted: sitting in the COR’s queue, waiting to be accepted.
  • Inspected: accepted by the inspector, waiting on the next reviewer (LPO, DFAS).
  • Accepted: the Prompt Payment Act clock has started.
  • Paid: payment has been scheduled or made.
  • Rejected: with a reason; fix it and resubmit.

If the document is stuck at Submitted for more than 5-7 business days, email your COR. The COR may not have known the invoice landed in their queue (notification emails get filtered). Polite nudges work; escalation to the CO works faster.

If the document is at DFAS and aging past 30 days from acceptance, contact DFAS through their customer service portal. Have the invoice number, contract number, and submission date ready.

Also check MyInvoice inside PIEE: the application mentioned at the top of this page. It shows the actual payment-side status (scheduled, paid, on hold for a Treasury offset, etc.) and is often more current than what WAWF shows.

What about civilian agency contracts?

WAWF is DoD-only. Civilian agencies use one of:

  • Invoice Processing Platform (IPP): the Treasury-run platform used by many civilian agencies (HHS, DOI, DOE, EPA, etc.).
  • Agency-specific portals: some agencies have their own systems (VA has Tungsten, GSA has its own e-invoicing, etc.).

Your contract’s payment clauses will tell you which system applies. The mechanics are similar (gather contract info, log in, fill out, submit) but the screens and field names differ. A separate guide for IPP is on the roadmap.

New to federal contracting? Read this first.

If you haven’t registered in SAM.gov yet, that’s the prerequisite to invoicing. And if anyone has emailed you charging for SAM renewal: it’s a scam.

Read the SAM renewal scam guide →