Fulcrumpro Quote API
The Quote API from Fulcrumpro — 7 operation(s) for quote.
The Quote API from Fulcrumpro — 7 operation(s) for quote.
openapi: 3.0.4
info:
title: Fulcrum Public Accounting Code Quote API
version: v1
servers:
- url: https://api.fulcrumpro.com
tags:
- name: Quote
paths:
/api/quotes/{quoteId}/to-sales-order:
post:
tags:
- Quote
summary: Convert a quote to a sales order
operationId: ConvertToSalesOrder
parameters:
- name: quoteId
in: path
required: true
schema:
maxLength: 24
minLength: 24
type: string
responses:
'200':
description: Sales order created
content:
application/json:
schema:
$ref: '#/components/schemas/CreatedResponseDto'
application/problem+json:
schema:
$ref: '#/components/schemas/CreatedResponseDto'
'400':
description: Validation issue or invalid/bad request
'404':
description: Quote did not exist
x-c4-mutation: true
x-c4-required-permissions:
- Orders-Quotes-Edit Quote
- Orders-SalesOrders-Edit Sales Order
/api/quote:
post:
tags:
- Quote
summary: TO BE REMOVED 06/30/2025 - Create a new draft quote
description: Please use provided route instead ==> quotes
operationId: CreateQuote_deprecated
requestBody:
content:
application/json-patch+json:
schema:
$ref: '#/components/schemas/QuoteCreateDto'
application/json:
schema:
$ref: '#/components/schemas/QuoteCreateDto'
text/json:
schema:
$ref: '#/components/schemas/QuoteCreateDto'
application/*+json:
schema:
$ref: '#/components/schemas/QuoteCreateDto'
required: true
responses:
'200':
description: Quote created
content:
application/json:
schema:
$ref: '#/components/schemas/CreatedResponseDto'
application/problem+json:
schema:
$ref: '#/components/schemas/CreatedResponseDto'
'400':
description: Validation issues with input
deprecated: true
x-c4-mutation: true
x-c4-required-permissions:
- Orders-Quotes-Edit Quote
/api/quotes:
post:
tags:
- Quote
summary: Create a new draft quote
operationId: CreateQuote
requestBody:
content:
application/json-patch+json:
schema:
$ref: '#/components/schemas/QuoteCreateDto'
application/json:
schema:
$ref: '#/components/schemas/QuoteCreateDto'
text/json:
schema:
$ref: '#/components/schemas/QuoteCreateDto'
application/*+json:
schema:
$ref: '#/components/schemas/QuoteCreateDto'
required: true
responses:
'200':
description: Quote created
content:
application/json:
schema:
$ref: '#/components/schemas/CreatedResponseDto'
application/problem+json:
schema:
$ref: '#/components/schemas/CreatedResponseDto'
'400':
description: Validation issues with input
x-c4-mutation: true
x-c4-required-permissions:
- Orders-Quotes-Edit Quote
/api/quote/{quoteId}:
delete:
tags:
- Quote
summary: TO BE REMOVED 06/30/2025 - Delete a specific Quote
description: Please use provided route instead ==> quotes/{quoteId}
operationId: DeleteQuote_deprecated
parameters:
- name: quoteId
in: path
required: true
schema:
maxLength: 24
minLength: 24
type: string
responses:
'200':
description: Success
'204':
description: Quote did not exist
deprecated: true
/api/quotes/{quoteId}:
delete:
tags:
- Quote
summary: Delete a specific Quote
operationId: DeleteQuote
parameters:
- name: quoteId
in: path
required: true
schema:
maxLength: 24
minLength: 24
type: string
responses:
'200':
description: Success
'204':
description: Quote did not exist
get:
tags:
- Quote
summary: Get a specific Quote
operationId: GetQuote
parameters:
- name: quoteId
in: path
required: true
schema:
maxLength: 24
minLength: 24
type: string
responses:
'200':
description: The Quote for the given id
content:
application/json:
schema:
$ref: '#/components/schemas/QuoteDto'
application/problem+json:
schema:
$ref: '#/components/schemas/QuoteDto'
'404':
description: Quote did not exist
x-c4-required-permissions:
- Orders-Quotes-View Quote
patch:
tags:
- Quote
summary: Partially update a quote
operationId: PatchQuote
parameters:
- name: quoteId
in: path
required: true
schema:
maxLength: 24
minLength: 24
type: string
requestBody:
content:
application/json-patch+json:
schema:
$ref: '#/components/schemas/JsonPatchDocument'
responses:
'200':
description: Quote item
content:
application/json:
schema:
$ref: '#/components/schemas/QuoteDto'
application/problem+json:
schema:
$ref: '#/components/schemas/QuoteDto'
'404':
description: Quote did not exist
x-c4-mutation: true
x-c4-required-permissions:
- Orders-Quotes-Edit Quote
put:
tags:
- Quote
summary: Update a quote
operationId: UpdateQuote
parameters:
- name: quoteId
in: path
required: true
schema:
maxLength: 24
minLength: 24
type: string
requestBody:
content:
application/json-patch+json:
schema:
$ref: '#/components/schemas/QuoteUpdateDto'
application/json:
schema:
$ref: '#/components/schemas/QuoteUpdateDto'
text/json:
schema:
$ref: '#/components/schemas/QuoteUpdateDto'
application/*+json:
schema:
$ref: '#/components/schemas/QuoteUpdateDto'
required: true
responses:
'200':
description: Quote item
content:
application/json:
schema:
$ref: '#/components/schemas/QuoteDto'
application/problem+json:
schema:
$ref: '#/components/schemas/QuoteDto'
'404':
description: Quote did not exist
/api/quotes/list:
post:
tags:
- Quote
summary: Find quotes based on search parameters.
operationId: ListQuote
parameters:
- name: Sort.Field
in: query
description: Sort field
schema:
minLength: 1
type: string
- name: Sort.Dir
in: query
description: Sort direction
schema:
$ref: '#/components/schemas/CommonEnumSortDirectionEnum'
- name: Skip
in: query
description: Number of records to skip.
schema:
minimum: 0
type: integer
format: int32
- name: Take
in: query
description: Number of records to return (maximum)
schema:
maximum: 5000
minimum: 0
type: integer
format: int32
requestBody:
content:
application/json-patch+json:
schema:
$ref: '#/components/schemas/QuoteRequestFindParameters'
application/json:
schema:
$ref: '#/components/schemas/QuoteRequestFindParameters'
text/json:
schema:
$ref: '#/components/schemas/QuoteRequestFindParameters'
application/*+json:
schema:
$ref: '#/components/schemas/QuoteRequestFindParameters'
responses:
'200':
description: List of quotes matching the filters
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/QuoteDto'
application/problem+json:
schema:
type: array
items:
$ref: '#/components/schemas/QuoteDto'
x-c4-required-permissions:
- Orders-Quotes-View Quote
/api/quotes/{quoteId}/status:
post:
tags:
- Quote
summary: Update a quote status
operationId: StatusUpdateQuote
parameters:
- name: quoteId
in: path
required: true
schema:
maxLength: 24
minLength: 24
type: string
requestBody:
content:
application/json-patch+json:
schema:
$ref: '#/components/schemas/QuoteRequestUpdateQuoteStatusRequest'
application/json:
schema:
$ref: '#/components/schemas/QuoteRequestUpdateQuoteStatusRequest'
text/json:
schema:
$ref: '#/components/schemas/QuoteRequestUpdateQuoteStatusRequest'
application/*+json:
schema:
$ref: '#/components/schemas/QuoteRequestUpdateQuoteStatusRequest'
required: true
responses:
'200':
description: Success
'400':
description: invalid status change
'404':
description: quote did not exist
x-c4-mutation: true
x-c4-required-permissions:
- Orders-Quotes-Edit Quote
components:
schemas:
DtoQuoteUpdateQuotesStatus:
enum:
- draft
- needsApproval
- approved
- sent
- won
- lost
type: string
description: Statuses you can update a quote too
CustomerContactCreateDto:
required:
- firstName
type: object
properties:
firstName:
maxLength: 200
minLength: 1
type: string
description: First name
lastName:
maxLength: 200
minLength: 1
type: string
description: Last name
nullable: true
position:
maxLength: 200
minLength: 1
type: string
description: Position / Job Title
nullable: true
phone:
type: string
description: Phone number
nullable: true
cellPhone:
type: string
description: Cellphone number
nullable: true
email:
type: string
description: Email address
format: email
nullable: true
additionalProperties: false
description: A customer contact
CommonExternalReferenceFindDto:
required:
- key
type: object
properties:
key:
maxLength: 50
minLength: 0
type: string
description: Specifies the group name (key) that this external reference originates from (e.g. an external application name)
type:
maxLength: 50
minLength: 0
type: string
description: Arbitrary sub-key that can be used to qualify the value
nullable: true
externalId:
maxLength: 500
minLength: 0
type: string
description: The external identifier
nullable: true
additionalProperties: false
description: Search parameter for identifier record(s) via their external identifiers.
CommonAddressDto:
required:
- address1
- city
- postalCode
type: object
properties:
name:
maxLength: 200
minLength: 1
type: string
description: Name of the address (Bob's Shipping, Primary, Reno Warehouse, etc).
nullable: true
address1:
maxLength: 200
minLength: 1
type: string
description: Primary address line.
address2:
maxLength: 200
minLength: 1
type: string
description: Second address line.
nullable: true
address3:
maxLength: 200
minLength: 1
type: string
description: Third address line.
nullable: true
city:
maxLength: 200
minLength: 1
type: string
description: Address city
stateProvince:
maxLength: 200
minLength: 1
type: string
description: Address state/province.
nullable: true
postalCode:
maxLength: 200
minLength: 1
type: string
description: Postal/zip code.
country:
maxLength: 200
minLength: 1
type: string
description: Country identifier.
nullable: true
phone:
type: string
description: Phone number.
format: tel
nullable: true
email:
type: string
description: Email address
format: email
nullable: true
additionalProperties: false
description: Address definition
QuoteCreateDto:
required:
- customerId
type: object
properties:
customerId:
maxLength: 24
minLength: 24
type: string
description: The id of the customer to be created
billingAddress:
$ref: '#/components/schemas/CommonAddressCreateDto'
shippingAddress:
$ref: '#/components/schemas/CommonAddressCreateDto'
contact:
$ref: '#/components/schemas/CustomerContactCreateDto'
externalReferences:
type: object
additionalProperties:
$ref: '#/components/schemas/CommonExternalReferenceDto'
description: Arbitrary key-value-pair like data that can be used to later on search for the Quote
nullable: true
salesPersonId:
maxLength: 24
minLength: 24
type: string
description: 'Sales Person identifier. Please reference /api/users endpoint.
If not provided, the salesperson defined on the customer will be used.'
nullable: true
crmOpportunity:
$ref: '#/components/schemas/FulcrumProDomainReference'
opportunity:
type: string
description: CRM Opportunity identifier.
nullable: true
notesToCustomer:
maxLength: 2000
minLength: 1
type: string
description: A field for the seller to provide additional details or instructions for the customer relating to the order.
nullable: true
additionalProperties: false
description: Details of sales order to be created
JsonPatchDocument:
type: array
items:
$ref: '#/components/schemas/JsonPatchOperation'
description: Array of operations to perform
QuoteRequestUpdateQuoteStatusRequest:
required:
- status
type: object
properties:
status:
$ref: '#/components/schemas/DtoQuoteUpdateQuotesStatus'
additionalProperties: false
description: Update a Quote status.
CreatedResponseDto:
required:
- id
type: object
properties:
id:
minLength: 1
type: string
description: The id of the created record
additionalProperties: false
description: Response for a created record
DtoQuotesStatus:
enum:
- open
- draft
- needsApproval
- approved
- sent
- won
- lost
type: string
description: Quotes status
QuoteRequestFindParameters:
type: object
properties:
numbers:
maxItems: 500
minItems: 1
type: array
items:
type: integer
format: int32
description: Filter quotes to only given numbers
nullable: true
externalReference:
$ref: '#/components/schemas/CommonExternalReferenceFindDto'
status:
$ref: '#/components/schemas/DtoQuotesStatus'
modifiedAfterUtc:
type: string
description: Filter to quote records modified after the given datetime (in UTC)
format: date-time
nullable: true
additionalProperties: false
description: Parameters used for searching/finding quotes.
CommonExternalReferenceDto:
required:
- externalId
type: object
properties:
type:
maxLength: 50
minLength: 0
type: string
description: Specifies the type of this identifier.
nullable: true
externalId:
maxLength: 500
minLength: 0
type: string
description: The external identifier
displayId:
maxLength: 500
minLength: 0
type: string
description: 'The id/number that a human sees. For a quote, this might be ''Q1000''. If this is null, the display
will fall back to the ExternalId'
nullable: true
status:
type: string
description: A status for the external reference
nullable: true
url:
type: string
description: An external url for the reference
nullable: true
modifiedUtc:
type: string
description: Date the external reference was modified
format: date-time
nullable: true
lastSyncedUtc:
type: string
description: 'Date the external system last successfully synced this reference. Set by integrations
on successful sync only; null means never synced or that the sync timestamp isn''t
maintained by the integration.'
format: date-time
nullable: true
additionalProperties: false
description: The external reference for entities that implement FulcrumProduct.Domain.Common.IHasExternalReferences
JsonPatchOperation:
type: object
properties:
op:
type: string
value:
type: string
path:
type: string
DomainCurrenciesDocumentCurrencyInfo:
type: object
properties:
id:
type: string
format: uuid
documentCurrencyCode:
type: string
nullable: true
primaryCurrencyCode:
type: string
nullable: true
exchangeRate:
type: number
format: double
exchangeRateUpdatedOnUtc:
type: string
format: date-time
exchangeRateError:
type: string
nullable: true
additionalProperties: false
FulcrumProDomainReference:
type: object
properties:
primaryKeyId:
type: integer
format: int32
id:
maxLength: 36
minLength: 0
type: string
nullable: true
name:
maxLength: 500
minLength: 0
type: string
nullable: true
createdUtc:
type: string
format: date-time
additionalProperties: false
QuoteUpdateDto:
type: object
properties:
billingAddress:
$ref: '#/components/schemas/CommonAddressCreateDto'
externalReferences:
type: object
additionalProperties:
$ref: '#/components/schemas/CommonExternalReferenceDto'
description: Arbitrary key-value-pair like data that can be used to later on search for the Quote
nullable: true
opportunity:
type: string
description: CRM Opportunity identifier.
nullable: true
salesPersonId:
maxLength: 24
minLength: 24
type: string
description: Sales Person identifier. Please reference /api/users endpoint.
nullable: true
notesToCustomer:
maxLength: 2000
minLength: 1
type: string
description: A field for the seller to provide additional details or instructions for the customer relating to the order.
nullable: true
additionalProperties: false
description: Details of quote to be updated
QuoteDto:
required:
- createdUtc
- customerId
- id
- number
- quotedDate
- status
type: object
properties:
id:
maxLength: 24
minLength: 24
type: string
description: Unique id associated to this entity.
number:
minimum: 0
type: integer
description: Number
format: int32
customerId:
maxLength: 24
minLength: 24
type: string
description: Customer identifier. Please reference /api/customers endpoint.
quotedDate:
type: string
description: Quoted date (generally the creation date but can be post/pre-dated).
format: date-time
status:
$ref: '#/components/schemas/DtoQuotesStatus'
externalReferences:
type: object
additionalProperties:
$ref: '#/components/schemas/CommonExternalReferenceDto'
description: External references associated with this entity.
nullable: true
totalInPrimaryCurrency:
type: number
description: The total quote price in local currency of the fulcrum customer
format: double
nullable: true
currencyInfo:
$ref: '#/components/schemas/DomainCurrenciesDocumentCurrencyInfo'
customFields:
type: object
additionalProperties: {}
description: Custom fields that have been defined for the quote;
nullable: true
opportunity:
type: string
description: CRM Opportunity identifier.
nullable: true
salesPersonId:
maxLength: 24
minLength: 24
type: string
description: 'Unique identifier of the sales person attached to this sales order.
Please reference /api/users endpoints.'
nullable: true
billingAddress:
$ref: '#/components/schemas/CommonAddressDto'
shippingAddresses:
type: array
items:
$ref: '#/components/schemas/CommonAddressDto'
description: The customer address(es) that the quote contents should be shipped to.
nullable: true
companyId:
maxLength: 24
minLength: 24
type: string
description: Company identifier. Please reference /api/companies endpoint.
nullable: true
paymentTermsId:
maxLength: 24
minLength: 24
type: string
description: Payment terms key identifier. Please reference /api/payment-terms endpoint.
nullable: true
paymentTerms:
$ref: '#/components/schemas/CommonReferenceDto'
createdUtc:
type: string
description: Date this record was created (UTC).
format: date-time
notesToCustomer:
maxLength: 2000
minLength: 1
type: string
description: A field for the seller to provide additional details or instructions for the customer relating to the order.
nullable: true
additionalProperties: false
description: Represents a Quote
CommonEnumSortDirectionEnum:
enum:
- ascending
- descending
type: string
description: Specify sorting direction.
CommonAddressCreateDto:
required:
- address1
- city
- postalCode
type: object
properties:
name:
maxLength: 200
minLength: 1
type: string
description: Name of the address (Bob's Shipping, Primary, Reno Warehouse, etc).
nullable: true
address1:
maxLength: 200
minLength: 1
type: string
description: Primary address line.
address2:
maxLength: 200
minLength: 1
type: string
description: Second address line.
nullable: true
address3:
maxLength: 200
minLength: 1
type: string
description: Third address line.
nullable: true
city:
maxLength: 200
minLength: 1
type: string
description: Address city
stateProvince:
maxLength: 200
minLength: 1
type: string
description: Address state/province.
nullable: true
postalCode:
maxLength: 200
minLength: 1
type: string
description: Postal/zip code.
country:
maxLength: 200
minLength: 1
type: string
description: Country identifier.
nullable: true
shippingLeadTime:
minimum: 0
type: integer
description: Lead time for shipping contents.
format: int32
nullable: true
primaryBilling:
type: boolean
description: Signifies if this is a primary billing address.
primaryShipping:
type: boolean
description: Signifies if this is a primary billing address.
email:
type: string
description: Email address
format: email
nullable: true
phone:
type: string
description: Associated phone number
nullable: true
fax:
type: string
description: Associated fax number
nullable: true
notes:
type: string
description: General notes associated to this customer address
nullable: true
additionalProperties: false
description: Address with additional context
CommonReferenceDto:
type: object
properties:
id:
maxLength: 24
minLength: 24
type: string
description: Unique Id associated to the referenced object
nullable: true
name:
maxLength: 200
minLength: 1
type: string
description: Descriptive name associated to the object
nullable: true
additionalProperties: false
description: Represents a reference to a document in a DB collection
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