Ellipse Gradient for Header
NetSuite ERP logo

NetSuite ERP Integration Guide

Integrate NetSuite ERP with enterprise applications through SuiteTalk REST and SOAP Web Services, RESTlets, SuiteScript callbacks, files, and governed analytics access.

NetSuite ERP integration options at a glance

NetSuite ERP provides SuiteTalk REST Web Services for JSON-based record and business-operation access, while SuiteTalk SOAP Web Services remains relevant for strongly typed and existing enterprise integrations. RESTlets and SuiteScript support custom endpoints, validation, and outbound callback behavior. CSV import and export, File Cabinet operations, asynchronous processing, SuiteQL, and SuiteAnalytics Connect support batch, document, and analytics use cases. NetSuite supports OAuth 2.0 and token-based authentication with role permissions and scopes. Martini can consume these interfaces, expose normalized APIs, orchestrate scheduled or callback-driven workflows, transform data, and apply retry and reconciliation rules.

Integration pointSupported by NetSuite ERP?Common use casesHow Martini supports it
REST APIsYesSuiteTalk REST Web Services supports JSON-based access to Customers, Vendors, Items, Sales Orders, Invoices, searches, and SuiteQL operations where supported.Martini can consume NetSuite REST endpoints from workflows, handle pagination and authentication, map responses, and expose a normalized API to downstream applications.
SOAP APIsYesSuiteTalk SOAP Web Services supports record CRUD, searches, transaction processing, and existing integrations that depend on WSDL-based contracts.Martini can consume SOAP services, configure authentication, transform XML and typed payloads, and route service or validation faults.
RESTlets and custom endpointsYesRESTlets implemented with SuiteScript can combine operations, enforce custom rules, and return purpose-built response structures.Martini can call RESTlets as vendor-specific HTTP endpoints and orchestrate their responses with standard NetSuite APIs and other systems.
Webhooks / outbound callbacksLimitedSuiteScript user events, workflows, scheduled scripts, and custom outbound HTTP requests can provide callback-style notifications for selected events.Martini can expose a REST API endpoint to receive callbacks, validate them, retrieve current NetSuite data, and fall back to polling where event coverage is incomplete.
Bulk, asynchronous, and batch processingLimitedSelected SuiteCloud services support asynchronous or batch-oriented processing; CSV import and export provide another option for high-volume movement.Martini can schedule batch workflows, track asynchronous status where exposed, checkpoint progress, and apply controlled retries and reconciliation.
File and attachment APIsYesFile Cabinet records support document storage, retrieval, association with business records, and file-based exchange; CSV supports batch loading and extraction.Martini can transfer files, transform metadata, associate documents with supported records, and coordinate document workflows with external applications.
Database / analytics accessLimitedSuiteAnalytics Connect and SuiteQL provide governed analytics and query access; NetSuite does not expose its operational database as a general database.Martini can orchestrate SuiteQL or supported analytics access for extraction and reporting workflows while keeping query, permission, and freshness constraints explicit.
AuthenticationYesNetSuite supports OAuth 2.0 and token-based authentication, with integration records, roles, permissions, scopes, and service-specific access requirements.Martini can externalize credentials and configuration, consume authenticated APIs, and apply environment-specific security settings without embedding secrets in workflows.

How NetSuite ERP exposes data and business events

NetSuite REST APIs

SuiteTalk REST Web Services provides JSON-based access to supported NetSuite records, searches, SuiteQL operations, and business actions. It is the principal current interface for many new application integrations.

Martini implementation pattern

Martini implementation pattern: a workflow calls the appropriate REST resource, manages authentication, pagination, record relationships, and response status, then maps the result into a target application or canonical model. Martini can also expose a REST API that hides NetSuite-specific IDs and error formats.

Implementation sequence

Authenticate with OAuth 2.0 or token-based credentials
Retrieve the current NetSuite resource or query result
Follow pagination and persist synchronization state
Map fields to the canonical or target model
Apply validation and business rules
Write the result and record the source identifier

NetSuite SOAP APIs

SuiteTalk SOAP Web Services provides WSDL-based access to records, searches, and transactions. It remains relevant for existing integrations and processes that require strongly typed contracts.

Martini implementation pattern

Martini implementation pattern: a workflow invokes the required SOAP operation, transforms XML and typed structures, handles SOAP faults, and coordinates dependent record calls. Existing SOAP contracts can be retained while Martini centralizes orchestration and error handling.

Implementation sequence

Configure the NetSuite SOAP service and authentication
Construct the typed request from mapped business data
Invoke the SOAP operation
Parse the response or SOAP fault
Transform the result for the target system
Persist identifiers and outcome details

