Skip to content

Depot distributors

Registers the distributor connection routes, the distributor catalog, price-and-availability and the PunchOut start (home routes: tenant apiMux through ModeGate(NotRemote), mspAPIMux behind SelfPin).

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

GETshared facehosteditmspIdempotent

Source: [object Object]

listDistributors lists the distributor connections.

StatusBodyDescription
200application/json, array of DistributorViewSuccess.
400application/problem+json, ProblemDetailsOne or more validation errors occurred.
500application/problem+json, ProblemDetailsThe request failed.
503application/problem+json, ProblemDetailsThis Depot has no home database for this request yet.

200 response body

FieldTypeDescription
[].configrequiredobject
[].credentialIdstring or null
[].credentialNamestring or null
[].enabledrequiredboolean
[].hasWebhookrequiredboolean
[].lastCatalogSyncAtstring (date-time) or null
[].lastErrorrequiredstring
[].lastErrorKindstring or null
[].lastInvoiceSyncAtstring (date-time) or null
[].lastStatusPollAtstring (date-time) or null
[].lastSubscriptionSyncAtstring (date-time) or null
[].lastSyncOkboolean or null
[].liveEnabledAtstring (date-time) or null
[].liveEnabledByNamestring or null
[].liveSubmissionEnabledrequiredboolean
[].namerequiredstring
[].publicIdrequiredstring
[].rowVersionrequiredinteger

int64.

[].supplierIdstring or null
[].supplierNamestring or null
[].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/integrations/distributors' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

POSTintegrations:adminshared facehosteditmsp

Source: [object Object]

createDistributor adds a distributor connection.

Live ordering always starts off.

Required, sent as application/json.

The body is any.

StatusBodyDescription
201application/json, DistributorViewCreated.
400application/problem+json, ProblemDetailsOne or more validation errors occurred.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold integrations:admin.
404application/problem+json, ProblemDetailsNo resource matches.
409application/problem+json, ProblemDetailsThe request conflicts with the current state of the record.
412application/problem+json, ProblemDetailsSomeone else changed this since you opened it. Reload and try again.
500application/problem+json, ProblemDetailsThe request failed.
503application/problem+json, ProblemDetailsThis Depot has no home database for this request yet.

201 response body

FieldTypeDescription
configrequiredobject
credentialIdstring or null
credentialNamestring or null
enabledrequiredboolean
hasWebhookrequiredboolean
lastCatalogSyncAtstring (date-time) or null
lastErrorrequiredstring
lastErrorKindstring or null
lastInvoiceSyncAtstring (date-time) or null
lastStatusPollAtstring (date-time) or null
lastSubscriptionSyncAtstring (date-time) or null
lastSyncOkboolean or null
liveEnabledAtstring (date-time) or null
liveEnabledByNamestring or null
liveSubmissionEnabledrequiredboolean
namerequiredstring
publicIdrequiredstring
rowVersionrequiredinteger

int64.

supplierIdstring or null
supplierNamestring or null
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/integrations/distributors' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-b 'outpost_console=<console-session>' \
--data '"string"'

GET /api/v1/integrations/distributors/{id}

Section titled “GET /api/v1/integrations/distributors/{id}”

GETshared facehosteditmspIdempotent

Source: [object Object]

getDistributor reads one distributor connection.

NameInTypeRequiredDescription
idpathstringYesA uuid.
StatusBodyDescription
200application/json, DistributorViewSuccess.
400application/problem+json, ProblemDetailsOne or more validation errors occurred.
404application/problem+json, ProblemDetailsNo resource matches that id.
409application/problem+json, ProblemDetailsThe request conflicts with the current state of the record.
412application/problem+json, ProblemDetailsSomeone else changed this since you opened it. Reload and try again.
500application/problem+json, ProblemDetailsThe request failed.
503application/problem+json, ProblemDetailsThis Depot has no home database for this request yet.

200 response body

