Precoro API

Precoro API as documented publicly: 15 operations. Contract generated from the documentation by API Evangelist (2026-10-13); not the provider's own document.

Operations 15

GET /invoices Retrieve invoices, optionally filtered by external_id[] #
POST /invoices Creates an invoice from purchase order items or as a standalone document #
GET /items Retrieve items, optionally filtered by external_id[] #
GET /legalentities Retrieve legal entities, optionally filtered by external_id[] #
GET /locations Retrieve locations, optionally filtered by external_id[] #
GET /purchaseorders Retrieve purchase orders, optionally filtered by external_id[] #
POST /purchaseorders Creates a purchase order from purchase requisition items or as a standalone document #
POST /purchaserequisitions Create a purchase requisition document via API #
GET /purchaserequisitions/{idn} Retrieve the full document at any time #
GET /receipts Retrieve receipts, optionally filtered by external_id[] #
PATCH /receipts/{idn} Update receipt fields such as externalId or externalIntegrationLog #
GET /suppliers Retrieve suppliers, optionally filtered by external_id[] #
PATCH /suppliers/{id} Update the externalId field for an existing supplier record #
PUT /suppliers/{id} Replace a supplier record with new data after comparing external IDs #
GET /taxes Retrieve taxes, optionally filtered by external_id[] #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/precoro:precoro-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

precoro-openapi-generated.yml Raw ↑
openapi: 3.1.0
info:
  title: Precoro API
  version: '2026-10-13'
  description: 'GENERATED FROM DOCUMENTATION by API Evangelist on 2026-10-13: 15 operation(s) read from 6 public documentation page(s) (each operation
    names its page in x-source). This is not the provider''s published contract; Precoro has published no machine-readable contract that the pipeline
    could find. Engine: local.'
  x-evidence-tiers:
    code-example: 0
    documentation: 15
    pages-with-code: 0
    pages-read: 6
  x-generated-from: documentation
  x-provenance: generated
  x-authored-by: API Evangelist
  x-generated: '2026-10-13'
  x-generator: generate-contract-from-docs.py
  x-engine: local
  x-sources:
  - https://help.precoro.com/external-integrations-with-api
  - https://help.precoro.com/using-api-in-precoro
  - https://help.precoro.com/typical-api-usage-scenarios
  - https://help.precoro.com/how-to-set-up-and-use-webhooks
  - https://help.precoro.com/how-to-set-up-and-use-webhooks?hsLang=en
  - https://help.precoro.com/using-api-in-precoro?hsLang=en