NetSuite RESTlets and callbacks

RESTlets are custom SuiteScript HTTP endpoints that can combine operations or implement NetSuite-specific rules. SuiteScript user events, workflows, and scheduled scripts can issue callback-style HTTP requests for selected events, but there is no universal event stream for every record.

Martini implementation pattern

Martini implementation pattern: expose a secured REST API endpoint for configured callbacks, validate the request, retrieve authoritative NetSuite data when necessary, and invoke downstream workflows. Where callback coverage is incomplete, a scheduled polling workflow uses filters, searches, or SuiteQL.

Implementation sequence

Receive the callback notification at a Martini API endpoint
Validate authentication, signature or shared integration credentials where configured
Retrieve the current NetSuite record when the callback is not authoritative
Apply event-specific business rules
Invoke downstream processing or enqueue the work
Store the event key and outcome for duplicate prevention

NetSuite batch and asynchronous processing

Selected SuiteCloud services support asynchronous or batch-oriented operations, while CSV import and export provide file-based processing. Availability and behavior depend on the service and operation.

Martini implementation pattern

Martini implementation pattern: schedule a controlled batch workflow, submit or retrieve data in pages or files, track asynchronous status where exposed, and checkpoint each completed unit. The workflow can use reconciliation reports to identify late, failed, or duplicated items.

Implementation sequence

Start the scheduled batch workflow
Select an incremental range or prepare the CSV payload
Submit the supported batch or asynchronous operation
Poll or retrieve completion status where available
Record completed identifiers and failed items
Retry transient failures and route business failures for review

NetSuite File Cabinet

NetSuite File Cabinet records support storage and retrieval of documents and attachments, subject to role permissions and service-specific behavior. Files may be associated with customers, vendors, transactions, or other supported records.

Martini implementation pattern

Martini implementation pattern: retrieve or receive file metadata, transfer content through the relevant NetSuite interface, validate file type and size requirements, and associate the file with its business record. Metadata and transfer status are stored for reconciliation.

Implementation sequence

Identify the source file and related NetSuite record
Validate file metadata and integration permissions
Upload or retrieve the File Cabinet content
Map and persist the file identifier and association
Notify the downstream document process
Retry transfer failures without duplicating associations

Common NetSuite ERP integration patterns

Pattern 1: Synchronize customers and orders with a commerce platform

When to use this pattern

Use this pattern when Shopify or another commerce application must exchange customers, items, Sales Orders, fulfillment status, and invoices with NetSuite. It supports scheduled incremental synchronization and API-led order submission.

Integration direction
Shopify
Martini
NetSuite ERP
Example Mapping
NetSuite ERP FieldCanonical FieldTarget Field
customer.emailcustomer.contactEmailCustomer.email
order.externalIdorder.sourceKeySales Order.externalId
order.lineItems[].skulines[].itemKeySales Order.item
order.totalPriceorder.totalAmountSales Order.total
Martini implementation pattern

A Martini API receives the order, validates the customer and item references, resolves NetSuite internal or external IDs, and creates an idempotent Sales Order through SuiteTalk REST Web Services. Scheduled workflows retrieve fulfillment and invoice changes using incremental filters, map them back to the commerce model, and retry transient failures while routing accounting or reference errors for review.

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

Pattern 2: Process commerce orders into NetSuite Sales Orders

When to use this pattern

Use this pattern when an external application submits orders and NetSuite must become the system of record for transaction processing, fulfillment, and invoicing.

Integration direction
Shopify
Martini
NetSuite ERP
Example Mapping
NetSuite ERP FieldCanonical FieldTarget Field
customer.idcustomer.externalKeySales Order.entity
lineItems[].quantitylines[].quantitySales Order.item.quantity
shippingAddressfulfillment.addressSales Order.shipAddress
tax.amounttax.totalSales Order.taxTotal
Martini implementation pattern

Martini validates required fields, checks for an existing external reference, resolves Customer, Item, subsidiary, location, currency, and tax dependencies, then submits the Sales Order. Business rules can reject unavailable items or invalid accounting combinations before the write. A durable outcome records the NetSuite identifier, while duplicate and transient failures are handled differently.

Martini capabilities used
  • API endpoints
  • workflow orchestration
  • validation
  • data transformation
  • business rules
  • idempotency
  • error handling

Pattern 3: Synchronize suppliers and procure-to-pay transactions

When to use this pattern

Use this pattern when Vendor, Item, Purchase Order, Vendor Bill, and payment-related information must move between NetSuite and a procurement, HR, service, or finance application.

