Retrieve one complete BOM revision before building the exchange Use a sandbox BOM that the manufacturing owner can also open in NetSuite. The first useful result is a captured revision whose component population and quantity basis agree with the source. Once that works, connect it to one Seal batch and test how the receiving record behaves when the definition changes. FIRST RUN 1. Identify the account, record and manufacturing basis Record the sandbox account, selected BOM ID, revision ID, assembly, planned finished quantity and unit. Open the revision at Lists → Supply Chain → Bills of Materials. Confirm Advanced Bill of Materials is enabled. Separately check REST Web Services under Setup → Company → Enable Features → SuiteCloud. Check: Have the source owner show the chosen revision and its components. A displayed BOM name alone is insufficient to identify the revision your request will retrieve. Oracle: BOM revision availability and UI location: https://docs.oracle.com/en/cloud/saas/netsuite/ns-online-help/section_1517399803.html Oracle: REST prerequisites: https://docs.oracle.com/en/cloud/saas/netsuite/ns-online-help/article_5085602973.html 2. Authenticate the integration in this environment Create or use the agreed integration record and OAuth 2.0 application. Oracle prefers OAuth 2.0 for REST; a UI username and password are not a REST login. In Manage Roles → Permissions → Setup, the access role needs Log in using OAuth 2.0 Access Tokens as well as the required REST and record permissions. OAuth 2.0 Authorized Applications Management serves a different administrative purpose and is not a substitute for token-login permission. Use the account’s SuiteTalk URL from Company Information → Company URLs. Check: The token, role and hostname must belong to the intended sandbox. Production OAuth authorizations are not copied to a sandbox; sandbox refresh requires authorization again. Record the environment and role with the test, without putting tokens into evidence files. Oracle: REST authentication: https://docs.oracle.com/en/cloud/saas/netsuite/ns-online-help/article_0627022005.html Oracle: OAuth role permissions: https://docs.oracle.com/en/cloud/saas/netsuite/ns-online-help/section_157771510070.html Oracle: OAuth environment separation: https://docs.oracle.com/en/cloud/saas/netsuite/ns-online-help/section_157780312610.html Oracle: account URL location: https://docs.oracle.com/en/cloud/saas/netsuite/ns-online-help/section_1545058149.html 3. Read the revision, then resolve its component resource Send the read-only request below with the actual revision ID. Inspect the returned JSON before writing a mapping. If the component property contains a resource link rather than populated items, retrieve the linked resource using the same account and authorization. Do not interpret a link-only representation as an empty bill of materials. Check: Retain the response with its account, request URL and retrieval time. Match each retrieved component to the source revision. Record the number of components and the unit/scaling evidence used to interpret each bomQuantity. Oracle: accessing subresources: https://docs.oracle.com/en/cloud/saas/netsuite/ns-online-help/section_159894563219.html Oracle: retrieving records and body fields: https://docs.oracle.com/en/cloud/saas/netsuite/ns-online-help/section_1545141500.html 4. Finish collection reads before reconciling missing records For paged collection reads, inspect count, hasMore, totalResults and the returned next link. Retrieve the remaining pages. If you construct offsets, Oracle requires the offset to be divisible by the limit. A collection response and a fully retrieved record are different stages of the read. Check: For a fictional response with count 2, totalResults 3 and hasMore true, the read is incomplete. Reconcile three identities only after collecting the final page; do not remove the third receiving record after seeing the first two. Oracle: collection paging: https://docs.oracle.com/en/cloud/saas/netsuite/ns-online-help/section_156414087576.html 5. Locate the request evidence before changing the mapping Open Setup → Integration → Manage Integrations, select the integration record, then Execution Log → REST Web Services. Compare the request URL, method, status and response with the receiving log. NetSuite displays the request time in its server time zone. Check: A missing component, a rejected request and a successful request sent to the wrong environment need different fixes. Capture the actual response and time-zone context so another engineer can reproduce the investigation. Oracle: REST execution log: https://docs.oracle.com/en/cloud/saas/netsuite/ns-online-help/section_156570320384.html Choose the next action from the actual response Oracle’s error body can contain several entries in o:errorDetails. Keep the machine-readable code and any supplied path with the response. The actions below are a proposed recovery approach for this read-first evaluation. Response evidence: 401 / INVALID_LOGIN What to inspect: Token, account and role; Login Audit Trail Next action: Correct authentication before retrying the same read. Response evidence: 404 / NONEXISTENT_ID What to inspect: Record type, internal ID and environment Next action: Verify the selected source record. Do not turn the failure into an empty component list. Response evidence: 400 / INVALID_CONTENT What to inspect: detail and o:errorPath, when supplied Next action: Repair the indicated field or reference; retain the rejected request for comparison. Response evidence: 429 / CONCURRENCY_LIMIT_EXCEEDED What to inspect: Concurrent requests sharing the account Next action: Reduce concurrency and retry with a bounded delay; do not change material identities to work around throttling. Response evidence: No response to a later manufacturing write What to inspect: The intended transaction and destination evidence Next action: Keep the outcome unresolved until reconciled. A read retry policy does not establish whether a write already posted. Oracle: REST error codes and details: https://docs.oracle.com/en/cloud/saas/netsuite/ns-online-help/section_156570709583.html A read-only request to adapt to your account Replace the placeholders with your sandbox SuiteTalk hostname, selected revision and OAuth access token in your API client. Revision 215 is the fictional record used below. This request reads a NetSuite record; the proposed Seal JSON further down is a receiving design, not a NetSuite request body. GET https://.suitetalk.api.netsuite.com/services/rest/record/v1/bomRevision/215 Authorization: Bearer Accept: application/json A successful read is only the first checkpoint. Confirm that the component data was retrieved, the IDs match the intended source account and revision, and the quantity basis is known before calculating a batch requirement. PROPOSED RECEIVING CHECKS — NOT EXECUTED CUSTOMER VALIDATION Scale the requirement without changing the source Input: Use the example requirement of 2.50 kg per finished unit for a batch planning four finished units. Record 9.60 kg actual use across two separate container-use events. Expected: The proposed Seal batch shows 10.00 kg planned, 9.60 kg used and a 0.40 kg shortfall for review. Both use events retain their containers. NetSuite’s per-unit requirement remains 2.50 kg. Read the same revision twice Input: Repeat the same successful read with unchanged component evidence. Expected: The batch still has one selected definition and its existing component requirements. The second retrieval is recorded as another observation; it does not create another material-use event. Change the source after the batch has started Input: In the test fixture, replace the component requirement with 2.60 kg and keep the original 2.50 kg snapshot for the started batch. Expected: The comparison identifies the changed requirement and affected component. The running batch does not silently acquire a new requirement. A reviewed decision records whether the change applies and preserves the earlier definition. Interrupt a multi-page read Input: Stop after the first page of a three-record collection, then resume from the saved retrieval state. Expected: The partial population remains incomplete. Completing the read reconciles the same three identities, with no deletion based solely on absence from an earlier page. HANDOFF Bring the account and role identifiers, one complete revision response, component/unit evidence, a page-completion record if applicable, and the planned-versus-actual batch comparison. With those records, Seal’s implementation team can define the receiving model and any separately required manufacturing transaction without guessing from a BOM name.