Skip to content

Depot sales quotetools

Registers the authenticated quoting-tool routes (psaMux).

This page is generated from the Depot route table. Every operation carries the permission it needs and the anchor an agent can link to.

POST /api/v1/public/quote-tools/{vendor}/webhook/{pathToken}

Section titled “POST /api/v1/public/quote-tools/{vendor}/webhook/{pathToken}”

POSTNo permission neededpublic facemspInbound hook

Source: [object Object]

receiveWebhook stores a quoting tool’s delivery as a hint (verify, store once, 200).

Every unusable path answers the same 404.

NameInTypeRequiredDescription
pathTokenpathstringYes
vendorpathstringYes
StatusBodyDescription
200application/json, objectSuccess.
400application/problem+json, ProblemDetailsOne or more validation errors occurred.
401application/problem+json, ProblemDetailsThe webhook did not verify.
404application/problem+json, ProblemDetailsNo webhook endpoint matches.
413application/problem+json, ProblemDetailsThe body is too large.
429application/problem+json, ProblemDetailsSlow down.
500application/problem+json, ProblemDetailsThe request failed.
Terminal window
# This operation is public. It takes no credentials.
curl -X POST 'https://depot.example.com/api/v1/public/quote-tools/<vendor>/webhook/<pathToken>' \
-H 'Accept: application/json'

GETcrm:readmsp facemspIdempotent

Source: [object Object]

listConnectors lists the quoting-tool connections.

StatusBodyDescription
200application/json, array of QuoteToolConnectorViewSuccess.
400application/problem+json, ProblemDetailsOne or more validation errors occurred.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold crm:read.
404application/problem+json, ProblemDetailsNo resource matches.
500application/problem+json, ProblemDetailsThe request failed.
503application/problem+json, ProblemDetailsQuoting tools are not available on this server.

200 response body

FieldTypeDescription
[].baseUrlrequiredstring
[].enabledrequiredboolean
[].hasCredentialsrequiredboolean
[].hasWebhookrequiredboolean
[].lastErrorrequiredstring
[].lastErrorKindstring or null
[].lastPollAtstring (date-time) or null
[].namerequiredstring
[].publicIdrequiredstring
[].rowVersionrequiredinteger

int64.

[].vendorrequiredstring
[].webhookUrlstring or null
Terminal window
# Sign in first. outpost_console is a session cookie, so send it with every request.
# This operation is idempotent. Repeating it does not repeat its effect.
curl -X GET 'https://depot.example.com/api/v1/sales/quote-tools' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

POSTcrm:approvemsp facemsp

Source: [object Object]

createConnector connects a quoting tool.

Credentials are write-only.

Required, sent as application/json.

FieldTypeDescription
baseUrlstring or null
credentialsrequiredobject
enabledboolean or null
namestring or null
rowVersioninteger or null

int64.

vendorstring or null
StatusBodyDescription
201application/json, QuoteToolConnectorViewCreated.
400application/problem+json, ProblemDetailsThe request body is not valid JSON.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold crm:approve.
404application/problem+json, ProblemDetailsNo resource matches.
500application/problem+json, ProblemDetailsThe request failed.
503application/problem+json, ProblemDetailsQuoting tools are not available on this server.

201 response body

FieldTypeDescription
baseUrlrequiredstring
enabledrequiredboolean
hasCredentialsrequiredboolean
hasWebhookrequiredboolean
lastErrorrequiredstring
lastErrorKindstring or null
lastPollAtstring (date-time) or null
namerequiredstring
publicIdrequiredstring
rowVersionrequiredinteger

int64.

vendorrequiredstring
webhookUrlstring or null
Terminal window
# Sign in first. outpost_console is a session cookie, so send it with every request.
curl -X POST 'https://depot.example.com/api/v1/sales/quote-tools' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-b 'outpost_console=<console-session>' \
--data '{
"baseUrl": "string",
"credentials": {
"key": "string"
},
"enabled": false,
"name": "string",
"rowVersion": 0,
"vendor": "string"
}'

GETcrm:readmsp facemspIdempotent

Source: [object Object]

getConnector reads one quoting-tool connection.