FieldTypeDescription
configrequiredobject
credentialIdstring or null
credentialNamestring or null
enabledrequiredboolean
hasWebhookrequiredboolean
lastCatalogSyncAtstring (date-time) or null
lastErrorrequiredstring
lastErrorKindstring or null
lastInvoiceSyncAtstring (date-time) or null
lastStatusPollAtstring (date-time) or null
lastSubscriptionSyncAtstring (date-time) or null
lastSyncOkboolean or null
liveEnabledAtstring (date-time) or null
liveEnabledByNamestring or null
liveSubmissionEnabledrequiredboolean
namerequiredstring
publicIdrequiredstring
rowVersionrequiredinteger

int64.

supplierIdstring or null
supplierNamestring or null
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/integrations/distributors/<id>' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

PATCH /api/v1/integrations/distributors/{id}

Section titled “PATCH /api/v1/integrations/distributors/{id}”

PATCHintegrations:adminshared facehosteditmspIdempotent

Source: [object Object]

patchDistributor edits a connection’s name, credential, settings or enabled flag.

It never changes live ordering. rowVersion is required.

NameInTypeRequiredDescription
idpathstringYesA uuid.

Required, sent as application/json.

The body is any.

StatusBodyDescription
200application/json, DistributorViewSuccess.
400application/problem+json, ProblemDetailsOne or more validation errors occurred.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold integrations:admin.
404application/problem+json, ProblemDetailsNo resource matches that id.
409application/problem+json, ProblemDetailsThe request conflicts with the current state of the record.
412application/problem+json, ProblemDetailsSomeone else changed this since you opened it. Reload and try again.
500application/problem+json, ProblemDetailsThe request failed.
503application/problem+json, ProblemDetailsThis Depot has no home database for this request yet.

200 response body

FieldTypeDescription
configrequiredobject
credentialIdstring or null
credentialNamestring or null
enabledrequiredboolean
hasWebhookrequiredboolean
lastCatalogSyncAtstring (date-time) or null
lastErrorrequiredstring
lastErrorKindstring or null
lastInvoiceSyncAtstring (date-time) or null
lastStatusPollAtstring (date-time) or null
lastSubscriptionSyncAtstring (date-time) or null
lastSyncOkboolean or null
liveEnabledAtstring (date-time) or null
liveEnabledByNamestring or null
liveSubmissionEnabledrequiredboolean
namerequiredstring
publicIdrequiredstring
rowVersionrequiredinteger

int64.

supplierIdstring or null
supplierNamestring or null
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 PATCH 'https://depot.example.com/api/v1/integrations/distributors/<id>' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-b 'outpost_console=<console-session>' \
--data '"string"'

DELETE /api/v1/integrations/distributors/{id}

Section titled “DELETE /api/v1/integrations/distributors/{id}”

DELETEintegrations:adminshared facehosteditmspIdempotent

Source: [object Object]

deleteDistributor removes a connection; 409 connectorInUse while a purchase order submission through it is in flight.

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 integrations:admin.
404application/problem+json, ProblemDetailsNo resource matches that id.
409application/problem+json, ProblemDetailsThe request conflicts with the current state of the record.
412application/problem+json, ProblemDetailsSomeone else changed this since you opened it. Reload and try again.
500application/problem+json, ProblemDetailsThe request failed.
503application/problem+json, ProblemDetailsThis Depot has no home database for this request yet.
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/integrations/distributors/<id>' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

GET /api/v1/integrations/distributors/{id}/companies

Section titled “GET /api/v1/integrations/distributors/{id}/companies”

GETintegrations:adminshared facehosteditmspIdempotent

Source: [object Object]

listDistributorCompanies lists the vendor’s companies beside the client each is linked to.

Links whose company the vendor no longer reports are listed too, so they can be removed.

NameInTypeRequiredDescription
idpathstringYesA uuid.
StatusBodyDescription
200application/json, array of DistributorCompanyViewSuccess.
400application/problem+json, ProblemDetailsOne or more validation errors occurred.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold integrations:admin.
404application/problem+json, ProblemDetailsNo resource matches that id.
409application/problem+json, ProblemDetailsThe request conflicts with the current state of the record.
412application/problem+json, ProblemDetailsSomeone else changed this since you opened it. Reload and try again.
429application/problem+json, ProblemDetailsToo many live distributor calls. Try again in a minute.
500application/problem+json, ProblemDetailsThe request failed.
502application/problem+json, ProblemDetailsThe request was refused.
503application/problem+json, ProblemDetailsThis Depot has no home database for this request yet.

