Skip to main content

ACF Connector Specification — NetSuite

1. Purpose​

This specification defines how the ZAYAZ Accounting Connectivity Framework (ACF) integrates with Oracle NetSuite.

NetSuite is treated as a source enterprise resource planning and accounting platform rather than as an import/export file format.

The preferred ZAYAZ architecture uses:

  • SuiteTalk REST Web Services for governed record access;
  • SuiteQL for financial, analytical and joined source queries;
  • SuiteAnalytics Connect where large read-only extraction workloads justify it; and
  • RESTlets or SuiteScript adapters only when the standard source interfaces do not provide the required capability.

The connector enables authorized NetSuite data to participate safely in:

  • ESG screening;
  • emissions estimation;
  • vendor and item classification;
  • project and organizational allocation;
  • multi-entity ESG processing;
  • evidence collection;
  • reporting prepopulation;
  • audit and assurance;
  • reconciliation; and
  • regulatory data-quality evaluation.

The connector does not treat accounting data as sustainability evidence merely because it exists in NetSuite.

ACF determines:

  1. which NetSuite account and environment is connected;
  2. which role and permissions govern the connection;
  3. which subsidiaries and legal entities are represented;
  4. which standard and custom records are available;
  5. what each source field can reliably establish;
  6. what ZAYAZ may derive from those fields;
  7. what requires additional evidence; and
  8. how every material result remains traceable to its source.

2. Connector model​

NetSuite is a metadata-driven enterprise ERP connector.

A typical production architecture is:

                     NETSUITE
│
┌──────────────┼──────────────┐
│ │ │
SuiteTalk REST SuiteQL SuiteAnalytics
│ │ Connect
│ │ │
└──────────────┼──────────────┘
│
▼
ZAYAZ API Hub
│
Account Profile
│
▼
TrustGate
│
▼
ACF
┌───────────┼───────────┐
│ │ │
▼ ▼ ▼
Normalize Validate Classify
│ │ │
└───────────┼───────────┘
▼
Canonical Data
│
┌─────────────┼─────────────┐
▼ ▼ ▼
MICE FOGE ZARA
│
▼
Governed ESG Data

RESTlets and SuiteScript sit outside the normal path and are introduced only when required.


3. Why NetSuite requires account-specific discovery​

NetSuite accounts are highly configurable.

Two organizations using NetSuite may expose materially different source models because of differences in:

  • enabled features;
  • OneWorld configuration;
  • subsidiaries;
  • SuiteTax configuration;
  • SuiteApps;
  • custom records;
  • custom fields;
  • custom transaction types;
  • role permissions; and
  • organization-specific workflows.

Therefore:

There is no single static NetSuite schema that ACF should assume for every customer.

The connector must discover and register the effective customer schema.


4. REST metadata catalog​

SuiteTalk REST provides a metadata catalog for exposed records.

This is particularly useful to ZAYAZ because metadata can be retrieved in formats including:

JSON
OpenAPI 3.0
JSON Schema

The connector should use this metadata to build the customer-specific ACF profile.

For example:

NetSuite metadata
│
├── standard records
├── available fields
├── custom fields
├── subrecords
└── supported operations
│
▼
ACF-NETSUITE-CUSTOMER-PROFILE

This profile becomes part of the governed connector state.


5. Records Catalog and SuiteQL schema​

The REST metadata catalog and the NetSuite Records Catalog solve related but different problems.

The REST metadata catalog describes record-service capabilities.

The Records Catalog helps identify fields and joins available through the analytics data source and indicates availability across surfaces such as:

  • SuiteAnalytics Workbook;
  • SuiteScript;
  • SuiteTalk REST Web Services; and
  • SuiteAnalytics Connect.

ACF should therefore evaluate both where required.

A field that is unavailable through the REST record API may still be accessible through SuiteQL.


6. Authentication strategy​

New ZAYAZ integrations must use OAuth 2.0.

Two models are supported.

6.1 OAuth 2.0 authorization-code flow​

Appropriate where an authorized NetSuite user explicitly grants application access.

Typical flow:

ZAYAZ
│
▼
NetSuite authorization
│
▼
user grants role-based access
│
▼
OAuth tokens
│
▼
authorized NetSuite API

6.2 OAuth 2.0 client-credentials flow​

