ERP workstation in a blue glass office with transaction symbols on one side and analytical charts on the other.

Choose Acumatica's contract-based REST API when an integration must work with business entities or invoke supported business actions. Consider OData when the requirement is to retrieve defined inquiry results or supported DAC data for analysis. REST also retrieves data, and Acumatica exposes more than one OData interface, so the choice requires more than a simple write-versus-read rule.

A reliable design identifies the business outcome, the interface contract, access permissions, expected volume, and recovery behavior before implementation begins. This guide uses current Acumatica documentation, including 2026 R2 references, to explain those decisions. The scenarios are illustrative architecture recommendations, not reports of production benchmarks. Exact endpoints, fields, authentication configuration, and available features must be validated in the target environment.

Begin with the business operation rather than the protocol

An integration requirement such as connect our systems is too broad to guide an interface choice. Break it into specific operations with clear ownership. Creating a sales order, checking its processing status, exporting a reporting dataset, and refreshing an executive dashboard are different responsibilities even when they involve some of the same records.

For each operation, describe the trigger, source of truth, expected ERP outcome, acceptable delay, and recovery owner. A sales order arriving from an external application may require validation and an actionable response. A weekly analysis may tolerate a scheduled refresh and a clearly labeled data timestamp. The right design should reflect those differences.

Define success in business terms. An HTTP response alone does not prove that a shipment was created, an order was released, or an analyst received a complete dataset. The acceptance test must identify the state or reconciled output that demonstrates completion.

Also distinguish interactive and background requirements. A user waiting for an order confirmation experiences latency differently from a scheduled extraction job. If the business can accept asynchronous processing, a queue and status workflow may provide a more reliable experience than holding an interactive request open through several downstream operations.

The result should be a small operation inventory. Name each operation plainly and assign it an owner. This inventory prevents a protocol decision made for one convenient demonstration from becoming the assumed architecture for every requirement in the project.

Back to TOC

Understand the three interfaces commonly involved

The most useful comparison separates contract-based REST, Generic Inquiry OData, and DAC-based OData. These interfaces expose different models and require different design decisions. Calling all three the API without qualification makes later discussions about permissions, fields, and performance unnecessarily confusing.

Acumatica's Cloud xRP platform overview describes contract-based REST access in relation to business logic and endpoint definitions. That is an important starting point for operations that must follow supported ERP behavior rather than treating business records as arbitrary database rows.

Generic Inquiry OData exposes inquiry results. It can provide a deliberately shaped dataset with selected columns and joins. DAC-based OData exposes supported data access classes and their documented data model. Neither choice removes the need to understand business meaning, access restrictions, or the effects of customization.

In a design document, name the selected interface for every operation. For example, an order submission might use a specific REST endpoint version, while a nightly sales analysis reads a named inquiry through the GI OData route. This is more precise than saying the solution uses REST for everything or OData for reporting.

Avoid making universal claims about the OData standard based on one product implementation. The architectural question is what the selected Acumatica interface supports in the installed version. Use current product documentation and metadata to establish that contract, then test the intended operation with representative data.

Back to TOC

Choose REST when the integration owns a business transaction

When an external system initiates a transaction, the integration must understand the business entity, required fields, validation rules, and intended state transition. A transaction is more than a collection of values. Its meaning depends on the surrounding customer, item, warehouse, document type, and business process.

The contract-based REST interface is a natural candidate for these requirements. Acumatica documents entity operations and actions through endpoint contracts. The JSON record representation reference explains the structure of entity data, which should be validated against the actual endpoint used by the integration.

Design the mapping around business meaning. An external SKU may need a controlled mapping to an Acumatica item. A customer identifier may require a cross-reference. A warehouse may be selected by an agreed rule rather than copied blindly from a source field. Record who owns each mapping and how unmapped values are handled.

Do not hide rejected transactions in a technical log that operations cannot access. A failed order should enter an exception workflow with a useful reason, the affected business reference, and a safe next action. The original request should remain traceable without exposing credentials or unnecessary personal information.

Finally, define what the integration is authorized to do after creation. Saving a document, releasing it, creating a shipment, and invoicing are separate business commitments. Invoke only the required supported actions and verify the resulting state. A successful create request does not authorize an application to advance every downstream process automatically.

