Instrument Upload – Key Validation Checks
When uploading instruments, the system performs a series of validations to ensure data accuracy and integrity. Below are the most important checks.
🔴 Critical Data Checks
All required fields must be filled (not empty or whitespace only)
Instrument reference must be unique for each payer–seller combination
Face value must be a number between 1 and 9,999,999,999,999
Issue date must be today or earlier
Maturity date must be today or later
Date format must be one of the following:
DD.MM.YYYY,MM-DD-YYYY,DD/MM/YYYY, orYYYY-MM-DD
🧾 Deal & Counterparty Validation
The deal must:
Exist in the system
Be in Active status
The anchor (seller or payer, depending on deal type) must:
Be provided
Exist in the system
Have Active company status
The counterparty (payer or seller, depending on deal type) must:
Be provided
Exist in the system
Have Active company status
Have Active status as a deal counterparty
The deal manager (funder) must also have Active company status
💱 Currency Validation
The currency must be:
Supported by the platform
Either the deal limit currency or included as a "From" currency in the FX rate template assigned to the deal
❌ If any validation check fails, the system will:
Generate an error report detailing the failed validations and the reasons for the failure.
Reshow the failed records to the submitter with the specific error reasons for resolution. The submitter is given the option to resolve the issues or ignore them and resubmit only the records that passed validation.
Detailed Validation Checks
1. Upload criteria (per deal product group)
Payer‑centric deals – upload criteria for standard instruments (face value > 0)
Mandatory fields present: Instrument Ref, Issue Date, Due Date (for invoices), Seller, Currency, Face Value.
Seller is an active counterparty on the deal.
Issue Date is today or in the past.
Due Date (if provided/required) is on or after Issue Date / today (depending on section).
Face Value is greater than 0 and within allowed min/max range (1 to 9,999,999,999,999).
Currency is either the deal limit currency or a “From” currency in the FX template assigned to the deal.
No duplicate Instrument Reference for the same payer–seller pair across the system, excluding instruments tagged as deleted.
Deal is active.
Anchor is active.
Counterparty is active and active as a deal counterparty.
Seller‑centric deals – upload criteria for standard instruments (face value > 0)
Mandatory fields present: Instrument Ref, Issue Date, Due Date (for invoices), Payer, Currency, Face Value.
Payer is an active counterparty on the deal.
Issue Date is today or in the past.
Due Date (if provided/required) is on or after Issue Date / today.
Face Value is greater than 0 and within allowed range.
Currency is either deal limit currency or included as From currency in FX template assigned to the deal.
No duplicate Instrument Reference for identical payer–seller pair, excluding deleted instruments.
Deal, anchor and counterparty are active and the counterparty is active on the deal.
Credit notes – upload criteria (face value < 0)
Face Value < 0 (negative).
Same mandatory field and party‑status checks as above but for credit note context.
Credit note allocation rule exists for the payer–seller pair.
2. Individual instrument creation checks (manual or file‑based)
When creating an instrument record (before workflow states):
No field contains only whitespace.
All required fields present as per Instrument Upload – Field Validation Rules (Instrument Ref, Payer/Seller, Currency, Face Value, Issue Date, Original Maturity Date, etc.).
Deal exists and is Active.
Anchor (seller or payer depending on product group) is provided, exists and company status is Active.
Deal manager funder assigned to deal exists and company status is Active.
Counterparty (seller or payer depending on product group) is provided, exists and company status is Active.
Counterparty is Active as a deal counterparty.
Instrument Reference unique for the payer–seller relationship.
Currency is supported and is either deal limit currency or From currency in FX template for that deal.
Face Value must be numeric, digits‑only, between 1 and 9,999,999,999,999.
Issue Date must be today or in the past, valid format in one of: DD.MM.YYYY, MM-DD-YYYY, DDMMYYYY, YYYY-MM-DD.
Original Maturity Date must be today or in the future; mandatory for Invoices, optional for other types.
Original Maturity Date cannot be in the past when mandatory.
3. Bulk file upload validations (CSV/XLS/XLSX)
Initial file‑level checks:
File not empty.
File size ≤ 50 MB.
File type is CSV, XLS or XLSX (for instruments).
File contains ≤ 10,000 instruments.
File has a header row for column mapping.
All files in the batch share the same header structure.
Max 5 files per batch.
Column mapping checks:
Required columns mapped: Counterparties, Instrument Reference, Currency, Face Value, Issue Date, Original Maturity Date (mandatory for invoices), Additional Notes (optional).
If mapping missing for any mandatory field, mapping cannot be saved / upload blocked.
Per‑row validations after parse use the same rules as “Individual instrument creation checks” above (mandatory fields, date rules, numeric ranges, uniqueness, party statuses, etc.).
4. Workflow upload validation & submission checks
Upload validation job (“uploadvalidationpending”)
Runs “Upload Criteria” for the instrument depending on product group.
If checks fail → status
uploadvalidationfailed.If checks pass → status
readytosubmit.
Submission from readytosubmit
On Instrument Submitted event:
Re‑run Upload Criteria to ensure nothing changed (deal still active, parties still active, no new duplicate ref, etc.).
Evaluate “No Financing Allowed” flow (product structure may prohibit financing).
Depending on eligibility and product settings, instrument transitions to one of:
uploadvalidationfailedpayerapprovalpendingmakerconfirmationapprovednofinancingsellerfinancependingmakerconfirmationpayerfinancependingmakerconfirmationfunderapprovalpendingmakerconfirmationfundingpending
If any selected instrument fails validation at submission:
Those instruments go to
uploadvalidationfailed.Only instruments that pass move forward; user sees error snackbar.
5. Funding checks (before disbursement)
Executed from fundingpending (manual purchase or scheduled funding):
Limit checks
Instrument principal/advanced amount in deal currency ≤ programme available limit.
Same amount ≤ deal available limit.
Same amount ≤ deal counterparty available sublimit.
FX checks
Instrument currency equals deal currency, or
Instrument currency is base and deal currency is target in an active FX rate pair in FX template assigned to deal/counterparty.
Active checks
Seller company is Active.
Payer company is Active.
Counterparty is Active.
Deal is Active.
Funder is Active.
Investment day check
Today must be a valid investment day for funder (e.g. Monday per config).
Tag checks
Instrument must NOT have tag Not Fundable.
Instrument must NOT have tag Overdue Not Funded.
No Financing Allowed / Not Eligible tagging flows are also evaluated and may prevent funding.
If any of the above fail, funding stays in fundingpending or funding fails; errors reported to user.
6. Tagging and daily job validations
Overdue / due tags vs dates
If Original Maturity Date is set and today > original maturity date, tag Overdue Not Funded is applied (or corresponding overdue tags).
For funded instruments, daily job evaluates Due Funded, Overdue Within Grace Period Funded, Overdue Outside Grace Period Funded based on repayment schedule and grace rules.
Daily job fix for inconsistent Ready to Submit
Every night, find instruments where:
Status =
readytosubmit, andTag list includes Overdue Not Funded.
For such instruments, status updated to
uploadvalidationfailedso they no longer appear under Valid tab and cause front‑end validation errors.
“Instrument is Fundable / Eligible / Not Eligible” tagging
No Financing Allowed Check Completed may add tags:
noteligible,notfundable,noeligiblefundingwindow, removewithinfundingwindow, etc.These tag flows depend on:
No eligible funding windows.
Deal/companies/counterparty inactive.
Overdue/No Financing Allowed configuration.
7. Approval‑stage validations (Payer/Seller/Payer Finance/Funder)
These are logical/business validations applied when approving or rejecting:
At Payer Approval Maker/Checker:
Before approval, check deal, anchor, counterparty active; if not, instrument is ineligible and approval fails with error.
Instruments with Not Eligible tag can’t be approved; shown in separate views with explainers.
At Seller/Payer Finance Maker/Checker:
If instrument tagged Not Fundable, Maker/Checker approvals cannot proceed; system throws “Instrument not fundable” exception with reason (inactive deal, inactive party, no eligible funding windows, overdue, etc.).
At Funder Approval Maker/Checker:
Same Not Fundable checks.
If instrument Not Fundable, approvals cannot proceed.
Undo rejection checks:
When undoing rejection, tag flows for Due/Overdue Not Funded may be updated (tags removed).
8. Mark as Paid Without Financing checks
When moving to settledwithoutfinancing:
Instrument status must be one of:
approvednofinancing,sellerfinancependingmakerconfirmation,sellerfinancependingcheckerconfirmation,sellerfinancerejected,payerfinancependingmakerconfirmation,payerfinancependingcheckerconfirmation,payerfinancerejected,funderapprovalpendingmakerconfirmation,funderapprovalpendingcheckerconfirmation,funderapprovalrejected,fundingpending.Tag Deleted must NOT be present.
Tag flows: Due Not Funded / Overdue Not Funded removed when marking as paid.
9. Parent Instrument Ref validations
For Parent Instrument Ref on upload:
If Parent Instrument Ref is populated:
Validate parent instrument exists with:
Same currency as child.
Same buyer–supplier (payer–seller pair).
Instrument reference matches Parent Instrument Ref.
If no match → error “No parent instrument matches the reference, currency, and buyer–supplier.”
If Parent Instrument Ref causes circular link to itself or its child → error “Circular reference detected – parent instrument is already linked to this instrument.”
For funding child instrument:
Parent must be funded and have outstanding balance.
Child disbursement date must be today and ≥ parent disbursement date.
If multiple children share same parent with different disbursement dates → funding request rejected with specific error.
Parent with linked children cannot be deleted.
Funding of child linked to parent cannot be cancelled.
10. Instrument field‑level UI validations (front‑end)
These are enforced in the front‑end but mirror back‑end rules:
Instrument Reference: mandatory, string length limits, unique per payer–seller, no empty/whitespace, error texts for missing/too long/not unique.
Payer/Seller: mandatory; drop‑downs limited to deal parties; error if not selected.
Currency: mandatory; limited to deal currency + FX template currencies; error if empty.
Face Value: mandatory; numeric only; min/max; error for missing/non‑numeric/out‑of‑range.
Issue Date: mandatory; cannot be in future.
Original Maturity Date: mandatory for Invoices; cannot be in past; optional otherwise.
Supporting documents: type required; file type whitelist; max 50 MB per document; errors for unsupported type/too large.
