Skip to main content
Organization endpoints allow you to view and update your organization’s settings, including display name, billing address, and pricing configuration. You can also manage users within your organization — assigning admin roles, removing them, and linking users to customer accounts.
Most organization endpoints require an Admin role. The sole exception is POST /api/organizations (create a new organization), which is public and does not require an existing token.

POST /api/organizations

Create a new organization and its initial admin user in a single request. This endpoint is public — you do not need an existing token to call it. It provisions both the organization record and an admin user account simultaneously.

Request body

Organization
object
required
Details about the organization to create.
User
object
required
Details about the initial admin user to create for the organization.

Example request

cURL
curl -X POST https://api.achievemomentum.com/api/organizations \
  -H "Content-Type: application/json" \
  -d '{
    "Organization": {
      "Name": "Acme Corp",
      "BillingAddress1": "123 Any Street",
      "BillingAddress2": "Suite 100",
      "BillingCity": "Miami",
      "BillingStateProvince": "FL",
      "BillingPostalCode": "33101",
      "BillingCountry": "US",
      "PhoneNumber": "561-555-1212",
      "Email": "[email protected]",
      "Website": "https://www.acmecorp.com"
    },
    "User": {
      "FirstName": "John",
      "LastName": "Doe",
      "Email": "[email protected]",
      "Password": "Password1234!",
      "PhoneNumber": "561-555-1212"
    }
  }'

Response fields

OrganizationId
string
The unique Nymble Commerce organization ID for the newly created organization.
IdentityOrganizationId
string
The organization code used when calling POST /api/auth/access to enrich a user token.
Name
string
The organization’s display name.
Slug
string
A URL-friendly identifier for this organization.

Example response

{
  "OrganizationId": "6d24ab9faf9e034e881fcd97",
  "IdentityOrganizationId": "org_acme123",
  "Name": "Acme Corp",
  "Slug": "org_acme123"
}

Error responses

StatusDescription
400 Bad RequestThe organization name already exists, or required fields are missing.
500 Internal Server ErrorAn unexpected error occurred during provisioning.

GET /api/organization

Retrieve your organization’s full details, including active subscriptions and feature entitlements. The organization ID is read from your JWT claims — you do not pass it as a parameter.
Requires Admin role.

Authentication

Authorization: Bearer {your_admin_access_token}

Example request

cURL
curl https://api.achievemomentum.com/api/organization \
  -H "Authorization: Bearer {your_admin_access_token}"

Response fields

Organization
object
The full organization record.
Subscriptions
array
A list of active subscription records for the organization.
Entitlements
array
A list of feature entitlements derived from the active subscription. Each entry describes a platform capability the organization has access to.

Example response

{
  "Organization": {
    "OrganizationId": "6d24ab9faf9e034e881fcd97",
    "Name": "Acme Corp",
    "BillingAddress1": "123 Any Street",
    "BillingCity": "Miami",
    "BillingStateProvince": "FL",
    "BillingPostalCode": "33101",
    "BillingCountry": "US",
    "PhoneNumber": "561-555-1212",
    "Email": "[email protected]",
    "Website": "https://www.acmecorp.com"
  },
  "Subscriptions": [],
  "Entitlements": []
}

Error responses

StatusDescription
400 Bad RequestThe organization derived from your token cannot be found.
403 ForbiddenYour token does not carry the Admin role.

GET /api/organizations/users/admins

List all users who hold the admin role in your organization.
Requires Admin role.

Authentication

Authorization: Bearer {your_admin_access_token}

Example request

cURL
curl https://api.achievemomentum.com/api/organizations/users/admins \
  -H "Authorization: Bearer {your_admin_access_token}"

Response

Returns a list of OrganizationUser objects for every admin in your organization.
[]
array

Example response

[
  {
    "Id": "kp_abc123def456",
    "Email": "[email protected]",
    "FirstName": "John",
    "LastName": "Doe",
    "Roles": ["admin"]
  }
]

POST /api/organizations/users/admins

Assign the admin role to a user in your organization. The user must already have a Nymble Commerce account. A welcome email is sent to the user upon successful assignment.
Requires Admin role.

Authentication

Authorization: Bearer {your_admin_access_token}

Request body

Email
string
required
The email address of the user to promote to admin.Example: "[email protected]"

Example request

cURL
curl -X POST https://api.achievemomentum.com/api/organizations/users/admins \
  -H "Authorization: Bearer {your_admin_access_token}" \
  -H "Content-Type: application/json" \
  -d '{
    "Email": "[email protected]"
  }'

Response fields

Success
boolean
true when the admin role has been successfully assigned.

Example response

{
  "Success": true
}

Error responses

StatusDescription
400 Bad RequestNo user was found with the given email address, or the request is malformed.
403 ForbiddenYour token does not carry the Admin role.

DELETE /api/organizations/users/admins

Remove the admin role from a user in your organization.
Requires Admin role.

Authentication

Authorization: Bearer {your_admin_access_token}

Request body

UserId
string
required
The user ID of the admin to demote.Example: "kp_abc123def456"

Example request

cURL
curl -X DELETE https://api.achievemomentum.com/api/organizations/users/admins \
  -H "Authorization: Bearer {your_admin_access_token}" \
  -H "Content-Type: application/json" \
  -d '{
    "UserId": "kp_abc123def456"
  }'

Response fields

Success
boolean
true when the admin role has been successfully removed.

Example response

{
  "Success": true
}

Error responses

