Ellipse Gradient for Header

Sage X3 Integration Guide

Integrate Sage X3 with enterprise applications through REST APIs, SOAP web services, imports, exports, and deployment-specific event workflows.

Sage X3 integration options at a glance

Sage X3 supports REST-oriented APIs for current synchronous integrations, while SOAP web services remain relevant for existing deployments and operations not exposed through REST. X3 also provides import, export, and batch-processing capabilities for high-volume or template-driven processes. Event and outbound callback support is deployment-dependent and should be verified for each business object. File and attachment capabilities are available in selected functional areas, but coverage varies. Martini can consume these APIs, orchestrate scheduled polling or batch workflows, transform X3 data, receive configured HTTP notifications, and apply validation, retry, checkpointing, and reconciliation logic. Authentication may use HTTP credentials, authenticated Syracuse sessions, or deployment-specific token mechanisms.

Integration pointSupported by Sage X3?Common use casesHow Martini supports it
REST APIsYesRead, create, and update supported Customers, Suppliers, Products, Sales Orders, Purchase Orders, and Invoices through the configured X3 API architecture.Martini can consume the Sage X3 REST API, map payloads, apply business rules, and expose normalized APIs to other systems.
SOAP APIsYesUse published X3 web services for existing integrations, legacy processes, or operations unavailable through the target REST interface.Martini can consume SOAP services when the WSDL, endpoint, and authentication requirements are available.
Webhooks / outbound callbacksLimitedSelected deployments may invoke external HTTP endpoints, publish callbacks, or trigger workflows for configured events.Martini can receive configured HTTP notifications, retrieve the current X3 resource, and process events idempotently; universal coverage should not be assumed.
Bulk / async / batch processingLimitedImport/export templates and batch jobs support high-volume loads or processes already implemented through X3 batch facilities.Martini can generate or consume batch files, orchestrate repeated API calls, checkpoint progress, and reconcile results.
File and attachment APIsLimitedSelected functional areas support linked documents or files, subject to storage location, object coverage, and deployment configuration.Martini can transform and route files where a supported X3 exchange mechanism is confirmed, while enforcing content and security rules.
Import/export facilitiesYesImport Products, Customers, or other configured objects and export invoices, stock, orders, or operational data using X3 templates and processes.Martini can create files, deliver them to the confirmed exchange location, process responses, and route validation failures.
AuthenticationYesAPI access requires an X3 user and permissions; deployments may use HTTP authentication, authenticated Syracuse sessions, or another configured mechanism.Martini can store credentials, tokens, and session information in protected environment configuration and reuse authenticated sessions where required.
Database accessNot confirmedRead-only reporting access may exist in a particular deployment, but direct transactional database writes are not the preferred integration method.Martini can connect to databases when independently provisioned and confirmed, but transactional Sage X3 integrations should use published interfaces.

How Sage X3 exposes data and business events

Sage X3 REST APIs

Sage X3 exposes REST-oriented API capabilities through its API and Syracuse architecture. Available resources, operations, fields, and permissions depend on the configured endpoint, release, legislation, company, site, and enabled modules.

Martini implementation pattern

Martini uses a workflow to authenticate to the configured X3 endpoint, retrieve or submit resources, transform payloads, apply business rules, and return or persist the result. API responses are classified as transport, authorization, validation, or business-process outcomes.

Implementation sequence

Authenticate with the configured Sage X3 endpoint
Retrieve or receive the current resource
Apply pagination and checkpoint rules
Map fields to the canonical model
Validate company, site, tax, and business references
Submit the transformed request to Sage X3 REST APIs or write the result to the target

Sage X3 SOAP web services

Sage X3 supports web-service integrations, including SOAP services that remain useful for existing implementations or operations not exposed through the target REST interface. The specific contract and authentication model must be confirmed for the endpoint.

Martini implementation pattern

Martini consumes the published WSDL, constructs the required SOAP request, handles authentication and XML transformation, and orchestrates the response with downstream systems. SOAP faults and X3 business errors are handled separately from transient transport failures.

