> For the complete documentation index, see [llms.txt](https://doc.duaer.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://doc.duaer.com/guides/netsuite-purchase-to-pay-order-to-cash.md).

# NetSuite purchase to pay and order to cash: see where each order waits

Connect NetSuite to Duaer. It reads the documents each purchase order and sales order goes through with SuiteQL, so you see where orders wait and for how long.
## What does Duaer read from NetSuite?

Each purchase order or sales order is a case, and its steps come from the documents after it. Duaer finds how documents relate through NetSuite's own source links (PreviousTransactionLineLink); a payment reaches its order through the bill or invoice it pays. Voided documents are left out.

- Purchase to pay: purchase requisition (Requisition created), purchase order (Order created), item receipt (Goods received), vendor bill (Invoice posted), bill payment (Paid), with the supplier, currency and order total.
- Order to cash: sales order (Order created), item fulfillment (Goods issued), invoice (Invoice created), customer payment (Paid), with the customer, currency and order total.
- The steps match the process templates, so the purchase to pay and order to cash boards in My processes on the employee portal work as they are; refer to [process findings](/build/process-findings.md#purchase-to-pay).

## How do you connect NetSuite to Duaer?

1. In NetSuite, open Setup › Company › Enable Features › SuiteCloud and turn on REST Web Services and Token-Based Authentication.
2. Create an integration record with Token-Based Authentication checked. Save it and note the consumer key and secret; they are shown once.
3. Give the role you will use the REST Web Services and Log in using Access Tokens permissions and read access to purchase and sales transactions. Create an access token for that role and user, and note the token ID and secret; they are shown once.
4. In Duaer, create a NetSuite API credential with the account ID (Setup › Company › Company Information; a sandbox looks like 1234567_SB1) and the four values above.
5. As an owner or admin, open Data sources in the sidebar, select Add source, choose NetSuite under Purchase to pay or Order to cash, choose the credential and select Check account. Any table the role cannot read is listed with its status code.
6. The mapping is fixed. Preview, set the schedule and who sees the cases, and confirm.

## How often does it read, and how much?

Each run reads the process's documents by last change, 100 at most, from where it stopped; a first read of many documents finishes over several runs. A step is never written twice. Read only: Duaer never writes to NetSuite.

## What are the limits?

- Token-based authentication only for now. NetSuite plans to stop new integrations of this kind from 2027.1, while existing ones keep working; OAuth 2.0 follows once it is tested with a real account.
- Purchase order approvals and delivery dates have no reliable time fields, so they are not steps yet; credit memos and returns are not read yet.
- A document voided after it was read keeps the step already written.
## Questions

### Does Duaer change data in NetSuite?

No. Duaer only reads through SuiteQL, which cannot write.

### Can I connect a sandbox?

Yes. Enter the sandbox account ID (like 1234567_SB1); Duaer reaches that sandbox's address.

## Related

- [Add a process source in Duaer](https://doc.duaer.com/build/process-sources.md)
- [See the process in your data and generate workflows in Duaer](https://doc.duaer.com/build/process.md)
- [Process findings and SOP conformance in Duaer](https://doc.duaer.com/build/process-findings.md)
- [SAP S/4HANA purchase to pay: see where each order waits](https://doc.duaer.com/guides/sap-s4hana-purchase-to-pay.md)
- [Enterprise AI search vs process mining: what’s the difference?](https://doc.duaer.com/guides/ai-search-vs-process-mining.md)