StatusDescription
400 Bad RequestUserId is missing or the user cannot be found.
403 ForbiddenYour token does not carry the Admin role.

POST /api/organizations/users/associate-customer

Link a user account to a customer record within your organization. Once associated, that user’s JWT is automatically enriched with the customer’s CustomerNumber, PriceTier, and CurrencyCode on their next token enrichment call.
Requires Admin role.

Authentication

Authorization: Bearer {your_admin_access_token}

Request body

UserId
string
required
The user ID of the user to associate with a customer account.Example: "kp_abc123def456"
CustomerNumber
string
required
The customer account number from your ERP or order management system to link to this user.Example: "C-10042"

Example request

cURL
curl -X POST https://api.achievemomentum.com/api/organizations/users/associate-customer \
  -H "Authorization: Bearer {your_admin_access_token}" \
  -H "Content-Type: application/json" \
  -d '{
    "UserId": "kp_abc123def456",
    "CustomerNumber": "C-10042"
  }'

Response fields

Association
object
The newly created user-customer association record.

Example response

{
  "Association": {
    "UserId": "kp_abc123def456",
    "CustomerNumber": "C-10042",
    "OrganizationId": "6d24ab9faf9e034e881fcd97"
  }
}

Error responses

StatusDescription
400 Bad RequestUserId or CustomerNumber is missing or invalid.
403 ForbiddenYour token does not carry the Admin role.

GET /api/organizations/users/associations

List all user-customer associations in your organization. Supports pagination, sorting, and filtering by UserId or CustomerNumber.
Requires Admin role.

Authentication

Authorization: Bearer {your_admin_access_token}

Query parameters

PageNumber
integer
default:"1"
Page of results to return (1-indexed).
PageSize
integer
default:"25"
Number of results per page.
SortOn
string
default:"UserId"
Field to sort by. Accepted values: UserId, CustomerNumber.
SortDirection
string
default:"asc"
Sort direction. Accepted values: asc, desc.
Filters
array
Optional array of filter objects. Each filter targets either UserId or CustomerNumber.Supported operators: startswith, contains, notcontains, endswith, equals, notequals, gt, gte, lt, lte

Example request

cURL
curl "https://api.achievemomentum.com/api/organizations/users/associations?PageNumber=1&PageSize=25&SortOn=UserId&SortDirection=asc" \
  -H "Authorization: Bearer {your_admin_access_token}"

Response fields

Data
array
The current page of user-customer association records.
TotalCount
integer
The total number of associations matching the query (before pagination).
PageNumber
integer
The current page number.
PageSize
integer
The number of records per page.

Example response

{
  "Data": [
    {
      "UserId": "kp_abc123def456",
      "CustomerNumber": "C-10042",
      "OrganizationId": "6d24ab9faf9e034e881fcd97"
    }
  ],
  "TotalCount": 1,
  "PageNumber": 1,
  "PageSize": 25
}

POST /api/organizations/price-tiers

Add a new price tier to your organization. Price tiers are referenced when enriching user tokens and are used to return the correct pricing on product queries.
Requires Admin role.

Authentication

Authorization: Bearer {your_admin_access_token}

Request body

Name
string
required
A unique name for the price tier within your organization.Example: "Wholesale"
CurrencyCode
string
required
The ISO 4217 currency code for this tier.Example: "USD"

Example request

cURL
curl -X POST https://api.achievemomentum.com/api/organizations/price-tiers \
  -H "Authorization: Bearer {your_admin_access_token}" \
  -H "Content-Type: application/json" \
  -d '{
    "Name": "Wholesale",
    "CurrencyCode": "USD"
  }'

Response

Returns 200 OK with an empty body on success.

Error responses

StatusDescription
400 Bad RequestName or CurrencyCode is missing or the currency code is not recognized.
403 ForbiddenYour token does not carry the Admin role.

PUT /api/organizations/price-tiers

Update an existing price tier’s name or currency code.
Requires Admin role.

Authentication

Authorization: Bearer {your_admin_access_token}

Request body

OldName
string
required
The current name of the price tier to update.Example: "Wholesale"
NewName
string
required
The new name for the price tier.Example: "Retail"
CurrencyCode
string
default:"USD"
The updated ISO 4217 currency code for this tier.Example: "CAD"

Example request

cURL
curl -X PUT https://api.achievemomentum.com/api/organizations/price-tiers \
  -H "Authorization: Bearer {your_admin_access_token}" \
  -H "Content-Type: application/json" \
  -d '{
    "OldName": "Wholesale",
    "NewName": "Retail",
    "CurrencyCode": "USD"
  }'

Response

Returns 200 OK with an empty body on success.

Error responses

StatusDescription
400 Bad RequestOldName does not match any existing price tier, or required fields are missing.
403 ForbiddenYour token does not carry the Admin role.

DELETE /api/organizations/price-tiers

Remove a price tier from your organization by name.
Requires Admin role.

Authentication

Authorization: Bearer {your_admin_access_token}

Request body

Name
string
required
The name of the price tier to delete.Example: "Wholesale"

Example request

cURL
curl -X DELETE https://api.achievemomentum.com/api/organizations/price-tiers \
  -H "Authorization: Bearer {your_admin_access_token}" \
  -H "Content-Type: application/json" \
  -d '{
    "Name": "Wholesale"
  }'

Response

Returns 200 OK with an empty body on success.

Error responses

StatusDescription
400 Bad RequestName does not match any existing price tier, or the organization cannot be found.
403 ForbiddenYour token does not carry the Admin role.