Skip to content

Provision a managed customer account

Create an isolated CloudPrint customer account, App Installation and one-time Agent Enrollment without customer registration.

POST/partner-api/v1/accountsAPI version: v1operationId: createPartnerManagedAccountView as Markdown

What this endpoint does

Create an isolated CloudPrint customer account, App Installation and one-time Agent Enrollment without customer registration.

Authentication

Send a one-time RS256 Developer Application assertion in Authorization: Bearer <application_assertion>. This assertion is not a Public API access token.

Request

Production base URL: https://public-api.cloudprint.me/partner-api/v1/accounts

Parameters

NameLocationTypeRequiredDescriptionConstraints
Idempotency-KeyheaderstringyesminLength: 1; maxLength: 200

Request body

Content type: application/json

NameTypeRequiredDescriptionConstraints
external_customer_idstringyesStable customer or tenant identifier from the integrator system.minLength: 1; maxLength: 160; example: "customer-42"
namestringyesminLength: 1; maxLength: 120; example: "Acme Store 42"
permissionsarraynoPermissions approved for the installation and included in this token.
agent_onboardingobjectyes

Example requests

cURL

bash
curl -sS https://public-api.cloudprint.me/partner-api/v1/accounts \
  -H "Authorization: Bearer $APPLICATION_ASSERTION" \
  -H 'Idempotency-Key: customer-42-provision-v1' \
  -H 'Content-Type: application/json' \
  -d '{
    "external_customer_id": "customer-42",
    "name": "Acme Store 42",
    "permissions": ["printers:read", "documents:write", "print_jobs:write", "print_jobs:read"],
    "agent_onboarding": {
      "return_uri": "https://app.integrator.example/cloudprint/callback",
      "state": "single-use-random-state"
    }
  }'

Response

HTTP status: 200 — Idempotent replay of the existing relationship and hosted onboarding URL

Response fields

NameTypeRequiredDescriptionConstraints
relationship_idstring (uuid)yesStable identifier of this resource.
developer_account_idstring (uuid)yesStable identifier of this resource.
cloudprint_account_idstring (uuid)yesRead-only CloudPrint Account identifier. It can be compared with account_id from an Installation Access Token response, but is never supplied when issuing a token.
external_customer_idstringyesStable identifier of this resource.maxLength: 160
namestringyesmaxLength: 120
application_idstring (uuid)yesStable identifier of the Developer Application represented by the installation token.
installation_idstring | null (uuid)yesStable UUID of the App Installation that authorized the token.
agent_enrollment_idstring | null (uuid)yesStable identifier of this resource.
agent_onboarding_expires_atstring | null (date-time)yesISO 8601 timestamp recorded by CloudPrint.
agent_onboarding_urlstring | null (uri)yesCloudPrint-selected hosted onboarding URL. Open the complete value unchanged, including its #token fragment. Do not parse, log, proxy or rebuild it. Network routing and Agent API failover are managed by CloudPrint.example: "https://connect.cloudprint.me/setup#token=cpat_example"
onboarding_statusstringyesready means that at least one Agent completed its first authenticated heartbeat. It does not mean that a printer was discovered or is online.enum: provisioning, waiting_for_agent, ready, failed
statusstringyesCurrent resource or workflow state; use the endpoint-specific enum values.enum: provisioning, active, suspended, closed
created_atstring (date-time)yesISO 8601 timestamp recorded by CloudPrint.
updated_atstring (date-time)yesISO 8601 timestamp recorded by CloudPrint.

Example response

json
{
  "relationship_id": "11111111-1111-4111-8111-111111111111",
  "developer_account_id": "11111111-1111-4111-8111-111111111111",
  "cloudprint_account_id": "11111111-1111-4111-8111-111111111111",
  "external_customer_id": "string",
  "name": "string",
  "application_id": "11111111-1111-4111-8111-111111111111",
  "installation_id": null,
  "agent_enrollment_id": null,
  "agent_onboarding_expires_at": null,
  "agent_onboarding_url": "https://connect.cloudprint.me/setup#token=cpat_example",
  "onboarding_status": "provisioning",
  "status": "provisioning",
  "created_at": "2026-08-06T12:00:00Z",
  "updated_at": "2026-08-06T12:00:00Z"
}

Errors

HTTP statusDescription
401Application assertion is missing, invalid or already used
403Partner capability is not granted
404Idempotency record references a relationship that no longer exists
409Idempotency key or customer relationship conflicts
422Request payload, application or permissions are invalid
429Rate limit exceeded
500Unexpected error

Integration guidance

Guides for integrating CloudPrint, connecting the local agent and operating print workflows.