Appropriate for controlled server-to-server integration.

NetSuite maps:

application
+
certificate
+
entity
+
role

to the machine-to-machine integration identity.

This is particularly appropriate for enterprise production integrations where ongoing human authorization is not desirable.

Private keys must remain in the ZAYAZ secrets infrastructure.


7. TBA is legacy​

NetSuite Token-Based Authentication has historically been widely used for integrations.

It must not be selected for new ZAYAZ connectors.

The architecture should instead assume:

TBA
│
│ legacy
▼
OAuth 2.0

Existing customer TBA integrations may be recognized during migration assessment.

They should not define the target ACF architecture.


8. SOAP is also legacy​

SuiteTalk SOAP Web Services must not be used for new ZAYAZ connectors.

The migration direction is:

SuiteTalk SOAP
│
▼
SuiteTalk REST

Legacy SOAP integrations may be analyzed when onboarding an existing enterprise customer, but ZAYAZ should not build new product capability around SOAP semantics.


9. Account-specific URLs​

NetSuite REST services use account-specific domains.

ZAYAZ must resolve and store the service URL as connector configuration rather than constructing or hard-coding assumptions about NetSuite infrastructure.

The identity of a source connection therefore includes:

NetSuite account
+
environment
+
service URL
+
OAuth integration
+
role

10. Production, Sandbox and Release Preview​

NetSuite production, Sandbox and Release Preview environments must be treated as distinct connector environments.

Authorization state must not be assumed to transfer between them.

ACF distinguishes:

PRODUCTION

SANDBOX

RELEASE PREVIEW

Release Preview is strategically valuable because it can allow ZAYAZ to test upcoming NetSuite changes before the customer's production account is upgraded.

This can become part of schema-drift prevention.


11. Connector preflight​

Before activation, ZAYAZ should perform a governed preflight.

The process is:

Resolve account
↓
Resolve environment
↓
Authenticate
↓
Resolve role
↓
Inspect metadata
↓
Inspect enabled capabilities
↓
Resolve subsidiaries
↓
Validate mappings
↓
Register snapshot
↓
Activate connector profile

The result is:

ACF-NETSUITE-CUSTOMER-PROFILE

12. SuiteTalk REST Web Services​

SuiteTalk REST is the preferred transactional integration surface.

It can support operations such as:

  • retrieving records;
  • filtering record collections;
  • creating records where authorized;
  • updating records where authorized;
  • deleting records where authorized;
  • accessing subresources;
  • inspecting metadata; and
  • resolving related records.

ZAYAZ is expected to be primarily a reader of accounting source data.

Write operations must be enabled only for explicit governed use cases.


13. SuiteQL​

SuiteQL is the preferred source interface for many analytical accounting queries.

It is particularly useful where ACF needs to:

  • join related records;
  • retrieve large transaction populations;
  • reconcile source data;
  • perform incremental queries;
  • inspect accounting dimensions;
  • retrieve ledger data; or
  • analyze data across record types.

Conceptually:

SuiteTalk REST
│
├── authoritative record retrieval
│
└── object relationships

SuiteQL
│
├── analytical retrieval
│
├── joined datasets
│
└── reconciliation

The two interfaces are complementary.


14. SuiteQL result governance​

SuiteQL through REST has a finite result boundary.

ZAYAZ must therefore avoid unbounded extraction queries.

Large requests should be partitioned using deterministic source criteria such as:

  • accounting period;
  • transaction date;
  • subsidiary;
  • internal ID range;
  • transaction type; or
  • another stable filter.

Where a dataset exceeds the appropriate REST extraction model, SuiteAnalytics Connect may be used if available.


15. Bound SuiteQL parameters​

Dynamic query values should use supported bound parameters rather than concatenating untrusted values into query text.

Conceptually:

query definition
+
bound values
↓
SuiteQL execution

This should be the default pattern for generated or parameterized queries.

Material SuiteQL queries must also remain traceable.

TrustGate should retain either the governed query definition or an immutable query hash together with relevant parameters.


16. SuiteAnalytics Connect​

SuiteAnalytics Connect provides a read-only analytics interface.

It is useful for workloads such as:

  • very large historical extracts;
  • enterprise reconciliation;
  • bulk transaction analysis; and
  • analytical warehouse-style ingestion.