Integration direction
ServiceNow
Martini
NetSuite ERP
Example Mapping
NetSuite ERP FieldCanonical FieldTarget Field
supplier.numbersupplier.externalKeyVendor.externalId
request.lines[].itemCodeprocurement.lines[].itemKeyPurchase Order.item
request.costCenteraccounting.costCenterPurchase Order.department
invoice.referencepayables.invoiceKeyVendor Bill.tranId
Martini implementation pattern

A scheduled or event-triggered Martini workflow retrieves approved requests, validates vendor and item relationships, maps the transaction to NetSuite, and records the source and target keys. Permission errors, missing accounting references, and closed-period failures are routed for manual correction; throttling and temporary service failures use bounded retries.

Martini capabilities used
  • scheduled workflows
  • API consumption
  • mapping
  • validation
  • conditional routing
  • retry handling
  • monitoring

Pattern 4: Exchange NetSuite documents and attachments

When to use this pattern

Use this pattern when invoices, purchase documents, reports, or customer correspondence must be transferred through the NetSuite File Cabinet and associated with business records.

Integration direction
NetSuite ERP
Martini
Zendesk
Example Mapping
NetSuite ERP FieldCanonical FieldTarget Field
file.namedocument.fileNameattachment.name
file.contentdocument.binaryContentattachment.content
file.folderdocument.repositoryPathattachment.folder
file.attachedRecorddocument.businessReferenceticket.externalReference
Martini implementation pattern

Martini retrieves or uploads File Cabinet content, transforms metadata, validates the related Customer, Vendor, or transaction reference, and sends the document to the downstream application. A durable file key prevents duplicate attachment creation, while unsupported formats, permission failures, and missing associations are routed separately from retryable transfer errors.

Martini capabilities used
  • workflows
  • file processing
  • API consumption
  • metadata mapping
  • validation
  • idempotency
  • error handling

Applications commonly integrated with NetSuite ERP

NetSuite ERP commonly participates in enterprise processes spanning customer management, commerce, workforce operations, service delivery, project work, support, and tax. The following are practical integration scenarios; exact object coverage depends on each product’s configuration and subscription.

Application Scenario Direction Martini Pattern
Salesforce Synchronize customers, contacts, opportunities, orders, invoices, and financial status between CRM and ERP processes. Salesforce → Martini → NetSuite ERP Martini consumes Salesforce and NetSuite APIs, resolves customer and item identifiers, maps opportunity or order data to NetSuite records, and returns order and financial status through a controlled workflow.
Shopify Send commerce customers and orders to NetSuite while returning inventory, fulfillment, invoice, and order status to the storefront. Shopify → Martini → NetSuite ERP Martini receives commerce requests or events, validates customer and item references, creates idempotent Sales Orders, and schedules status and fulfillment synchronization back to Shopify.
Workday Exchange selected worker, organizational, supplier, or finance-related information where both platforms support shared enterprise processes. Workday → Martini → NetSuite ERP A scheduled Martini workflow retrieves approved Workday data, applies field and organizational mappings, validates subsidiary relationships, and writes permitted NetSuite objects with exception routing.
ServiceNow Synchronize vendors, assets, purchase requests, invoices, and financial status between service workflows and ERP processes. ServiceNow → Martini → NetSuite ERP Martini orchestrates bidirectional API workflows, translates ServiceNow request and asset data into NetSuite references, and returns invoice or procurement status after validation.
Jira Connect project, issue, time, or delivery information with NetSuite project accounting and customer or financial processes. Jira → Martini → NetSuite ERP Martini retrieves relevant Jira project data, maps it to configured NetSuite project or customer references, applies accounting rules, and records rejected items for review.
Zendesk Provide support teams with customer, order, invoice, and entitlement context from NetSuite and optionally return selected support outcomes. NetSuite ERP → Martini → Zendesk A Martini workflow retrieves changed NetSuite Customers, Sales Orders, and Invoices, normalizes the data, and upserts support context in Zendesk using stable external identifiers.
Microsoft Dynamics 365 Exchange customers, products, orders, suppliers, and financial or operational data where both platforms coexist. Microsoft Dynamics 365 → Martini → NetSuite ERP Martini coordinates REST or other confirmed application endpoints, resolves cross-system IDs, applies canonical mappings, and separates transactional writes from reconciliation reads.
Avalara Send transaction, customer, item, and tax-jurisdiction data for tax calculation and return relevant tax results to NetSuite. NetSuite ERP → Martini → Avalara Martini maps NetSuite transaction lines and tax context to Avalara requests, validates the response, and writes approved tax results or routes failures for review.

