PrintNowPrintNowDocs

Customers

Create, retrieve, update, delete, and transfer customer accounts via the Enterprise API.

The Customers endpoints let you manage customer accounts across your storefronts. You can create permanent or temporary user accounts, retrieve customer details including organization and tax exemption status, update profile information, transfer temporary user data to permanent accounts, and soft-delete customers.

Endpoints

MethodEndpointDescription
GET/api/v2/customer/{customerId}Retrieve a customer by ID
POST/api/v2/customerCreate a new customer (permanent or temporary)
PATCH/api/v2/customer/{customerId}Update a customer's profile
PATCH/api/v2/customer/{customerId}/transferTransfer temp user data to a permanent account
DELETE/api/v2/customer/{customerId}Soft-delete a customer

Get Customer

Retrieve a customer's profile by their ID. Returns the full customer object including organization membership, user groups, and tax exemption status.

GET /api/v2/customer/{customerId}

Parameters

NameTypeLocationDescription
customerIdintegerpathThe customer's unique ID.

Example Request

curl -X GET https://api.printnow.com/api/v2/customer/12345 \
  -u "YOUR_TOKEN:YOUR_KEY"

Example Response

{
  "storefront": "My Print Store",
  "storefront_id": 1,
  "id": 12345,
  "first_name": "Jane",
  "last_name": "Smith",
  "email": "jane@example.com",
  "username": "janesmith",
  "receive_marketing_emails": true,
  "last_logged_in_on": "2026-01-15T10:30:00Z",
  "created_on": "2025-06-01T14:00:00Z",
  "last_updated_on": "2026-01-15T10:30:00Z",
  "company": "Acme Corp",
  "organization": "Acme Organization",
  "user_groups": ["Wholesale", "VIP"],
  "tax_exempt": true,
  "is_temporary": false
}

Response Fields

FieldTypeDescription
storefrontstringName of the storefront the customer belongs to.
storefront_idintegerID of the storefront. Only included in create requests.
idintegerUnique customer ID.
first_namestringCustomer's first name.
last_namestringCustomer's last name.
emailstringCustomer's email address. Must be unique within the storefront.
usernamestringLogin username. Must be unique within the storefront (3-50 characters).
passwordstringWrite-only. Used when creating or updating accounts. Minimum 6 characters. Never returned in responses.
receive_marketing_emailsbooleanWhether the customer has opted in to marketing emails.
last_logged_in_ondatetimeUTC timestamp of the customer's most recent login.
created_ondatetimeUTC timestamp when the account was created.
last_updated_ondatetimeUTC timestamp of the most recent profile update.
companystringCompany name from the customer's profile (user-entered, distinct from organization).
organizationstringName of the organization the customer belongs to, if any. Organizations are admin-managed groupings that can enforce pricing and access rules.
user_groupsstring[]Array of user group names the customer belongs to (excludes the default "RETAIL" group). User groups control pricing tiers and access.
tax_exemptbooleanWhether the customer is tax-exempt. This cascades: if the customer is not individually exempt, the API checks whether any of their user groups are marked tax-exempt.
is_temporarybooleanWhether this is a temporary (anonymous) account. Temp accounts are created for guest workflows and can be transferred to permanent accounts.

Create Customer

Create a new customer account on a specific storefront. Set is_temporary to true to create a temporary (anonymous) user instead of a full account.

POST /api/v2/customer

Request Body (Permanent User)

FieldTypeRequiredDescription
storefront_idintegerYesID of the storefront to create the customer on.
usernamestringYesLogin username (3-50 characters, must be unique on the storefront).
passwordstringYesAccount password (minimum 6 characters).
emailstringYesEmail address (must be unique on the storefront).
first_namestringYesCustomer's first name.
last_namestringYesCustomer's last name.
companystringNoCompany name.
receive_marketing_emailsbooleanNoMarketing email opt-in (defaults to false).

Request Body (Temporary User)

FieldTypeRequiredDescription
storefront_idintegerYesID of the storefront to create the temp user on.
is_temporarybooleanYesMust be true. All other fields are ignored; the system generates random credentials.

Example Request

curl -X POST https://api.printnow.com/api/v2/customer \
  -u "YOUR_TOKEN:YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "storefront_id": 1,
    "username": "janesmith",
    "password": "securepass123",
    "email": "jane@example.com",
    "first_name": "Jane",
    "last_name": "Smith",
    "company": "Acme Corp"
  }'

Returns the created customer object (same format as Get Customer). Creating a permanent customer triggers the customer_created webhook.

Update Customer

Update a customer's profile fields. Only the fields you include in the request body are updated; omitted fields remain unchanged.

PATCH /api/v2/customer/{customerId}

Updatable Fields (Permanent User)

FieldTypeDescription
passwordstringNew password (minimum 6 characters). Only updated if provided.
first_namestringUpdated first name. Only updated if different from current value.
last_namestringUpdated last name. Only updated if different from current value.
companystringUpdated company name. Only updated if different from current value.
receive_marketing_emailsbooleanMarketing email opt-in preference.
tax_exemptbooleanWhether the customer is tax-exempt. Cascades from user groups if not set individually.

Updating a permanent customer triggers the customer_updated webhook.

Converting a Temporary User

When you PATCH a temporary user with is_temporary set to false (or omitted), the API converts the temp account into a permanent one. This requires all the same fields as creating a new user (username, password, email, first_name, last_name). This triggers the customer_created webhook.

You cannot update a temporary user's information while keeping it temporary. Temp users can only be converted to permanent accounts or transferred.

Transfer Temporary User

Transfer all data (image albums, saved projects, and punchout sessions) from a temporary user to an existing permanent user. Both users must belong to the same storefront.

PATCH /api/v2/customer/{customerId}/transfer

Parameters

NameTypeLocationDescription
customerIdintegerpathID of the temporary user (source).

Request Body

FieldTypeRequiredDescription
idintegerYesID of the permanent user (destination). Must be on the same storefront as the source.

Example Request

curl -X PATCH https://api.printnow.com/api/v2/customer/99999/transfer \
  -u "YOUR_TOKEN:YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"id": 12345}'

Returns the destination customer object on success. The source temp user's albums, projects, and punchout sessions are reassigned to the destination user.

Workflow: Temporary User Lifecycle

  1. Create temp user -- POST /api/v2/customer with is_temporary: true. The system generates random credentials and returns a customer object.
  2. Use temp user -- The temp user can browse, design, and save projects in the storefront.
  3. Convert or transfer -- When the user is ready to check out:
    • New account: PATCH /api/v2/customer/{tempId} with full user details to convert the temp account into a permanent one.
    • Existing account: PATCH /api/v2/customer/{tempId}/transfer with the destination user's ID to move all work to an existing account.

Delete Customer

Soft-delete a customer account. The customer record is marked as deleted but not removed from the database. Temporary users cannot be deleted through this endpoint.

DELETE /api/v2/customer/{customerId}

Returns 204 No Content on success. Triggers the customer_deleted webhook.

Error Responses

CodeMessageCause
400Username is already in use.The username is taken on this storefront (create or convert).
400Email address is already in use.The email is taken on this storefront (create or convert).
404Customer not found.No active customer with this ID exists.
  • Authentication — API credentials required for all customer endpoints
  • Webhooks — receive customer_created, customer_updated, and customer_deleted events
  • Users — manage customer accounts and user groups in the admin UI

On this page