Back to TOC

Use Generic Inquiry OData for an intentional reporting dataset

A Generic Inquiry can provide a useful boundary between ERP data and a reporting consumer. Instead of asking every consumer to reconstruct business joins, the organization can define a named dataset with a documented row meaning and selected fields. This approach still requires careful ownership and testing.

Acumatica's Generic Inquiry access through OData reference documents the GI route and metadata. Only appropriately exposed inquiries should be assumed available. Verify the actual service document and metadata in the intended tenant rather than copying a route from another environment.

Start the dataset design by defining its grain. One row per order is different from one row per order line or one row per shipment allocation. If a report joins header totals to multiple detail rows, an analyst can accidentally multiply the total. Clear column names do not compensate for an undefined row meaning.

Publish a short dataset contract alongside the inquiry. Identify the business keys, row grain, currency treatment, date interpretation, relevant filters, and refresh expectations. Include examples of how consumers should aggregate the results and which combinations would produce misleading totals.

Treat changes to the inquiry as changes to a shared interface. Renaming a column, changing a join, or altering a filter can break a dashboard even when the inquiry still runs successfully. Test dependent consumers and communicate material changes through the team's normal release process.

Back to TOC

Use DAC OData only with a clear understanding of the data model

DAC-based access can be useful when the requirement aligns with supported data classes and relationships. It also places more responsibility on the integration team to understand the meaning of the data it retrieves. A familiar field name is not enough to establish the correct business interpretation.

The DAC-based OData reference describes the interface, metadata, authorization options, and limitations. Inspect the available properties and documented restrictions before designing queries. Do not assume that every field can be selected, filtered, or navigated in the same way.

For an analytical use case, ask whether direct access actually reduces complexity. If every consumer must reproduce the same business joins and exclusions, a managed inquiry may provide a clearer shared definition. If a specialized application needs a supported data relationship directly, DAC access may be appropriate after validation.

Keep business reconciliation close to the extraction design. Compare a sample of retrieved records with the relevant ERP view and explain differences caused by status, timing, access rights, or row grain. A technically valid query can still produce an operationally misleading dataset.

Document the dependency on the installed version and customization. Changes to data structures or exposed properties may require a review even when the external application's business requirement remains unchanged. Build regression cases around the actual fields and relationships used, rather than assuming that a successful connection proves the whole data model is stable.

Back to TOC

Recognize that REST can also retrieve data

The common shortcut of REST for writes and OData for reads is incomplete. REST supports retrieval, and some read-oriented operations may fit an existing endpoint contract well. The choice should consider the required business object, available filters, data shape, and consumer needs.

Acumatica documents retrieving records by conditions through REST. It also documents retrieving data from an inquiry form, including cases where a request body supplies parameters. Do not infer business side effects solely from a familiar HTTP verb without reading the operation's contract.

A transaction integration often benefits from reading the same business entity it created. For example, it may retrieve an order's status to reconcile an uncertain response or present progress to an operator. Introducing a separate reporting interface for that narrow read can add unnecessary dependencies if the endpoint already provides the required information.

Conversely, a broad analytical extract may benefit from a purpose-built dataset even if REST technically exposes the underlying entities. Evaluate the completeness and clarity of the result, the number of requests required, and the operational effect of the chosen approach.

Make the decision at the operation level. It is reasonable for one application to use REST for transactional status and GI OData for a scheduled analytical feed. The architecture should make those responsibilities explicit so that monitoring and support teams know which path to investigate when an outcome is missing.

Back to TOC

Define an interface contract before writing the connector

An interface contract is the agreement about what crosses the boundary between systems. It should identify the operation, identifiers, required and optional fields, expected response, business validation, and error handling. Without this agreement, implementation details tend to become accidental business policy.

For a transaction, include a small set of realistic examples. Show an ordinary request, a rejected mapping, a duplicate submission, and a change to an existing record where updates are supported. Identify which system owns each field and whether a later update may overwrite a value entered by a user in Acumatica.

For a reporting dataset, define the row grain and key together. A key that appears unique in a small sample may fail when multiple branches, lines, revisions, or historical periods are included. Test uniqueness with representative data and explain how consumers should handle legitimate repeated business references.