NameInTypeRequiredDescription
idpathstringYesA uuid.
StatusBodyDescription
200application/json, QuoteToolConnectorViewSuccess.
400application/problem+json, ProblemDetailsOne or more validation errors occurred.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold crm:read.
404application/problem+json, ProblemDetailsNo resource matches that id.
500application/problem+json, ProblemDetailsThe request failed.
503application/problem+json, ProblemDetailsQuoting tools are not available on this server.

200 response body

FieldTypeDescription
baseUrlrequiredstring
enabledrequiredboolean
hasCredentialsrequiredboolean
hasWebhookrequiredboolean
lastErrorrequiredstring
lastErrorKindstring or null
lastPollAtstring (date-time) or null
namerequiredstring
publicIdrequiredstring
rowVersionrequiredinteger

int64.

vendorrequiredstring
webhookUrlstring or null
Terminal window
# Sign in first. outpost_console is a session cookie, so send it with every request.
# This operation is idempotent. Repeating it does not repeat its effect.
curl -X GET 'https://depot.example.com/api/v1/sales/quote-tools/<id>' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

PATCHcrm:approvemsp facemsp

Source: [object Object]

patchConnector changes a connection’s name, base URL, enabled flag or credentials.

The vendor never changes. rowVersion is required.

NameInTypeRequiredDescription
idpathstringYesA uuid.

Required, sent as application/json.

FieldTypeDescription
baseUrlstring or null
credentialsrequiredobject
enabledboolean or null
namestring or null
rowVersioninteger or null

int64.

vendorstring or null
StatusBodyDescription
200application/json, QuoteToolConnectorViewSuccess.
400application/problem+json, ProblemDetailsThe request body is not valid JSON.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold crm:approve.
404application/problem+json, ProblemDetailsNo resource matches that id.
412application/problem+json, ProblemDetailsThis connection changed since you read it. Reload and try again.
500application/problem+json, ProblemDetailsThe request failed.
503application/problem+json, ProblemDetailsQuoting tools are not available on this server.

200 response body

FieldTypeDescription
baseUrlrequiredstring
enabledrequiredboolean
hasCredentialsrequiredboolean
hasWebhookrequiredboolean
lastErrorrequiredstring
lastErrorKindstring or null
lastPollAtstring (date-time) or null
namerequiredstring
publicIdrequiredstring
rowVersionrequiredinteger

int64.

vendorrequiredstring
webhookUrlstring or null
Terminal window
# Sign in first. outpost_console is a session cookie, so send it with every request.
curl -X PATCH 'https://depot.example.com/api/v1/sales/quote-tools/<id>' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-b 'outpost_console=<console-session>' \
--data '{
"baseUrl": "string",
"credentials": {
"key": "string"
},
"enabled": false,
"name": "string",
"rowVersion": 0,
"vendor": "string"
}'

DELETEcrm:approvemsp facemspIdempotent

Source: [object Object]

deleteConnector removes a connection; its webhook stops resolving.

Imported quotes stay.

NameInTypeRequiredDescription
idpathstringYesA uuid.
StatusBodyDescription
204NoneSuccess, with no body.
400application/problem+json, ProblemDetailsOne or more validation errors occurred.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold crm:approve.
404application/problem+json, ProblemDetailsNo resource matches that id.
500application/problem+json, ProblemDetailsThe request failed.
503application/problem+json, ProblemDetailsQuoting tools are not available on this server.
Terminal window
# Sign in first. outpost_console is a session cookie, so send it with every request.
# This operation is idempotent. Repeating it does not repeat its effect.
curl -X DELETE 'https://depot.example.com/api/v1/sales/quote-tools/<id>' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

PUT /api/v1/sales/quote-tools/{id}/accounts/{externalAccountId}

Section titled “PUT /api/v1/sales/quote-tools/{id}/accounts/{externalAccountId}”

PUTcrm:writemsp facemspIdempotent

Source: [object Object]

putAccount maps one of the tool’s customer accounts to a prospect or a client (exactly one), by the tool’s account id.

NameInTypeRequiredDescription
externalAccountIdpathstringYes
idpathstringYesA uuid.

Required, sent as application/json.

