2026 — Vendor Onboarding & Reference Guide
The B2B invoice submission process at Hilcorp integrates your invoicing system with Hilcorp's financial system (SAP) so invoices flow through automatically. Since the original release of this process, Hilcorp has introduced a self-service B2B Vendor Portal that you use to register, configure how your invoices are translated, submit invoices, and track their status in SAP.
You can submit invoices through any of three channels — the web portal, an automated SFTP folder, or a REST API — and all three run through the same validation and transformation pipeline. This guide walks through onboarding end-to-end and serves as an ongoing reference.
Portal address:
Support contact: sapsupport@hilcorp.com
Your Hilcorp Business Partner Number is assigned by Hilcorp and emailed to you before you register.
Hilcorp administrators can also submit the registration on your behalf if needed.
The portal home page is the login page. Approved vendors sign in with three fields:
Your Business Partner Number is re-validated against SAP on every login. Sessions last 8 hours. If you forget your password, use Forgot Password (Business Partner Number + email) to receive a reset link.
Each Business Partner can have up to 50 individual user accounts, each with its own email and password and one of three roles:
| Role | What they can do |
|---|---|
| Full Admin | Everything, including managing the other users for your company |
| Submitter | Submit invoices and view history |
| Viewer | View invoice history only (read-only) |
A Full Admin manages your company's users from Manage Users in the navigation bar — add users, assign roles, deactivate, or remove them. New users receive an email invitation to set their password.
| Channel | Best for | How it works |
|---|---|---|
| Web Upload | Occasional or manual submission | Log in, select your XML + PDF files, and upload them on the Upload Invoice page. |
| SFTP | Automated, hands-off delivery from your system | Drop XML + PDF files into your Hilcorp SFTP folder; the portal retrieves and processes them automatically. |
| REST API | ERP / system-to-system integration | Your system POSTs each XML + PDF pair to the portal API with an API key. |
All three channels run the same pipeline: well-formedness check → duplicate detection → profile resolution → XML transformation to the Serrala FS2 AEI format → required-field validation → SAP duplicate check → secure storage → delivery to SAP. Submissions from all channels appear together in your Upload History with a colored source badge (Web, API, or SFTP).
Establishing a secure file transfer (SFTP) connection is the first step if you plan to deliver files automatically from your system.
To request an SFTP site, email sapsupport@hilcorp.com with the subject line B2B SFTP Site request. This is handled by the Hilcorp SAP Technical Team. Expect a reply with your TEST SFTP site and credentials within 2 business days.
Once Hilcorp configures SFTP for your account, your connection details appear on your portal home page (My Portal) under the SFTP Access section:
sftp://{userId}@{hostname}/{folder}Authentication can be password-based or private-key-based (.ppk, .pem, or .key). If you prefer key-based authentication, provide your public key to Hilcorp support.
Connect to the test SFTP site with any SFTP client (WinSCP, FileZilla, command-line sftp, etc.) to confirm your credentials and folder access before sending files. Hilcorp can run a Test Connection from the admin side at any time to help diagnose connectivity.
Hilcorp accepts two paths for your invoice XML: a standard format you adopt directly, or a customized translation Hilcorp builds for your existing format.
A standard format is pre-understood by Hilcorp's system and is the fastest route to go-live. Hilcorp currently supports two standard formats:
If you cannot produce Serrala FS2 AEI or PIDX, the portal can translate your own XML format into the required FS2 AEI document. You configure this yourself in the portal using Mapping Profiles (below) — no code or XSLT file from Hilcorp is required for most formats. For complex layouts you may upload your own XSLT stylesheet instead. Send at least one example file to Hilcorp support if you'd like help setting up the translation.
File names should start with the Vendor Number and then the Invoice Number, for example:
00400999_123456.xml
00400999_123456.pdf
The XML and PDF of the same invoice must share the same base name with different extensions so the portal pairs them. (If exactly one XML and one PDF are present, they are paired automatically regardless of name.)
If your source filenames use a different identifier (e.g., a DUNS number), or the vendor/invoice number lives *inside* the XML rather than in the filename, Hilcorp can configure a file-prefix substitution or XPath-based naming rule for your account — just ask support.
A Mapping Profile tells the portal how to turn your invoice XML into the Serrala FS2 AEI format. You create and manage profiles under Mapping Profiles in the portal.
IF … THEN … ELSE … conditional logic), static values, and dynamic tokens such as {TODAY} / {NOW}.CREDIT has a value → Credit Memo profile).Hilcorp administrators set certain values globally so you don't have to (for example SOURCE, AUTO_POSTING, and COCODE), and some fields may be hidden from your mapping screen because Hilcorp controls them.
If your system cannot produce a PDF image of the invoice, the portal can generate one for you from your XML. Hilcorp configures a PDF template on your mapping profile (either a visual layout or a custom stylesheet). When you submit an XML without a paired PDF and a template exists, the portal generates the PDF automatically. A PDF you supply yourself always takes precedence.
Thorough testing ensures every part of the submission process works before going live.
Hilcorp configures how your invoices are ingested on the Hilcorp side, and you configure your Mapping Profile(s) in the portal (test environment). At least one fully configured profile is required before uploading is enabled.
Send a batch of test invoices through your chosen channel (web, SFTP, or API). Each file is validated for correct formatting and required data. The portal reports a clear per-file result, including the reason for any failure.
Log in to the portal and open Upload History. Confirm each test invoice was received and transformed. Open an invoice's Details page to see the full value pipeline — your source XML value, the generated FS2 value, and the live SAP value — side by side for every key field.
After successful testing, both parties sign off and agree on a Go-Live date, marking the transition to production.
The production phase is where live invoice submissions take place.
The production portal is at https://b2bportal.hilcorp.com.
Hypercare is a post-go-live support period. Hilcorp and the vendor monitor submissions closely for a set period, and any bugs, errors, or inconsistencies are identified and resolved quickly to avoid disruption. Use the portal's Report Incident feature (below) to log anything that needs attention during this period.
The portal's Upload History is your single view of every submission across all channels:
| Badge | Meaning |
|---|---|
| Processed | Uploaded and transformed successfully |
| Pending FS2 | Staged and awaiting SAP pickup |
| SAP status (with description) | Found in SAP with its current processing status |
| Not Found in FS2 | Not yet seen by SAP |
| Duplicate in SAP | An invoice with this number already exists in SAP |
| Failed | Transform or upload error (hover/open for the reason) |
Any logged-in user can submit a support ticket via the Incidents link in the portal:
This is Hilcorp's native target format. If you adopt it as a standard format, produce XML in this shape (one invoice per document):
<BATCH>
<NAME>Name of Invoice</NAME>
<DESCRIPTION>Free form text description of invoice</DESCRIPTION>
<BATCHCLASSNAME/>
<INVOICES>
<INVOICE>
<HEADER>
<DATE>10/16/2024</DATE>
<TIME>11:20:53</TIME>
<ORIGFILE>Invoice_File.PDF</ORIGFILE>
<PONUM>999999999</PONUM>
<INVNUM>999999999</INVNUM>
<INVDATE>09/24/2024</INVDATE>
<TOTAL>100.00</TOTAL>
<CUR>USD</CUR>
<CREDIT></CREDIT>
<VENDNUM>40020100</VENDNUM>
<COCODE>1100</COCODE>
<TAX_AMOUNT>8.65</TAX_AMOUNT>
<TAX_CODE>I1</TAX_CODE>
<AUTO_POSTING>X</AUTO_POSTING>
<DEL_COST></DEL_COST>
<SOURCE>EI</SOURCE>
<VVALU2/>
<LINES>
<LINE>
<POLINE>10</POLINE>
<MATERIAL/>
<QTY>5</QTY>
<UOM>EA</UOM>
<PRICE>100</PRICE>
<UNITPRICE>20</UNITPRICE>
<TAX_CODE_ITEM>I1</TAX_CODE_ITEM>
<ITEMDESCRIPTION>Free form text description of line item</ITEMDESCRIPTION>
<KOSTL>Hilcorp provided Cost Center</KOSTL>
<GLACC>Hilcorp provided GL Account Number</GLACC>
<ITEMID/>
<PROJK>Hilcorp provided WBS Element</PROJK>
</LINE>
</LINES>
</HEADER>
</INVOICE>
</INVOICES>
</BATCH>
| Level | Tag | Description | Required | Supplied by |
|---|---|---|---|---|
| 1 | BATCH | Group — assume one invoice per XML document | — | — |
| 2 | NAME | Batch name — free form text | ✓ | Vendor |
| 2 | DESCRIPTION | Description of batch — free form text | ✓ | Vendor |
| 2 | BATCHCLASSNAME | Not used at this time | — | — |
| 2 | INVOICES | Group | — | — |
| 3 | INVOICE | Group | — | — |
| 4 | HEADER | Group | — | — |
| 5 | DATE | Current date | ✓ | Vendor |
| 5 | TIME | Current time | ✓ | Vendor |
| 5 | ORIGFILE | Original name of invoice file (stored for reference) | ✓ | Vendor |
| 5 | PONUM | Purchase Order Number | ✓ | Vendor |
| 5 | INVNUM | Invoice Number | ✓ | Vendor |
| 5 | INVDATE | Invoice Date | ✓ | Vendor |
| 5 | TOTAL | Invoice Total | ✓ | Vendor |
| 5 | CUR | Currency (default is USD) | ✓ | Vendor |
| 5 | CREDIT | X if this is a Credit Memo |
— | Vendor |
| 5 | VENDNUM | Vendor Number | ✓ | Vendor |
| 5 | COCODE | Company Code | ✓ | Hilcorp |
| 5 | TAX_AMOUNT | Amount of tax for invoice | ✓ | Vendor |
| 5 | TAX_CODE | I1 — tax code used by Hilcorp |
✓ | Hilcorp |
| 5 | AUTO_POSTING | X — auto-post if available |
✓ | Hilcorp |
| 5 | DEL_COST | Delivery cost | — | Vendor |
| 5 | SOURCE | EI — used by Hilcorp |
✓ | Hilcorp |
| 5 | VVALU2 | Not used at this time | — | — |
| 5 | LINES | Group | — | — |
| 6 | LINE | Group | — | — |
| 7 | POLINE | PO Line Item Number | ✓ | Vendor |
| 7 | MATERIAL | Vendor Material Code or Description | ✓ | Vendor |
| 7 | QTY | Quantity | ✓ | Vendor |
| 7 | UOM | Unit of Measure, typically EA or GAL | ✓ | Vendor |
| 7 | PRICE | Line Item Price | ✓ | Vendor |
| 7 | UNITPRICE | Unit Price of Line Item | ✓ | Vendor |
| 7 | TAX_CODE_ITEM | Line item tax code | — | Vendor |
| 7 | ITEMDESCRIPTION | Description of Line Item | ✓ | Vendor |
| 7 | KOSTL | Hilcorp Cost Center | ✓ | Hilcorp |
| 7 | GLACC | Hilcorp GL Account Number | ✓ | Hilcorp |
| 7 | ITEMID | Vendor Item ID | — | Vendor |
| 7 | PROJK | Hilcorp WBS Element | ✓ | Hilcorp |
Required line fields vary by document type: PO Invoice → POLINE, QTY, UOM, PRICE · Non-PO Invoice → KOSTL, GLACC, ITEMDESCRIPTION · Credit Memo → GLACC, PRICE, ITEMDESCRIPTION.
| # | Step | Responsible Party | Date Completed |
|---|---|---|---|
| 1 | Business Partner registration in the portal | Vendor | |
| 2 | Registration approved | Hilcorp | |
| 3 | Choose submission channel (Web / SFTP / API) | Vendor | |
| 4 | SFTP site setup (if using SFTP) | Hilcorp | |
| 5 | Test SFTP site and credentials | Vendor | |
| 6 | Select a Standard or Customized Format | Vendor | |
| 7 | Configure Mapping Profile(s) in the portal (Test) | Vendor | |
| 8 | API key issued (if using the API) | Hilcorp | |
| 9 | Setup of ingest process in Test | Hilcorp | |
| 10 | Send test files | Vendor | |
| 11 | Check Upload History / Details in the portal | Vendor | |
| 12 | Approval sign-off & selection of Go-Live date | Vendor / Hilcorp | |
| 13 | Production SFTP site and credentials | Hilcorp | |
| 14 | Import profiles into Production / setup ingest | Vendor / Hilcorp | |
| 15 | Send actual file for test | Vendor | |
| 16 | Check the portal | Vendor | |
| 17 | Go-Live | Vendor / Hilcorp | |
| 18 | Hypercare | Vendor / Hilcorp |
Base URL (Production): https://b2bportal.hilcorp.com/api/vendor — all requests require your X-API-Key header. Request an API key from your Hilcorp administrator.
| Endpoint | Method | Description |
|---|---|---|
/api/vendor/invoices |
POST |
Upload an invoice (XML + PDF pair; optional profileId) |
/api/vendor/profiles |
GET |
List your configured mapping profiles |
/api/vendor/invoices |
GET |
Paginated submission history |
Upload example (cURL):
curl -X POST https://b2bportal.hilcorp.com/api/vendor/invoices \
-H "X-API-Key: b2b_your_api_key_here" \
-F "xml=@invoice.xml" \
-F "pdf=@invoice.pdf" \
-F "profileId=0"
profileId=0 (or omitted) uses auto-detect. Full documentation, PowerShell examples, and error codes are on the portal's Help → Vendor API page.
| Version | Comment | Author | Date |
|---|---|---|---|
| .01 | Initial version | James Gilpin | 10/15/24 |
| .02 | Added appendix | James Gilpin | 10/18/24 |
| 2.0 | Rewritten for the B2B Vendor Portal: self-service registration, multi-user accounts, three submission channels (Web / SFTP / REST API), self-service mapping profiles (field mapping, XPath, XSLT, auto-select), PIDX standard format, generated PDFs, live SAP status tracking, incident reporting, and the API quick reference. Production URL added. | James Gilpin | 10/28/26 |