It supports interfaces including:

  • ODBC;
  • JDBC; and
  • ADO.NET.

It should not be used as a substitute for transactional REST integration.

The preferred architecture is:

REST / SuiteQL
│
operational connector

SuiteAnalytics Connect
│
optional large-scale reader

17. RESTlets​

RESTlets provide custom NetSuite integration logic through SuiteScript.

They can be valuable when:

  • a required source operation is absent from standard REST;
  • customer-specific business logic must execute inside NetSuite;
  • several internal actions need to be composed; or
  • a customer SuiteApp exposes an approved integration surface.

But this flexibility has a governance cost.

A RESTlet is executable customer-specific integration logic.

Therefore it requires:

  • versioning;
  • deployment identity;
  • change control;
  • input validation;
  • output-schema validation;
  • security review; and
  • TrustGate registration.

18. Event-driven synchronization​

NetSuite should not be modeled as having a universal native webhook capability equivalent to an event-native SaaS platform.

The standard production ACF model is therefore:

Initial synchronization
↓
Incremental filtered retrieval
↓
Periodic reconciliation

Where stronger event-driven behavior is required, a customer may deploy:

  • SuiteScript;
  • workflow integration;
  • middleware; or
  • another approved source adapter.

Such eventing supplements rather than replaces reconciliation.


19. Incremental synchronization​

Incremental retrieval should use source-supported change indicators where available.

Typical strategy:

last successful watermark
↓
overlap window
↓
filtered source query
↓
stable ordering
↓
deduplication
↓
new watermark

The overlap window protects against timing boundaries and late source changes.

Processing must be idempotent.


20. NetSuite governance limits​

NetSuite controls API concurrency at the account level.

This is an important connector characteristic.

ZAYAZ must not assume an unlimited API surface.

Connector throughput may depend on:

  • NetSuite service tier;
  • SuiteCloud Plus licensing;
  • concurrent external integrations; and
  • customer-specific account usage.

Therefore ZAYAZ should use adaptive throttling.

normal capacity
│
▼
parallel requests
│
governance pressure?
│
┌──┴──┐
no yes
│ │
▼ ▼
continue reduce concurrency
+
backoff

21. Shared concurrency​

NetSuite web services and RESTlet workloads can share account-level concurrency capacity.

This means ZAYAZ cannot consider its connector in isolation.

Another customer integration may consume part of the same available capacity.

The connector should therefore monitor:

  • concurrency failures;
  • latency;
  • retry rates;
  • source timeouts; and
  • sustained governance pressure.

Non-critical ESG work may be delayed rather than competing with critical accounting integrations.


22. Source identities​

NetSuite internal IDs should be preserved.

Where available, external IDs should also be retained.

The canonical source identity should normally include:

NetSuite account
+
record type
+
internal ID
+
subsidiary where relevant

For transaction lines:

parent transaction
+
line identity
+
record context

should be preserved where the source model allows it.


23. OneWorld and subsidiaries​

NetSuite OneWorld is especially important to ZAYAZ.

A OneWorld account represents a hierarchy of subsidiaries.

Each subsidiary can represent a separate legal entity.

Therefore:

NetSuite Account
│
├── Subsidiary A
├── Subsidiary B
├── Subsidiary C
└── Elimination Subsidiary

must not be collapsed automatically into one ZAYAZ company.

Each relevant subsidiary must resolve to:

ZAYAZ organization context
+
E-C-O Number

before ESG processing.


24. Financial consolidation is not ESG consolidation​

This distinction is critical.

NetSuite may consolidate financial entities according to accounting rules.

ZAYAZ may need to consolidate sustainability data according to a different applicable methodology.

Therefore:

NetSuite financial boundary

must not automatically become:

ZAYAZ GHG / ESRS / ESG reporting boundary

The organizational-boundary methodology remains separately governed.


25. Intercompany transactions​

OneWorld may contain intercompany transactions.

Without appropriate controls, these can create ESG double counting.

ACF must retain:

  • originating subsidiary;
  • receiving subsidiary or subsidiaries;
  • transaction type;
  • source transaction identity;
  • elimination context where applicable; and
  • consolidation treatment.

A simple rule such as:

sum all financial expenditure

would be unsafe in a multi-entity group.


26. General ledger​