Implementation sequence

Confirm the Sage X3 WSDL and published operation
Configure endpoint authentication and protected secrets
Construct the SOAP request from the source model
Submit the request and parse the SOAP response
Classify SOAP faults and Sage X3 validation messages
Persist correlation identifiers and notify the downstream system

Sage X3 event callbacks

Some Sage X3 deployments support event or web-service-oriented extension patterns that can invoke external HTTP endpoints or outbound callbacks. Coverage and delivery behavior are configuration-dependent, so universal webhook support should not be assumed.

Martini implementation pattern

When the X3 environment can send a suitable notification, Martini receives it through an API or webhook entry point, validates the event, and retrieves the authoritative X3 resource before processing. Where no callback is available, a scheduled polling workflow provides the safer general pattern.

Implementation sequence

Configure the confirmed Sage X3 event or callback
Receive and authenticate the HTTP notification
Validate the event and deduplicate its identifier
Retrieve the authoritative Sage X3 object
Map and route the changed object
Acknowledge the event and record processing status

Sage X3 imports and batch processing

Sage X3 provides import, export, and batch-processing capabilities for high-volume loads or business processes built around configured templates. File formats, validation rules, and execution behavior depend on the deployment.

Martini implementation pattern

Martini prepares or consumes the configured file format, invokes the confirmed exchange or batch process, tracks submission and completion, and reconciles accepted and rejected rows. This pattern avoids assuming that a universal bulk REST API exists.

Implementation sequence

Confirm the Sage X3 template and exchange location
Extract and transform source data
Validate required fields and reference values
Generate and deliver the import file
Monitor batch completion and retrieve the response
Reconcile accepted, rejected, and retried rows

Common Sage X3 integration patterns

Pattern 1: Synchronize Sage X3 customers and products

When to use this pattern

Use scheduled or configured event-driven synchronization when CRM, ecommerce, or operational applications require current Sage X3 master data. The workflow should filter changed objects where supported and use stable identifiers to avoid duplicate updates.

Integration direction
Sage X3
Martini
Salesforce
Example Mapping
Sage X3 FieldCanonical FieldTarget Field
Customer codecustomer.externalIdSalesforce Account.External_ID__c
Customer namecustomer.nameSalesforce Account.Name
Product codeproduct.skuSalesforce Product2.ProductCode
Martini implementation pattern

A Martini workflow retrieves Customers and Products, paginates through the result, normalizes codes and site information, validates required fields, and upserts the target objects. It stores checkpoints and correlation identifiers, retries transient failures, and routes rejected records to an exception process.

Martini capabilities used
  • workflows
  • API consumption
  • scheduling
  • data mapping
  • business rules
  • error handling

Pattern 2: Submit ecommerce orders to Sage X3

When to use this pattern

Use this pattern when an ecommerce platform or CRM owns order capture while Sage X3 owns fulfillment, inventory, pricing, or financial processing. The flow should validate references before creating a Sales Order.

Integration direction
Shopify
Martini
Sage X3
Example Mapping
Sage X3 FieldCanonical FieldTarget Field
Order IDorder.externalReferenceSales Order external reference
Customer IDcustomer.externalIdSales Order customer code
Line SKUlines[].skuSales Order product code
Shipping addressdelivery.addressSales Order delivery address
Martini implementation pattern

Martini receives an order event or retrieves new orders, looks up the Sage X3 Customer and Products, applies tax, currency, site, and duplicate checks, and submits the Sales Order through REST or SOAP. The workflow returns the X3 document number and retries only transient failures after reconciliation.

Martini capabilities used
  • APIs
  • workflow orchestration
  • data mapping
  • validation
  • business rules
  • retry handling

Pattern 3: Distribute Sage X3 invoices

When to use this pattern

Use this pattern when finance, tax, reporting, CRM, or document-processing applications need invoice and payment status from Sage X3. It is appropriate for scheduled extraction or a verified event callback.