200 response body

FieldTypeDescription
[].clientIdstring or null
[].clientNamestring or null
[].externalCompanyIdrequiredstring
[].linkIdstring or null
[].vendorNamerequiredstring
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/integrations/distributors/<id>/companies' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

PUT /api/v1/integrations/distributors/{id}/companies/{externalCompanyId}

Section titled “PUT /api/v1/integrations/distributors/{id}/companies/{externalCompanyId}”

PUTintegrations:adminshared facehosteditmspIdempotent

Source: [object Object]

linkDistributorCompany links one vendor company to a client.

409 when the company or the client is already linked on this connection.

NameInTypeRequiredDescription
externalCompanyIdpathstringYes
idpathstringYesA uuid.

Required, sent as application/json.

The body is any.

StatusBodyDescription
200application/json, DistributorCompanyViewSuccess.
400application/problem+json, ProblemDetailsOne or more validation errors occurred.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold integrations:admin.
404application/problem+json, ProblemDetailsNo resource matches that id.
409application/problem+json, ProblemDetailsThe request conflicts with the current state of the record.
412application/problem+json, ProblemDetailsSomeone else changed this since you opened it. Reload and try again.
500application/problem+json, ProblemDetailsThe request failed.
503application/problem+json, ProblemDetailsThis Depot has no home database for this request yet.

200 response body

FieldTypeDescription
clientIdstring or null
clientNamestring or null
externalCompanyIdrequiredstring
linkIdstring or null
vendorNamerequiredstring
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/integrations/distributors/<id>/companies/<externalCompanyId>' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-b 'outpost_console=<console-session>' \
--data '"string"'

DELETE /api/v1/integrations/distributors/{id}/companies/{externalCompanyId}

Section titled “DELETE /api/v1/integrations/distributors/{id}/companies/{externalCompanyId}”

DELETEintegrations:adminshared facehosteditmspIdempotent

Source: [object Object]

unlinkDistributorCompany removes a vendor company’s link.

NameInTypeRequiredDescription
externalCompanyIdpathstringYes
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 integrations:admin.
404application/problem+json, ProblemDetailsNo resource matches that id.
409application/problem+json, ProblemDetailsThe request conflicts with the current state of the record.
412application/problem+json, ProblemDetailsSomeone else changed this since you opened it. Reload and try again.
500application/problem+json, ProblemDetailsThe request failed.
503application/problem+json, ProblemDetailsThis Depot has no home database for this request yet.
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/integrations/distributors/<id>/companies/<externalCompanyId>' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

POST /api/v1/integrations/distributors/{id}/live

Section titled “POST /api/v1/integrations/distributors/{id}/live”

POSTintegrations:adminshared facehosteditmspIdempotent

Source: [object Object]

setDistributorLive turns live ordering on or off for a connection: whether it may place real orders, purchase orders for a hardware distributor and subscription orders for Pax8 and StreamOne alike (ruling P45).

Needs integrations:admin and a fresh step-up; an integration key or MCP caller can never hold one.

NameInTypeRequiredDescription
idpathstringYesA uuid.

Required, sent as application/json.

The body is any.

StatusBodyDescription
200application/json, DistributorViewSuccess.
400application/problem+json, ProblemDetailsOne or more validation errors occurred.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsTurning on live ordering needs a signed-in person.
404application/problem+json, ProblemDetailsNo resource matches that id.
409application/problem+json, ProblemDetailsThe request conflicts with the current state of the record.
412application/problem+json, ProblemDetailsSomeone else changed this since you opened it. Reload and try again.
500application/problem+json, ProblemDetailsThe request failed.
503application/problem+json, ProblemDetailsThis Depot has no home database for this request yet.

200 response body