State the time and currency rules. A timestamp without a timezone or a total without a currency can cause subtle reporting errors. If conversion or normalization occurs outside the ERP, record the rule and preserve enough source information to reconcile the result later.

Keep the contract small enough to review and detailed enough to test. It should be usable by the business owner, implementer, and support team. A generated schema can help describe structure, but it does not replace the explanation of what the data means or what should happen when a business condition prevents completion.

Back to TOC

Version endpoint and dataset changes deliberately

A stable integration depends on more than keeping the same URL. Changes to fields, mappings, validations, permissions, inquiry joins, or customizations can alter behavior. Treat these as interface changes even when the underlying protocol remains the same.

For REST, record the endpoint name and version actually deployed. Documentation examples may use a version that differs from the target environment. Inspect the endpoint definition and test required entities and actions rather than assuming an example URL can be copied into production unchanged.

For OData, preserve a reviewed metadata baseline and the dataset's business definition. A changed property type or a renamed column may affect a consumer. A changed filter can be more dangerous because the query may still succeed while returning a different population of records.

Use a change log that describes the consumer impact. Adding an optional field may be compatible for one consumer and disruptive for another that assumes a fixed column list. Changing the meaning of a status or identifier deserves explicit review even if the field type stays the same.

Before an ERP upgrade, run representative regression cases in the upgraded test environment. Include successful transactions, expected rejections, permissions, dataset totals, paging, and recovery. Save the evidence with the release decision. This is more reliable than performing one successful login and assuming every interface behavior has remained compatible.

Back to TOC

Design authentication and permissions around the actual workload

Authentication establishes access, but the integration also needs an appropriate permission model. A successful login does not prove that the application should be able to read every dataset or perform every action available to a human administrator.

Acumatica documents OAuth authorization for integrations and connected applications. The authorization code reference describes scopes and flow details. Select a flow supported by the installed release and application type, and test token renewal and revocation behavior before relying on unattended operation.

Use a dedicated integration identity with access appropriate to the operations. Keep development, testing, and production configuration distinguishable. Store secrets in an approved secret-management mechanism and avoid placing them in source files, screenshots, ordinary logs, or support tickets.

Test permissions negatively as well as positively. Confirm that the intended operations work and that unrelated sensitive datasets or actions remain unavailable. An integration that succeeds only with broad administrator access needs further design work before that access becomes permanent.

Define operational ownership for expiration and revocation. The support team should know how to identify an authorization failure, who can restore approved access, and how to distinguish it from a business validation error. Recovery procedures should preserve the existing authorization boundary rather than encouraging operators to grant broader permissions simply to clear a queue.

Back to TOC

Plan capacity using the actual license and observed workload

Capacity planning should use the target environment's limits and realistic request patterns. A small demonstration rarely reveals the concurrency, volume, or recovery pressure of a production integration. Avoid assuming that more parallel workers will always improve completion time.

The current license restrictions reference documents limits affecting sessions and requests. Review the applicable monitoring screens and license settings in the customer's environment. Do not use a remembered numerical limit from a different tenant as the design baseline.

Estimate the work in business units first. For example, identify the expected orders per hour, lines per order, status checks per transaction, and refresh frequency of analytical consumers. Then translate those operations into an approximate request workload and validate it through controlled testing.

Include recovery traffic in the estimate. A system that normally handles modest volume may face a backlog after an outage. If every worker retries immediately, the recovery process can create more pressure than ordinary operation. Use bounded concurrency and a deliberate backlog-draining strategy.

Measure latency, error rates, completion time, and business throughput together. A request-level improvement that increases duplicate work or operator intervention is not necessarily an operational improvement. Keep analytical refreshes and transactional workloads coordinated so that a large extract does not unexpectedly compete with time-sensitive business operations.

Back to TOC

Make paging and completeness part of the acceptance test

A successful first page is not evidence of a complete dataset. Paging errors can silently omit or duplicate records, especially when data changes during extraction. A report may look plausible while missing a meaningful part of the population.

Verify the paging behavior documented for the selected interface and query. Use a test population larger than one page. Confirm how ordering, filters, keys, and continuation behavior interact in the installed version. Do not assume that a paging technique from another OData service or REST API applies unchanged.

Create a reconciliation independent of the transport loop. Compare expected record counts or business totals for a known slice, then investigate differences. Counts alone may not be enough when rows can repeat or values change, so include key uniqueness and appropriate totals where possible.