servers:
- url: https://api.precoro.com
paths:
  /invoices:
    get:
      operationId: get_invoices
      tags:
      - Invoices
      summary: Retrieve invoices, optionally filtered by external_id[]
      description: GET https://api.precoro.com/invoices returns invoice records; can include external_id[] query parameter for targeted lookup.
      x-source: https://help.precoro.com/external-integrations-with-api
      parameters:
      - name: external_id[]
        in: query
        required: false
        schema:
          type: array
        description: One or more external IDs to filter the invoices returned (max 200).
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
    post:
      operationId: post_invoices
      tags:
      - Invoices
      summary: Creates an invoice from purchase order items or as a standalone document
      x-source: https://help.precoro.com/typical-api-usage-scenarios
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostInvoicesRequest'
      responses:
        '201':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostInvoicesResponse'
      x-evidence:
        kind: documentation
  /items:
    get:
      operationId: get_items
      tags:
      - Items
      summary: Retrieve items, optionally filtered by external_id[]
      description: GET https://api.precoro.com/items returns item records; can include external_id[] query parameter.
      x-source: https://help.precoro.com/external-integrations-with-api
      parameters:
      - name: external_id[]
        in: query
        required: false
        schema:
          type: array
        description: One or more external IDs to filter the items returned (max 200).
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
  /legalentities:
    get:
      operationId: get_legalentities
      tags:
      - Legalentities
      summary: Retrieve legal entities, optionally filtered by external_id[]
      description: GET https://api.precoro.com/legalentities returns legal entity records; can include external_id[] query parameter.
      x-source: https://help.precoro.com/external-integrations-with-api
      parameters:
      - name: external_id[]
        in: query
        required: false
        schema:
          type: array
        description: One or more external IDs to filter the legal entities returned (max 200).
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
  /locations:
    get:
      operationId: get_locations
      tags:
      - Locations
      summary: Retrieve locations, optionally filtered by external_id[]
      description: GET https://api.precoro.com/locations returns location records; can include external_id[] query parameter.
      x-source: https://help.precoro.com/external-integrations-with-api
      parameters:
      - name: external_id[]
        in: query
        required: false
        schema:
          type: array
        description: One or more external IDs to filter the locations returned (max 200).
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
  /purchaseorders:
    get:
      operationId: get_purchaseorders
      tags:
      - Purchaseorders
      summary: Retrieve purchase orders, optionally filtered by external_id[]
      description: GET https://api.precoro.com/purchaseorders returns purchase order records; can include external_id[] query parameter.
      x-source: https://help.precoro.com/external-integrations-with-api
      parameters:
      - name: external_id[]
        in: query
        required: false
        schema:
          type: array
        description: One or more external IDs to filter the purchase orders returned (max 200).
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
    post:
      operationId: post_purchaseorders
      tags:
      - Purchaseorders
      summary: Creates a purchase order from purchase requisition items or as a standalone document
      x-source: https://help.precoro.com/typical-api-usage-scenarios
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostPurchaseordersRequest'
      responses:
        '201':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostPurchaseordersResponse'
      x-evidence:
        kind: documentation
  /purchaserequisitions:
    post:
      operationId: post_purchaserequisitions
      tags:
      - Purchaserequisitions
      summary: Create a purchase requisition document via API
      x-source: https://help.precoro.com/typical-api-usage-scenarios
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostPurchaserequisitionsRequest'
      responses:
        '201':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostPurchaserequisitionsResponse'
      x-evidence:
        kind: documentation
  /purchaserequisitions/{idn}:
    get:
      operationId: get_purchaserequisitions_idn
      tags:
      - Purchaserequisitions
      summary: Retrieve the full document at any time
      x-source: https://help.precoro.com/typical-api-usage-scenarios
      parameters:
      - name: idn
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetPurchaserequisitionsIdnResponse'
      x-evidence:
        kind: documentation
  /receipts:
    get:
      operationId: get_receipts
      tags:
      - Receipts
      summary: Retrieve receipts, optionally filtered by external_id[]
      description: GET https://api.precoro.com/receipts returns receipt records; can include external_id[] query parameter.
      x-source: https://help.precoro.com/external-integrations-with-api
      parameters:
      - name: external_id[]
        in: query
        required: false
        schema:
          type: array
        description: One or more external IDs to filter the receipts returned (max 200).
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
  /receipts/{idn}:
    patch:
      operationId: patch_receipts_idn
      tags:
      - Receipts
      summary: Update receipt fields such as externalId or externalIntegrationLog
      x-source: https://help.precoro.com/typical-api-usage-scenarios
      parameters:
      - name: idn
        in: path
        required: true
        schema:
          type: string
      requestBody:
        required: false
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchReceiptsIdnRequest'
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
  /suppliers:
    get:
      operationId: get_suppliers
      tags:
      - Suppliers
      summary: Retrieve suppliers, optionally filtered by external_id[]
      description: GET https://api.precoro.com/suppliers returns supplier records; can include external_id[] query parameter.
      x-source: https://help.precoro.com/external-integrations-with-api
      parameters:
      - name: external_id[]
        in: query
        required: false
        schema:
          type: array
        description: One or more external IDs to filter the suppliers returned (max 200).
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
  /suppliers/{id}:
    patch:
      operationId: patch_suppliers_id
      tags:
      - Suppliers
      summary: Update the externalId field for an existing supplier record
      description: Send a PATCH request to https://api.precoro.com/suppliers/{id} with a JSON body containing the externalId field.
      x-source: https://help.precoro.com/external-integrations-with-api
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchSuppliersIdRequest'
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
    put:
      operationId: put_suppliers_id
      tags:
      - Suppliers
      summary: Replace a supplier record with new data after comparing external IDs
      description: PUT https://api.precoro.com/suppliers/{id} updates the supplier when differences are detected.
      x-source: https://help.precoro.com/external-integrations-with-api
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      requestBody:
        required: false
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PutSuppliersIdRequest'
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
  /taxes:
    get:
      operationId: get_taxes
      tags:
      - Taxes
      summary: Retrieve taxes, optionally filtered by external_id[]
      description: GET https://api.precoro.com/taxes returns tax records; can include external_id[] query parameter.
      x-source: https://help.precoro.com/external-integrations-with-api
      parameters:
      - name: external_id[]
        in: query
        required: false
        schema:
          type: array
        description: One or more external IDs to filter the tax records returned (max 200).
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
components:
  schemas:
    PostInvoicesRequest:
      type: object
      properties:
        requiredDate:
          type: string
        currency:
          type: string
        location.id:
          type: integer
        dataDocumentCustomFields:
          type: object
        items:
          type: object
      required:
      - requiredDate
      - currency
      - location.id
      - items
    PostInvoicesResponse:
      type: object
      properties:
        idn:
          type: integer
        id:
          type: integer
    PostPurchaseordersRequest:
      type: object
      properties:
        requiredDate:
          type: string
        currency:
          type: string
        location.id:
          type: integer
        dataDocumentCustomFields:
          type: object
        items:
          type: object
      required:
      - requiredDate
      - currency
      - location.id
      - items
    PostPurchaseordersResponse:
      type: object
      properties:
        idn:
          type: integer
        id:
          type: integer
    PostPurchaserequisitionsRequest:
      type: object
      properties:
        requiredDate:
          type: string
        currency:
          type: string
        location.id:
          type: integer
        dataDocumentCustomFields:
          type: object
        items:
          type: object
      required:
      - requiredDate
      - currency
      - location.id
      - items
    PostPurchaserequisitionsResponse:
      type: object
      properties:
        idn:
          type: integer
        id:
          type: integer
    GetPurchaserequisitionsIdnResponse:
      type: object
      properties:
        idn:
          type: integer
        id:
          type: integer
    PatchReceiptsIdnRequest:
      type: object
      properties:
        externalId:
          type: string
        externalIntegrationLog:
          type: string
    PatchSuppliersIdRequest:
      type: object
      properties:
        externalId:
          type: string
          description: The new ExternalID value to set on the supplier
      required:
      - externalId
    PutSuppliersIdRequest:
      type: object
      properties:
        externalId:
          type: string
          description: External ID to associate with the supplier (optional).
        other supplier fields:
          type: object
          description: Any supplier attributes to be updated.
tags:
- name: Invoices
- name: Items
- name: Legalentities
- name: Locations
- name: Purchaseorders
- name: Purchaserequisitions
- name: Receipts
- name: Suppliers
- name: Taxes