How to build a NetSuite ERP integration in Martini

Objective

Establish the NetSuite integration identity and environment-specific configuration before building business workflows.

Instructions in Martini

  • Select OAuth 2.0 or token-based authentication based on the required NetSuite service.
  • Create a least-privilege NetSuite role and integration record with required permissions and scopes.
  • Store credentials, account identifiers, endpoints, and environment values in Martini configuration or secrets management.
  • Confirm sandbox and production account differences before testing.

Objective

Select an event, API request, or schedule that matches the required freshness and the actual NetSuite event coverage.

Instructions in Martini

  • Use a Martini API for externally submitted transactions or configured NetSuite callbacks.
  • Use a scheduler for incremental synchronization, reconciliation, and broad record coverage.
  • Treat callback-style notifications as partial and confirm the specific SuiteScript or workflow deployment.
  • Define the synchronization watermark, overlap window, and starting scope.

Objective

Read authoritative NetSuite data while controlling pagination, query scope, dependencies, and service usage.

Instructions in Martini

  • Consume SuiteTalk REST Web Services for supported JSON record operations.
  • Use SuiteTalk SOAP Web Services where existing contracts or required operations make it appropriate.
  • Use SuiteQL, searches, or filtered requests for targeted and incremental retrieval.
  • Handle pagination, stable sorting, related-record lookups, and asynchronous status where applicable.

Objective

Coordinate NetSuite calls, external applications, dependencies, and durable processing state in a maintainable Martini workflow.

Instructions in Martini

  • Separate validation, lookup, transformation, write, and reconciliation stages.
  • Resolve Customers, Items, subsidiaries, locations, currencies, tax settings, and other dependencies before transaction creation.
  • Use reusable request and mapping logic for repeated NetSuite operations.
  • Route asynchronous or high-volume work through controlled batch processing.

Objective

Convert NetSuite-specific records and identifiers into the target model while enforcing business and accounting rules.

Instructions in Martini

  • Map actual objects such as Customer, Vendor, Item, Sales Order, Invoice, and File.
  • Validate required fields, external references, subsidiaries, accounting periods, currencies, and transaction relationships.
  • Preserve internal IDs, external IDs, source keys, and audit metadata.
  • Use versioned mappings for custom fields, custom records, forms, and account-specific schemas.

Objective

Perform safe creates, updates, file transfers, or API responses without creating duplicate financial or operational records.

Instructions in Martini

  • Use external references or integration keys for idempotent upserts where supported.
  • Control transaction creation retries and check for an existing target before repeating a write.
  • Return normalized responses from a Martini API when downstream consumers should not depend on NetSuite formats.
  • Record source-to-target identifiers and business outcomes.

Common NetSuite ERP data objects used in integrations

ObjectTypical UseCommon target systemsMartini handling
CustomerSynchronize organizations or individuals, billing details, account status, and external identifiers.Salesforce, Shopify, Zendesk, Microsoft Dynamics 365Martini retrieves or receives Customer data, resolves subsidiaries and references, maps fields to a canonical customer model, and performs idempotent upserts.
VendorExchange supplier master data and support procurement or accounts-payable workflows.Workday, ServiceNow, Microsoft Dynamics 365, procurement applicationsMartini validates supplier identifiers and required fields, maps vendor attributes, and routes permission or duplicate failures separately from transient errors.
ItemSynchronize products, services, inventory items, pricing references, and purchasable entries.Shopify, Salesforce, Microsoft Dynamics 365, AvalaraMartini normalizes item identifiers, units, tax context, and availability, then applies dependency checks before transaction processing.
Sales OrderRepresent customer orders before fulfillment or invoicing.Shopify, Salesforce, fulfillment applications, AvalaraMartini validates Customer, Item, subsidiary, currency, location, and tax references, uses an external key for idempotency, and manages controlled retries.
InvoiceExchange customer billing transactions, payment context, and financial status.Salesforce, Zendesk, Avalara, Microsoft Dynamics 365Martini maps invoice headers and lines, preserves source identifiers, applies accounting rules, and separates accounting-period or permission failures from retryable faults.
FileTransfer invoices, purchase documents, reports, customer correspondence, and supporting attachments through the File Cabinet.Document processing applications, Zendesk, Salesforce, procurement applicationsMartini transfers file content and metadata, validates permissions and format, and associates files with Customers, Vendors, or transactions where supported.

Authentication and security considerations

Authentication and authorization

