Skip to main content

Overview

The Organization Setup endpoint is your one-stop shop for provisioning customer data in Sticker. Call it when a customer enables procurement in your platform—it creates the organization, user profile, shipping locations, and even sets up billing with Stripe.

Data Model: Organizations and Profiles

Sticker models organizations and profiles as a many-to-one relationship:
  • Organization: the business, company, practice, store, school, or legal entity buying supplies.
  • Profile: an employee or user who belongs to that business.
  • Relationship: many profiles can belong to one organization, but each distinct business should have its own organization.
Your backend should map to the same structure when you call Sticker:
Do not reuse one generic internalOrgId for multiple unrelated businesses. Sticker treats internalOrgId as the unique identifier for a business organization. If multiple companies share the same internalOrgId, their users will be grouped into the same Sticker organization and will share org-level data such as shipping locations, payment methods, catalog, and billing context.
If a business has only one user, it still needs its own unique internalOrgId. Additional employees from the same business should reuse that same internalOrgId and use their own unique internalUserId.

When to Call This Endpoint

1

User Enables Procurement

A customer clicks “Enable Supplies” (or similar) in your platform
2

Gather Required Data

Collect the user’s info and at least one shipping location
3

Call Setup Endpoint

Send data to Sticker’s /v1/organizations/setup endpoint
4

Store the Profile ID

Save the returned profile.id for future handshake requests

What Gets Created

When you call the setup endpoint, Sticker automatically:
  1. Creates a Stripe Customer - For billing and payment method storage
  2. Creates the Organization - Linked to your internalOrgId
  3. Creates Shipping Locations - For order delivery
  4. Creates an Auth User - For secure authentication
  5. Creates a User Profile - Linked to the org and auth user

API Endpoint

Base URL: https://api.usesticker.com

Authentication

Include your Partner API Key in the Authorization header:

Request Format

Request Parameters

Required Fields

Optional Fields

Address Object

State Normalization: The API accepts both abbreviations (“CA”) and full names (“California”). Internally, all values are stored as full state names.

Shipping Location Object

Response Format

Success (200 OK)

Key Response Fields

Adding Users to Existing Organizations

Call the same endpoint with the same internalOrgId but a different internalUserId:
The response will have isNewOrganization: false, and the new user will have access to the existing organization’s shipping locations and shared payment methods.

Common Mapping Mistake

Do not model every customer under one shared organization ID:
Use a unique organization ID for each business:

Error Handling

Common causes:
  • Invalid email format
  • Invalid state/province (must be valid US state)
  • Missing required fields
Solution: Check Authorization: Bearer {key} header
Solution: User is already set up. Use the returned profileId for handshake.

Code Examples

Best Practices

Always use your own internal IDs for internalOrgId, internalUserId, and internalShippingLocationId. internalOrgId must uniquely identify the customer business, while internalUserId must uniquely identify a user or employee.
Use the same internalOrgId only for users who belong to the same business. Use a different internalOrgId for every distinct customer business, even if that business currently has only one user.
Always include at least one shipping location when creating a new organization. This ensures users can complete checkout immediately.
If you get a 409 (User Already Exists), don’t treat it as an error—the user is already set up! Just use the returned profile ID.
Store the returned profile.id in your database. While you can use internal_user_id for handshake, having the profile ID is useful for debugging.

Next Steps

User Handshake

Authenticate users for each session

API Reference

Complete API specification