FieldTypeDescription
clientIdstring or null
prospectIdstring or null
StatusBodyDescription
200application/json, QuoteToolAccountViewSuccess.
400application/problem+json, ProblemDetailsThe request body is not valid JSON.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold crm:write.
404application/problem+json, ProblemDetailsNo resource matches that id.
500application/problem+json, ProblemDetailsThe request failed.
503application/problem+json, ProblemDetailsQuoting tools are not available on this server.

200 response body

FieldTypeDescription
clientIdstring or null
connectorIdrequiredstring
externalAccountIdrequiredstring
externalAccountNamestring or null
linkedAtstring (date-time) or null
partyNamestring or null
prospectIdstring or null
publicIdrequiredstring
Terminal window
# Sign in first. outpost_console is a session cookie, so send it with every request.
# This operation is idempotent. Repeating it does not repeat its effect.
curl -X PUT 'https://depot.example.com/api/v1/sales/quote-tools/<id>/accounts/<externalAccountId>' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-b 'outpost_console=<console-session>' \
--data '{
"clientId": "string",
"prospectId": "string"
}'

DELETE /api/v1/sales/quote-tools/{id}/accounts/{externalAccountId}

Section titled “DELETE /api/v1/sales/quote-tools/{id}/accounts/{externalAccountId}”

DELETEcrm:writemsp facemspIdempotent

Source: [object Object]

deleteAccount removes an account mapping.

Quotes already imported keep their party.

NameInTypeRequiredDescription
externalAccountIdpathstringYes
idpathstringYesA uuid.
StatusBodyDescription
204NoneSuccess, with no body.
400application/problem+json, ProblemDetailsOne or more validation errors occurred.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold crm:write.
404application/problem+json, ProblemDetailsNo resource matches that id.
500application/problem+json, ProblemDetailsThe request failed.
503application/problem+json, ProblemDetailsQuoting tools are not available on this server.
Terminal window
# Sign in first. outpost_console is a session cookie, so send it with every request.
# This operation is idempotent. Repeating it does not repeat its effect.
curl -X DELETE 'https://depot.example.com/api/v1/sales/quote-tools/<id>/accounts/<externalAccountId>' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

POSTcrm:approvemsp facemsp

Source: [object Object]

pollConnector asks the tool for changed quotes now and queues each one.

NameInTypeRequiredDescription
idpathstringYesA uuid.
StatusBodyDescription
200application/json, objectSuccess.
400application/problem+json, ProblemDetailsOne or more validation errors occurred.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold crm:approve.
404application/problem+json, ProblemDetailsNo resource matches that id.
500application/problem+json, ProblemDetailsThe request failed.
502application/problem+json, ProblemDetailsThe request was refused.
503application/problem+json, ProblemDetailsQuoting tools are not available on this server.
Terminal window
# Sign in first. outpost_console is a session cookie, so send it with every request.
curl -X POST 'https://depot.example.com/api/v1/sales/quote-tools/<id>/poll' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

POSTcrm:approvemsp facemsp

Source: [object Object]

testConnector proves the stored credentials with one read call.

NameInTypeRequiredDescription
idpathstringYesA uuid.
StatusBodyDescription
200application/json, objectSuccess.
400application/problem+json, ProblemDetailsOne or more validation errors occurred.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold crm:approve.
404application/problem+json, ProblemDetailsNo resource matches that id.
500application/problem+json, ProblemDetailsThe request failed.
502application/problem+json, ProblemDetailsThe request was refused.
503application/problem+json, ProblemDetailsQuoting tools are not available on this server.
Terminal window
# Sign in first. outpost_console is a session cookie, so send it with every request.
curl -X POST 'https://depot.example.com/api/v1/sales/quote-tools/<id>/test' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

POST /api/v1/sales/quote-tools/{id}/webhook/rotate

Section titled “POST /api/v1/sales/quote-tools/{id}/webhook/rotate”

POSTcrm:approvemsp facemspInbound hook

Source: [object Object]

rotateWebhook mints a new webhook URL and secret, replacing the old ones.

Both are shown once.

NameInTypeRequiredDescription
idpathstringYesA uuid.
StatusBodyDescription
200application/json, QuoteToolRotateViewSuccess.
400application/problem+json, ProblemDetailsOne or more validation errors occurred.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold crm:approve.
404application/problem+json, ProblemDetailsNo resource matches that id.
500application/problem+json, ProblemDetailsThe request failed.
503application/problem+json, ProblemDetailsQuoting tools are not available on this server.

