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-KeyheaderstringyesStable caller-generated key that makes retries return the original result instead of creating a duplicate.minLength: 1; maxLength: 200
X-Request-IdheaderstringnoOptional request identifier for tracing; CloudPrint returns a safe value in the response header.maxLength: 128; example: "order-100045-attempt-1"

Request body ​

Content type: application/json

NameTypeRequiredDescriptionConstraints
external_customer_idstringyesStable customer identifier from the integrator's system. It must be unique within the authenticated Developer Application.minLength: 1; maxLength: 160; example: "customer-42"
namestringyesHuman-readable resource name shown to account operators.minLength: 1; maxLength: 120; example: "Acme Store 42"
permissionsarraynoPermissions approved for the installation and included in this token.—
agent_onboardingobjectyesOne-time Agent connection details created for the managed customer.—

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 UUID of the relationship between the partner and managed customer.—
developer_account_idstring (uuid)yesStable UUID of the developer account that owns the customer relationship.—
cloudprint_account_idstring (uuid)yesStable UUID of the CloudPrint account created for the managed customer.—
external_customer_idstringyesStable customer identifier from the integrator's system. It must be unique within the authenticated Developer Application.maxLength: 160
namestringyesHuman-readable resource name shown to account operators.maxLength: 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 the Agent Enrollment.—
agent_onboarding_expires_atstring | null (date-time)yesISO 8601 timestamp recorded by CloudPrint.—
agent_onboarding_urlstring | null (uri)yesCanonical one-time link for connecting an Agent. Open the complete value unchanged and do not log it.example: "https://connect.cloudprint.me/setup#token=cpat_example"
onboarding_statusstringyesCurrent readiness state of the managed customer's CloudPrint setup.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": "11111111-1111-4111-8111-111111111111",
  "agent_enrollment_id": "11111111-1111-4111-8111-111111111111",
  "agent_onboarding_expires_at": "2026-08-06T12:00:00Z",
  "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
403Developer Account production access is not active
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

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