Skip to content

Depot subscriptions

Registers the subscription routes.

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

GETprocurement:readshared facehosteditmspIdempotent

Source: [object Object]

listSubscriptions lists the distributor subscriptions, filtered by connection, client, status, unmapped company or cancel deadline.

NameInTypeRequiredDescription
clientquerystringNo
connectorquerystringNo
deadlineBeforequerystringNo
pagequeryintegerNoOne-based page number. Defaults to 1.
pageSizequeryintegerNoRows per page, 1 to 200. Defaults to 50.
qquerystringNoFree-text search term.
statusquerystring, one of active, cancelled, pending, suspended, trialNoComma-separated set. An unrecognised value is refused.
unmappedquerystringNo
StatusBodyDescription
200application/json, PagedResultSubscriptionViewSuccess.
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.
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.

200 response body

FieldTypeDescription
itemsrequiredarray of SubscriptionView
items[].agreementLineIdstring or null
items[].agreementLineLabelstring or null
items[].billingTermrequiredstring
items[].cancelDeadlineAtstring or null
items[].clientIdstring or null
items[].clientNamestring or null
items[].commitmentTermrequiredstring
items[].connectorIdrequiredstring
items[].externalIdrequiredstring
items[].productNamerequiredstring
items[].publicIdrequiredstring
items[].quantityrequiredinteger
items[].skurequiredstring
items[].statusrequiredstring
items[].syncedAtrequiredstring
items[].termEndsOnstring or null
items[].termStartsOnstring or null
items[].unitCostCentsinteger or null

int64.

items[].vendorrequiredstring
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/subscriptions?client=<client>&connector=<connector>&deadlineBefore=<deadlineBefore>&page=0&pageSize=0&q=<q>' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

GETprocurement:readshared facehosteditmspIdempotent

Source: [object Object]

getSubscription reads one distributor subscription.

NameInTypeRequiredDescription
idpathstringYesA uuid.
StatusBodyDescription
200application/json, SubscriptionViewSuccess.
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.
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
agreementLineIdstring or null
agreementLineLabelstring or null
billingTermrequiredstring
cancelDeadlineAtstring or null
clientIdstring or null
clientNamestring or null
commitmentTermrequiredstring
connectorIdrequiredstring
externalIdrequiredstring
productNamerequiredstring
publicIdrequiredstring
quantityrequiredinteger
skurequiredstring
statusrequiredstring
syncedAtrequiredstring
termEndsOnstring or null
termStartsOnstring or null
unitCostCentsinteger or null

int64.

vendorrequiredstring
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/subscriptions/<id>' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

PUT /api/v1/subscriptions/{id}/agreement-line

Section titled “PUT /api/v1/subscriptions/{id}/agreement-line”

PUTpsa:writeshared facehosteditmspIdempotent

Source: [object Object]

putSubscriptionAgreementLine maps the subscription to the agreement line whose quantity it drives (msp only), or unmaps it with null.

Mapping turns the line’s quantity source to subscription; unmapping the last subscription on a line turns it back to counting.

NameInTypeRequiredDescription
idpathstringYesA uuid.

Required, sent as application/json.

The body is any.

StatusBodyDescription
200application/json, SubscriptionViewSuccess.
400application/problem+json, ProblemDetailsOne or more validation errors occurred.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold psa:write.
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
agreementLineIdstring or null
agreementLineLabelstring or null
billingTermrequiredstring
cancelDeadlineAtstring or null
clientIdstring or null
clientNamestring or null
commitmentTermrequiredstring
connectorIdrequiredstring
externalIdrequiredstring
productNamerequiredstring
publicIdrequiredstring
quantityrequiredinteger
skurequiredstring
statusrequiredstring
syncedAtrequiredstring
termEndsOnstring or null
termStartsOnstring or null
unitCostCentsinteger or null

int64.

vendorrequiredstring
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/subscriptions/<id>/agreement-line' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-b 'outpost_console=<console-session>' \
--data '"string"'

GETprocurement:readshared facehosteditmspIdempotent

Source: [object Object]

listSubscriptionOrders lists the latest subscription orders, newest first.

NameInTypeRequiredDescription
connectorquerystringNo
StatusBodyDescription
200application/json, array of SubscriptionOrderViewSuccess.
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.
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.

200 response body

FieldTypeDescription
[].clientIdstring or null
[].clientNamestring or null
[].completedAtstring or null
[].confirmedAtrequiredstring
[].confirmedByNamestring or null
[].connectorIdrequiredstring
[].errorrequiredstring
[].externalOrderIdstring or null
[].kindrequiredstring
[].productSkurequiredstring
[].publicIdrequiredstring
[].quantityinteger or null
[].staterequiredstring
[].subscriptionIdstring 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/subscriptions/orders?connector=<connector>' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

POSTprocurement:approveshared facehosteditmspIdempotentNot 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]

createSubscriptionOrder places a gated subscription order: a new subscription, a quantity change or a cancel.

It needs confirm, the connection’s live ordering switched on, and an idempotency key (a retried request answers the first order with 200). subs-orders places it with the vendor, re-checking the live flag first.

Required, sent as application/json.

The body is any.

StatusBodyDescription
200application/json, SubscriptionOrderViewSuccess.
400application/problem+json, ProblemDetailsOne or more validation errors occurred.
401application/problem+json, ProblemDetailsSign in to place an order.
403application/problem+json, ProblemDetailsThe identity does not hold procurement:approve.
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.

200 response body

FieldTypeDescription
clientIdstring or null
clientNamestring or null
completedAtstring or null
confirmedAtrequiredstring
confirmedByNamestring or null
connectorIdrequiredstring
errorrequiredstring
externalOrderIdstring or null
kindrequiredstring
productSkurequiredstring
publicIdrequiredstring
quantityinteger or null
staterequiredstring
subscriptionIdstring 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/subscriptions/orders' \
-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.