200 response body

FieldTypeDescription
baseUrlrequiredstring
enabledrequiredboolean
hasCredentialsrequiredboolean
hasWebhookrequiredboolean
lastErrorrequiredstring
lastErrorKindstring or null
lastPollAtstring (date-time) or null
namerequiredstring
publicIdrequiredstring
rowVersionrequiredinteger

int64.

vendorrequiredstring
webhookSecretrequiredstring
webhookUrlstring or null
Terminal window
# Sign in first. outpost_console is a session cookie, so send it with every request.
curl -X POST 'https://depot.example.com/api/v1/sales/quote-tools/<id>/webhook/rotate' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

GETcrm:readmsp facemspIdempotent

Source: [object Object]

listAccounts lists a connector’s customer accounts: every mapped one, and every account seen on a waiting quote that is not mapped yet (publicId "" and linkedAt null), so the operator can map them.

NameInTypeRequiredDescription
connectorquerystringNo
StatusBodyDescription
200application/json, array of QuoteToolAccountViewSuccess.
400application/problem+json, ProblemDetailsOne or more validation errors occurred.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold crm:read.
404application/problem+json, ProblemDetailsNo resource matches.
500application/problem+json, ProblemDetailsThe request failed.
503application/problem+json, ProblemDetailsQuoting tools are not available on this server.

200 response body

FieldTypeDescription
[].clientIdstring or null
[].connectorIdrequiredstring
[].externalAccountIdrequiredstring
[].externalAccountNamestring or null
[].linkedAtstring (date-time) or null
[].partyNamestring or null
[].prospectIdstring or null
[].publicIdrequiredstring
Terminal window
# Sign in first. outpost_console is a session cookie, so send it with every request.
# This operation is idempotent. Repeating it does not repeat its effect.
curl -X GET 'https://depot.example.com/api/v1/sales/quote-tools/accounts?connector=<connector>' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

GETcrm:readmsp facemspIdempotent

Source: [object Object]

listLinks pages the external quotes seen, newest change first.

NameInTypeRequiredDescription
connectorquerystringNo
pagequeryintegerNoOne-based page number. Defaults to 1.
pageSizequeryintegerNoRows per page, 1 to 200. Defaults to 50.
statequerystring, one of converted, ignored, imported, pending_reviewNoComma-separated set. An unrecognised value is refused.
StatusBodyDescription
200application/json, PagedResultQuoteToolLinkViewSuccess.
400application/problem+json, ProblemDetailsOne or more validation errors occurred.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold crm:read.
404application/problem+json, ProblemDetailsNo resource matches.
500application/problem+json, ProblemDetailsThe request failed.
503application/problem+json, ProblemDetailsQuoting tools are not available on this server.

200 response body

FieldTypeDescription
itemsrequiredarray of QuoteToolLinkView
items[].accountNamestring or null
items[].connectorIdrequiredstring
items[].externalQuoteIdrequiredstring
items[].externalRevisionrequiredstring
items[].importedAtstring (date-time) or null
items[].linesarray of QuoteToolLinkLineView
items[].lines[].descriptionrequiredstring
items[].lines[].quantityrequiredstring
items[].lines[].recurringrequiredboolean
items[].lines[].skurequiredstring
items[].lines[].unitPriceCentsrequiredinteger

int64.

items[].lines[].unmappedrequiredboolean
items[].opportunityIdstring or null
items[].publicIdrequiredstring
items[].quoteIdstring or null
items[].quoteNumberstring or null
items[].salesOrderIdstring or null
items[].soNumberstring or null
items[].staterequiredstring
items[].totalCentsinteger or null

int64.

items[].unmappedSkusrequiredinteger
items[].updatedAtrequiredstring (date-time)
items[].vendorrequiredstring
items[].wonAtstring (date-time) or null
pagerequiredinteger
pageSizerequiredinteger
totalrequiredinteger
Terminal window
# Sign in first. outpost_console is a session cookie, so send it with every request.
# This operation is idempotent. Repeating it does not repeat its effect.
curl -X GET 'https://depot.example.com/api/v1/sales/quote-tools/links?connector=<connector>&page=0&pageSize=0&state=converted' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