NetSuite supports OAuth 2.0 and token-based authentication for SuiteCloud integrations. The selected service, integration record, role, permissions, scopes, and account configuration all affect access.

  • Use a dedicated least-privilege NetSuite role for each integration boundary where practical.
  • Store OAuth credentials, token material, signing values, and account-specific settings in Martini secrets or environment configuration.
  • Grant only the required permissions for Customers, Vendors, Employees, Items, transactions, REST or SOAP services, SuiteScript, analytics, and File Cabinet operations.
  • Keep sandbox and production credentials, account identifiers, script deployments, and custom-field configuration separate.

Operational considerations for NetSuite ERP integrations

Design for governed access

NetSuite applies governance and concurrency controls, and API behavior varies by service, record type, account customization, and operation.

  • Use filtered incremental reads, stable pagination, persisted watermarks, and overlap windows.
  • Limit concurrency and apply bounded exponential backoff for throttling and temporary failures.
  • Use external IDs or integration keys to make updates idempotent and control transaction-creation retries.
  • Resolve subsidiaries, locations, currencies, items, tax settings, and other related records before writes.
  • Version mappings for custom fields, custom records, WSDL versions, and account-specific schemas.
  • Test in a NetSuite sandbox, monitor workflow outcomes, and reconcile late, failed, or corrected records.

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

Centralized integration behavior

Martini provides a maintainable place to orchestrate NetSuite APIs, external applications, files, schedules, callbacks, and business rules rather than duplicating logic across scripts and point-to-point integrations.

  • Expose normalized APIs that shield consumers from NetSuite identifiers, authentication, pagination, and error formats.
  • Reuse workflows and services for authentication, lookups, mappings, validation, retries, and reconciliation.
  • Support REST, SOAP, RESTlet, file, scheduled, asynchronous, and callback-oriented integration patterns where NetSuite exposes them.
  • Separate configuration and secrets from implementation so sandbox and production deployments can use controlled values.
  • Centralize monitoring, error classification, durable state, and operational troubleshooting.

Frequently asked questions

How can NetSuite ERP be integrated with enterprise systems?

NetSuite ERP can integrate through SuiteTalk REST Web Services, SuiteTalk SOAP Web Services, RESTlets, SuiteScript-based callbacks, CSV import and export, File Cabinet operations, SuiteQL, and SuiteAnalytics Connect. OAuth 2.0 and token-based authentication are supported, with access controlled by roles, permissions, and service-specific scopes.

Can Martini integrate with NetSuite ERP?

Yes. Martini can consume NetSuite SuiteTalk REST or SOAP Web Services, call RESTlets, receive callback requests through Martini APIs, and orchestrate scheduled, batch, file, and query-based workflows. No dedicated native Martini NetSuite connector is documented in the supplied sources.

Do I need a connector to integrate NetSuite ERP with Martini?

No. A dedicated NetSuite ERP connector is not required. Martini can use NetSuite's confirmed native REST, SOAP, RESTlet, callback, file, CSV, query, and authentication mechanisms through workflows and APIs.

Is there any extra Lonti cost to integrate NetSuite ERP with Martini?

Lonti does not charge an additional per-connector or per-vendor fee to integrate NetSuite ERP. The integration is subject to the provisioned capacity of the Martini environment. Separate costs may apply from Oracle NetSuite, cloud infrastructure, or other third-party services based on subscription, usage, and deployment model.

Which NetSuite integration methods should a new project use?

SuiteTalk REST Web Services is generally the preferred starting point when the required records and operations are supported. SOAP remains suitable for existing integrations, strongly typed contracts, or operations that are not practical through REST. RESTlets are appropriate for custom NetSuite-side business logic or response shapes.

Are NetSuite events, webhooks, or callbacks available?

NetSuite supports callback-style behavior through selected SuiteScript user events, workflows, scheduled scripts, and custom outbound HTTP requests, but it does not provide a universal webhook stream for every record and event. Martini can receive configured callbacks, while polling, saved searches, SuiteQL, or scheduled synchronization may be needed for broader coverage.

How does Martini synchronize NetSuite data and handle mapping?

Martini can implement scheduled or event-assisted incremental synchronization using filters, searches, SuiteQL, timestamps, external IDs, and persisted checkpoints. Workflows map NetSuite objects into canonical or target models, resolve related IDs, apply validation and business rules, and use overlap windows and reconciliation to reduce missed or duplicated changes.

How are NetSuite errors, retries, and duplicate transactions handled?

Martini can classify authentication, permission, validation, accounting, governance, concurrency, and temporary service errors into retryable, non-retryable, and manual-review categories. Idempotency keys, external references, existing-record checks, bounded backoff, persisted state, and reconciliation workflows help prevent duplicate Customers, Sales Orders, Invoices, files, or other writes.