Integration direction
Sage X3
Martini
Workday
Example Mapping
Sage X3 FieldCanonical FieldTarget Field
Invoice numberinvoice.externalIdWorkday invoice reference
Customer codecustomer.externalIdWorkday customer reference
Tax amountinvoice.taxAmountWorkday tax amount
Payment statusinvoice.statusWorkday invoice status
Martini implementation pattern

A Martini workflow extracts changed Invoices, maps X3 accounting and tax values to the target model, applies period and status rules, and sends accepted data onward. It records X3 document numbers, separates validation failures from transient errors, and supports reconciliation by count and status.

Martini capabilities used
  • scheduled workflows
  • API consumption
  • mapping and transformation
  • business rules
  • error handling
  • monitoring

Pattern 4: Process Sage X3 import files

When to use this pattern

Use this pattern for high-volume Products, Customers, or other objects when the X3 deployment provides a configured import template or batch process. It is useful where repeated synchronous API calls would be inefficient.

Integration direction
Microsoft Dynamics 365
Martini
Sage X3
Example Mapping
Sage X3 FieldCanonical FieldTarget Field
Item numberproduct.skuProduct code
Descriptionproduct.descriptionProduct description
Unit of measureproduct.unitProduct unit
Siteproduct.siteProduct site
Martini implementation pattern

Martini extracts source data, transforms it into the confirmed X3 file format, validates reference values, delivers the file, and monitors the batch response. Rejected rows are isolated for correction, while accepted rows are checkpointed for reconciliation and restart.

Martini capabilities used
  • workflows
  • file processing
  • data transformation
  • validation
  • batch orchestration
  • error handling

Applications commonly integrated with Sage X3

Sage X3 commonly participates in multi-system processes involving customer engagement, ecommerce, service operations, finance, procurement, and reporting. These are implementation patterns rather than claims of Sage certification for each application combination.

Application Scenario Direction Martini Pattern
Salesforce Synchronize Customers, Products, Sales Orders, and order or fulfillment status between CRM and ERP processes. Salesforce → Martini → Sage X3 Expose or consume Salesforce APIs, map CRM objects to Sage X3 structures, validate customer and product references, submit Sales Orders, and return Sage X3 document numbers and status updates.
Shopify Send ecommerce orders to Sage X3 and return product, inventory, and fulfillment information to the storefront. Shopify → Martini → Sage X3 Receive Shopify order events or retrieve orders, enrich them with Sage X3 Customers and Products, apply tax and availability rules, submit Sales Orders, and reconcile fulfillment responses.
ServiceNow Exchange customer, asset, procurement, or finance-related information where service operations depend on ERP data. Sage X3 → Martini → ServiceNow Poll or receive selected Sage X3 changes, transform them into ServiceNow objects, route approved updates back through Sage X3 APIs, and send failures to an exception workflow.
NetSuite Exchange selected customer, supplier, product, order, and financial data in organizations operating more than one ERP or business unit. Sage X3 → Martini → NetSuite Define ownership by object, synchronize only approved fields, preserve both systems' identifiers, and use Martini workflows for validation, conflict handling, and reconciliation.
Microsoft Dynamics 365 Share customer, product, order, supplier, or finance data during multi-ERP operations or phased system transitions. Microsoft Dynamics 365 → Martini → Sage X3 Use REST-based API workflows, normalize codes and identifiers, apply company and site rules, and checkpoint each transaction to support restartable synchronization.
Workday Exchange approved procurement, supplier, expense, or financial information where Sage X3 supports operational finance processes. Workday → Martini → Sage X3 Validate approved payloads, map organizational and accounting references, submit supported X3 transactions, and retain correlation identifiers for status feedback.
Jira Create issues for integration failures, order exceptions, or operational workflows associated with Sage X3 transactions. Sage X3 → Martini → Jira Route non-retryable validation or business failures to Jira with correlation data, prevent duplicate issues, and process resolution signals through a controlled Martini workflow.
Zendesk Provide support agents with customer, order, invoice, and fulfillment context from Sage X3. Sage X3 → Martini → Zendesk Retrieve approved X3 objects, map them to customer support context, redact sensitive fields, and synchronize selected updates using correlation keys.