GETcrm:readmsp facemspIdempotentNot fully resolved

What this page does not know
  • response-status

These are parts of the route the extractor could not read from the source. Everything else on this page came straight from it.

Source: [object Object]

getLink reads one external quote with its lines.

NameInTypeRequiredDescription
idpathstringYesA uuid.
StatusBodyDescription
200application/json, QuoteToolLinkViewSuccess.
400application/problem+json, ProblemDetailsOne or more validation errors occurred.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold crm:read.
404application/problem+json, ProblemDetailsNo resource matches that id.
500application/problem+json, ProblemDetailsThe request failed.
503application/problem+json, ProblemDetailsQuoting tools are not available on this server.

200 response body

FieldTypeDescription
accountNamestring or null
connectorIdrequiredstring
externalQuoteIdrequiredstring
externalRevisionrequiredstring
importedAtstring (date-time) or null
linesarray of QuoteToolLinkLineView
lines[].descriptionrequiredstring
lines[].quantityrequiredstring
lines[].recurringrequiredboolean
lines[].skurequiredstring
lines[].unitPriceCentsrequiredinteger

int64.

lines[].unmappedrequiredboolean
opportunityIdstring or null
publicIdrequiredstring
quoteIdstring or null
quoteNumberstring or null
salesOrderIdstring or null
soNumberstring or null
staterequiredstring
totalCentsinteger or null

int64.

unmappedSkusrequiredinteger
updatedAtrequiredstring (date-time)
vendorrequiredstring
wonAtstring (date-time) or null
Terminal window
# Sign in first. outpost_console is a session cookie, so send it with every request.
# This operation is idempotent. Repeating it does not repeat its effect.
curl -X GET 'https://depot.example.com/api/v1/sales/quote-tools/links/<id>' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'
Section titled “POST /api/v1/sales/quote-tools/links/{id}/ignore”

POSTcrm:writemsp facemspNot fully resolved

What this page does not know
  • response-status

These are parts of the route the extractor could not read from the source. Everything else on this page came straight from it.

Source: [object Object]

ignoreLink takes an external quote out of the review queue for good.

NameInTypeRequiredDescription
idpathstringYesA uuid.
StatusBodyDescription
200application/json, QuoteToolLinkViewSuccess.
400application/problem+json, ProblemDetailsOne or more validation errors occurred.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold crm:write.
404application/problem+json, ProblemDetailsNo resource matches that id.
500application/problem+json, ProblemDetailsThe request failed.
503application/problem+json, ProblemDetailsQuoting tools are not available on this server.

200 response body

FieldTypeDescription
accountNamestring or null
connectorIdrequiredstring
externalQuoteIdrequiredstring
externalRevisionrequiredstring
importedAtstring (date-time) or null
linesarray of QuoteToolLinkLineView
lines[].descriptionrequiredstring
lines[].quantityrequiredstring
lines[].recurringrequiredboolean
lines[].skurequiredstring
lines[].unitPriceCentsrequiredinteger

int64.

lines[].unmappedrequiredboolean
opportunityIdstring or null
publicIdrequiredstring
quoteIdstring or null
quoteNumberstring or null
salesOrderIdstring or null
soNumberstring or null
staterequiredstring
totalCentsinteger or null

int64.

unmappedSkusrequiredinteger
updatedAtrequiredstring (date-time)
vendorrequiredstring
wonAtstring (date-time) or null
Terminal window
# Sign in first. outpost_console is a session cookie, so send it with every request.
curl -X POST 'https://depot.example.com/api/v1/sales/quote-tools/links/<id>/ignore' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'
Section titled “POST /api/v1/sales/quote-tools/links/{id}/import”

POSTcrm:writemsp facemspNot fully resolved

What this page does not know
  • response-status

These are parts of the route the extractor could not read from the source. Everything else on this page came straight from it.

Source: [object Object]

importLink creates the read-only external quote and queues its conversion (client, agreement draft, sales order, onboarding ticket, won).

An account with no mapping gets a new prospect; unmapped SKUs refuse with 422 until resolved in the review queue.

