5B-Purchasing and Finance Flows (short version)
Context and objective
Purchases: Orders and Receipts (managed in X3 or Yooz). Invoices: Integration of purchase invoices on orders (PIH).
Finance: Invoices outside of orders / general expenses (BIS). Management of Payment Approvals (BAP) and Payment Returns (subject PAY / feedback).
This document covers the Purchasing and Finance flow of the Yooz connector for Sage X3. It describes the expected operation of orders and receipts, whether managed in Sage X3 or in Yooz, as well as the integration of supplier invoices into X3.
This document addresses these phases of implementation:
| ▼ | ▼ | |||||
|---|---|---|---|---|---|---|
| Pre-sales | Initialization | Framing | Installation | Setup | Recipe | Production launch |
Scope covered and reading prerequisites
Before continuing with this chapter, ensure that the others have been completed in their entirety, up to and including the synchronization of the repositories. Specifically, this includes Yooz organizations, users, suppliers, accounts, analytical axes, taxes, payment terms, and, if necessary, items, must be available on the Yooz side before performing the billing tests.
⚙️USEFUL PARAMETER VALUES
The Yooz connector only handles flows linked to a purchase order. Therefore, the entry of isolated documents must be blocked in the Sage X3 parameter values (Setup > General parameters > Parameter Values (function ADPVAL):
-
PTHDIR (ACH / REC): Set to "No" (receipt must be made on order).
-
PNHDIR (ACH / RET): Set to "Yes" in the settings (in order not to block the client's inter-site return flows). Technical note: The connector will dynamically force this value to "No" on X3 input screens if the user attempts to make a direct return to an external provider.

Flow of Procure-to-Pay
The connector covers two main modes of operation:
- Purchases are created in Sage X3 and then sent to Yooz for reconciliation and invoice processing.
- The order and/or receipt is initiated in Yooz and then imported into Sage X3 so that X3 generates the entries, keeps the documents and ensures accounting follow-up.
Case A: Purchase flows are managed in Sage X3

Case B: Purchase flows are managed in Yooz

1 - Case A: Purchases managed in Sage X3
→ Sage X3 is the master application for creating and updating purchase orders, receipts, and supplier returns
→ Yooz then receives the necessary data to enable the capture of the supplier invoice, its reconciliation with the order or receipt, and then its validation before import into Sage X3.
1.1 General flow logic (X3 master)
The workflow should be viewed as a single chain, from the purchase in Sage X3 to the invoice payment. In case A, orders and receipts are not created in Yooz; they are created in Sage X3 and then transmitted to Yooz so that the supplier invoice can be matched with the corresponding purchase order.
Here are the functions used in the flows for case A:
| Stage | Master application | Function / Object | Role in the flow |
|---|---|---|---|
| 1 | Sage X3 | GESPOH / POH | Creation of the purchase order. The order may contain lines subject to receipt and lines not subject to receipt. |
| 2 | Sage X3 | GESPTH / PTH | Creation of the receipt when the item is submitted for receipt.The receipt then becomes the basis for invoice reconciliation on Yooz's side. |
| 3 | Sage X3 | XRJ31YOOZSUI then XRJ31EXE | Queuing in the XRJ31YOOZSUI table and then sending, receiving or returning orders to Yooz via the XRJ31EXE batch task. For commands: only the lines (POQ) are sent to Yooz. |
| 4 | Yooz | PO / PO invoices | Matching the supplier invoice with the order or receipt transmitted by Sage X3. |
| 5 | Sage X3 | GESPIH / PIH | Import the validated purchase invoice into Yooz using the XRJ31PIH import template. The invoice remains linked to the original order or receipt. |
| 6 | Sage X3 then Yooz | Feedbacks / PAY | Accounting return after invoice validation in X3, then payment return after settlement. |
Additional costs The transmission of billing elements (shipping costs, customs, discounts) to Yooz is done via the addition of outgoing customs fields on purchase orders (line 18). Prerequisite: the code for element X3 must exist in the Yooz repository. Analytics The analytical dimensions entered on the X3 order are transmitted to Yooz. Any subsequent manual modification directly in Yooz risks desynchronizing the original data with X3.
1.2 Reception Management (Conditional)
For receipts, the main rule is indicated by the "Received product" box in the product record, corresponding to the field ITMMASTER.RCPFLG. This rule determines whether Yooz should match the invoice with the order or with the receipt.

| Case | Sage X3 Rule | Sending time to Yooz |
|---|---|---|
| 1 - Product not subject to receipt | The "Received product" box is not checked. The purchase does not wait for physical receipt in X3. | The command line is sent to Yooz as soon as the order is broadcastable according to the X3 process, including after editing/printing if this control is used. |
| 2 - Product subject to receipt | The "Received product" box is checked. | The line is normally only sent to Yooz after the X3 reception has been created. |
| 3 - Order sent before receipt | Exceptional case for a line normally subject to reception. | A manual send button allows you to send the order without waiting for receipt, if the order has not already been sent to Yooz. |
For case 1: the order is added to the sending queue with each new print job. If an order is modified, it must be reprinted for the update to be sent to Yooz.
Case 1: Purchase not subject to receipt
- The fundamental principle: Without waiting for stock receipt or physical delivery, the Sage X3 purchase order is transmitted directly to Yooz. It then becomes the immediate basis for reconciling the supplier invoice.
- Instant processing: Yooz doesn't wait for any receipt action. As soon as the supplier invoice arrives on the platform, it can be processed and matched directly with the X3 order.
- Data transmitted: Yooz receives the complete purchase order. This order natively includes the analytical dimensions provided by the X3 order line, and can be enriched, if needed, with custom outgoing fields.
Case 2: Purchase subject to receipt
- The fundamental principle: For items requiring stock entry (
RCPFLG= 2), the initial command is never sent alone. It is the validation of receipt which triggers the sending to Yooz. The transmitted data then combines the order and the actual delivery to guarantee a match exactly as per the supplier invoice.
The 3 prerequisites for operation:
- Site configuration: The X3 receiving site must be linked to a Yooz organization.
- Traceability (Items by batch): The breakdown of quantities must be entered precisely in the quantity details of the receipt, and not globally on the line.
- Exclusion native: Lines marked as non-billable are not sent to Yooz.
Case of multiple receptions:
The connector adapts to all X3 logistics (partial deliveries, backorders, group orders) and Yooz always bases its matching on the quantities actually delivered.
1.3 - Special case: Forcing the shipment of an order before receipt
This mechanism is a strict exception to the basic rule, used only when the schedule requires it.
In this scenario, a specific button "Send to Yooz without receiving" allows the order to be sent to Yooz for immediate invoice reconciliation.
So that the button "Send to Yooz without receiving" either clickable on the command (GESPOH), three cumulative conditions are required:
-
Not transmitted: The order must not have already been sent to Yooz (empty Yooz timestamp).
-
Signed: The X3 signature workflow must be completed (if configured).
-
Printed: The order must have been printed at least once.
The functional consequences of this button are:
-
In Yooz The invoice will be linked directly to the order, and not to a receipt.
-
In Sage X3 The invoice imported from Yooz will be linked to the purchase order. The physical receipt of the goods can still be entered later in X3 to update the inventory.
1.4 - Modifications, cancellations and balance management
The connector's role is to keep Yooz aligned with the state of Sage X3. Functional changes must therefore be reflected as soon as they concern a document already sent to Yooz.
See the detailed documentation
1.5 - Physical returns to suppliers (PNH/PRT)
For supplier returns (PNH/PRT):
The flow only concerns purchases subject to receipt. Validating the return in Sage X3 does not create a new "Return" object in Yooz, but directly updates the original order by adding new lines.
The valuation logic (Quantity vs. Amount):
On these new lines added to Yooz, the quantity remains positive (to allow reconciliation with the future supplier credit note), but the unit price and total amount are sent as negative.
The trigger to have (Trigger):
It is the presence of this negative amount that triggers the connector. During the final export from Yooz to Sage X3, the system will detect this "-" sign to understand that it is a reverse flow and automatically generate the credit note (AVR/AVO) in the ERP.
2 - Case B: Purchases managed in Yooz
In this scenario, Yooz is the master application for entering purchases.
Everything is initiated on the operational side in Yooz (purchase request ➔ order ➔ possible receipt), then replicated in Sage X3. The ERP remains the reference application for accounting, the payment authorization and the settlement.
The 3 implementation scenarios:
-
Orders in Yooz / Without delivery Basic workflow. The validated order is exported to X3, then the invoice is reconciled directly.
-
Orders in Yooz / Receipts in Sage X3 Classic and fully functional hybrid flow. Physical logistics are maintained within the ERP.
-
Orders and deliveries in Yooz Rare case. The receipt is entered in Yooz and then exported to X3. Each addition of quantity received in Yooz creates a receipt in X3.
Case B is not simply the inverse of case A. Purchases involving advanced logistics (batch management, sub-batch management, serial numbers, locations) must absolutely remain managed in Sage X3.
Reminder of prerequisites:
-
The supplier, site, currency, items, units, taxes, and necessary analytical axes must exist or be properly synchronized before testing.
-
The X3 site must be consistent with the Yooz organization. An incorrectly configured organization will result in an incorrect order site or an import rejection.
-
The order number and line identifiers must remain stable so that the invoice and receipts can find the correct original document.
-
The order imported from Yooz must not be re-entered in X3, otherwise the flow may create duplicates or a reconciliation on the wrong document.
2.1 - General logic of the flow (Yooz master)
The workflow is a continuous chain, from the purchase request in Yooz to the payment in Sage X3. Yooz handles the request, business validation, and invoice reconciliation. Sage X3 receives the validated data to create the documents in the ERP system and continue the accounting cycle.
| Stage | Master application | Object / function | Role in the flow |
|---|---|---|---|
| 1 | Yooz | Purchase Request (PR) | Creation of the purchase request and execution of the business validation workflow. |
| 2 | Yooz | Order (PO) | The order is created after the requirement has been validated. This document becomes the business reference for the workflow. |
| 3 | Sage X3 | Order (GESPOH) | Purchase order imported. Strict replica prohibiting any direct modification. Automatic read-only locking following import by the system user. |
| 4 | Yooz | Reception (GR) | Logistical receipt entry (if required by the item) directly on the Yooz order line. |
| 5 | Sage X3 | Reception (GESPTH) | Import of the receipt. Creation of an X3 document for each new quantity received and transmitted. |
| 6 | Yooz | Invoice | Capture, control, reconciliation (on order or receipt) and validation of the supplier invoice. |
| 7 | Sage X3 | Purchase invoice (GESPIH) | Import of the validated purchase invoice. Accounting management, payment approval and settlement then resume the standard cycle (see Finance section). |
2.2 - Step 1: Creating and importing purchase orders
The purchase order originates in Yooz (usually from an approved purchase request). Its validation triggers transmission to Sage X3 (model XRJ31POH) to generate an exact replica in the function GESPOH. The ERP thus has the reference document for future invoice reconciliation.
Creation of the purchase request

Sending to the ERP The "Confirm PO sending" action closes the task on the Yooz side. The data is instantly pushed to Sage X3 via a SOAP web service call. The order is physically created in the ERP.

Once imported, the order remains managed exclusively by Yooz. Any direct manual modification in Sage X3 will result in desynchronization and invoice reconciliation failure. Corrections must be made in Yooz before being applied to the ERP system via the import process.
2.3 - Step 2: Reception Management
Case 1: Purchase not subject to receipt (general expenses, services, etc.)
For an item not subject to receipt (field ITMMASTER.RCPFLG Positioned at 1), the logistics step is ignored. The purchase order is sufficient to carry the flow.
-
Rapprochement The supplier invoice is directly reconciled with the original order in Yooz.
-
Integration The invoice is exported and integrated into Sage X3 as a purchase invoice (GESPIH function, XRJ31PIH model).
This flow excludes any physical validation in the ERP. To require a "service rendered" check (even on a non-stocked service), the item must be configured as "receivable" to switch to Case 2.
Case 2: Purchase subject to receipt (goods, stocked purchases...)
The receipt entered in Yooz is always executed on an existing command line. It is never an isolated document.
⚙️ Yooz configuration required:
In Settings and preferences > Document processing preferences > Purchase orders > Order receipt:
- Check "Enable default receipt on purchase request".

- In the Process Customization section, activate "Generate a receiving task on orders generated in Yooz" and "Generate a missing receiving blocking task on the invoice on order".

The ERP creates a receipt for each new quantity transmitted by Yooz via the import model XRJ31PTH.
Logistics management rules:
-
Prerequisite articles Strictly incompatible with items managed by batch, sub-batch, serial number or location.
-
Direct receptions These are completely prohibited in this scenario. The flow must retrieve the original command and line in X3.
2.4 - Modifications, corrections and deviation management
In case B, the master application is Yooz. All operational corrections must be initiated there. The ERP receives updates but should never be used as a direct correction area for an imported order.
Modification and return rules:
-
Control lock: An order imported via the technical user Yooz is automatically locked in read-only mode in Sage X3. The aim is to prevent any manual desynchronization between the two systems.
-
Quantity adjustments: In case of adjustment of quantities in Yooz, only the difference (the delta) is transmitted to Sage X3 to create a line or an additional part.
Security and invoice control (Anti-duplicate):
- Strict import restrictions: The system prevents any double integration. If the Yooz number (
XRJ31NUMYOOZ) is already present in Sage X3, the import or validation is automatically blocked with an error message. - Manual duplication possible (workaround): It is still possible to manually duplicate an invoice directly in the ERP for business needs. To avoid triggering the duplicate alert, the connector automatically clears the Yooz-specific fields (
XRJ31NUMYOOZ,XRJ31URLFAC,XRJ31YOZDAT) on the newly generated part.
2.5 - Physical returns initiated in Yooz
Native handling of "Physical Return" type documents does not exist in the Yooz-driven purchasing flow (case B). Processing requires a strict distinction between the financial flow (credit note) and the logistical flow (inventory).
Financial processing (Credit note on order) in Yooz:
-
Negative amount method: Since the Yooz application does not have a "Purchase credit note on order" type, the operation requires the use of a classic "Purchase invoice on order".
-
Reverse entry: Amounts (header and lines) must be entered as negative (using the "-" sign). Note: the quantities entered must remain positive.
-
Automatic conversion: During export, the connector detects these negative amounts and automatically generates the appropriate document in Sage X3 (credit note of type AVO or AVR).
Using a negative invoice in Yooz does not replace or settle a physical transaction in the ERP system. If the supplier return has a logistical impact (stock, batch, location, traceability), the physical return must be entered and managed directly in Sage X3 (see case A).
3 - Common financial processing: PIH, BIS, BAP and feedback
The integration of the financial document into Sage X3 follows two distinct flows: the model PIH is used for invoices linked to an order or receipt, while the model BIS includes overhead invoices (excluding orders).
Once the part is created, the import XRJ31BAP the system then updates the "Approved for Payment" status in the ERP. Finally, the cycle concludes with feedback being sent to Yooz to automatically confirm the accounting and payment of the invoice.
| Treatment | Function X3 | Model / object | Functional role |
|---|---|---|---|
| Purchase invoice upon order or receipt | Purchasing > Invoices > GESPIH Invoices | PIH / XRJ31PIH | Create in X3 a purchase invoice linked to the original order or receipt. |
| Invoice outside of order / overhead costs | A/P-A/R accounting > Invoicing > GESBIS supplier invoices | BIS / XRJ31BIS | Create in X3 a third-party supplier invoice without linking it to a purchase document. |
| Attachment (PDF of the invoice) | Attachments (from GESPIH or GESBIS) | XRJ31IPDF | Physically import the validated PDF document into Yooz to attach it to the invoice in Sage X3. |
| Good to pay | A/P-A/R accounting > GESDUD invoice due dates (or via GESPIH/GESBIS) | XRJ31BAP / GACCDUDATE.FLGPAZ | Update the payment status without re-importing the entire invoice. |
| Accountant feedback | PIH or BIS validation/accounting | API: /yooz/v2/api/feedbacks | Return invoice number X3 to Yooz (YZ_POSTING_NUMBER) and the ERP import date (YZ_IMPORT_DATE_ERP). |
| Payment feedback | A/P-A/R accounting > Payments > Payment/Receipt entry GESPAY | Objet PAY / Action PAYMENT | Inform Yooz that the invoice has been settled when the payment reaches the expected status ("In Bank") in X3. |
3.1 - Importing invoices into Sage X3 (Flow Yooz ➔ Sage X3)
3.1.1 - Reconciliation in Yooz and import of the purchase invoice
This flow only concerns supplier invoices linked to a purchase document (order or receipt). In Yooz, the expected document type for these items is strictly "purchase invoice on order".
The goal of the connector is to maintain end-to-end traceability: the invoice validated in Yooz is automatically imported into Sage X3 as a purchase invoice, without ever losing its link to the original document.
| Scenarios | Example | Close-up document in Yooz | Point of vigilance |
|---|---|---|---|
| Purchase not subject to receipt | General expenses, services | Purchase order | The invoice can be processed in Yooz as soon as the order is visible there. |
| Purchase subject to receipt | Goods, stock | Receipt or quantities received | The reconciliation must meticulously follow the quantities actually received and billed. |
| Order sent before receipt | Grand Import | Purchase order | The physical receipt of the goods can be entered later in Sage X3. |
| Additional unforeseen charges | Various line | Order/receipt completed in Yooz | The unit and article used must be framed; the unit can be forced to “ONE” if the line origin does not provide a unit. |
-
Discrepancy management and supplementary lines If additional costs not included in the order are incurred (shipping, customs), supplementary lines can be added directly in Yooz. These lines require precise allocation (generic item, unit, account, tax, analytical) to ensure error-free integration into the ERP system.
-
Yooz validation and export to Sage X3 After validation in the Yooz workflow, the invoice is exported to Sage X3 (according to the established workflow). The connector imports the invoice via the template XRJ31PIH. According to the legislation, the model can be adapted.
-
Invoice creation in GESPIH Exporting creates a purchase invoice PIH in X3. The connector populates the Yooz traceability information for part X3, including the Yooz number, the URL link to the Yooz image, and the information needed for subsequent feedback. The PDF can also be physically imported as an attachment via XRJ31IPDF.

To ensure error-free integration of invoices into Sage X3, several business rules are automatically applied. (See detailed documentation)
Purchase management in X3 (Case A) vs in Yooz (Case B) The main difference between these two operating modes lies solely in the direction of synchronization of the original documents. The method for creating and importing the final purchase invoice into Sage X3 remains exactly the same for both scenarios.
Various lines and assets A line item entered in Yooz without an item code is imported into the ERP system as a "miscellaneous line item". The connector natively handles negative amounts on these lines for the creation of credit notes or deductions. Attachment (PDF) Exporting the invoice PDF from Yooz for automatic integration as an attachment in X3 is possible. Prerequisite: Enable the Yooz Web Service XRJ31IPDF and configure the destination XRJ31AIMMS with the value MESSPDF in the ERP.
3.1.2 - Third-party supplier invoices (invoices not linked to an order)
Invoices not linked to a purchase order should not be treated as regular purchase invoices PIH. They fall under the Finance stream.
In Yooz, they are treated as "third-party invoices", and the connector will automatically create them in Sage X3 as "supplier third-party invoices" GESBIS.
The invoice is captured in Yooz and processed as a "non-PO invoice". The accountant will have to manually allocate it using the reference data synchronized with X3.
![][image10]
After validation, Yooz exports the invoice to Sage X3. The connector calls the template XRJ31BIS in order to create a third-party supplier invoice in the function GESBIS.

The bill BIS must retain the Yooz number, the Yooz image URL and, if the feed is enabled, the physically attached PDF via XRJ31IPDF.
The third-party invoice then follows its usual X3 validation cycle
When these invoices are entered into Yooz, the data is interpreted by Sage X3 as follows:
-
Payment terms: The payment condition entered in Yooz takes precedence. It overrides the default condition set on the supplier's record in Sage X3.
-
Comments and Label: The first comment entered in the header of the Yooz invoice is automatically retrieved by Sage X3 to become the "label" of the generated accounting document.
-
Fixed assets: The "Purchase Type" field allows you to identify if a specific line relates to a fixed asset, so that Sage X3 can process it correctly.
-
Collective accounts: If a posting line uses a collective account, Sage X3 requires that a third party be linked to it. If this third party is not specified on the line in Yooz, the connector automatically uses the header provider to force the line and prevent a block.
-
Specific adaptations: The connector natively handles the injection of Yooz custom fields into Sage X3, as well as specific legal obligations.
3.2 - Synchronization of the payment voucher (Flow Yooz ➔ Sage X3)
The "Approved for Payment" (BAP) status authorizes the payment of an invoice. Please note, Sending this status from Yooz to X3 is not automatic by default. Its triggering depends strictly on the construction of the customer workflow in Yooz.
⚙️ Prerequisites: Invoices must be created in Sage X3 with an initial status of "Pending" (user setting NEWBONPAYE set to "Pending").
The invoice status changes to "Approved for Payment" in the ERP system. The supplier payment can then be processed in Sage X3. Any invoice without this status remains strictly blocked for payment.

The payment authorization (BAP) issued by Yooz is completely independent of the accounting validation performed in Sage X3 (which generates the journal entry). Therefore, the BAP status can be applied before or after the accounting validation.
The model XRJ31BAP is strictly for modifying the payment authorization. It cannot be used to correct amounts, taxes, or charges.
3.3 - Accounting validation & feedbacks (Flow Sage X3 ➔ Yooz)
Feedback closes the loop between Sage X3 and Yooz. Once the invoice is integrated into the ERP, information known only after this integration (accounting document number, import date) is sent back to Yooz.
This feedback relies on the API***/yooz/v2/api/feedbacks*** and requires identification of the original document. Therefore, invoice X3 must include the Yooz number entered in the field PINVOICE.XRJ31NUMYOOZ.
The accounting feedback is sent when the invoice from Yooz is validated in Sage X3. The following fields are then updated in the block YZ_INVOICE from Yooz:
| Field Yooz | Source Sage X3 |
|---|---|
| YZ_POSTING_NUMBER | PINVOICE.NUM or X3 part number used as accounting reference |
| YZ_IMPORT_DATE_ERP | ERP validation or import date, for example PINVOICE.UPDDAT |
3.4 - Payment settlement and feedback (Flow Sage X3 ➔ Yooz)
The supplier payment flow follows the standard Sage X3 logic. Sending the feedback to Yooz is no longer based on the "In bank" status of a payment, but is triggered exclusively by the matching (lettering) of the accounting document originating from the initial invoice.
Transmission of the amount (YZ_AMOUNT_PAID, corresponding to the new matched total minus the amounts already sent) and the most recent payment date (YZ_DATE_OF_PAYMENT deduced from GACCDUDATE.PAYDAT) via the Yooz export task XRJ31EXE. The invoice status in Yooz changes from "Awaiting payment return" to "Paid" (or remains pending in the case of a partial payment).
Partial payments : Natively managed. In the event of successive matchings, the connector calculates the difference between the new matched total and the amounts already transmitted to send only the delta (the partial payment amount) to Yooz. The Yooz workflow remains pending.
Cancellation (Negative Flows) : In case of an error in X3 (unmatching or payment cancellation), a feedback with a negative amount is sent to restore the remaining amount to be paid in Yooz. Warning: sending this negative amount (unmatching) is strictly impossible if the invoice has already been fully matched (as the invoice has reached the end of the Yooz workflow, it is no longer "listening" for new statuses).
Compensations (Credit notes / OD) : Matching a Yooz invoice with another accounting document (such as a supplier credit note or a miscellaneous operation) updates the open item. This compensation therefore flows back into Yooz in exactly the same way as a standard payment and settles the remaining balance.
Grouped payments (Yooz / non-Yooz mix) : Now supported. Since the system is based on the matching of open items, it natively filters the records and only sends the feedback for the entries having a Yooz identification number (XRJ31NUMYOOZ), silently ignoring the rest of the batch.
3.5 - Special case: Import & management of assets
Credit notes must be documented separately, as Yooz and Sage X3 do not share the same functional logic. In X3, a credit note can be represented by an invoice type expected in the purchasing or accounts payable module. In Yooz, the document can be reconciled with the original purchase using negative entries, particularly for returned credit notes.
| Case | Functional origin | Yooz Treatment | Import X3 expected |
|---|---|---|---|
| Having to return to the supplier | Supplier return validated on a receipt already invoiced | The return is sent to Yooz as a negative line item attached to the original order. The supplier then transmits the credit note to Yooz. | Import via PIH / XRJ31PIH with expected type in X3, according to PIVTYP and TYPORI settings. |
| Discount or reduction | Trade difference, discount, or billing element that reduces the amount | The discount is recorded as a negative line item or invoice element. The tax rules must be defined. | Import into the invoice or credit note depending on the business case. Discounts must be transmitted without a VAT code or VAT amount when the billing elements rule applies. |
| Having out of order | Finance correction without purchase document | No order or receipt matching. | Processing via BIS if the document falls under third-party supplier accounting. |
| Credit note on invoice already processed | Correction of an invoice that has already been integrated and validated | To be framed as a corrective document. Yooz links the credit note to the purchase and not to the X3 invoice already recorded. | Do not re-import the original invoice. Use a credit note or accounting correction according to the chosen process. |
The 2 golden rules for entering assets in Yooz Yooz cannot natively link a "purchase credit note" document to an order. Therefore, the behavior differs depending on the workflow: Having out-of-order items (flow BIS): The user uses the "Purchase Credit Note" document type and enters the amounts as positive. The X3 import will create a third-party supplier credit note. Available on order/return (flow PIH): The user must use the "Purchase Order Invoice" document type with negative amounts (header AND lines) for the template XRJ31PIH to work and create the credit note. Note: quantities must remain positive. When reconciling in Yooz, the user must click on the "orange square" to disable the default search filters; otherwise, the original order will not appear (the filters hide positive orders when a negative entry is made).
4 - Interface monitoring and error handling
This section is the reference guide for technical support and system administration. It explains how to manage data flows, diagnose rejections, and restart interfaces in case of errors.
The connector's architecture requires a clear distinction between the direction of the flow, as the monitoring tools differ:
-
For outgoing flows (Sage X3 ➔ Yooz): Monitoring is done via the specific Yooz Interfaces dashboard (XRJ31YOOZINT) and reading the traces of the processing XRJ31EXE.
-
For incoming data flows (Yooz ➔ Sage X3): Monitoring is carried out on the Yooz side (export reports) and on the Sage X3 side via the reading of standard traces (LECTRACE) import templates.
4.1 - Outgoing Interface Dashboard (XRJ31YOOZINT)
The Yooz Interfaces function (XRJ31YOOZINT) is the main monitoring screen for controlling outgoing interface flows between Sage X3 and Yooz. It must be used during acceptance testing, error analysis, and in production when documents are pending or fail to send.
Step 1 - Check the synthesis of interfaced objects
The first block of the function presents a summary by Sage X3 entity interfaced with Yooz (columns: Number of records to be transmitted, transmitted, in error). For chapter 5, here is what the key object counters represent:
| Object / function | Usage in Chapter 5 | Expected control in XRJ31YOOZINT |
|---|---|---|
| POQ | Sending purchase orders and receipts (case A). | The number of headers or order/receipt lines waiting to be sent to Yooz, transmitted, or blocked in error. |
| PND | Sending supplier returns related to the original purchase. | The number of validated return vouchers that need to be pushed to Yooz. |
| PIH | Sending accounting feedback for purchase invoices. | The number of accounting validation confirmations (return of document number X3) to be sent to Yooz following the validation of a GESPIH invoice. |
| BIS | Sending accounting feedback for third-party invoices. | The number of accounting validation confirmations to be sent to Yooz following the validation of a GESBIS invoice. |
| PAY | Sending payment feedback. | The number of settlement statuses ("In Bank") that must be sent back to Yooz to settle the invoice. |
Step 2 - Analyze the details in XRJ31YOOZSUI
The second block lists the tracking records from the XRJ31YOOZSUI table. It serves to understand precisely which document is involved, which event triggered the interface, and what the technical result of the processing is.
| Information to be checked | Role in the analysis |
|---|---|
| Chrono | Unique identifier of the interface line. |
| Object | Allows identification of the relevant outgoing flow. |
| Key | Allows you to retrieve the source document in Sage X3. |
| Event code | Allows you to distinguish the triggered action. C = creation, A = cancellation, M = modification. |
| Status | Internal execution state X3: "To be executed" = 0, "Executed successfully" = 1, "Executed with error" = -1 |
| Code | HTTP return code sent by the Yooz API. A 2xx code indicates success. A 4xx or 5xx code indicates an error (invalid data, insufficient permissions, timeout...). |
| Date and time | Timestamp of the line creation or its last execution attempt to Yooz. |
| [Action] Error message | Accessible via the action icon (three dots) at the beginning of the line. Displays the full JSON message returned by Yooz, detailing the reason for the rejection. |
| [Action] Download the file | If the XRJ31FILGN parameter value is set to "Yes", the JSON file containing the payload sent to the API can be downloaded via the row's action icon for analysis. |
4.2 - Execution and error handling
Step 3 - Launch or restart the processes
Outgoing data flows (X3 ➔ Yooz) are processed by the Yooz Web Services (XRJ31EXE). In case of rejection by the Yooz API, analysis and individual retries are performed from the Yooz Interfaces dashboard (XRJ31YOOZINT).
Prerequisite: In order to download and analyze JSON call files, the XRJ31FILGN parameter value (File generation) must be set to "Yes" at the folder level.
| Action | X3 Screen | Time of use | Expected result |
|---|---|---|---|
| Manual execution | Web service Yooz (XRJ31EXE) | During the recipe or to immediately force the sending of a blocked feed. | The "To be executed" recordings are sent to Yooz. The "Download all call files" option allows you to obtain an immediate ZIP file. |
| Batch execution | Subscription Management (GESABA) | In normal operation (XRJ31EXE_T subscription). | Synchronization runs automatically in the background according to the selected frequency (e.g., every 2 minutes). |
| Download the file / all files | Interfaces Yooz (XRJ31YOOZINT) | Technical analysis of an error returned by Yooz. | Retrieving the generated JSON on the line or in a ZIP to compare the sent data with the expected mapping. |
| Retry the request / all requests | Interfaces Yooz (XRJ31YOOZINT) | After correcting in X3 a piece of data that had been rejected by Yooz. | The internal status of the line reverts to 0 ("To be executed") to be returned on the next pass of XRJ31EXE. |
The queue only handles outgoing flows. Therefore, there is no risk of creating a duplicate purchase invoice in Sage X3 when sending a reminder. Similarly, on the Yooz side, resubmitting a purchase order (POQ) updates the document if it already exists.
Re-engagement & duplicates Regarding payment feedback (PAY) and repository changes: do not blindly resubmit payment feedback if the target invoice workflow is already closed on Yooz's end. Always analyze the JSON error message before resubmitting.
Step 4 - Read the errors according to the direction of the flow
The analysis process differs slightly depending on the interface direction. X3 to Yooz flows are primarily analyzed from the XRJ31YOOZINT dashboard and the XRJ31EXE processing unit. Yooz to X3 flows (which utilize SOAP web services) must first be checked on the Yooz side in the export report, and then on the X3 side in the import logs.
In Sage X3 trace screens, text display is limited by default. If an error message is displayed in a truncated form, click the action icon (the three dots ⋮) on the relevant line, then select Comment to view the full message.
| Direction of flow | Examples from Chapter 5 | Where to check first | Common mistakes |
|---|---|---|---|
| Sage X3 ➔ Yooz (Sortant - API REST) | Orders, receipts, returns, accounting feedback, payment feedback. | 1. XRJ31YOOZINT screen (Block 2: Error message) 2. Reading traces (LECTRACE) for the XRJ31EXE batch 3. JSON call file (if XRJ31FILGN is active). | Business issue: Yooz organization not in the mapping, repository not synchronized, line not billable, payment already transmitted. Technical issue: Invalid API/token (error 401), network timeout. |
| Yooz ➔ Sage X3 (Entrant - API SOAP) | Yooz orders, Yooz receipts, PIH invoices, BIS invoices, BAP. | 1. Yooz export report (indicates the raw HTTP or X3 error) 2. Reading traces (LECTRACE) in X3 for imports (e.g., error on XRJ31PIH) 3. Documents created (GESPIH, GESBIS, GESDUD). | Business: Missing supplier or item, incorrect site, invalid tax or account, unusable custom field, invoice already imported (Yooz timer rejected), inconsistent date (XRJ31CTLDO). Technical: Inactive/non-existent SOAP pool ("Error 146" or "Machine inaccessible"), error 403 (IP not whitelisted). |
Step 5 - Correct and then check the business result
The correction must always address the root cause: missing reference, incorrect mapping, inconsistent parameter, or workflow error.
-
Identify the document. Search for the object, key and status in the tracking interface (XRJ31YOOZINT) for sending, or in the import trace (LECTRACE) for receiving.
-
Download the call file if available. Download the call file. Note: If the file is empty or missing, set the XRJ31FILGN parameter value to "Yes", restart the process to generate the JSON, then analyze it.
-
Correct the source data. The correction is made on the X3 side, on the Yooz side or in the connector settings.
-
Restart the flow.
-
Outgoing stream (X3 ➔ Yooz): Restart from XRJ31YOOZINT to limit the scope, then execute XRJ31EXE.
-
Incoming feed (Yooz ➔ X3): Return to the Yooz application, find the failed document and trigger the "Re-export" action.
-
-
Check the result. Check the timestamp (XRJ31YOOZDAT), the Yooz Number field (XRJ31NUMYOOZ), the creation of document X3, or the correct update of the status in Yooz.
| Type of errors | Concrete example | Recommended corrective action |
|---|---|---|
| Reference frame not available | Supplier, account, or item not available in the target application. | Use the Yooz Data Recovery function (XRJ31YOOZREP) to force synchronization of the missing repository, then relaunch the document. |
| X3 settings inconsistent | PTHDIR (allowing direct reception) is active, or XRJ31CTLDO is blocking dates. | Correct the parameter value in the ADPVAL function, then retest on a clean document. |
| Case A / Case B flow poorly chosen | Attempt to manage a reception in Yooz requiring lots or locations. | Switch the receiving process to Sage X3 (case A) or define this logistical limit with the client. |
| Duplicate | X3 rejected because the Yooz invoice already exists (XRJ31NUMYOOZ already present in the database). | Do not persist. Cancel or close the failed export document on the Yooz side to clear the queue. |
| Workflow Yooz | Payment feedback sent even though the Yooz invoice is not at the "Awaiting payment" stage. | Advance the invoice in the Yooz workflow, then retest the matching/payment in X3. |
| Custom fields | Custom field Yooz missing, incorrectly mapped, or not taken into account in an X3 import. | Modify the mapping in the function Customized inbound fields. Imperative: Republish the Web Service (GESAWE) and restart the SOAP pool to apply the change. |
5 - Final validation criteria (Go-Live)
Before authorizing the Yooz / Sage X3 connector to go into production, the project team and key users must validate all of the following checkpoints:
- ☐ Creation of parts in accordance with regulations: Orders, receipts, PIH invoices, BIS invoices, BAP and payments are created without error in the target application.
- ☐ Guaranteed traceability: The Yooz chrono number (XRJ31NUMYOOZ), image URL (XRJ31URLFAC) and timestamps (XRJ31YOOZDAT) are fed on all X3 pieces.
- ☐ Financial Accuracy: The amounts excluding tax, including tax, VAT amounts, currencies, payment terms and analytical breakdowns are strictly identical between Yooz and Sage X3.
- ☐ PDF attachment: The PDF file of the invoice is physically accessible as an attachment on the GESPIH and GESBIS invoices in Sage X3.
- ☐ Queue stability: The XRJ31YOOZINT tracking screen contains no unexplained blocking and the XRJ31EXE batch runs regularly in the background.
- ☐ Technical qualifications: The user of the service dedicated to the Web Service has an active ERPFULL badge.