The NetSuite general ledger can support:

  • spend screening;
  • financial reconciliation;
  • account classification;
  • entity reconciliation;
  • Scope 3 screening;
  • project allocation; and
  • ESG evidence discovery.

However:

A ledger posting is a financial fact, not automatically a physical ESG activity.

For example:

EUR 45,000 fuel expense

does not itself prove:

30,000 litres diesel

Physical activity requires supporting activity evidence.


27. Vendors​

NetSuite vendor records are important ESG master data.

A vendor relationship may support:

  • supplier identification;
  • spend aggregation;
  • supplier-country mapping;
  • supplier questionnaire routing;
  • CSDDD workflows;
  • supplier-risk analysis;
  • supplier-specific emissions requests; and
  • Scope 3 analysis.

However:

known vendor

does not mean:

verified supplier ESG data

The data-quality distinction remains explicit.


28. Vendor bills​

Vendor bills can materially improve ESG classification beyond general-ledger data.

Potentially useful context includes:

  • vendor;
  • transaction date;
  • subsidiary;
  • currency;
  • item or expense lines;
  • account;
  • memo;
  • project or other dimensions; and
  • related records.

Some REST-specific field limitations exist.

ACF must therefore determine whether the needed data should come from:

REST record
│
├── sufficient → use
│
└── insufficient
↓
SuiteQL?
│
┌──────┴──────┐
yes no
│ │
use enrichment /
approved adapter

29. Purchase orders​

Purchase-order data can help identify procurement intent before final accounting recognition.

This may be useful for:

  • purchased-goods classification;
  • supplier analysis;
  • quantity discovery;
  • project procurement;
  • Scope 3 estimation; and
  • forecasting.

However, standard REST exposure has record-specific limitations.

Therefore purchase-order line capability must be established through the customer's connector profile rather than assumed.

SuiteQL may provide a better retrieval route for some analytical purchase-order data.


30. Items and inventory​

NetSuite item and inventory records can materially improve product and activity classification.

Potential uses include:

  • item-level ESG category mapping;
  • inventory movement analysis;
  • product-specific supplier mapping;
  • quantity-based activity discovery;
  • materials analysis;
  • procurement classification; and
  • product-footprint enrichment.

For example:

Vendor bill line
+
inventory item
+
quantity
+
unit
↓
potential activity-level ESG input

This is significantly stronger than account-only classification.


31. Item receipts​

Item receipts can help distinguish:

ordered quantity

from:

physically received quantity

That difference may matter for:

  • procurement analytics;
  • inventory emissions;
  • material-flow analysis;
  • supplier performance; and
  • product-level environmental modeling.

Item receipt data must still be mapped to the applicable ESG methodology before use.


32. Expense reports​

Employee expense reports may support sustainability analysis of:

  • travel;
  • accommodation;
  • mileage;
  • transport;
  • meals;
  • other employee expenditure.

The availability and quality of the source data depend on how the customer uses the NetSuite feature.

Expense value alone may support screening.

Activity-based calculation requires appropriate physical data.


33. Projects​

Projects and project tasks can provide valuable ESG allocation dimensions.

Examples include:

  • construction footprint;
  • professional-services project emissions;
  • infrastructure projects;
  • customer project sustainability;
  • project procurement;
  • project travel;
  • project profitability versus environmental impact.

NetSuite's REST exposure for project data has field and sublist limitations.

ACF must therefore use account-specific capability discovery.


34. Departments, classes and locations​

NetSuite organizational dimensions may support ESG allocation.

For example:

NetSuite location
↓
ZAYAZ facility
NetSuite department
↓
ZAYAZ organizational unit
NetSuite class
↓
customer-specific semantic category

These relationships must be governed mappings.

A dimension name must never be treated as its semantic meaning without mapping.


35. Custom dimensions and fields​

This is a major NetSuite strength.

Customers frequently use custom fields to encode business information specific to their organization.

Examples could include:

vehicle type
fuel type
site
project category
supplier classification
business unit
product family
contract
operating region

Such fields may dramatically improve ESG classification.

But custom fields are account-specific.

Therefore:

ZAYAZ should discover them, not hard-code them.


36. Custom-field semantic mapping​

Discovery is only the first step.

A custom NetSuite field such as:

custbody_region_code

does not automatically tell ZAYAZ what it means.

The mapping process is:

custom field
↓
metadata discovery
↓
semantic assessment
↓
canonical mapping
↓
governed mapping version

Once governed, the field may become a powerful classification signal.


37. Tax and SuiteTax​

NetSuite tax behavior requires special handling.

The connector must determine whether the relevant customer uses supported SuiteTax functionality.

REST support must not be generalized from one record to another.

Tax data may help:

  • determine net versus gross values;
  • understand transaction semantics;
  • classify expenditure; and
  • validate financial amounts.

It is not itself an ESG methodology.


38. Currency​

NetSuite may contain:

  • transaction currency;
  • subsidiary base currency;
  • group reporting currency; and
  • converted accounting amounts.

ACF must distinguish these.

An ESG spend-based calculation should record:

source amount
source currency
↓
governed currency conversion
↓
factor reference currency/year
↓
calculation

The normalized amount is a ZAYAZ transformation.

It must not replace the original NetSuite value.


39. ESG processing model​

The source-to-result chain is:

NetSuite source record
↓
ACF source registration
↓
canonical mapping
↓
normalization
↓
classification
↓
method selection
↓
factor resolution
↓
MICE
↓
TrustGate
↓
governed ESG result

NetSuite answers:

What happened in the enterprise system?

ZAYAZ determines:

What sustainability meaning can validly be derived from it?


40. Spend-based emissions​

NetSuite is well suited to spend-based screening because it can supply multiple classification signals.

For example:

Vendor
+
GL account
+
Vendor bill
+
Item
+
Project
+
Department
+
Location
+
Custom fields
↓
ESG classification
↓
spend category
↓
factor resolution
↓
tCO2e

This can be substantially stronger than account-only classification.

But the result remains an estimate unless higher-quality evidence exists.


41. Activity-based emissions​

Activity-based calculation requires valid physical activity.

Examples include:

  • kWh;
  • litres;
  • kg;
  • tonnes;
  • km;
  • passenger-km;
  • tonne-km;
  • units of material; or
  • another method-compatible quantity.

An item line may contain useful quantity information.

That quantity is not automatically a valid environmental activity.

ZAYAZ must establish:

quantity
+
unit
+
activity meaning
+
method
+
factor

before calculation.


42. Data-quality hierarchy​

ACF applies the common accounting data-quality hierarchy.

ACF-DQ1 — Accounting-only estimate​

Examples:

  • GL account;
  • transaction;
  • vendor;
  • spend;
  • memo.

Typical use:

  • screening;
  • materiality;
  • spend-based estimation.

ACF-DQ2 — Invoice-level data​

Examples:

  • vendor bill;
  • invoice;
  • transaction line;
  • purchase record;
  • item;
  • linked evidence.

This can significantly improve classification.


ACF-DQ3 — Activity data​

Physical quantity and unit are available.

Examples:

14,200 kWh
860 litres
24.5 tonnes
9,400 passenger-km

ACF-DQ4 — Supplier-specific data​

Data is attributable to the actual supplier, product or service.


ACF-DQ5 — Verified primary data​

The primary data has undergone the required validation or verification.


43. Quality upgrades​

The hierarchy supports progressive improvement.

DQ1
Accounting estimate
│
▼
DQ2
Transaction-line estimate
│
▼
DQ3
Activity calculation
│
▼
DQ4
Supplier-specific result
│
▼
DQ5
Verified primary result

A higher-quality result may supersede a previous calculation.

It must not erase its history.

TrustGate preserves the calculation chain.


44. Classification​

NetSuite provides unusually rich potential classification context.

A classification decision may use:

account
vendor
transaction type
item
memo
project
department
class
location
subsidiary
custom fields

The result remains a ZAYAZ-derived classification unless NetSuite explicitly supplied the same semantic classification.


45. Evidence linkage​

NetSuite records may act as evidence or evidence locators.

Examples include:

  • vendor bill;
  • invoice;
  • journal entry;
  • expense report;
  • purchase order;
  • item receipt;
  • item;
  • project;
  • vendor;
  • custom record; and
  • related document.

TrustGate preserves the relationship.

Example:

ESRS datapoint
↓
ZAYAZ emissions result
↓
MICE execution
↓
classified activity
↓
NetSuite vendor bill line
↓
vendor bill
↓
vendor
↓
subsidiary
↓
source identity