NameInTypeRequiredDescription
idpathstringYesA uuid.
StatusBodyDescription
200application/json, QuoteToolLinkViewSuccess.
400application/problem+json, ProblemDetailsOne or more validation errors occurred.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold crm:write.
404application/problem+json, ProblemDetailsNo resource matches that id.
500application/problem+json, ProblemDetailsThe request failed.
503application/problem+json, ProblemDetailsQuoting tools are not available on this server.

200 response body

FieldTypeDescription
accountNamestring or null
connectorIdrequiredstring
externalQuoteIdrequiredstring
externalRevisionrequiredstring
importedAtstring (date-time) or null
linesarray of QuoteToolLinkLineView
lines[].descriptionrequiredstring
lines[].quantityrequiredstring
lines[].recurringrequiredboolean
lines[].skurequiredstring
lines[].unitPriceCentsrequiredinteger

int64.

lines[].unmappedrequiredboolean
opportunityIdstring or null
publicIdrequiredstring
quoteIdstring or null
quoteNumberstring or null
salesOrderIdstring or null
soNumberstring or null
staterequiredstring
totalCentsinteger or null

int64.

unmappedSkusrequiredinteger
updatedAtrequiredstring (date-time)
vendorrequiredstring
wonAtstring (date-time) or null
Terminal window
# Sign in first. outpost_console is a session cookie, so send it with every request.
curl -X POST 'https://depot.example.com/api/v1/sales/quote-tools/links/<id>/import' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

GETcrm:readmsp facemspIdempotent

Source: [object Object]

listSkus lists the products imports could not map to the catalog (the review queue), open first.

NameInTypeRequiredDescription
connectorquerystringNo
statequerystring, one of ignored, mapped, openNoComma-separated set. An unrecognised value is refused.
StatusBodyDescription
200application/json, array of QuoteToolSkuViewSuccess.
400application/problem+json, ProblemDetailsOne or more validation errors occurred.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold crm:read.
404application/problem+json, ProblemDetailsNo resource matches.
500application/problem+json, ProblemDetailsThe request failed.
503application/problem+json, ProblemDetailsQuoting tools are not available on this server.

200 response body

FieldTypeDescription
[].catalogItemIdstring or null
[].catalogItemNamestring or null
[].connectorIdrequiredstring
[].descriptionrequiredstring
[].externalSkurequiredstring
[].firstSeenAtrequiredstring (date-time)
[].lastSeenAtrequiredstring (date-time)
[].publicIdrequiredstring
[].staterequiredstring
Terminal window
# Sign in first. outpost_console is a session cookie, so send it with every request.
# This operation is idempotent. Repeating it does not repeat its effect.
curl -X GET 'https://depot.example.com/api/v1/sales/quote-tools/skus?connector=<connector>&state=ignored' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

POST /api/v1/sales/quote-tools/skus/{id}/resolve

Section titled “POST /api/v1/sales/quote-tools/skus/{id}/resolve”

POSTcrm:writemsp facemsp

Source: [object Object]

resolveSku maps a product to a catalog item (reused by every later import) or ignores it (it then imports as a plain line).

NameInTypeRequiredDescription
idpathstringYesA uuid.

Required, sent as application/json.

FieldTypeDescription
catalogItemIdstring or null
staterequiredstring
StatusBodyDescription
200application/json, QuoteToolSkuViewSuccess.
400application/problem+json, ProblemDetailsThe request body is not valid JSON.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold crm:write.
404application/problem+json, ProblemDetailsNo resource matches that id.
500application/problem+json, ProblemDetailsThe request failed.
503application/problem+json, ProblemDetailsQuoting tools are not available on this server.

200 response body

FieldTypeDescription
catalogItemIdstring or null
catalogItemNamestring or null
connectorIdrequiredstring
descriptionrequiredstring
externalSkurequiredstring
firstSeenAtrequiredstring (date-time)
lastSeenAtrequiredstring (date-time)
publicIdrequiredstring
staterequiredstring
Terminal window
# Sign in first. outpost_console is a session cookie, so send it with every request.
curl -X POST 'https://depot.example.com/api/v1/sales/quote-tools/skus/<id>/resolve' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-b 'outpost_console=<console-session>' \
--data '{
"catalogItemId": "string",
"state": "string"
}'

Content is licensed CC BY 4.0. Code samples are MIT. Outpost and the Outpost mark are trademarks of Outpost Business Solutions, PBC and are not covered by either license.