Plan for data that changes while the extraction runs. A long-running read of a live operational system is not automatically a consistent snapshot. Decide whether the reporting requirement needs a cutoff, a repeatable reconciliation, a staging layer, or another documented approach to handling change.

Test restart behavior. Interrupt an extraction after several pages and confirm that recovery does not silently skip or duplicate a range. Preserve the checkpoint only when the relevant page has been durably processed. The acceptance criterion should be a complete, reconciled result after restart, not merely an error-free final request.

Back to TOC

Design incremental synchronization with overlap and reconciliation

Incremental synchronization can reduce work, but it requires a reliable way to identify changes. A last-modified field may be useful only if it covers the records and kinds of change that matter to the integration. Deletions, related-record changes, and late corrections need separate consideration.

Start by defining what a change means for the consumer. An order header update, a line adjustment, a shipment event, and a permission change may affect the result differently. Verify the relevant fields and behavior in the selected interface rather than assuming one timestamp captures every business event.

A practical design may use an overlapping extraction window with deduplication. The overlap is a local engineering choice that should be sized and tested for the workload. It does not remove the need for a stable identity or a periodic full reconciliation of important business totals.

Store the synchronization checkpoint only after processing is durable. If a worker advances its timestamp before saving the data, a failure can create an invisible gap. If it advances too late, duplicates may occur, which the consumer must handle safely. Document this tradeoff and test both failure points.

Plan how to detect records that disappear from the selected dataset. A changed filter, access restriction, deletion, or status transition may all remove a row from a later extract. The consumer should not automatically interpret every absence as a business deletion. Define the intended semantics and include them in reconciliation procedures.

Back to TOC

Prevent duplicate business transactions during retries

A timeout creates uncertainty. It does not prove that the server rejected the operation. If an application resubmits a create request without investigating, it may create a duplicate business transaction even though the retry appears technically reasonable.

Design duplicate protection around a stable business reference and the supported endpoint behavior. Determine whether the destination can store or look up the external identifier and how uniqueness is enforced. Do not assume that a generic idempotency header is supported unless the actual interface documents it.

Maintain an integration ledger with the external reference, request correlation, destination reference when known, and processing state. After an uncertain response, reconcile the destination before deciding to submit again. The ledger should support recovery without requiring an operator to inspect raw payloads for every case.

Distinguish a retryable transport problem from a rejected business condition. An invalid item mapping will not be fixed by repeatedly sending the same payload. Route such failures to an actionable exception queue and preserve the original business reference.

Test the difficult timing cases deliberately. Interrupt the connection after submission, restart a worker during processing, and simulate duplicate delivery from the source. The success criterion is one intended business outcome with a traceable recovery path. Counting successful HTTP responses is not a sufficient duplicate-prevention test.

Back to TOC

Handle business actions and asynchronous work explicitly

Some operations involve more than saving an entity. Releasing a document or invoking another business action can involve processing that must be monitored separately. The integration should represent that lifecycle instead of treating every action as an immediate final result.

Acumatica's action execution reference explains the endpoint action pattern and long-running operation behavior. Follow the documented response and status workflow for the actual action. Do not repeatedly invoke an action merely because the expected final state is not visible immediately.

Represent states such as accepted, processing, completed, rejected, and uncertain in the integration's own workflow where they are useful. Each state should have a clear next action. An uncertain state usually requires reconciliation; it should not automatically be treated as a failure that is safe to repeat.

Keep polling controlled. Use an appropriate interval and stop condition, and respect any documented server guidance. A stalled operation should produce an alert with the business reference and last known status rather than an endless sequence of requests.

Design the operator experience around the business outcome. The user should be able to see whether the order or document requires attention, what has already happened, and which recovery actions are available. Clear state handling prevents support teams from creating duplicate work while trying to resolve a slow but legitimate operation.

Back to TOC

Build a hybrid order and analytics architecture

Consider a hypothetical distributor accepting orders from a CRM and reporting daily sales performance. One requirement is transactional: create the correct order and track its business progress. Another is analytical: provide a stable dataset for trends and management reporting. These requirements can share identifiers without sharing the same interface path.

