Precoro is a cloud-based procurement and accounts payable (AP) automation platform for growing and mid-market companies. It centralizes the procure-to-pay workflow — requisitions, purchase orders, invoice processing, receipts, and expense tracking — with automated approvals, real-time budget visibility, and AI-powered invoice OCR. It integrates with NetSuite, QuickBooks, Xero, Sage Intacct, and Dynamics 365.
Power end-to-end data operations for your Precoro API with Nexla. Our bi-directional Precoro connector is purpose-built for Precoro, making it simple to ingest data, sync it across systems, and deliver it anywhere — all with no coding required. Nexla turns API-sourced data into ready-to-use, reusable data products and makes it easy to send data to Precoro or any other destination. With comprehensive monitoring, lineage tracking, and access controls, Nexla keeps your Precoro workflows fast, secure, and fully governed.
Features
Type: API
SourceDestination
Seamless API Integration: Connect to any endpoint as source or destination without coding, with automatic data product creation
Visual Composition & Chaining: Build complex integrations using visual templates, chain API calls, and compose workflows with data validation and filtering
API Proxy: Expose curated slices of your data securely with a secure and customizable API proxy that validates and transforms data on the fly
Request optimization with intelligent batching, retry, and caching to minimize API calls and costs
To connect Nexla to Precoro, you will need a Precoro API key and the email address of the Precoro user who generated it. Precoro authenticates API requests using two request headers: an X-AUTH-TOKEN header containing your API token and an email header containing the associated user's email address.
Precoro API keys are user-specific—the key inherits the roles and permissions of the user who generated it, including access restrictions based on Locations, Departments, and Projects. For the broadest data access, generate the API key under a user account with the appropriate administrative permissions.
Sign in to your Precoro account.
Navigate to Configuration > Integrations > API Key.
Click the Generate API Key button in the upper right corner of the page.
Important
The API key is displayed only once, at the moment of generation. Copy and store it immediately in a secure location—you will not be able to view it again in Precoro. If the key is lost, you must generate a new one.
Note the email address of the Precoro user account under which the key was generated. This email address is required along with the API token when configuring the Nexla credential.
If your organization has multiple companies configured in Precoro, a separate API key must be generated for each company. The key is scoped to a single company at a time.
After selecting the data source/destination type, click the Add Credential tile to open the Add New Credential overlay.
Enter a name for the credential in the Credential Name field and a short, meaningful description in the Credential Description field.
Enter your Precoro API key in the API Token (X-AUTH-TOKEN) field. This is the key generated in Precoro under Configuration > Integrations > API Key. The token is transmitted as the X-AUTH-TOKEN request header in all API calls Nexla makes to the Precoro API.
Enter the email address of the Precoro user who generated the API key in the User Email field. This email is transmitted as the email request header in all API calls and must match the account associated with the API token. The API key inherits this user's roles and data access permissions.
Ensure that the user account whose email is entered here has the necessary Precoro permissions to access the data objects (purchase orders, invoices, suppliers, etc.) that you intend to integrate with Nexla. Access restrictions by Location, Department, or Project configured in Precoro will be respected when Nexla queries the API.
Click the Save button at the bottom of the overlay to save the configured credential. The newly added credential will now appear in a tile on the Authenticate screen during data source/destination creation.
To create a new data flow, navigate to the Integrate section, and click the New Data Flow button. Select the Precoro connector tile, then select the credential that will be used to connect to the Precoro instance, and click Next; or, create a new Precoro credential for use in this flow.
Nexla provides pre-built templates that can be used to rapidly configure data sources to ingest data from common Precoro endpoints. Select the endpoint from which this source will fetch data from the Endpoint pulldown menu. Available endpoint templates are listed in the expandable boxes below.
Get OCR Documents
Retrieve a list of OCR documents from the Precoro accounts payable system. Use this endpoint to access digitized invoice and receipt documents that have been processed through Precoro's OCR functionality for automated data extraction.
This endpoint retrieves all available OCR documents accessible to the authenticated user. No additional parameters are required beyond selecting this endpoint template.
The authenticated user's roles and data access permissions in Precoro determine which OCR documents are returned. Ensure the API key was generated under a user account with access to accounts payable documents.
Retrieve a paginated list of warehouse requests with optional filtering by modification date and approval date range. Use this endpoint when you need to synchronize warehouse request data with an external system or analyze internal inventory movement requests.
Configure the optional date filters to narrow the results returned by this endpoint:
Enter a date and time in the Modified Since field to retrieve only warehouse requests that have been modified after the specified date. Use ISO 8601 format (e.g., 2022-12-12T00:00:00). Leave blank to retrieve all warehouse requests regardless of modification date.
Enter a date and time in the Approval Left Date field to set the start of the approval date range filter. Use ISO 8601 format (e.g., 2022-12-12T00:00:00).
Enter a date and time in the Approval Right Date field to set the end of the approval date range filter. Use ISO 8601 format (e.g., 2024-01-10T00:00:00).
This endpoint uses page-based pagination to handle large result sets, automatically fetching up to 100 records per page and continuing to additional pages as needed.
All date filter fields are optional. When omitted, the endpoint returns all warehouse requests accessible to the authenticated user. For incremental data ingestion, set the Modified Since field to the date of your last successful run.
Get Purchase Requisitions List
Retrieve a paginated list of purchase requisitions with optional filtering by modification date and approval date range. Purchase requisitions (PRs) are internal requests submitted by employees to procure goods or services, and are the starting point of the Precoro procurement workflow.
Configure the optional date filters to narrow the results returned by this endpoint:
Enter a date and time in the Modified Since field to retrieve only purchase requisitions modified after the specified date. Use ISO 8601 format (e.g., 2022-12-12T00:00:00).
Enter a date and time in the Approval Left Date field to set the start of the approval date range filter. Use ISO 8601 format (e.g., 2022-12-12T00:00:00).
Enter a date and time in the Approval Right Date field to set the end of the approval date range filter. Use ISO 8601 format (e.g., 2024-01-10T00:00:00).
This endpoint uses page-based pagination and returns up to 100 records per page, automatically fetching additional pages as needed.
Retrieve a paginated list of requests for proposals (RFPs) with optional filtering by modification date. RFPs are documents sent to potential suppliers to solicit bids or quotations for goods and services.
Enter a date and time in the Modified Since field to retrieve only RFPs modified after the specified date. Use ISO 8601 format (e.g., 2022-12-12T00:00:00). Leave blank to retrieve all RFPs accessible to the authenticated user.
This endpoint uses page-based pagination and returns up to 100 records per page, automatically fetching additional pages as needed.
Retrieve a paginated list of purchase orders with optional filtering by modification date, approval date range, and logic type. Purchase orders (POs) are formal documents issued to suppliers confirming the purchase of goods or services, and are a central record in the Precoro procurement workflow.
Configure the optional filters to narrow the results returned by this endpoint:
Enter a date and time in the Modified Since field to retrieve only purchase orders modified after the specified date. Use ISO 8601 format (e.g., 2023-10-10T00:00:00).
Enter a value in the Logic Type field to filter by document type. Enter 0 to retrieve standard purchase orders. Leave blank to retrieve all document types.
Enter a date and time in the Approval Left Date field to set the start of the approval date range filter. Use ISO 8601 format (e.g., 2023-10-10T00:00:00).
Enter a date and time in the Approval Right Date field to set the end of the approval date range filter. Use ISO 8601 format (e.g., 2024-01-10T00:00:00).
This endpoint uses page-based pagination and returns up to 100 records per page, automatically fetching additional pages as needed.
Retrieve a paginated list of receipts with optional filtering by modification date and approval date range. Receipts in Precoro document the confirmation that ordered goods or services have been received, and are used to match against purchase orders in a three-way matching process.
Configure the optional date filters to narrow the results returned by this endpoint:
Enter a date and time in the Modified Since field to retrieve only receipts modified after the specified date. Use ISO 8601 format (e.g., 2022-12-12T00:00:00).
Enter a date and time in the Approval Left Date field to set the start of the approval date range filter. Use ISO 8601 format (e.g., 2022-12-12T00:00:00).
Enter a date and time in the Approval Right Date field to set the end of the approval date range filter. Use ISO 8601 format (e.g., 2024-01-10T00:00:00).
This endpoint uses page-based pagination and returns up to 100 records per page, automatically fetching additional pages as needed.
Retrieve a paginated list of expenses with optional filtering by modification date and approval date range. Use this endpoint to access employee expense records submitted and managed in Precoro for reporting, reimbursement tracking, or integration with financial systems.
Configure the optional date filters to narrow the results returned by this endpoint:
Enter a date and time in the Modified Since field to retrieve only expenses modified after the specified date. This field supports Nexla date macros — for example, the default value {'{now-30}'} retrieves records modified in the past 30 days. You can also enter a fixed ISO 8601 date (e.g., 2022-12-12T00:00:00).
Enter a date and time in the Approval Left Date field to set the start of the approval date range filter. Use ISO 8601 format (e.g., 2022-12-12T00:00:00).
Enter a date and time in the Approval Right Date field to set the end of the approval date range filter. Use ISO 8601 format (e.g., 2024-01-10T00:00:00).
This endpoint uses page-based pagination and returns up to 100 records per page, automatically fetching additional pages as needed.
Retrieve a list of all payments recorded in Precoro. Use this endpoint to access payment records for reconciliation, financial reporting, or synchronization with an accounting or ERP system.
This endpoint retrieves all payments accessible to the authenticated user. No additional parameters are required beyond selecting this endpoint template.
The authenticated user's roles and permissions in Precoro determine which payment records are returned.
Retrieve a list of all budgets configured in Precoro. Use this endpoint to access budget data for financial reporting, spend analysis, or integration with budgeting and planning tools.
This endpoint retrieves all budgets accessible to the authenticated user. No additional parameters are required beyond selecting this endpoint template.
The authenticated user's roles and access permissions in Precoro determine which budget records are returned.
Retrieve a list of all stock transfers recorded in Precoro. Use this endpoint to track the movement of inventory items between warehouses for reconciliation or inventory management reporting.
This endpoint retrieves all stock transfer records accessible to the authenticated user. No additional parameters are required beyond selecting this endpoint template.
Retrieve a list of items currently held in a specific warehouse. Use this endpoint to access warehouse inventory levels for a particular warehouse location, enabling stock visibility and inventory reporting.
Enter the ID of the warehouse whose items you want to retrieve in the Warehouse ID field. This field is required. Warehouse IDs can be obtained by first running the Get Warehouses List endpoint.
The endpoint returns all items in the specified warehouse that are accessible to the authenticated user.
Retrieve a list of all stock takings (physical inventory counts) recorded in Precoro. Use this endpoint to access records of inventory reconciliation activities conducted in your warehouses.
This endpoint retrieves all stock-taking records accessible to the authenticated user. No additional parameters are required beyond selecting this endpoint template.
Retrieve a paginated list of suppliers registered in Precoro, with optional filtering by modification date. Use this endpoint to synchronize supplier master data with an ERP, accounting system, or vendor management platform.
Enter a date and time in the Modified Since field to retrieve only suppliers modified after the specified date. Use ISO 8601 format (e.g., 2022-12-12T00:00:00). Leave blank to retrieve all suppliers.
This endpoint uses page-based pagination and returns up to 100 records per page, automatically fetching additional pages as needed.
Retrieve a paginated list of inventory items (catalog products) configured in Precoro, with optional filtering by modification date. Use this endpoint to synchronize your item catalog with an external system or analyze items available for procurement.
Enter a date and time in the Modified Since field to retrieve only items modified after the specified date. Use ISO 8601 format (e.g., 2022-12-12T00:00:00). Leave blank to retrieve all items.
This endpoint uses page-based pagination and returns up to 100 records per page, stopping automatically when no more data is available.
Retrieve a list of supplier contracts managed in Precoro. Use this endpoint to access contract data for spend analysis, compliance tracking, or contract lifecycle management integrations.
This endpoint retrieves all contracts accessible to the authenticated user. No additional parameters are required beyond selecting this endpoint template.
Retrieve a list of custom fields available for documents in Precoro. Document custom fields allow organizations to capture additional metadata on procurement documents such as purchase orders and invoices. Use this endpoint to understand the custom field schema before building integrations that rely on custom field data.
This endpoint retrieves all document custom field definitions accessible to the authenticated user. No additional parameters are required beyond selecting this endpoint template.
Retrieve a list of all legal entities configured in Precoro. Legal entities represent the companies or organizational units within your Precoro account. Use this endpoint to synchronize company and entity data with an ERP or financial system.
This endpoint retrieves all legal entities accessible to the authenticated user. No additional parameters are required beyond selecting this endpoint template.
This endpoint uses offset-based pagination and returns up to 100 records per page, stopping automatically when no more data is available.
Get Warehouses List
Retrieve a list of all warehouses configured in the Precoro inventory system. Use this endpoint to access warehouse location data, or to obtain warehouse IDs required by other endpoints such as Get Warehouse Items.
This endpoint retrieves all warehouses accessible to the authenticated user. No additional parameters are required beyond selecting this endpoint template.
This endpoint uses offset-based pagination and returns up to 100 records per page, stopping automatically when no more data is available.
Get Tax List
Retrieve a list of all tax configurations defined in Precoro. Use this endpoint to access tax rate and category data for reporting or synchronization with accounting and financial systems.
This endpoint retrieves all tax configurations accessible to the authenticated user. No additional parameters are required beyond selecting this endpoint template.
This endpoint uses offset-based pagination and returns up to 100 records per page, stopping automatically when no more data is available.
Once the selected endpoint template has been configured, click the Test button to the right of the endpoint selection menu to retrieve a sample of the data that will be fetched. Sample data will be displayed in the Endpoint Test Result panel on the right, allowing you to verify that the source is configured correctly before saving.
Precoro data sources can also be manually configured to ingest data from any valid Precoro API endpoint, including endpoints not covered by the pre-built templates, chained API calls, or custom request parameters. Select the Advanced tab at the top of the configuration screen, and follow the instructions in Connect to Any API to configure the API method, endpoint URL, date/time and lookup macros, path to data, metadata, and request headers.
The Precoro API base URL is https://api.precoro.com. The Precoro API enforces rate limits of 60 requests per minute, 1,500 per hour, and 3,000 per day. Most Precoro list endpoints return records at the JSON path $.data[*] and support query parameters such as modifiedSince, approvalLeftDate, and approvalRightDate for filtering results. You do not need to include the X-AUTH-TOKEN or email authentication headers in the Request Headers field — these are handled automatically by the Precoro credential configured for this source. For information about available Precoro API endpoints and their parameters, refer to the Precoro API documentation.
Once all of the relevant settings have been configured, click the Create button in the upper right corner of the screen to save and create the new Precoro data source. Nexla will now begin ingesting data from the configured endpoint and will organize any data that it finds into one or more Nexsets.
Click the + icon on the Nexset that will be sent to the Precoro destination, and select the Send to Destination option from the menu. Select the Precoro connector from the list of available destination connectors, then select the credential that will be used to connect to the Precoro organization, and click Next; or, create a new Precoro credential for use in this flow.
Nexla provides pre-built templates that can be used to rapidly configure destinations to send data to common Precoro endpoints. Select the endpoint to which data will be sent from the Endpoint pulldown menu. Then, click on the template in the list below to expand it, and follow the instructions to configure additional endpoint settings.
Create Purchase Requisition
Create a new purchase requisition in Precoro. Use this endpoint to programmatically submit purchase requests from an external system — for example, when integrating an ERP, e-commerce platform, or expense management tool with your Precoro procurement workflow.
Ensure that the Nexset data contains the required fields for a Precoro purchase requisition before activating this destination. The payload is sent as a JSON body in a POST request to the Precoro API.
The authenticated user's roles and permissions in Precoro apply to requisitions created via the API. Ensure the API key was generated under a user account with permission to create purchase requisitions.
Create a new payment for an invoice in Precoro. Use this endpoint to record invoice payments from an external accounting system or payment processor, keeping your Precoro payment records in sync with your financial systems.
Ensure that the Nexset data contains the required payment fields, including the invoice reference and payment amount, before activating this destination. The payload is sent as a JSON body in a POST request to the Precoro API.
The authenticated user must have permission to record payments in Precoro. Ensure the API key was generated under a user account with the appropriate financial permissions.
For details about the required and optional fields for creating an invoice payment via the Precoro API, refer to the Precoro Payments API documentation.
Add Expense Payment
Create a new payment for an expense in Precoro. Use this endpoint to record expense payments from an external system, such as an expense management tool or corporate card platform, keeping your Precoro expense records up to date.
Ensure that the Nexset data contains the required payment fields, including the expense reference and payment amount, before activating this destination. The payload is sent as a JSON body in a POST request to the Precoro API.
The authenticated user must have permission to record expense payments in Precoro.
For details about the required and optional fields for creating an expense payment via the Precoro API, refer to the Precoro Payments API documentation.
Cancel Payment by IDN
Cancel an existing payment in Precoro by its IDN (internal document number) identifier. Use this endpoint when a payment must be voided or reversed due to an error, duplicate entry, or change in payment status from an external system.
Enter the IDN identifier of the payment to cancel in the Payment IDN field. This field is required. The IDN is a unique identifier assigned to each payment in Precoro and can be obtained from the Precoro UI or via the Get Payments source endpoint.
The authenticated user must have permission to cancel payments in Precoro. Cancellation via the API follows the same authorization rules as cancellation in the Precoro UI.
Create a new supplier in Precoro with a name and optional contact email addresses. Use this endpoint to automate supplier onboarding from an external vendor management system, ERP, or onboarding workflow.
Ensure that the Nexset data contains at least the supplier name before activating this destination. Contact email addresses are optional but recommended for supplier communication tracking. The payload is sent as a JSON body in a POST request to the Precoro API.
The authenticated user must have permission to create suppliers in Precoro.
For details about the required and optional fields for creating a supplier via the Precoro API, refer to the Precoro Suppliers API documentation.
Update Supplier
Update an existing supplier's name and contact information in Precoro by supplier ID. Use this endpoint to keep supplier records in Precoro synchronized with an external vendor management system or master data management platform.
The supplier ID is embedded in the API endpoint URL for this template. Ensure that the Nexset data contains the correct supplier ID along with the updated name and contact information. The payload is sent as a JSON body in a PUT request to the Precoro API.
Supplier IDs can be obtained from the Precoro UI or via the List Suppliers source endpoint.
The authenticated user must have permission to update supplier records in Precoro.
For details about the required and optional fields for updating a supplier via the Precoro API, refer to the Precoro Suppliers API documentation.
Reject Supplier by ID
Reject a supplier by marking it as rejected in the Precoro approval process. Use this endpoint to programmatically handle supplier rejection decisions from an external approval workflow or vendor screening system.
Enter the ID of the supplier to reject in the Supplier ID field. This field is required. Supplier IDs can be obtained from the Precoro UI or via the List Suppliers source endpoint.
The authenticated user must have permission to reject suppliers in Precoro. This action follows the same authorization rules as supplier rejection in the Precoro UI.
Create Item
Create a new inventory item in the Precoro catalog. Use this endpoint to automate item creation when synchronizing a product catalog, ERP item master, or procurement catalog with Precoro.
Ensure that the Nexset data contains at least the item name before activating this destination. The payload is sent as a JSON body in a POST request to the Precoro API.
The authenticated user must have permission to create items in Precoro.
For details about the required and optional fields for creating an item via the Precoro API, refer to the Precoro Items API documentation.
Update Item
Update an existing inventory item in the Precoro catalog by item ID. Use this endpoint to keep your Precoro item catalog synchronized with an external product catalog or ERP item master.
Enter the ID of the item to update in the Item ID field. This field is required. Item IDs can be obtained from the Precoro UI or via the List Items source endpoint.
Ensure that the Nexset data contains the updated item name and any other fields to be modified. The payload is sent as a JSON body in a PUT request to the Precoro API.
The authenticated user must have permission to update items in Precoro.
For details about the required and optional fields for updating an item via the Precoro API, refer to the Precoro Items API documentation.
Create Payment Term
Create a new company payment term in Precoro. Payment terms define the conditions under which a supplier invoice is expected to be paid (e.g., Net 30, Net 60). Use this endpoint to synchronize payment terms from an external financial system or ERP.
Ensure that the Nexset data contains the payment term name before activating this destination. The payload is sent as a JSON body in a POST request to the Precoro API.
The authenticated user must have permission to manage payment terms in Precoro.
Update an existing company payment term in Precoro by payment term ID. Use this endpoint to keep payment term definitions in Precoro synchronized with an external financial system or ERP.
Enter the ID of the payment term to update in the Payment Term ID field. This field is required. Payment term IDs can be obtained from the Precoro UI or via the Precoro API.
Ensure that the Nexset data contains the updated payment term name. The payload is sent as a JSON body in a PUT request to the Precoro API.
The authenticated user must have permission to manage payment terms in Precoro.
Create a new tax configuration in Precoro. Use this endpoint to synchronize tax rates and categories from an external tax management system or ERP, ensuring that Precoro's procurement documents apply the correct tax configurations.
Ensure that the Nexset data contains the tax configuration name before activating this destination. The payload is sent as a JSON body in a POST request to the Precoro API.
The authenticated user must have permission to manage tax configurations in Precoro.
Update Tax by ID
Update an existing tax configuration in Precoro by tax ID. Use this endpoint to keep Precoro tax configurations synchronized with an external tax management system or ERP.
Enter the ID of the tax configuration to update in the Tax ID field. This field is required. Tax IDs can be obtained from the Precoro UI or via the Get Tax List source endpoint.
Ensure that the Nexset data contains the updated tax name. The payload is sent as a JSON body in a PUT request to the Precoro API.
The authenticated user must have permission to manage tax configurations in Precoro.
Precoro destinations can also be manually configured to send data to any valid Precoro API endpoint, including endpoints not covered by the pre-built templates. Using manual configuration, you can also configure Nexla to automatically send the response received from the Precoro API after each call to a new Nexla webhook data source. Select the Advanced tab at the top of the configuration screen, and follow the instructions in Connect to Any API to configure the API method, data format, endpoint URL, request headers, attribute exclusions, record batching, and response webhooks.
The Precoro API base URL is https://api.precoro.com. The Precoro API enforces rate limits of 60 requests per minute, 1,500 per hour, and 3,000 per day, and accepts data in JSON format for all write operations. For update operations that target a specific record (such as updating a supplier or item), include the record's ID at the end of the URL — for example, https://api.precoro.com/suppliers/123. You do not need to include the X-AUTH-TOKEN or email authentication headers in the Request Headers field — these are handled automatically by the Precoro credential configured for this destination. For information about available Precoro API endpoints and their required request body fields, refer to the Precoro API documentation.
Once all endpoint settings have been configured, click the Done button in the upper right corner of the screen to save and create the destination. To begin sending data to the configured Precoro endpoint, open the destination resource menu, and select Activate.
The Nexset data will not be sent to Precoro until the destination is activated. Destinations can be activated immediately or at a later time, providing full control over data movement.