FieldTypeDescription
configrequiredobject
credentialIdstring or null
credentialNamestring or null
enabledrequiredboolean
hasWebhookrequiredboolean
lastCatalogSyncAtstring (date-time) or null
lastErrorrequiredstring
lastErrorKindstring or null
lastInvoiceSyncAtstring (date-time) or null
lastStatusPollAtstring (date-time) or null
lastSubscriptionSyncAtstring (date-time) or null
lastSyncOkboolean or null
liveEnabledAtstring (date-time) or null
liveEnabledByNamestring or null
liveSubmissionEnabledrequiredboolean
namerequiredstring
publicIdrequiredstring
rowVersionrequiredinteger

int64.

supplierIdstring or null
supplierNamestring or null
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 POST 'https://depot.example.com/api/v1/integrations/distributors/<id>/live' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-b 'outpost_console=<console-session>' \
--data '"string"'

POST /api/v1/integrations/distributors/{id}/sync

Section titled “POST /api/v1/integrations/distributors/{id}/sync”

POSTintegrations:adminshared facehosteditmspIdempotent

Source: [object Object]

syncDistributor queues one worker pass for the connection: catalog, status, invoices or subscriptions.

NameInTypeRequiredDescription
idpathstringYesA uuid.

Required, sent as application/json.

The body is any.

StatusBodyDescription
202application/json, objectAccepted.
400application/problem+json, ProblemDetailsOne or more validation errors occurred.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold integrations:admin.
404application/problem+json, ProblemDetailsNo resource matches that id.
409application/problem+json, ProblemDetailsThe request conflicts with the current state of the record.
412application/problem+json, ProblemDetailsSomeone else changed this since you opened it. Reload and try again.
500application/problem+json, ProblemDetailsThe request failed.
503application/problem+json, ProblemDetailsThis Depot has no home database for this request yet.
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 POST 'https://depot.example.com/api/v1/integrations/distributors/<id>/sync' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-b 'outpost_console=<console-session>' \
--data '"string"'

POST /api/v1/integrations/distributors/{id}/test

Section titled “POST /api/v1/integrations/distributors/{id}/test”

POSTintegrations:adminshared facehosteditmspIdempotent

Source: [object Object]

testDistributor makes one authenticated read at the vendor with the connection’s credential.

Nothing is written. 502 names the error kind.

NameInTypeRequiredDescription
idpathstringYesA uuid.
StatusBodyDescription
200application/json, DistributorTestResultSuccess.
400application/problem+json, ProblemDetailsOne or more validation errors occurred.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold integrations:admin.
404application/problem+json, ProblemDetailsNo resource matches that id.
409application/problem+json, ProblemDetailsThe request conflicts with the current state of the record.
412application/problem+json, ProblemDetailsSomeone else changed this since you opened it. Reload and try again.
429application/problem+json, ProblemDetailsToo many live distributor calls. Try again in a minute.
500application/problem+json, ProblemDetailsThe request failed.
502application/problem+json, ProblemDetailsThe request was refused.
503application/problem+json, ProblemDetailsThis Depot has no home database for this request yet.

200 response body

FieldTypeDescription
okrequiredboolean
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 POST 'https://depot.example.com/api/v1/integrations/distributors/<id>/test' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

POST /api/v1/integrations/distributors/{id}/webhook/rotate

Section titled “POST /api/v1/integrations/distributors/{id}/webhook/rotate”

POSTintegrations:adminshared facehosteditmspIdempotentInbound hook

Source: [object Object]

rotateDistributorWebhook issues a new webhook URL and signing secret for the vendor to post to, replacing the old pair at once.

Both are shown once.

NameInTypeRequiredDescription
idpathstringYesA uuid.
StatusBodyDescription
200application/json, DistributorWebhookRotatedSuccess.
400application/problem+json, ProblemDetailsOne or more validation errors occurred.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold integrations:admin.
404application/problem+json, ProblemDetailsNo resource matches that id.
409application/problem+json, ProblemDetailsThe request conflicts with the current state of the record.
412application/problem+json, ProblemDetailsSomeone else changed this since you opened it. Reload and try again.
500application/problem+json, ProblemDetailsThe request failed.
503application/problem+json, ProblemDetailsThis Depot has no home database for this request yet.