The transaction path might validate mappings, submit through an approved REST endpoint, store the destination reference, and reconcile status. Exceptions would appear in an operations queue. The analytical path might read a managed GI dataset into a reporting store on an agreed schedule, then reconcile totals for the selected period.

The Biz-Tech guide on Salesforce orders and inventory allocation provides related operational context. The architecture review should connect such business flows with the technical contract, while avoiding the assumption that every integration must use the same endpoint or dataset.

Separate the service expectations. An order submission may need a prompt acknowledgment and visible processing state. A daily analytical refresh may prioritize completeness and reconciliation over immediate response. These distinctions allow each path to be monitored and recovered according to its actual purpose.

Keep shared definitions controlled. Customer, item, warehouse, and document identifiers should be consistently mapped across both paths. If the analytics team uses a different interpretation of an order status, document that distinction explicitly. A technically reliable architecture can still mislead users when its transaction and reporting views disagree about the same business event.

Back to TOC

Separate reporting storage from operational responsibilities

A reporting platform often needs historical context, transformations, and aggregates that differ from the ERP's immediate operational view. Decide where those responsibilities belong rather than forcing every report refresh to reconstruct them directly against live ERP data.

A staging or analytical store can provide a place for reconciled extracts, refresh timestamps, and documented transformations. This is an architectural option, not a requirement for every small integration. Its value depends on volume, history needs, consumer count, and the team's ability to operate another component reliably.

Preserve the distinction between source data and derived measures. If a reporting process converts currency, groups statuses, or calculates a KPI, record that logic and its version. Users should be able to trace a result back to the relevant source population without confusing a derived value with a field supplied directly by Acumatica.

The article on ServiceTitan operational data flowing into Acumatica illustrates why process context matters when interpreting integrated information. A reporting design should identify when each business event is recorded and when it becomes available to downstream consumers.

Set a visible freshness expectation. Display the last successful refresh and the covered period where users make decisions. A dashboard that quietly shows yesterday's data after a failed refresh can be more misleading than an explicit unavailable status. Treat stale data as an operational condition with an owner and a recovery procedure.

Back to TOC

Make errors understandable to operations and support

An error message should help the right person take the next safe action. Raw protocol details are useful to engineers, but they rarely explain the business impact by themselves. Preserve the technical evidence while presenting an actionable operational summary.

Classify failures into categories such as authorization, validation, mapping, capacity, transport uncertainty, and reconciliation mismatch. The categories should determine routing and recovery behavior. A missing customer mapping should reach the mapping owner, while an expired authorization needs an access recovery procedure.

Include the external reference, destination reference when known, operation, timestamp, correlation ID, and last confirmed state. Avoid logging secrets or unnecessary personal information. If payload inspection is required, use controlled access and retention appropriate to the business data involved.

Write runbooks around actual failure scenarios. Explain how to verify whether a transaction already exists, how to correct a mapping, how to resume a stopped extract, and when escalation is required. The runbook should identify actions that are safe to repeat and actions that require investigation first.

Review recurring errors after launch. If operators repeatedly correct the same source field, improve validation or mapping at the appropriate boundary. If a reporting job repeatedly exceeds its available window, revisit query design or workload scheduling. Monitoring should drive improvements rather than merely accumulate notifications that everyone learns to ignore.

Back to TOC

Test business outcomes rather than only successful responses

A meaningful test suite follows representative business operations from input through final outcome. Include ordinary transactions, expected rejections, duplicate delivery, authorization failures, interruptions, and recovery. The difficult cases often reveal architectural gaps that a successful demonstration cannot show.

For a REST transaction, verify the destination entity, relevant field values, intended status, and any permitted downstream action. Compare the result with the approved business scenario. Do not assume that a created record is usable merely because a request returned successfully.

For an OData dataset, verify row grain, key uniqueness, access restrictions, totals, paging, and refresh completeness. Include records that exercise joins and filters, such as multiple lines, partial processing, or changes across a reporting boundary. A tiny dataset can conceal multiplication or omission errors.

Use representative scale without exposing unnecessary production data. Where sanitized or synthetic records are used, state which characteristics they reproduce and which they do not. A performance test with unusually simple records may not predict the behavior of heavily customized or detail-rich transactions.

