---
title: Typical API Usage Scenarios
description: Typical API Usage Scenarios How to Retrieve Approved Purchase Orders How to Manage Items of a specific supplier How to Download Attachments from Documents
---

[Skip to content](https://help.precoro.com/typical-api-usage-scenarios#main-content)

[Contact us](https://help.precoro.com/kb-tickets/new?hsLang=en) [Customer portal](https://help.precoro.com/tickets-view?hsLang=en)

[![Property 1=Default](https://help.precoro.com/hubfs/Property%201=Default.svg)](https://app.precoro.com/login)

Open main navigation

Close main navigation

- [Contact us](https://help.precoro.com/kb-tickets/new)
- [Customer portal](https://help.precoro.com/tickets-view)
- [Contact Us](https://share.hsforms.com/1-5JilMA_Qv6AOSVjFtNhDg14slf)

[Contact Us](https://share.hsforms.com/1-5JilMA_Qv6AOSVjFtNhDg14slf)

 Hi there! How can we help you today?

- There are no suggestions because the search field is empty.

1. [Knowledge Base](https://help.precoro.com/?hsLang=en)
2. [Precoro Integrations](https://help.precoro.com/precoro-integrations?hsLang=en)
3. [API Requests and Webhooks](https://help.precoro.com/precoro-integrations?hsLang=en#api-requests-and-webhooks)

# Typical API Usage Scenarios

## Explore the common usage scenarios for Precoro API and recommended steps for setting up each scenario effectively.

#### TABLE OF CONTENTS

- [Working with Master Data](https://help.precoro.com/typical-api-usage-scenarios#master-data) 
    - [How to Retrieve and Update Suppliers](https://help.precoro.com/typical-api-usage-scenarios#retrieve-or-update-suppliers)
    - [How to Manage Items of a Specific Supplier](https://help.precoro.com/typical-api-usage-scenarios#manage-items-of-a-specific-supplier)
- [Working with Documents](https://help.precoro.com/typical-api-usage-scenarios#working-with-documents)  
    - [Create Documents via API](https://help.precoro.com/typical-api-usage-scenarios#create-documents-via-api)
    - [How to Retrieve Approved Purchase Orders](https://help.precoro.com/typical-api-usage-scenarios#retreive-approves-po)
    - [Get Documents With a Certain Status](https://help.precoro.com/typical-api-usage-scenarios#get-documents-with-status)
    - [How to Download Attachments from Documents](https://help.precoro.com/typical-api-usage-scenarios#download-attachements)
    - [How to Get Custom Fields for Documents and Items](https://help.precoro.com/typical-api-usage-scenarios#get-custom-fields)
    - [How to Work with Split Documents via API](https://help.precoro.com/typical-api-usage-scenarios#split-documents-via-api)
    - [How to Integrate Delivery Tracking Tools via API](https://help.precoro.com/typical-api-usage-scenarios#delivery-tracking)
- [Working with Payments](https://help.precoro.com/typical-api-usage-scenarios#working-with-payments) 
    - [How to Mark Precoro Invoices as Paid After Recording Payment in Your Accounting System](https://help.precoro.com/typical-api-usage-scenarios#mark-invoices-as-paid)
    - [How to Keep Precoro Payments in Sync with Another Integration](https://help.precoro.com/typical-api-usage-scenarios#keep-payments-in-sync)

### Working with Master Data

#### How to Retrieve and Update Suppliers

Usage scenario: Keep supplier records in Precoro current automatically, instead of manually updating the same information in two systems.

##### Steps to set it up:

1. **To fetch all approved suppliers,** make a GET request to `/suppliers?modifiedSince=2022-12-12T00:00:00&status[]=2`
2. **To filter only active suppliers,** add `?enable=true` to the request. You can use any parameter from the response to further filter suppliers as needed.
3. **To retrieve full information for a supplier**, use the `/suppliers/{id}` endpoint.
4. **To ensure your records stay current,** set the `approvalDate` or `modifiedSince` parameter to the date of your last data retrieval in future requests.
5. **To update a supplier’s information**, use a PUT request to `/suppliers/{id}`.
6. **To add new suppliers**, make a POST request to `/suppliers`.

#### How to Manage Items of a Specific Supplier

Usage scenario: Efficiently retrieve a list of items by supplier and make updates to existing items or create new ones as necessary.

##### Steps to set it up:

1. **To retrieve a list of items,** make a GET request with a filter. Use the endpoint `https://api.precoro.com/items?supplier[]={id}` to fetch all items of this supplier from Precoro.
   
   **To stay current with updates,** add the `modifiedSince` filter to receive only items created or updated since your last check.
2. Review the details of the retrieved items to identify which require updates or need to be created.
3. **To modify the item’s information**, send a PUT request. Use endpoint `https://api.precoro.com/items/{id}` for item updates.
4. **To add new items to your system**, use a POST request. The endpoint is `https://api.precoro.com/items`.

### Working with Documents

#### Create Documents via API

Usage scenario: Automatically create documents via API instead of entering them manually in Precoro. This is useful when documents originate in another system, such as an external procurement, ERP, or accounting tool, and need to be added to Precoro for further processing and approval.

##### Steps to set up:

1\. Choose the document type you want to create and send a POST request to the corresponding endpoint.

For example, to create a purchase requisition: `POST`[`https://api.precoro.com/purchaserequisitions`](https://api.precoro.com/purchaserequisitions)

```
Headers:X-AUTH-TOKEN: your_company_tokenemail: user@company.comContent-Type: application/jsonBody:{  "requiredDate": "2026-12-01T00:00:00+00:00",  "currency": "USD",  "location": { "id": 97962 },  "dataDocumentCustomFields": { "data": [] },  "items": {    "data": [      {        "item": { "id": 1447004 },        "ordered": 2,        "price": 49.90,        "currency": "USD"      }    ]  }}
```

2\. On success, Precoro returns **201 Created** with the new document's idn and id, for example  
`{ "idn": 4, "id": 1006245 }`.

3\. To retrieve the full document at any time, use `GET /purchaserequisitions/{idn}`.

4\. The same approach applies to other document types. Each document type has its own endpoint and required fields:

- **Purchase order**—`POST /purchaseorders` ([request details).](https://documenter.getpostman.com/view/6493532/2sBXijKsRj#6ad2e288-6edb-40c5-bace-3c6d01a8fc24)  
  Creates a purchase order from purchase requisition items or as a standalone document with its own item list.
- **Receipt**—`POST /receipts/{purchase_order_idn}` ([request details).](https://documenter.getpostman.com/view/6493532/2sBXijKsRj#fe6e3709-a50c-423a-b2dc-9037f930184e)  
  Creates a receipt for an existing purchase order.
- **Invoice**—`POST /invoices` ([request details).](https://documenter.getpostman.com/view/6493532/2sBXijKsRj#cd64206b-1bc2-4781-a8b6-335c6a61eb20)  
  Creates an invoice from purchase order items or as a standalone document.

💡Please note:

- Documents created via API are saved in **Draft** status and aren't submitted for approval automatically. If your company has an approval workflow configured for this document type, the document goes through it the same way as one created manually in Precoro.
- If the document type has required custom fields, include their values in `dataDocumentCustomFields.data`. If there are no required custom fields, send it as an empty array.

 Read [Postman documentation](https://documenter.getpostman.com/view/6493532/2sBXijKsRj#6ad2e288-6edb-40c5-bace-3c6d01a8fc24) for more details on creating each document type.

#### How to Retrieve Approved Purchase Orders

Usage scenario: Retrieve approved purchase orders and integrate them into your accounting system.

##### Steps to set up:

1. **To retrieve all approved POs**, make a GET request using the endpoint `https://api.precoro.com/purchaseorders?modifiedSince=2023-10-10T00:00:00&approvalDate[left_date]=01.12.2023&approvalDate[right_date]=31.12.2023&status[]=2`.
2. **To access full information** for each PO, use the request `https://api.precoro.com/purchaseorders/{idn}`.
3. **To keep your records up to date,** set the `approvalDate` or `modifiedSince` parameter to the date of your last data retrieval for subsequent requests.

#### Get Documents With a Certain Status

Usage scenario: Get documents by a specific status, such as Approved or Pending, instead of retrieving all documents and filtering afterward.

**To receive documents with a certain status**, include *status\[\]=2* and the *status number* in the request.

Example of request: `https://api.precoro.com/purchaseorders?status[]=2&per_page=50&page=1`

The request will return the first 50 purchase orders with the Approved status. Requests for PO lists return paginated responses. Learn how to work with them in [this section](https://help.precoro.com/using-api-in-precoro?hsLang=en).

#### How to Download Attachments from Documents

Usage scenario: Pull files attached to POs, invoices, or receipts through the API, so you can store or process them without logging in to Precoro.

##### Steps to set up:

1. **Identify documents with attached files**. Use a GET request with the endpoint `https://api.precoro.com/purchaseorders?modifiedSince=2023-10-10T00:00:00&attachedFile=1` to retrieve all POs created or updated after the specified date with attached files.
2. **Retrieve attachment IDs**. Send a GET request to `https://api.precoro.com/purchaseorders/{idn}` to access the document details. Within the document information, locate the attachments field, which contains the IDs of the attached files.
3. **Download attachments**. With the attachment IDs in hand, initiate a GET request to `https://api.precoro.com/attachments/{id}` for each attachment you want to download. This will allow you to download the associated files.

#### ![ezgif-com-gif-maker (1)-gif](https://help.precoro.com/hs-fs/hubfs/ezgif-com-gif-maker%20(1)-gif.gif?width=670&height=354&name=ezgif-com-gif-maker%20(1)-gif.gif)

#### How to Get Custom Fields for Documents and Items

Usage scenario: Your integration needs to read and match the custom fields set up in your Precoro account, such as Department, Project, or Class, to the values stored on each document and item.

It's essential to fetch the list of all available custom fields for documents and items prior to requesting any documents.

##### Steps to complete:

**Step 1. Get all information about custom fields for documents.**Send a GET request `/documentcustomfields` to receive data on custom document fields, and a GET request to `itemcustomfields` to receive data on custom item fields.

<iframe data-hsv-src="https://play.hubspotvideo.com/v/1903299/id/205749546345" referrerpolicy="origin" sandbox="allow-forms allow-scripts allow-same-origin allow-popups" allow="autoplay; fullscreen;" style="position: absolute !important; width: 100% !important; height: 100% !important; left: 0; top: 0; border: 0 none; pointer-events: initial" title="HubSpot Video" loading="lazy" data-hsv-id="205749546345" data-hsv-style="" data-hsv-width="2070" data-hsv-height="1502" data-hsv-autoplay="false" data-hsv-loop="false" data-hsv-muted="false" data-hsv-hidden-controls="false" data-hsv-full-width="false"></iframe>

The response contains:

- Custom field ID
- Field name
- Field type (number, text, date, dropdown, etc.)
- Options (for dropdown type)
- Additional configuration (required, limit access, etc.)

Store this data locally (in a cache, database, or in memory) for later use in Step 2.

💡Please note: This data is defined in company configurations and changes rarely. **It doesn’t need to be requested per document.**

**Step 2. Fetch documents and read custom field values**For example, let’s take a request for PO: `https://api.precoro.com/purchaseorders/45`

<iframe data-hsv-src="https://play.hubspotvideo.com/v/1903299/id/148417562373" referrerpolicy="origin" sandbox="allow-forms allow-scripts allow-same-origin allow-popups" allow="autoplay; fullscreen;" style="position: absolute !important; width: 100% !important; height: 100% !important; left: 0; top: 0; border: 0 none; pointer-events: initial" title="HubSpot Video" loading="lazy" data-hsv-id="148417562373" data-hsv-style="" data-hsv-width="688" data-hsv-height="430" data-hsv-autoplay="false" data-hsv-loop="false" data-hsv-muted="false" data-hsv-hidden-controls="false" data-hsv-full-width="false"></iframe>

In the response, you should find **dataDocumentCustomFields** and **dataItemCustomFields**. These fields contain a collection of custom fields for documents and items, respectively.

[![Value and ID](https://help.precoro.com/hs-fs/hubfs/Value%20and%20ID.png?width=400&height=416&name=Value%20and%20ID.png)](https://help.precoro.com/hubfs/Value%20and%20ID.png?hsLang=en)

**dataDocumentCustomFields** contains:

- "documentCustomField"—the ID of the custom field.
- "value"—the ID of the selected option (for Drop-down list type) or the value itself   
  (text or date).

To get the names of the fields or selected options, map these IDs to the field list you fetched   
in Step 1.

**dataItemCustomFields** contains:

- "itemCustomField"—the ID of the custom field.
- "value"—the ID of the selected option (for Drop-down list type) or the value itself (text or date).

To get the names of the fields or selected options, map these IDs to the field list you fetched  
in Step 1.

**Step 3. Get uploaded data**.

We recommend using webhooks if you want to be aware of any changes. Select the necessary fields, save them, and configure webhooks for custom fields. As soon as you receive a webhook, you'll know which field it refers to and can continue working with it.

More about webhooks usage can be found[here](https://help.precoro.com/how-to-set-up-and-use-webhooks?hsLang=en).

After that, as soon as you receive a webhook, you will know which field it refers to and continue working with it.

#### How to Work with Split Documents via API

Usage scenario: Retrieve documents with split costs, check whether a document is a parent document or a cost allocation, and manage cost allocations: create, update, or delete them via API.

💡 Please note:

- In API requests, a cost allocation is referred to as a **split** (or **child document**), and the document it belongs to is referred to as the **parent document**. For example, in endpoints `/invoices/split/{id}` and fields `parentData`.
- Split Costs functionality is available with Split Costs enabled in your company settings. All split-related endpoints return **an access error** if this feature is turned off. To learn more about Split Costs, refer to [this guide](https://help.precoro.com/split-costs-functionality?hsLang=en).

##### Steps to follow:

**Step 1. Identify split documents in the list.**  
With Split Costs enabled, every response from `https://api.precoro.com/invoices` and `https://api.precoro.com/purchaseorders` automatically includes two additional fields per document:

- **parentData**—contains the parent document's **idn, sum, and netSum** if this document is a cost allocation; for regular and parent documents, the value is `0`.
- **splitPercentage**—the percentage allocated to this cost allocation (e.g., 40.0); for regular and parent documents, the value is `0`.

| parentData | splitPercentage | Document type |
| --- | --- | --- |
| null | 0 | Regular document (no splits) |
| null | 0 | Parent document with splits check `isWithSplits` |
| {  "idn": "...", ...  } | \> 0 | Split (child) document |

To identify parent documents, add `isWithSplits` to your request `https://api.precoro.com/invoices?includeGroup[]=isWithSplits`.

If `isWithSplits` is **true**, the document is a parent document with at least one cost allocation.

**Step 2. Retrieve all cost allocations for a document**

Each cost allocation has its own unique idn and appears as a separate entry in the list together with the parent document.

To retrieve all cost allocations for a parent document, use GET requests with the next endpoints:

- `https://api.precoro.com/invoices/{parent_idn}/splits`
- `https://api.precoro.com/purchaseorders/{parent_idn}/splits`

The response returns an array of cost allocation documents with details such as id, idn, status, splitPercentage, sum, budget, location, and item-level allocation data.

**Step 3. Retrieve a single cost allocation**

Since each cost allocation has its own idn, you can retrieve it directly through the standard endpoint: `https://api.precoro.com/invoices/{split_idn}`

The response will include a parentData field with the parent document's idn and sums.

**Step 4. Create a cost allocation**

To create a new cost allocation, send a POST request to:

- `https://api.precoro.com/invoices/{parent_idn}/split`
- `https://api.precoro.com/purchaseorders/{parent_idn}/split`

Include the following fields in the request body:

`{`  
`"location": { "id": 12 },`  
`"splitPercentage": 40,`  
`"budget": { "id": 5 },`  
`"budgetLine": { "id": 18 },`  
`"budgetParts": [{ "id": 3 }],`  
`"dataDocumentCustomFields": {}`  
`}`

Please note:

- The document must be in **Draft** status (if the user who sends the request is the creator) or **In Revision**.
- A document can have from 2 to 5 cost allocations.
- The total of all `splitPercentage` values must equal 100% before the document can be submitted for approval.
- Cost allocations aren’t supported for recurring documents.
- If the invoice already has cost allocations and is linked to a PO, adding new cost allocations is disabled unless the PO type is `blanket_per_total`.
- If the PO already has cost allocations and active linked invoices, adding new cost allocations is disabled.

**Step 5. Update a cost allocation**

To update an existing cost allocation, use the allocation database id returned in the GET response.

Please note: Use the allocation id, not idn.

Send a PATCH request to:

- `https://api.precoro.com/invoices/split/{id}`
- `https://api.precoro.com/purchaseorders/split/{id}`

Send only the fields you want to update. You can use the same fields as in the POST request.

**Step 6. Delete a cost allocation**

To delete a cost allocation, send a DELETE request using the allocation database id:

- `https://api.precoro.com/invoices/split/{id}`
- `https://api.precoro.com/purchaseorders/split/{id}`

Please note:

- The parent document must be in **Draft** status.Cost allocations can't be deleted during revision.
- For purchase orders, the parent PO must have no active linked invoices.

A successful deletion returns a **204 No Content** response.

**Additional recommendations:**

- To retrieve only recently changed documents with cost allocations, use modifiedSince together with isWithSplits: `https://api.precoro.com/invoices?modifiedSince=2024-01-01T00:00:00&includeGroup[]=isWithSplits`.
- Each cost allocation has its own approval workflow. When syncing cost allocation documents with an external system, treat each allocation as a separate document and use its own idn and status for tracking.

#### How to Integrate Delivery Tracking Tools via API

##### Sending receipt data to Precoro

Usage scenario: You need to create a receipt on another platform and want it added to Precoro automatically—linked to the related purchase order and sent for approval, if your company uses an approval workflow for receipts.

Endpoint: `POST /receipts/{purchase_order_id}`

Required fields:

- **requiredDate**—ISO-8601 format (for instance, "2025-07-24T00:00:00+00:00").
- **dataDocumentCustomFields.data**—if there are required custom document fields. The array should contain all required fields’ values in the necessary format: 
    - Date fields—ISO-8601 format
    - Text fields—text
    - Drop-down lists—option ID
- **selectedItems**—an associative array with at least one element;(the PO item ID is used as the key). Each element should contain the following: 
    - purchaseOrderItem.id (required)
    - received (required)—quantity of items received
    - dataItemCustomFields (optional)—custom item field values

Optional fields:

- **warehouse**—warehouse ID
- **Note**—text, or leave it null
- **receiptNumber**—a unique custom number, mostly used for integrations

Please note:

- If the **Automatically Transfer Notes from PO to Receipt** setting is active in your company, notes from purchase orders are automatically added to receipts if the Note field is null.
- If you fill out the Note field in the receipt, the new value will be saved, and the note from the order won’t be transferred.

##### Receiving receipt updates from Precoro

Instead of polling the API, set up receipt webhooks to get notified the moment a receipt is created or finalized. Learn more about webhooks [here](https://help.precoro.com/how-to-set-up-and-use-webhooks?hsLang=en).

**1. To configure a webhook for receipts.**

On the webhook configuration page, select the Receipt entity and the Create and Update events. The webhook fires once the receipt is finalized, not while it's in Draft or In Revision status.

The webhook message you receive will identify the event using numeric codes: type 5 for Receipt, action 0 for Create, action 1 for Update.

**2. To retrieve full receipt data including line items after receiving a webhook.**

Use the idn from the webhook payload to send a GET request `/receipts/{idn}.`

Receipt API response includes:

- `Id` or `idn`—Receipt ID / IDN
- `receiptNumber`—Receipt number
- `purchaseOrder.id`, purchaseOrder.idn—related PO ID / IDN
- `purchaseOrder.supplier.id, purchaseOrder.supplier.name`—Supplier
- `location.id, location.name`—Location
- `items.data[].name`—Item name
- `items.data[].received`—Quantity received
- `items.data[].dataItemCustomFields.data[]`—Item-level custom fields
- `dataDocumentCustomFields.data[]`—Document-level custom fields

Please note:

- The PO (including supplier, PO IDN, location) is embedded directly in the receipt response—no cross-request to `/purchaseorders/{idn}` needed for the basic fields. You'd only need the PO request if you want additional PO-level detail not embedded here.
- `Items.data[].category` field is present in the receipt API response, but we’d recommend organizing the item categories via custom item fields, as the item category field is deprecated in Precoro.

**3. To store an external ID for receipts and/or items.**

The receipt document has both **externalId** and **externalIntegrationLog** fields, use PATCH `/receipts/{idn} to write them`.

### Working with Payments

#### How to Mark Precoro Invoices as Paid After Recording Payment in Your Accounting System

Usage scenario**:** Payment has already been recorded in your accounting system, and you need to reflect it in Precoro too.

##### Steps to set up:

1. **To retrieve a list of unpaid or partly paid Invoices in Precoro,** send a GET request to `https://api.precoro.com/invoices?page=1&per_page=10&status[]=2&status[]=4`
2. If those invoices are unpaid in your system as well, create a payment for them.
3. **To create a new payment for the corresponding invoices**, send a POST request to Precoro `https://api.precoro.com/payments` with the required payment details.

#### How to Keep Precoro Payments in Sync with Another Integration

Usage scenario**:** Create payments and ensure the information about paid invoices in Precoro is consistent with that on other platforms you use.

##### Steps to set up:

**Step 1. Retrieve a list of paid invoices in Precoro.**

1. Make a GET request to `https://api.precoro.com/invoices?page=1&per_page=10&status[]=5.`
2. Save the received IDs of paid invoices for further verification.

**Step 2. Check the payment information in the service you integrate with Precoro**.

1. Send a request to the service where your payments are stored.
2. Ensure there is a way to map invoices in the service and in Precoro.
   
   For example, you can map invoices by filling out your external ID or another similar field with the Precoro Invoice ID.

**Step 3. Check for new invoices.**

- - Compare the received list with the previously saved list of paid invoice IDs from Precoro.
    - Determine if there are any new invoices (invoice IDs not already in your database).

**Step 4. Create payments in your system** if new invoices are found.

**Additional recommendations:**

- To keep your data up to date, use request parameters, such as the last synchronization date, in future requests.
- Ensure the invoice mapping between your system and Precoro is configured correctly to avoid duplication or errors when creating invoices.

- [Precoro Setup](https://help.precoro.com/precoro-setup?hsLang=en#main-content)

    - [Configurations](https://help.precoro.com/precoro-setup?hsLang=en#configurations)
    - [User Management](https://help.precoro.com/precoro-setup?hsLang=en#user-management)
    - [Custom Fields and Forms](https://help.precoro.com/precoro-setup?hsLang=en#custom-fields-and-forms)
    - [Supplier management](https://help.precoro.com/precoro-setup?hsLang=en#supplier-management)
    - [Working with Items](https://help.precoro.com/precoro-setup?hsLang=en#working-with-items)
    - [Approval Workflow](https://help.precoro.com/precoro-setup?hsLang=en#approval-workflow)
    - [Location Management](https://help.precoro.com/precoro-setup?hsLang=en#location-management)
    - [Precoro Payments](https://help.precoro.com/precoro-setup?hsLang=en#precoro-payments)
    - [Two-factor authentication](https://help.precoro.com/precoro-setup?hsLang=en#two-factor-authentication)
    - [Security](https://help.precoro.com/precoro-setup?hsLang=en#security)
    - [US Based Server](https://help.precoro.com/precoro-setup?hsLang=en#us-based-server)
- [How to use Precoro](https://help.precoro.com/how-to-use-precoro?hsLang=en#main-content)

    - [Warehouse Requests](https://help.precoro.com/how-to-use-precoro?hsLang=en#warehouse-requests)
    - [Requests for Proposals](https://help.precoro.com/how-to-use-precoro?hsLang=en#requests-for-proposals)
    - [Purchase Requisitions](https://help.precoro.com/how-to-use-precoro?hsLang=en#purchase-requisitions)
    - [Purchase Orders](https://help.precoro.com/how-to-use-precoro?hsLang=en#purchase-orders)
    - [Service Orders](https://help.precoro.com/how-to-use-precoro?hsLang=en#service-orders)
    - [Receipts](https://help.precoro.com/how-to-use-precoro?hsLang=en#receipts)
    - [Invoices](https://help.precoro.com/how-to-use-precoro?hsLang=en#invoices)
    - [Expenses](https://help.precoro.com/how-to-use-precoro?hsLang=en#expenses)
    - [Budgeting](https://help.precoro.com/how-to-use-precoro?hsLang=en#budgeting)
    - [Inventory](https://help.precoro.com/how-to-use-precoro?hsLang=en#inventory)
    - [Reports](https://help.precoro.com/how-to-use-precoro?hsLang=en#reports)
    - [AP Inbox and Intelligent AP Automation](https://help.precoro.com/how-to-use-precoro?hsLang=en#ap-inbox-and-intelligent-ap-automation)
    - [Working with documents](https://help.precoro.com/how-to-use-precoro?hsLang=en#working-with-documents)
    - [Suppliers Portal](https://help.precoro.com/how-to-use-precoro?hsLang=en#suppliers-portal)
    - [Supplier Registration](https://help.precoro.com/how-to-use-precoro?hsLang=en#supplier-registration)
    - [Attachments, Filters, and Search](https://help.precoro.com/how-to-use-precoro?hsLang=en#attachments-filters-and-search)
    - [Mobile App](https://help.precoro.com/how-to-use-precoro?hsLang=en#mobile-app)
    - [FAQs and Troubleshooting](https://help.precoro.com/how-to-use-precoro?hsLang=en#faqs-and-troubleshooting)
- [Precoro Integrations](https://help.precoro.com/precoro-integrations?hsLang=en#main-content)

    - [QuickBooks Online Integration](https://help.precoro.com/precoro-integrations?hsLang=en#quickbooks-online-integration)
    - [NetSuite Integration](https://help.precoro.com/precoro-integrations?hsLang=en#netsuite-integration)
    - [Xero Integration](https://help.precoro.com/precoro-integrations?hsLang=en#xero-integration)
    - [API Requests and Webhooks](https://help.precoro.com/precoro-integrations?hsLang=en#api-requests-and-webhooks)
    - [SSO Setting](https://help.precoro.com/precoro-integrations?hsLang=en#sso-setting)
    - [Google Integration](https://help.precoro.com/precoro-integrations?hsLang=en#google-integration)
    - [Power BI](https://help.precoro.com/precoro-integrations?hsLang=en#power-bi)
    - [Integration with Slack](https://help.precoro.com/precoro-integrations?hsLang=en#integration-with-slack)
    - [PunchOut Catalogs](https://help.precoro.com/precoro-integrations?hsLang=en#punchout-catalogs)
    - [Integrations via Connectors](https://help.precoro.com/precoro-integrations?hsLang=en#integrations-via-connectors)
    - [Bill.com Integration](https://help.precoro.com/precoro-integrations?hsLang=en#bill-com-integration)
- [Precoro Updates](https://help.precoro.com/precoro-updates?hsLang=en#main-content)

    - [Releases, 2026](https://help.precoro.com/precoro-updates?hsLang=en#releases-2026)
    - [Releases, 2025](https://help.precoro.com/precoro-updates?hsLang=en#releases-2025)
    - [Releases, 2024](https://help.precoro.com/precoro-updates?hsLang=en#releases-2024)
    - [Releases, 2023](https://help.precoro.com/precoro-updates?hsLang=en#releases-2023)
    - [API Updates](https://help.precoro.com/precoro-updates?hsLang=en#api-updates)
    - [General changes](https://help.precoro.com/precoro-updates?hsLang=en#general-changes)

[![Precoro](https://help.precoro.com/hubfs/Precoro.svg "Precoro")](https://precoro.com/)

<https://www.facebook.com/precoro> <https://x.com/PrecoroHQ> <https://www.youtube.com/@precoro> <https://www.linkedin.com/company/precoro>

Copyright © 2026, Precoro

```json
{
  "@context" : "https://schema.org",
  "@type" : "VideoObject",
  "contentUrl" : "https://1903299.fs1.hubspotusercontent-na1.net/hubfs/1903299/GET_DCF_List.mov",
  "dateModified" : "2026-01-23T13:32:15.275Z",
  "duration" : "PT11S",
  "height" : 1502,
  "name" : "GET_DCF_List",
  "thumbnailUrl" : "https://1903299.fs1.hubspotusercontent-na1.net/hubfs/1903299/GET_DCF_List.mov/medium.jpg",
  "uploadDate" : "2026-01-23T13:32:03.856Z",
  "width" : 2070
}
```

```json
{
  "@context" : "https://schema.org",
  "@type" : "VideoObject",
  "contentUrl" : "https://1903299.fs1.hubspotusercontent-na1.net/hubfs/1903299/DCF-1.mp4",
  "dateModified" : "2023-12-26T12:44:23.595Z",
  "duration" : "PT11S",
  "height" : 900,
  "name" : "DCF-1",
  "thumbnailUrl" : "https://1903299.fs1.hubspotusercontent-na1.net/hubfs/1903299/DCF-1.mp4/medium.jpg",
  "uploadDate" : "2023-12-04T11:05:18.373Z",
  "width" : 1440
}
```