Skip to main content
Organization users are the members of your organization who work on loans: loan officers, loan officer assistants, processors, and admins. The API lets you provision these users programmatically — including their roles, state licenses, processing fees, and contact details — instead of creating them one at a time in the Command Center. All write operations live under the organization mutation namespace, and user creation is authorized with the create:users scope.

Roles

Every user is created with one or more roles. Roles determine what the user can do, and they also determine which other fields the creation input requires or rejects: Roles are passed by ID. Query organizationRoles to list the roles available to your organization and find their IDs:

Creating a user

Use the createOrganizationUser mutation with CreateOrganizationUserInput:
Example variables for a loan officer licensed in California and Texas:

Input fields

Licenses

Each entry in licenses uses OrganizationUserLicenseInput:
Loan officers must be created with at least one license — they can only be assigned to loans in states where they hold an active license. Licensed users are assignable to loans immediately after creation.

Access types

The accessType field controls where the new user is provisioned: The response shape differs between the two:
  • For CommandCenterAccess, success returns the new user in organizationUser.
  • For InternalOnly, there is no Command Center user to return, so organizationUser is null and success is signalled by internalUserCreated: true.
If your organization uses single sign-on (SSO), no separate password invitation is sent — the new user signs in through your identity provider as usual.

Error handling

Validation problems are returned in userErrors rather than as GraphQL errors, so always check that array:
Common validation errors:
Processor fees, payee company names, licenses, contact details, and internal-only access are part of an expanded user-provisioning capability. If you receive the error Creating users with processor fees, company names, licenses, contact details, or internal-only access is not enabled for this organization., contact Pylon to enable it for your organization.

Updating a user’s details

Use the updateOrganizationUserDetails mutation with UpdateOrganizationUserDetailsInput to change a user’s names, phone number, or individual NMLS identifier after creation. It is authorized with the update:users scope.
Email addresses and licenses cannot be changed through this mutation. Roles are updated separately via updateOrganizationUserRoles (see Other user operations).

Reading user details

The organizationUser query returns a user’s contact details and licenses alongside the basics (organizationUsers list nodes carry only id, email, firstName, and lastName — fetch the individual user for the full detail):
licenses reflects the state licenses on the user’s loan-officer record and is null for users without one. License expiration dates are not returned.

Other user operations

The organization namespace and top-level queries cover the rest of the user lifecycle: For example, listing users (useful for finding loan officers to assign to a loan):