.png)
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 point | Supported by Sage X3? | Common use cases | How Martini supports it |
|---|---|---|---|
| REST APIs | Yes | Read, 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 APIs | Yes | Use 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 callbacks | Limited | Selected 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 processing | Limited | Import/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 APIs | Limited | Selected 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 facilities | Yes | Import 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. |
| Authentication | Yes | API 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 access | Not confirmed | Read-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
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
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
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
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
Example Mapping
| Sage X3 Field | Canonical Field | Target Field |
|---|---|---|
| Customer code | customer.externalId | Salesforce Account.External_ID__c |
| Customer name | customer.name | Salesforce Account.Name |
| Product code | product.sku | Salesforce 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
Example Mapping
| Sage X3 Field | Canonical Field | Target Field |
|---|---|---|
| Order ID | order.externalReference | Sales Order external reference |
| Customer ID | customer.externalId | Sales Order customer code |
| Line SKU | lines[].sku | Sales Order product code |
| Shipping address | delivery.address | Sales 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
Example Mapping
| Sage X3 Field | Canonical Field | Target Field |
|---|---|---|
| Invoice number | invoice.externalId | Workday invoice reference |
| Customer code | customer.externalId | Workday customer reference |
| Tax amount | invoice.taxAmount | Workday tax amount |
| Payment status | invoice.status | Workday 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
Example Mapping
| Sage X3 Field | Canonical Field | Target Field |
|---|---|---|
| Item number | product.sku | Product code |
| Description | product.description | Product description |
| Unit of measure | product.unit | Product unit |
| Site | product.site | Product 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
| Object | Typical Use | Common target systems | Martini handling |
|---|---|---|---|
| Customers | Synchronize customer master data, addresses, financial settings, and sales relationships. | Salesforce, Shopify, Zendesk, Microsoft Dynamics 365 | Martini retrieves or receives configured changes, validates company and site context, maps fields, and performs idempotent create-or-update operations. |
| Suppliers | Exchange supplier master data, purchasing relationships, and payment information. | Workday, NetSuite, Microsoft Dynamics 365, procurement applications | Martini normalizes supplier identifiers and payment fields, applies ownership rules, and routes validation failures separately from transient API errors. |
| Products | Synchronize item master data, units, sites, categories, and stock policies. | Shopify, Salesforce, Microsoft Dynamics 365, reporting applications | Martini maps units and site references, filters changed Products where supported, and checkpoints batches for restartable processing. |
| Sales Orders | Process customer orders, lines, pricing, delivery information, and order status. | Shopify, Salesforce, Microsoft Dynamics 365, Zendesk | Martini validates Customers and Products, maps tax and delivery data, submits the order through REST or SOAP, and stores the X3 document number. |
| Purchase Orders | Exchange supplier orders, order lines, requested delivery dates, and purchasing status. | Workday, NetSuite, Microsoft Dynamics 365, supplier applications | Martini applies supplier, site, currency, and approval rules, submits supported transactions, and reconciles ambiguous responses before retrying. |
| Invoices | Distribute customer or supplier invoices, tax details, accounting information, and payment status. | NetSuite, Workday, Salesforce, reporting and document-processing applications | Martini 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
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.
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.
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.
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.
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.
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.
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.
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.
Related Martini documentation
APIs
Transformation
Integrate Sage X3 with Martini
Connect Sage X3 to your enterprise applications with API-led workflows, reliable data synchronization, and governed business-process automation.