Fulcrumpro Item PriceBreaks API

The Item PriceBreaks API from Fulcrumpro — 4 operation(s) for item pricebreaks.

OpenAPI Specification

fulcrumpro-item-pricebreaks-api-openapi.yml Raw ↑
openapi: 3.0.4
info:
  title: Fulcrum Public Accounting Code Item PriceBreaks API
  version: v1
servers:
- url: https://api.fulcrumpro.com
tags:
- name: Item PriceBreaks
paths:
  /api/items/{itemId}/purchase-price-breaks/list:
    post:
      tags:
      - Item PriceBreaks
      summary: List purchase price breaks for an item.
      operationId: ListPurchasePriceBreaks
      parameters:
      - name: itemId
        in: path
        description: The id of the item.
        required: true
        schema:
          maxLength: 24
          minLength: 24
          type: string
      requestBody:
        description: Optional filters to narrow the result set.
        content:
          application/json-patch+json:
            schema:
              $ref: '#/components/schemas/PriceBreakListPurchasePriceBreaksDto'
          application/json:
            schema:
              $ref: '#/components/schemas/PriceBreakListPurchasePriceBreaksDto'
          text/json:
            schema:
              $ref: '#/components/schemas/PriceBreakListPurchasePriceBreaksDto'
          application/*+json:
            schema:
              $ref: '#/components/schemas/PriceBreakListPurchasePriceBreaksDto'
      responses:
        '200':
          description: List of purchase price breaks for the given item.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/PriceBreakPurchasePriceBreakDto'
            application/problem+json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/PriceBreakPurchasePriceBreakDto'
        '404':
          description: An item with the given id was not found.
      x-c4-required-permissions:
      - ItemsAndInventory-Items-View Item
      - Pricing-Margins-View Margins
  /api/items/{itemId}/sales-price-breaks/list:
    post:
      tags:
      - Item PriceBreaks
      summary: 'List sales price breaks for an item, including the item''s base price, customer-specific

        price breaks, and customer-tier price breaks.'
      operationId: ListSalesPriceBreaks
      parameters:
      - name: itemId
        in: path
        description: The id of the item.
        required: true
        schema:
          maxLength: 24
          minLength: 24
          type: string
      requestBody:
        description: Optional filters to narrow the result set.
        content:
          application/json-patch+json:
            schema:
              $ref: '#/components/schemas/PriceBreakListSalesPriceBreaksDto'
          application/json:
            schema:
              $ref: '#/components/schemas/PriceBreakListSalesPriceBreaksDto'
          text/json:
            schema:
              $ref: '#/components/schemas/PriceBreakListSalesPriceBreaksDto'
          application/*+json:
            schema:
              $ref: '#/components/schemas/PriceBreakListSalesPriceBreaksDto'
      responses:
        '200':
          description: List of sales price breaks for the given item.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/PriceBreakSalesPriceBreakDto'
            application/problem+json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/PriceBreakSalesPriceBreakDto'
        '404':
          description: An item with the given id was not found.
      x-c4-required-permissions:
      - ItemsAndInventory-Items-View Item
  /api/items/{itemId}/purchase-price-breaks:
    put:
      tags:
      - Item PriceBreaks
      summary: 'Create or update a purchase price break for an item. The price break is identified by

        the combination of (item, vendor, currency, unit of measure): if a match exists it is

        replaced, otherwise a new price break is created.'
      operationId: UpsertPurchasePriceBreak
      parameters:
      - name: itemId
        in: path
        description: The id of the item.
        required: true
        schema:
          maxLength: 24
          minLength: 24
          type: string
      requestBody:
        description: The price break to upsert.
        content:
          application/json-patch+json:
            schema:
              $ref: '#/components/schemas/PriceBreakPurchasePriceBreakUpsertDto'
          application/json:
            schema:
              $ref: '#/components/schemas/PriceBreakPurchasePriceBreakUpsertDto'
          text/json:
            schema:
              $ref: '#/components/schemas/PriceBreakPurchasePriceBreakUpsertDto'
          application/*+json:
            schema:
              $ref: '#/components/schemas/PriceBreakPurchasePriceBreakUpsertDto'
        required: true
      responses:
        '200':
          description: The upserted price break.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PriceBreakPurchasePriceBreakDto'
            application/problem+json:
              schema:
                $ref: '#/components/schemas/PriceBreakPurchasePriceBreakDto'
        '400':
          description: Validation issues with input.
        '404':
          description: Item or vendor did not exist.
      x-c4-mutation: true
      x-c4-required-permissions:
      - ItemsAndInventory-Items-Edit Item
      - Pricing-Margins-Edit Margins
  /api/items/{itemId}/sales-price-breaks:
    put:
      tags:
      - Item PriceBreaks
      summary: "Create or update a sales price break for an item. The price break is identified by\nthe combination of (item, customer, customer tier, currency, sales unit of measure):\nif a match exists it is replaced, otherwise a new price break is created.\n            \nCustomer and customer tier are mutually exclusive. Leaving both null upserts the\nitem's base price."
      operationId: UpsertSalesPriceBreak
      parameters:
      - name: itemId
        in: path
        description: The id of the item.
        required: true
        schema:
          maxLength: 24
          minLength: 24
          type: string
      requestBody:
        description: The price break to upsert.
        content:
          application/json-patch+json:
            schema:
              $ref: '#/components/schemas/PriceBreakSalesPriceBreakUpsertDto'
          application/json:
            schema:
              $ref: '#/components/schemas/PriceBreakSalesPriceBreakUpsertDto'
          text/json:
            schema:
              $ref: '#/components/schemas/PriceBreakSalesPriceBreakUpsertDto'
          application/*+json:
            schema:
              $ref: '#/components/schemas/PriceBreakSalesPriceBreakUpsertDto'
        required: true
      responses:
        '200':
          description: The upserted price break.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PriceBreakSalesPriceBreakDto'
            application/problem+json:
              schema:
                $ref: '#/components/schemas/PriceBreakSalesPriceBreakDto'
        '400':
          description: Validation issues with input.
        '404':
          description: Item, customer, or customer tier did not exist.
      x-c4-mutation: true
      x-c4-required-permissions:
      - ItemsAndInventory-Items-Edit Item
components:
  schemas:
    PriceBreakListPurchasePriceBreaksDto:
      type: object
      properties:
        vendorId:
          maxLength: 24
          minLength: 24
          type: string
          description: Restrict to price breaks for the given vendor.
          nullable: true
        currencyCode:
          type: string
          description: Restrict to price breaks in the given currency.
          nullable: true
      additionalProperties: false
      description: Filters for listing purchase price breaks.
    PriceBreakListSalesPriceBreaksDto:
      type: object
      properties:
        customerId:
          maxLength: 24
          minLength: 24
          type: string
          description: Restrict to price breaks for the given customer.
          nullable: true
        customerTierId:
          maxLength: 24
          minLength: 24
          type: string
          description: Restrict to price breaks for the given customer tier.
          nullable: true
        currencyCode:
          type: string
          description: Restrict to price breaks in the given currency.
          nullable: true
        baseOnly:
          type: boolean
          description: When true, include only the item's base price (no customer or customer tier).
          nullable: true
      additionalProperties: false
      description: Filters for listing sales price breaks.
    PriceBreakItemPriceBreakPointDto:
      type: object
      properties:
        id:
          maxLength: 36
          minLength: 36
          type: string
          description: Identifier for this break point. Server-generated; ignored on write.
          nullable: true
        quantity:
          maximum: 2147483647
          minimum: 2
          type: integer
          description: 'The quantity at which this break point becomes active. Must be greater than 1

            (the unit/base price covers quantity 1).'
          format: int32
        price:
          minimum: 0
          type: number
          description: 'The price per unit at this break point. Required for Price-type sales breaks and all

            purchase (Cost) breaks.'
          format: double
          nullable: true
        margin:
          type: number
          description: The margin percentage at this break point. Used when the price break is calculated by Margin.
          format: double
          nullable: true
        showOnPdf:
          type: boolean
          description: 'Whether this break point should be displayed on customer-facing PDFs (quotes, sales orders).

            Has no effect for purchase price breaks.'
      additionalProperties: false
      description: A single quantity break inside a price break.
    DtoPriceBreakSalesPriceBreakPricingTypeEnum:
      enum:
      - price
      - margin
      type: string
      description: How a sales price break is calculated.
    PriceBreakSalesPriceBreakDto:
      required:
      - breakPoints
      - id
      - itemId
      - pricingType
      type: object
      properties:
        id:
          maxLength: 24
          minLength: 24
          type: string
          description: Identifier of the price break.
        itemId:
          maxLength: 24
          minLength: 24
          type: string
          description: Identifier of the item this price break applies to.
        customerId:
          maxLength: 24
          minLength: 24
          type: string
          description: 'Identifier of the customer this price break applies to. Mutually exclusive with

            FulcrumProduct.PublicApi.Dto.PriceBreak.SalesPriceBreakDto.CustomerTierId; null on both means this is the item''s base price.'
          nullable: true
        customerTierId:
          maxLength: 24
          minLength: 24
          type: string
          description: 'Identifier of the customer tier this price break applies to. Mutually exclusive with

            FulcrumProduct.PublicApi.Dto.PriceBreak.SalesPriceBreakDto.CustomerId; null on both means this is the item''s base price.'
          nullable: true
        currencyCode:
          type: string
          description: ISO 4217 currency code. Null indicates the company's primary currency.
          nullable: true
        unitOfMeasureName:
          type: string
          description: Sales unit of measure for this price break. Null indicates the item's default sales unit of measure.
          nullable: true
        pricingType:
          $ref: '#/components/schemas/DtoPriceBreakSalesPriceBreakPricingTypeEnum'
        unitPrice:
          type: number
          description: The unit price at quantity 1. Populated when FulcrumProduct.PublicApi.Dto.PriceBreak.SalesPriceBreakDto.PricingType is Price.
          format: double
          nullable: true
        margin:
          type: number
          description: The margin percentage applied at quantity 1. Populated when FulcrumProduct.PublicApi.Dto.PriceBreak.SalesPriceBreakDto.PricingType is Margin.
          format: double
          nullable: true
        showOnPdf:
          type: boolean
          description: Whether the unit/base price should be displayed on customer-facing PDFs.
        breakPoints:
          type: array
          items:
            $ref: '#/components/schemas/PriceBreakItemPriceBreakPointDto'
          description: Quantity break points beyond quantity 1.
        modifiedUtc:
          type: string
          description: When this price break was last modified.
          format: date-time
      additionalProperties: false
      description: 'Sales price break for an item. A sales price break is targeted at one of:

        the item''s base price, a specific customer, or a customer tier.'
    PriceBreakPurchasePriceBreakDto:
      required:
      - breakPoints
      - id
      - itemId
      - vendorId
      type: object
      properties:
        id:
          maxLength: 24
          minLength: 24
          type: string
          description: Identifier of the price break.
        itemId:
          maxLength: 24
          minLength: 24
          type: string
          description: Identifier of the item this price break applies to.
        vendorId:
          maxLength: 24
          minLength: 24
          type: string
          description: Identifier of the vendor this price break applies to.
        currencyCode:
          type: string
          description: ISO 4217 currency code. Null indicates the company's primary currency.
          nullable: true
        unitOfMeasureName:
          type: string
          description: Purchasing unit of measure for this price break. Null indicates the item's default unit of measure.
          nullable: true
        unitPrice:
          type: number
          description: The unit price at quantity 1.
          format: double
          nullable: true
        vendorItemNumber:
          maxLength: 200
          minLength: 1
          type: string
          description: The vendor's part number for this item, if different from the internal number.
          nullable: true
        vendorItemName:
          maxLength: 200
          minLength: 1
          type: string
          description: The vendor's part description for this item.
          nullable: true
        breakPoints:
          type: array
          items:
            $ref: '#/components/schemas/PriceBreakItemPriceBreakPointDto'
          description: Quantity break points beyond quantity 1.
        modifiedUtc:
          type: string
          description: When this price break was last modified.
          format: date-time
      additionalProperties: false
      description: Purchase (vendor cost) price break for an item.
    PriceBreakPurchasePriceBreakUpsertDto:
      required:
      - breakPoints
      - vendorId
      type: object
      properties:
        vendorId:
          maxLength: 24
          minLength: 24
          type: string
          description: Identifier of the vendor this price break applies to.
        currencyCode:
          type: string
          description: 'ISO 4217 currency code. Null is treated as the vendor''s currency (or, if the vendor has no

            currency, the company''s primary currency) for identity matching. When matching an existing

            break, that break''s stored CurrencyCode is preserved. On insert, the value stored is the

            supplied value or the vendor''s currency if none was supplied.'
          nullable: true
        unitOfMeasureName:
          type: string
          description: 'Purchasing unit of measure. Null indicates the item''s default unit of measure.

            Same null/default-equivalence rules as FulcrumProduct.PublicApi.Dto.PriceBreak.PurchasePriceBreakUpsertDto.CurrencyCode.'
          nullable: true
        unitPrice:
          minimum: 0
          type: number
          description: The unit price at quantity 1. Required.
          format: double
          nullable: true
        vendorItemNumber:
          maxLength: 200
          minLength: 1
          type: string
          description: The vendor's part number for this item, if different from the internal number.
          nullable: true
        vendorItemName:
          maxLength: 200
          minLength: 1
          type: string
          description: The vendor's part description for this item.
          nullable: true
        breakPoints:
          type: array
          items:
            $ref: '#/components/schemas/PriceBreakItemPriceBreakPointDto'
          description: 'Quantity break points beyond quantity 1. The complete set of break points is replaced

            on each upsert; omit a quantity to remove it.'
      additionalProperties: false
      description: "Upsert payload for a purchase (vendor cost) price break.\n            \nIdentity key (item-id is the route parameter):\n  FulcrumProduct.PublicApi.Dto.PriceBreak.PurchasePriceBreakUpsertDto.VendorId, FulcrumProduct.PublicApi.Dto.PriceBreak.PurchasePriceBreakUpsertDto.CurrencyCode, FulcrumProduct.PublicApi.Dto.PriceBreak.PurchasePriceBreakUpsertDto.UnitOfMeasureName.\nIf a price break already exists for this key, it is updated; otherwise a new one is created."
    PriceBreakSalesPriceBreakUpsertDto:
      required:
      - breakPoints
      - pricingType
      type: object
      properties:
        customerId:
          maxLength: 24
          minLength: 24
          type: string
          description: 'Identifier of the customer this price break applies to. Mutually exclusive with

            FulcrumProduct.PublicApi.Dto.PriceBreak.SalesPriceBreakUpsertDto.CustomerTierId. Leave both null to upsert the item''s base price.'
          nullable: true
        customerTierId:
          maxLength: 24
          minLength: 24
          type: string
          description: 'Identifier of the customer tier this price break applies to. Mutually exclusive with

            FulcrumProduct.PublicApi.Dto.PriceBreak.SalesPriceBreakUpsertDto.CustomerId. Leave both null to upsert the item''s base price.'
          nullable: true
        currencyCode:
          type: string
          description: 'ISO 4217 currency code. Null indicates the company''s primary currency.

            Null and the explicit primary currency code are treated as equivalent for identity matching;

            when matching an existing break, that break''s stored CurrencyCode is preserved (legacy

            records may hold null even after primary is set, and downstream code distinguishes them).

            On insert, the value is stored exactly as supplied.'
          nullable: true
        unitOfMeasureName:
          type: string
          description: 'Sales unit of measure. Null indicates the item''s default sales unit of measure.

            Same null/default-equivalence rules as FulcrumProduct.PublicApi.Dto.PriceBreak.SalesPriceBreakUpsertDto.CurrencyCode.'
          nullable: true
        pricingType:
          $ref: '#/components/schemas/DtoPriceBreakSalesPriceBreakPricingTypeEnum'
        unitPrice:
          minimum: 0
          type: number
          description: The unit price at quantity 1. Required when FulcrumProduct.PublicApi.Dto.PriceBreak.SalesPriceBreakUpsertDto.PricingType is Price.
          format: double
          nullable: true
        margin:
          type: number
          description: The margin percentage at quantity 1. Required when FulcrumProduct.PublicApi.Dto.PriceBreak.SalesPriceBreakUpsertDto.PricingType is Margin.
          format: double
          nullable: true
        showOnPdf:
          type: boolean
          description: Whether the unit/base price should be displayed on customer-facing PDFs.
        breakPoints:
          type: array
          items:
            $ref: '#/components/schemas/PriceBreakItemPriceBreakPointDto'
          description: 'Quantity break points beyond quantity 1. The complete set of break points is replaced

            on each upsert; omit a quantity to remove it.'
      additionalProperties: false
      description: "Upsert payload for a sales price break.\n            \nIdentity key (item-id is the route parameter):\n  FulcrumProduct.PublicApi.Dto.PriceBreak.SalesPriceBreakUpsertDto.CustomerId, FulcrumProduct.PublicApi.Dto.PriceBreak.SalesPriceBreakUpsertDto.CustomerTierId, FulcrumProduct.PublicApi.Dto.PriceBreak.SalesPriceBreakUpsertDto.CurrencyCode, FulcrumProduct.PublicApi.Dto.PriceBreak.SalesPriceBreakUpsertDto.UnitOfMeasureName.\nIf a price break already exists for this key, it is updated; otherwise a new one is created."
  securitySchemes:
    bearer:
      type: http
      description: Your API bearer token generated in System Data > Advanced > Public API Setup
      scheme: bearer
      bearerFormat: JWT
x-tagGroups:
- name: Accounting Code
  tags:
  - Accounting Code
- name: Attachment
  tags:
  - Attachment
  - Attachment Certification
- name: Auth
  tags:
  - Auth
- name: CAPAs
  tags:
  - CAPAs
- name: Chart Of Accounts
  tags:
  - Chart Of Accounts
- name: Company Info
  tags:
  - Company Info
- name: Custom Field
  tags:
  - Custom Field
- name: Customer
  tags:
  - Customer
  - Customer Address
  - Customer Contact
- name: Customer Tier
  tags:
  - Customer Tier
- name: Department
  tags:
  - Department
- name: Equipment
  tags:
  - Equipment
- name: Gauge Code
  tags:
  - Gauge Code
- name: Grade Code
  tags:
  - Grade Code
- name: InProcessTrackingFieldType
  tags:
  - InProcessTrackingFieldType
- name: Inventory
  tags:
  - Inventory
- name: Inventory Event
  tags:
  - Inventory Event
  - Inventory Event Details
- name: Inventory Lot
  tags:
  - Inventory Lot
- name: Inventory Transactions
  tags:
  - Inventory Transactions
- name: Invoice
  tags:
  - Invoice
  - Invoice Deposit Adjustment Line Item
  - Invoice Deposit Line Item
  - Invoice Discount Line Item
  - Invoice Fee Line Item
  - Invoice Line Item
  - Invoice Note
  - Invoice Part Line Item
  - Invoice Refund Line Item
  - Invoice Shipping Charge Line Item
  - Invoice Tax Line Item
- name: Item
  tags:
  - Item
  - Item Custom Fields
  - Item Customer
  - Item Material Vendor
  - Item PriceBreaks
  - Item Routing
  - Item Vendor
- name: Item Category
  tags:
  - Item Category
- name: Item Class
  tags:
  - Item Class
- name: Item Tag
  tags:
  - Item Tag
- name: Job
  tags:
  - Job
  - Job Custom Fields
  - Job Full Routing
  - Job Part Line Item Full Routing
  - Job Item To Make
  - Job Item To Make Operation
  - Job Operation
- name: Job Tracking Timers
  tags:
  - Job Tracking Timers
- name: Location
  tags:
  - Location
- name: Material
  tags:
  - Material
  - Material Vendor
- name: Material Code
  tags:
  - Material Code
- name: NCRs
  tags:
  - NCRs
- name: Note
  tags:
  - Note
- name: Operation
  tags:
  - Operation
- name: Payment Term
  tags:
  - Payment Term
- name: Purchase Order
  tags:
  - Purchase Order
  - Purchase Order Custom Fields
  - Purchase Order Discount Line Item
  - Purchase Order Fee Line Item
  - Purchase Order Line Item
  - Purchase Order Outside Processing Line Item
  - Purchase Order Part Line Item
  - Purchase Order Tax Line Item
  - Purchase Order Vendor Credit Line Item
- name: Quote
  tags:
  - Quote
  - Quote Custom Fields
  - Quote Discount Line Item
  - Quote Fee Line Item
  - Quote Part Line Item
  - Quote Part Line Item Custom Fields
  - Quote Part Line Item Full Routing
  - Quote Tax Line Item
- name: Receiving
  tags:
  - Receiving Receipt
  - Receiving Receipt Line Item
- name: Refund Reason Code
  tags:
  - Refund Reason Code
- name: Reporting
  tags:
  - Reporting
- name: Sales Order
  tags:
  - Sales Order
  - Sales Order Blanket Line Item
  - Sales Order Custom Fields
  - Sales Order Discount Line Item
  - Sales Order Fee Line Item
  - Sales Order Line Item
  - Sales Order Part Line Item
  - Sales Order Part Line Item Custom Fields
  - Sales Order Part Line Item Full Routing
  - Sales Order Refund Line Item
  - Sales Order Shipping Charge Line Item
  - Sales Order Tax Line Item
- name: ScrapReport
  tags:
  - ScrapReport
- name: Shape Code
  tags:
  - Shape Code
- name: Shipment Line Items (V3)
  tags:
  - Shipment Line Items (V3)
- name: Shipment
  tags:
  - Shipment Custom Fields
- name: Shipments
  tags:
  - Shipments
- name: Shipping Method
  tags:
  - Shipping Method
- name: Tag
  tags:
  - Tag
- name: Tax Rate
  tags:
  - Tax Rate
- name: Time Clock Timers
  tags:
  - Time Clock Timers
- name: Timer
  tags:
  - Timer
- name: User
  tags:
  - User
  - User Status
- name: Vendor
  tags:
  - Vendor
  - Vendor Address
  - Vendor Contact
- name: Work Order
  tags:
  - Work Order
- name: WorkCenter
  tags:
  - WorkCenter