The guide on ShipHero data flows between a WMS and Acumatica offers another operational context for end-to-end testing. Whatever the connected system, acceptance should be tied to a reconciled business result and a demonstrated recovery path, with clear evidence of what was actually tested.

Back to TOC

Roll out in stages with an explicit recovery plan

A staged rollout limits the number of unknowns introduced at once. Begin with a controlled scope that includes representative complexity, then expand when the process is observable and supportable. The objective is not simply to minimize volume; it is to learn whether the complete operating model works.

Define the initial population, operating hours, owners, monitoring, and stop conditions. Keep the previous process available where practical until reconciliation demonstrates that the new path is reliable. Avoid running two transaction-producing paths simultaneously unless duplicate prevention and responsibility are explicitly designed.

Prepare recovery procedures before launch. Identify how to pause intake, preserve queued work, reconcile uncertain transactions, and resume safely. A rollback of application code does not automatically reverse business transactions already accepted by the ERP. Recovery must account for that difference.

During early operation, review outcomes with both technical and business owners. Examine completed work, unresolved exceptions, manual interventions, and discrepancies. A low technical error rate can conceal substantial operator effort if the integration regularly produces incomplete or confusing business results.

Expand only after the evidence supports it. Record the release decision and remaining limitations. When a later upgrade or major mapping change occurs, reuse the same staged discipline. Reliable integration is maintained through controlled change, not achieved permanently by a single successful go-live.

Back to TOC

Use a concise architecture decision record

An architecture decision record makes the interface choice understandable after the original project team moves on. Keep it focused on the requirement, alternatives considered, chosen interface, expected workload, security model, and operational consequences. It should explain why the decision fits this use case.

For a transaction path, record the endpoint and version, entity and action scope, external identifier strategy, duplicate handling, and recovery workflow. For a reporting path, record the inquiry or DAC model, row grain, metadata baseline, refresh schedule, and reconciliation method.

State the assumptions that could invalidate the decision. Examples include a significant increase in volume, a new consumer requiring different data, a changed business process, or an ERP upgrade affecting the interface contract. These triggers tell future maintainers when to revisit the design.

Keep a small set of evidence links with the record. Include current documentation, approved mapping examples, test results, and operational runbooks. Separate verified product behavior from local design recommendations and assumptions. That distinction prevents a team's workaround from being mistaken for a product requirement.

A good decision record is brief enough to read during an incident and concrete enough to guide a change. It should help the next engineer answer what the integration is intended to do, where to verify completion, and which recovery actions are safe. Those answers matter more than a diagram that merely connects application logos.

Back to TOC

Walk through an interrupted order without creating a duplicate

Consider a hypothetical source order named WEB-1042. The integration validates the customer and item mappings, records the request in its ledger, and submits the intended business entity. The network connection then fails before the worker receives a usable response. At this point, the integration knows that submission was attempted but does not know the destination outcome.

A weak recovery process treats the missing response as proof of failure and sends the order again. A more reliable process marks the request as uncertain and uses the agreed external reference strategy to investigate the destination. The exact lookup depends on the endpoint and mapping design; it must be established and tested before this incident occurs.

Suppose reconciliation finds the intended order with the correct customer, lines, and external reference. The worker records the destination identifier and continues from the last confirmed business state. It does not recreate the order. If the record exists but differs materially from the submitted intent, the integration routes the case for investigation rather than overwriting it automatically.

If no destination record can be found, the recovery procedure still needs to consider timing and the behavior of the original operation. A lookup performed too early may not settle the question. Use the documented processing lifecycle and the tested recovery policy to decide when a repeat submission is appropriate. Preserve the evidence supporting that decision.

The operator's screen should summarize this sequence clearly: source reference, attempted operation, last confirmed state, reconciliation result, and permitted next action. A button labeled Retry without that context invites mistakes. Recovery is a business workflow, and its design deserves the same care as the original successful submission.

Back to TOC

Reconcile an analytical dataset before trusting its totals

Now consider a hypothetical sales dataset intended to contain one row per order line. The first refresh completes without an error, and the dashboard shows a plausible total. Before accepting it, select a small set of orders with known characteristics: one single-line order, one multiline order, one partially processed order, and one with a later correction.