46. FOGE prepopulation​

FOGE can use validated NetSuite-derived information where the reporting requirement permits it.

Example:

NetSuite source
↓
ACF validation
↓
evidence quality test
↓
MICE calculation
↓
reporting requirement test
↓
FOGE prepopulation

The mere presence of accounting data does not authorize prepopulation.

The evidence must satisfy the relevant reporting requirement.


47. Reporting limitations​

NetSuite cannot independently populate a complete ESRS, VSME or other sustainability report.

Accounting data may support:

  • emissions inputs;
  • financial denominators;
  • supplier information;
  • energy or procurement screening;
  • organizational structures;
  • project allocations; and
  • evidence links.

It does not by itself prove:

  • policies;
  • transition plans;
  • governance responsibilities;
  • workforce practices;
  • due-diligence processes;
  • stakeholder engagement;
  • biodiversity assessments;
  • targets; or
  • narrative disclosures.

48. ZARA behavior​

ZARA uses the NetSuite connector profile to answer questions such as:

  • Is this field actually available?
  • Is the field REST-native or SuiteQL-derived?
  • Which subsidiary does the transaction belong to?
  • Why was a particular vendor classification selected?
  • Why is additional evidence required?
  • What quality tier applies?
  • Why did a recalculation change?
  • Is this value NetSuite-native or ZAYAZ-derived?

ZARA must keep source fact and derived interpretation separate.


49. FOGE behavior​

FOGE uses:

  • source availability;
  • evidence sufficiency;
  • quality tier;
  • subsidiary context;
  • reporting requirement;
  • source preference; and
  • enrichment state.

FOGE should never transform:

NetSuite has data

into:

regulatory disclosure requirement satisfied

without validation.


50. MICE behavior​

MICE receives governed calculation inputs.

A calculation should identify:

  • NetSuite source record;
  • subsidiary;
  • reporting entity;
  • financial amount or activity;
  • source currency;
  • normalized currency where applicable;
  • classification;
  • method;
  • emission factor;
  • factor version;
  • reporting period;
  • data-quality tier; and
  • provenance.

This allows deterministic reproduction.


51. COSE behavior​

COSE compares available evidence against regulatory and methodological requirements.

Example:

Required:
verified physical electricity consumption

Available:
NetSuite utility vendor bill
with financial amount only

Result:
evidence gap

The correct outcome is not to invent consumption.

The correct outcome is to request enrichment.


52. DaVE behavior​

DaVE monitors both connector health and data quality.

Signals include:

  • authentication failure;
  • role change;
  • metadata drift;
  • custom-field change;
  • SuiteQL failure;
  • governance pressure;
  • synchronization lag;
  • reconciliation difference;
  • missing subsidiary mapping;
  • supplier-resolution failure;
  • unexpected data variance; and
  • closed-period mutation.

A technically connected NetSuite account can therefore still be marked degraded for ESG use.


53. TrustGate behavior​

TrustGate preserves:

NetSuite
↓
source retrieval
↓
canonical mapping
↓
normalization
↓
classification
↓
calculation
↓
reporting output
↓
verification

The lineage must survive:

  • source correction;
  • transaction reversal;
  • late posting;
  • period reopening;
  • mapping change;
  • custom-field change;
  • methodology change;
  • factor change;
  • manual override; and
  • assurance review.

54. Historical changes​

Historical accounting records can change.

Examples include:

  • late vendor bills;
  • journal corrections;
  • reversals;
  • reopened periods;
  • intercompany changes;
  • changed project allocations; and
  • updated custom fields.

When a material source record changes:

NetSuite mutation
↓
DaVE detection
↓
TrustGate lineage event
↓
affected ESG result identified
↓
revalidation
↓
recalculation if required

The previous result remains auditable.


55. Data minimization​

NetSuite can contain substantial information unrelated to a specific ESG purpose.

ZAYAZ should retrieve only what is needed.

For example:

Required:
vendor
amount
currency
account
subsidiary
project
transaction date

does not justify indiscriminate extraction of:

all employee data
all CRM data
all communications
all unrelated custom fields

Source-side filtering is therefore part of privacy and security architecture.


56. Custom records​

Custom NetSuite records can be extremely valuable.