How to build a Sage X3 integration in Martini

Objective

Establish the Sage X3 endpoint, release, Syracuse configuration, company, site, and authentication model before implementing business flows.

Instructions in Martini

  • Confirm the REST endpoint or SOAP WSDL
  • Use a least-privilege X3 integration user
  • Store credentials, tokens, and sessions in protected environment configuration
  • Verify endpoint, legislation, company, site, and object permissions

Objective

Select the timing and initiation model that matches the confirmed X3 deployment and required freshness.

Instructions in Martini

  • Use a Sage X3 callback only when the required event is confirmed
  • Use a scheduler for polling and incremental extraction
  • Use an API entry point for inbound orders or approved transactions
  • Use batch or file processing for high-volume imports and exports

Objective

Acquire authoritative Sage X3 data while controlling pagination, checkpoints, and duplicate notifications.

Instructions in Martini

  • Retrieve the current object after a notification
  • Apply server-side modification filters where available
  • Use stable sorting and checkpoints for pagination
  • Record X3 document numbers and source correlation identifiers

Objective

Coordinate lookups, transformations, target calls, and response handling in a maintainable Martini workflow.

Instructions in Martini

  • Sequence dependent Customer, Product, Supplier, and document lookups
  • Branch on validation, authorization, transport, and business-process outcomes
  • Use reusable workflow logic for common X3 calls
  • Preserve correlation data across each step

Objective

Translate X3-specific structures and codes into the canonical and target models before submission.

Instructions in Martini

  • Map actual X3 fields to canonical fields
  • Validate sites, currencies, units, tax codes, periods, and account references
  • Apply ownership and conflict rules
  • Normalize REST, SOAP, and file payloads consistently

Objective

Submit supported requests or files to Sage X3 and connected applications without creating duplicates.

Instructions in Martini

  • Use lookup-before-create or an idempotency store where needed
  • Submit REST or SOAP transactions through the configured endpoint
  • Deliver confirmed import files to the approved exchange location
  • Persist target identifiers and Sage X3 document numbers

Common Sage X3 data objects used in integrations

ObjectTypical UseCommon target systemsMartini handling
CustomersSynchronize customer master data, addresses, financial settings, and sales relationships.Salesforce, Shopify, Zendesk, Microsoft Dynamics 365Martini retrieves or receives configured changes, validates company and site context, maps fields, and performs idempotent create-or-update operations.
SuppliersExchange supplier master data, purchasing relationships, and payment information.Workday, NetSuite, Microsoft Dynamics 365, procurement applicationsMartini normalizes supplier identifiers and payment fields, applies ownership rules, and routes validation failures separately from transient API errors.
ProductsSynchronize item master data, units, sites, categories, and stock policies.Shopify, Salesforce, Microsoft Dynamics 365, reporting applicationsMartini maps units and site references, filters changed Products where supported, and checkpoints batches for restartable processing.
Sales OrdersProcess customer orders, lines, pricing, delivery information, and order status.Shopify, Salesforce, Microsoft Dynamics 365, ZendeskMartini validates Customers and Products, maps tax and delivery data, submits the order through REST or SOAP, and stores the X3 document number.
Purchase OrdersExchange supplier orders, order lines, requested delivery dates, and purchasing status.Workday, NetSuite, Microsoft Dynamics 365, supplier applicationsMartini applies supplier, site, currency, and approval rules, submits supported transactions, and reconciles ambiguous responses before retrying.
InvoicesDistribute customer or supplier invoices, tax details, accounting information, and payment status.NetSuite, Workday, Salesforce, reporting and document-processing applicationsMartini preserves X3 invoice identifiers, normalizes accounting codes, applies delivery rules, and routes rejected invoices for operational resolution.

Authentication and security considerations

Authentication depends on the deployment