Compare each expected line with the extracted rows. Verify that the documented key uniquely identifies the intended grain. If the query joins a line to several related records, confirm that the resulting multiplicity is intentional. A duplicated line amount can inflate a total even when every individual row looks reasonable.

Reconcile the chosen monetary and quantity measures separately. State whether amounts represent an order, shipment, invoice, or another business event. Explain the treatment of currency and status. A sales dashboard can legitimately differ from an accounting report, but the difference must follow a documented definition rather than an accidental join or filter.

Next, test the dataset beyond one page and across a restart. Compare the resulting keys and totals with the known slice. Then introduce a controlled change during a refresh to observe how the design handles live updates. Record the consistency limitations and the reconciliation that detects them.

The acceptance evidence should include the dataset definition, test population, expected result, actual result, and explanation of any difference. Keep the last successful refresh timestamp visible to users. These checks turn a technically successful extraction into a trustworthy analytical input and provide a repeatable baseline for later inquiry edits or ERP upgrades.

Back to TOC

Frequently Asked Questions

Is REST always the correct choice for Acumatica integrations

No. REST is a strong candidate for business entity operations and supported actions, but reporting requirements may fit GI or DAC OData better. Evaluate each operation's data shape, semantics, volume, permissions, and recovery needs. A single application can reasonably use more than one interface when the responsibilities are clearly separated.

Is OData simply direct database access

No. Use the documented Acumatica interface and its exposed model. GI OData and DAC-based OData are distinct paths with product-specific behavior and permissions. Do not assume unrestricted database access or universal query support. Inspect current metadata and validate the intended data population in the target environment.

Can REST be used for reporting reads

Yes, REST supports retrieval operations. Whether it is the best reporting choice depends on the available endpoint contract, required dataset, request volume, and consumer needs. Avoid choosing a separate interface solely because the operation reads data. Compare practical completeness and maintainability for the specific use case.

Should every dashboard read directly from the ERP

Not necessarily. Small, infrequent requirements may be served directly, while broader analytics may benefit from a managed extraction and reporting store. Consider history, freshness, workload, reconciliation, and operational ownership. An additional storage layer is useful only when its responsibilities and support requirements are justified.

What should happen after a transaction request times out

Treat the outcome as uncertain until it is reconciled. The ERP may have accepted the operation before the connection failed. Look up the destination using the approved business reference and integration ledger before resubmitting. Recovery should aim for one intended business outcome rather than a new request at any cost.

Can a generic idempotency header prevent duplicate orders

Only if the actual interface documents and supports that mechanism. Do not assume support based on another service. Design duplicate protection using supported identifiers, uniqueness rules, destination lookup, and an integration ledger. Test repeated delivery and interrupted responses explicitly before production use.

How should authentication be handled for unattended jobs

Use a supported authorization configuration appropriate to the application and installed release. Test renewal, expiration, revocation, and recovery, and store secrets securely. Assign an owner for access failures. Successful initial authorization does not prove that a job will remain operational through token expiry or a credential change.

How can we know an OData extract is complete

Test with more than one page and reconcile the resulting population using appropriate keys, counts, and business totals. Verify restart behavior and consider records changing during extraction. An error-free final request is insufficient evidence. Completeness should be a documented acceptance criterion with reproducible checks.

Do API limits stay the same across all Acumatica customers

No universal numerical assumption should be used. Review the applicable license and monitoring information in the target environment and validate realistic workloads. Include concurrent consumers and recovery traffic in the capacity plan. Use bounded concurrency and measured behavior rather than increasing parallel requests without evidence.

What should be reviewed before an Acumatica upgrade

Review endpoint contracts, OData metadata, mappings, permissions, customizations, and business regression cases. Test ordinary work, expected failures, paging, and recovery in the upgraded environment. Preserve the results with the release decision. A successful login or one sample request does not validate the full integration.

Back to TOC

Sources

These primary references were reviewed on October 30, 2026. Validate the documentation version, endpoint definitions, and enabled features against the target Acumatica environment. Architecture scenarios and operating recommendations are illustrative and were not benchmarked against a customer tenant for this article.

For an integration architecture discussion with Biz-Tech Services, bring the business operations, current endpoint or inquiry definitions, expected workload, and an example of the failure you need to recover from. Those details provide a practical basis for choosing an interface and designing a supportable implementation.

Back to TOC

Privacy Preference Center