They may contain customer-specific information such as:

  • fleet records;
  • facility records;
  • meter data;
  • supplier attributes;
  • material data;
  • product attributes;
  • operational measurements; or
  • sustainability-specific extensions.

However, their semantics are customer-specific.

They require:

metadata discovery
↓
semantic mapping
↓
schema registration
↓
governed use

57. REST gaps​

A recurring NetSuite integration mistake would be:

field not returned by REST
↓
field does not exist

ACF must not make this assumption.

The proper process is:

not in REST response
↓
metadata?
↓
SuiteQL?
↓
feature enabled?
↓
role permission?
↓
custom source?
↓
truly unavailable?

Only then should ZAYAZ mark the field unavailable.


58. Preferred production architecture​

The preferred deployment is:

                   ORACLE NETSUITE
│
┌──────────────┼───────────────┐
│ │ │
SuiteTalk REST SuiteQL SuiteAnalytics
│ │ Connect
│ │ optional
└──────────────┼───────────────┘
│
▼
ZAYAZ API HUB
│
account + schema profile
│
▼
TRUSTGATE
│
source lineage
│
▼
ACF
┌─────────────┼─────────────┐
│ │ │
normalize validate classify
│ │ │
└─────────────┼─────────────┘
▼
CANONICAL DATA MODEL
│
┌─────────────┼─────────────┐
│ │ │
MICE FOGE ZARA
│ │ │
└─────────────┼─────────────┘
▼
GOVERNED ESG OUTPUT

RESTlets or SuiteScript adapters are added only where explicitly required.


59. Quick-start implementation​

A controlled pilot should:

  1. establish a NetSuite Sandbox connection where available;
  2. configure OAuth 2.0;
  3. retrieve account-specific metadata;
  4. generate the ACF customer profile;
  5. map subsidiaries;
  6. map key accounts and dimensions;
  7. retrieve a limited historical period;
  8. validate vendors and transaction relationships;
  9. perform initial ESG screening;
  10. test SuiteQL reconciliation;
  11. validate TrustGate lineage; and
  12. verify API governance behavior.

Production activation should not occur solely because records can be retrieved.


60. Production implementation​

Production should add:

  • governed OAuth 2.0 credentials;
  • certificate rotation where applicable;
  • adaptive API throttling;
  • scheduled incremental synchronization;
  • reconciliation;
  • schema-drift monitoring;
  • custom-field monitoring;
  • subsidiary mapping;
  • closed-period mutation detection;
  • TrustGate registration;
  • quality diagnostics;
  • controlled recalculation; and
  • production observability.

61. OneWorld implementation​

For OneWorld customers, connector activation requires an additional entity gate.

NetSuite subsidiary
↓
legal entity?
↓
ZAYAZ organization
↓
E-C-O Number
↓
reporting boundary

Elimination subsidiaries and intercompany structures must also be identified.

No transaction should enter a group sustainability calculation without entity context where that context is material.


62. High-volume implementation​

Where customer data volumes exceed the practical REST/SuiteQL extraction profile:

normal operational reads
↓
REST / SuiteQL

while:

large historical or analytical extract
↓
SuiteAnalytics Connect

may be preferable.

Both paths feed the same ACF canonical and lineage model.

The downstream system should not need to know which transport supplied the record unless provenance is being inspected.


63. Limitations​

The connector has several material limitations.

63.1 Customer schemas vary​

Standard and custom fields differ between accounts.


63.2 Feature availability varies​

Projects, OneWorld, SuiteTax, SuiteAnalytics Connect and other capabilities may not be enabled.


63.3 REST coverage is record-specific​

A REST-supported record does not imply every field or sublist is exposed.


63.4 Role permissions affect visibility​

Missing values may reflect authorization rather than absent business data.


63.5 API capacity is governed​

Large extraction workloads must respect NetSuite account concurrency.


63.6 SuiteQL REST is not unlimited bulk export​

Large datasets require partitioning or an appropriate alternative such as SuiteAnalytics Connect.


63.7 Generic native webhooks should not be assumed​

Event-driven behavior requires additional integration design.


63.8 Accounting data remains accounting data​

Financial records alone cannot prove every environmental activity or regulatory disclosure.


64. Connector activation gate​

A production NetSuite connection should not activate until:

OAuth 2.0                     PASS
Account URL PASS
Role permissions PASS
Metadata snapshot PASS
Custom-field discovery PASS
Subsidiary mapping PASS / N/A
Canonical mapping PASS
TrustGate registration PASS
Initial reconciliation PASS
Governance test PASS
Monitoring PASS

Additional controls may apply to:

  • SuiteAnalytics Connect;
  • RESTlets;
  • custom SuiteScript;
  • OneWorld;
  • intercompany processing; or
  • customer-specific records.

65. Definition of done​

The NetSuite connector is production-ready when ZAYAZ can demonstrate that it can:

  1. authenticate through OAuth 2.0;
  2. resolve the correct account-specific services;
  3. identify the effective role and permissions;
  4. discover account-specific metadata;
  5. identify standard and custom records and fields;
  6. resolve subsidiary context where applicable;
  7. retrieve required accounting objects;
  8. execute governed SuiteQL queries;
  9. preserve NetSuite source identities;
  10. map source data into the ZAYAZ canonical model;
  11. normalize and validate it deterministically;
  12. perform controlled incremental synchronization;
  13. reconcile source state;
  14. operate within NetSuite governance limits;
  15. detect metadata and mapping drift;
  16. detect relevant historical accounting mutations;
  17. prevent intercompany ESG double counting;
  18. execute ESG screening without inventing missing activity;
  19. upgrade calculations when higher-quality evidence becomes available;
  20. retain prior calculations and provenance;
  21. support ZARA, FOGE, MICE, COSE, DaVE and TrustGate consumers;
  22. prevent cross-tenant and cross-subsidiary leakage;
  23. govern any RESTlet or SuiteScript extension; and
  24. reproduce any material ESG result from source to final output.

66. Source references​

The connector specification is based primarily on current official Oracle NetSuite documentation covering:

  • SuiteTalk REST Web Services;
  • REST metadata;
  • Records Catalog;
  • SuiteQL;
  • OAuth 2.0;
  • OAuth 2.0 client credentials;
  • account-specific URLs;
  • RESTlets;
  • SuiteAnalytics Connect;
  • API concurrency governance;
  • NetSuite OneWorld;
  • REST record limitations;
  • TBA migration; and
  • SOAP Web Services removal.

For implementation purposes, the customer's current NetSuite metadata and Records Catalog remain authoritative for account-specific record and field availability.

The ACF customer connector profile must be reviewed or regenerated when material changes affect:

  • the NetSuite release;
  • enabled features;
  • role permissions;
  • standard records;
  • custom records;
  • custom fields;
  • subsidiaries;
  • SuiteApps;
  • taxation configuration;
  • authentication; or
  • integration architecture.




Runtime Provider Extension​

The provider-specific runtime contract for this connector is maintained separately from the common ACF connector frontmatter.

It contains machine-actionable provider semantics that are intentionally not part of the common ACF schema, including authentication lifecycle, provider object revision semantics, change-capture constraints and provider-specific capability rules.

provider-extension.yamlGitHub ↗
schema_id: zayaz.acf.provider-extension.v1
extension_version: 1.0.0
connector_id: ACF-NETSUITE
provider:
namespace: oracle.netsuite
name: Oracle
product: NetSuite
runtime:
source_contract:
primary_api: suitetalk_rest
suiteql_supported: true
suiteanalytics_connect_supported_for_high_volume: true
metadata_account_specific: true
metadata_formats:
- json_schema
- openapi_3
source_identity:
account_context_required: true
subsidiary:
candidate_id_class: ECO
automatic_legal_entity_resolution_allowed: false
capability_rules:
account_features_material: true
account_specific_schema_material: true
custom_records_and_fields_dynamic: true
change_capture:
generic_tripletex_style_webhook_assumed: false
reconciliation_required: true
source_semantics:
department:
candidate_id_class: EBU
automatic_resolution_allowed: false
class:
candidate_id_class: EBU
automatic_resolution_allowed: false
location:
source_context: facility_or_organizational_unit_candidate
automatic_resolution_allowed: false
evidence:
source_record_relationships_supported: true
extensions:
preferred_authentication:
oauth_2_0: true
oneworld:
subsidiary_model_supported: true
governance:
status: active
last_verified: 2026-08-30
review_interval_days: 90
change_control_required: true
source_basis: connector_specification
GitHub RepoRequest for Change (RFC)