200 response body

FieldTypeDescription
secretrequiredstring
webhookUrlrequiredstring
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 POST 'https://depot.example.com/api/v1/integrations/distributors/<id>/webhook/rotate' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

GETprocurement:readshared facehosteditmspIdempotent

Source: [object Object]

searchCatalog searches the synced distributor catalogs by SKU, part number, UPC, manufacturer or description.

NameInTypeRequiredDescription
connectorquerystringNo
pagequeryintegerNoOne-based page number. Defaults to 1.
pageSizequeryintegerNoRows per page, 1 to 200. Defaults to 50.
qquerystringNo
StatusBodyDescription
200application/json, PagedResultDistributorCatalogViewSuccess.
400application/problem+json, ProblemDetailsOne or more validation errors occurred.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold procurement:read.
500application/problem+json, ProblemDetailsThe request failed.
503application/problem+json, ProblemDetailsThis Depot has no home database for this request yet.

200 response body

FieldTypeDescription
itemsrequiredarray of DistributorCatalogView
items[].availableQtyinteger or null
items[].connectorIdrequiredstring
items[].costCentsinteger or null

int64.

items[].descriptionrequiredstring
items[].manufacturerrequiredstring
items[].mpnrequiredstring
items[].msrpCentsinteger or null

int64.

items[].publicIdrequiredstring
items[].stockItemIdstring or null
items[].syncedAtrequiredstring (date-time)
items[].upcrequiredstring
items[].vendorrequiredstring
items[].vendorSkurequiredstring
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/procurement/catalog?connector=<connector>&page=0&pageSize=0&q=<q>' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

POST /api/v1/procurement/price-availability

Section titled “POST /api/v1/procurement/price-availability”

POSTprocurement:readshared facehosteditmsp

Source: [object Object]

priceAvailability asks each named distributor (every enabled hardware connection by default) for live cost and availability of the SKUs, to compare suppliers.

A connection that fails is left out; 502 only when every one failed.

Required, sent as application/json.

The body is any.

StatusBodyDescription
200application/json, array of PriceAvailabilityViewSuccess.
400application/problem+json, ProblemDetailsOne or more validation errors occurred.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold procurement:read.
429application/problem+json, ProblemDetailsToo many live distributor calls. Try again in a minute.
500application/problem+json, ProblemDetailsThe request failed.
502application/problem+json, ProblemDetailsThe request was refused.
503application/problem+json, ProblemDetailsThis Depot has no home database for this request yet.

200 response body

FieldTypeDescription
[].availableQtyinteger or null
[].checkedAtrequiredstring (date-time)
[].connectorIdrequiredstring
[].costCentsinteger or null

int64.

[].vendorrequiredstring
[].vendorSkurequiredstring
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/procurement/price-availability' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-b 'outpost_console=<console-session>' \
--data '"string"'

POSTprocurement:writeshared facehosteditmspIdempotent

Source: [object Object]

startPunchout opens a PunchOut session on a distributor’s site and answers the URL to send the browser to.

The cart comes back as a draft PO.

Required, sent as application/json.

The body is any.

StatusBodyDescription
200application/json, PunchoutStartViewSuccess.
400application/problem+json, ProblemDetailsOne or more validation errors occurred.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsPunchOut needs a signed-in person.
404application/problem+json, ProblemDetailsNo resource matches.
409application/problem+json, ProblemDetailsThe request conflicts with the current state of the record.
412application/problem+json, ProblemDetailsSomeone else changed this since you opened it. Reload and try again.
429application/problem+json, ProblemDetailsToo many live distributor calls. Try again in a minute.
500application/problem+json, ProblemDetailsThe request failed.
502application/problem+json, ProblemDetailsThe request was refused.
503application/problem+json, ProblemDetailsThis Depot has no home database for this request yet.

200 response body

FieldTypeDescription
expiresAtrequiredstring (date-time)
sessionIdrequiredstring
startUrlrequiredstring
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 POST 'https://depot.example.com/api/v1/procurement/punchout' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-b 'outpost_console=<console-session>' \
--data '"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.