Sage X3 access may use HTTP authentication, an authenticated Syracuse session, a token-based mechanism, or another configuration-specific model. Confirm the supported method for the target release and endpoint.

Protect credentials and limit access

  • Use a dedicated least-privilege X3 integration user.
  • Verify permissions for the endpoint, legislation, company, site, functions, and business objects.
  • Store credentials, tokens, and session information in Martini environment configuration or secrets management.
  • Use HTTPS for production API traffic and avoid logging secrets.

Operational considerations for Sage X3 integrations

Plan for deployment-specific behavior

  • Confirm pagination syntax, page limits, rate limits, concurrency constraints, and available modification filters.
  • Use stable checkpoints, overlap windows, correlation identifiers, and idempotent external references.
  • Retry only transient failures with bounded exponential backoff.
  • Capture X3 document numbers, endpoint names, operation names, and response status without exposing secrets.
  • Test customer-specific fields, representations, required values, enumerations, and business rules in a non-production endpoint.
  • Verify attachment storage, file size, MIME type, retention, and access restrictions before designing file flows.

Why use Martini instead of scripts or point-to-point integrations?

Coordinate more than one API call

Martini workflows can sequence lookups, transformations, validations, target writes, and reconciliation across Sage X3 and other enterprise systems without embedding the entire integration in a point-to-point script.

Make integration behavior reusable

Reusable workflows, APIs, mappings, business rules, environment configuration, and error-handling paths make changes easier to test and deploy as X3 endpoints and business processes evolve.

Operate integrations reliably

  • Support scheduled, API-led, batch, and configured event-driven patterns.
  • Apply checkpointing, idempotency, retry, exception routing, and reconciliation controls.
  • Expose a controlled Martini API when other applications should not depend directly on X3-specific structures.

Frequently asked questions

How can Sage X3 be integrated with enterprise systems?

Sage X3 can be integrated through its REST-oriented APIs, published SOAP web services, configured import and export facilities, batch processing, and selected deployment-specific callbacks or event workflows. Direct database access should not be assumed for transactional integration.

Can Martini integrate with Sage X3?

Yes. Martini can consume Sage X3 REST APIs and SOAP web services, receive configured outbound HTTP notifications, and orchestrate scheduled polling, batch imports, transformations, validation, retries, and reconciliation around Sage X3.

Do I need a connector to integrate Sage X3 with Martini?

No dedicated Sage X3 connector is required. Martini can integrate using Sage X3's confirmed native REST APIs, SOAP web services, import and export mechanisms, configured callbacks, and authentication methods.

Is there any extra Lonti cost to integrate Sage X3 with Martini?

Lonti does not charge an additional per-connector or per-vendor fee to integrate Sage X3. The integration is subject to the provisioned capacity of the Martini environment. Separate costs may apply from Sage, infrastructure providers, or other third-party systems depending on subscriptions, usage, and deployment model.

Should a new Sage X3 integration use REST or SOAP?

REST is generally preferred when the required resource and operation are exposed by the target X3 endpoint. SOAP remains appropriate for existing X3 web services, legacy integrations, or operations not available through the configured REST interface.

Does Sage X3 support webhooks or outbound callbacks?

Some Sage X3 deployments support event-oriented extensions, outbound callbacks, or HTTP notifications, but coverage and delivery behavior depend on the release, modules, configuration, and customizations. Scheduled polling or batch extraction may be required.

How does Martini synchronize changed Sage X3 data?

Martini can use modification-date filters or other incremental capabilities exposed by the target X3 API, combined with pagination, stable sort keys, checkpoints, overlap windows, and reconciliation. Where callbacks are available, Martini can receive the notification and retrieve the authoritative object.

How are Sage X3 errors, retries, and duplicates handled?

Martini can distinguish transient transport failures from authentication, validation, and business-process errors. Workflows can retry transient failures with bounded backoff, reconcile ambiguous responses before retrying creation, preserve external references and X3 document numbers, and route non-retryable failures to an exception process.