Skip to main content
The Customers API manages B2B account data — company info, contacts, addresses, pricing tiers, and sales rep assignments. Each customer belongs to an organization and is identified by a CustomerNumber that you assign (typically matching your ERP’s account number). All endpoints require a valid Bearer token. The OrganizationId is read automatically from your JWT claims.

List customers

Retrieve a paginated, sortable, and filterable list of customers in your organization.
GET https://api.achievemomentum.com/api/customers

Query parameters

pageNumber
integer
default:"1"
The page of results to return.
pageSize
integer
default:"25"
Number of customers per page.
sortOn
string
default:"Name"
Field to sort on. Common values: Name, CustomerNumber, CompanyEmail.
sortDirection
string
default:"asc"
Sort direction. Accepts asc or desc.
filters
array
Optional array of filter objects. Each filter has a field, operator, and value. Supported operators: startswith, contains, notcontains, endswith, equals, notequals, gt, gte, lt, lte.

Response

Returns a paginated result containing an array of customer objects.

Example

curl -X GET "https://api.achievemomentum.com/api/customers?pageNumber=1&pageSize=25&sortOn=Name&sortDirection=asc" \
  -H "Authorization: Bearer {token}"
{
  "data": [
    {
      "customerNumber": "ACME-001",
      "companyName": "Acme Industrial Supply",
      "companyEmail": "[email protected]",
      "companyPhone": "555-800-1000",
      "pricing": "Wholesale",
      "active": true,
      "repNumber": "SR-019",
      "terms": "NET30",
      "currencyCode": "USD"
    }
  ],
  "totalRecords": 214,
  "currentPage": 1,
  "totalPages": 9
}

Get a customer

Retrieve a single customer by their CustomerNumber.
GET https://api.achievemomentum.com/api/customers/{customerNumber}

Path parameters

customerNumber
string
required
The customer’s unique account number.

Response

Returns a single customer object.

Example

curl -X GET "https://api.achievemomentum.com/api/customers/ACME-001" \
  -H "Authorization: Bearer {token}"
{
  "customerNumber": "ACME-001",
  "companyName": "Acme Industrial Supply",
  "companyEmail": "[email protected]",
  "companyPhone": "555-800-1000",
  "companyFax": "555-800-1001",
  "pricing": "Wholesale",
  "active": true,
  "repNumber": "SR-019",
  "terms": "NET30",
  "externalId": "ERP-CUST-10042",
  "addresses": [
    {
      "externalId": "ADDR-001",
      "line1": "500 Commerce Drive",
      "line2": "Suite 200",
      "city": "Austin",
      "state": "TX",
      "postalCode": "78701",
      "country": "US",
      "addressType": "Shipping",
      "phone": "555-800-1000",
      "isPrimary": true
    }
  ],
  "contacts": [
    {
      "externalId": "CON-001",
      "title": "Ms.",
      "firstName": "Jane",
      "lastName": "Smith",
      "email": "[email protected]",
      "phone": "555-800-1002",
      "fax": "",
      "isPrimary": true,
      "contactType": "Purchasing"
    }
  ]
}

Create a customer

Create a new B2B customer account. Use PUT /api/customers to upsert — if a customer with the given CustomerNumber already exists, Nymble Commerce updates that record.
PUT https://api.achievemomentum.com/api/customers

Body parameters

customerNumber
string
required
Your unique account number for this customer. Typically matches your ERP’s account number.
companyName
string
required
The customer’s company or business name.
companyEmail
string
required
Primary business email address for the account.
companyPhone
string
Main business phone number.
companyFax
string
Business fax number.
pricing
string
required
The price tier to apply to this customer, e.g. Wholesale or Retail. Must match a price tier configured in your organization.
active
boolean
default:"true"
Whether the customer account is active.
repNumber
string
The sales rep number assigned to this customer.
terms
string
Payment terms for this customer, e.g. NET30, NET60.
externalId
string
Your system’s identifier for this customer. Used for idempotent imports — re-submitting a customer with the same externalId updates the existing record.
addresses
array
Array of address objects for this customer. Include at least one billing and one shipping address.
contacts
array
Array of contact objects for this customer.
customerAttributes
object
A free-form dictionary of custom key-value attributes, e.g. { "region": "Southwest", "accountTier": "Gold" }.

Response

Returns the created or updated customer object.

Example

curl -X PUT "https://api.achievemomentum.com/api/customers" \
  -H "Authorization: Bearer {token}" \
  -H "Content-Type: application/json" \
  -d '{
    "customerNumber": "ACME-001",
    "companyName": "Acme Industrial Supply",
    "companyEmail": "[email protected]",
    "companyPhone": "555-800-1000",
    "pricing": "Wholesale",
    "active": true,
    "repNumber": "SR-019",
    "terms": "NET30",
    "externalId": "ERP-CUST-10042",
    "addresses": [
      {
        "externalId": "ADDR-001",
        "line1": "500 Commerce Drive",
        "line2": "Suite 200",
        "city": "Austin",
        "state": "TX",
        "postalCode": "78701",
        "country": "US",
        "addressType": "Shipping",
        "phone": "555-800-1000",
        "isPrimary": true
      }
    ],
    "contacts": [
      {
        "externalId": "CON-001",
        "title": "Ms.",
        "firstName": "Jane",
        "lastName": "Smith",
        "email": "[email protected]",
        "phone": "555-800-1002",
        "isPrimary": true,
        "contactType": "Purchasing"
      }
    ]
  }'

Update a customer

Update an existing customer account by their CustomerNumber. Any fields you include are overwritten; omitted fields retain their current values.
PUT https://api.achievemomentum.com/api/customers/{customerNumber}

Path parameters

customerNumber
string
required
The CustomerNumber of the account to update.

Body parameters

Same as Create a customer. You can include a subset of fields to perform a partial update.

Example

curl -X PUT "https://api.achievemomentum.com/api/customers/ACME-001" \
  -H "Authorization: Bearer {token}" \
  -H "Content-Type: application/json" \
  -d '{
    "companyPhone": "555-800-2000",
    "pricing": "Premium",
    "repNumber": "SR-022"
  }'

Activate a customer

Re-activate a previously deactivated customer account, restoring their ability to place orders.
POST https://api.achievemomentum.com/api/customers/{customerNumber}/activate

Path parameters

customerNumber
string
required
The CustomerNumber of the account to activate.

Example

curl -X POST "https://api.achievemomentum.com/api/customers/ACME-001/activate" \
  -H "Authorization: Bearer {token}"
Returns 204 No Content on success.

Delete a customer

Permanently remove a customer account and all associated data.
DELETE https://api.achievemomentum.com/api/customers/{customerNumber}

Path parameters

customerNumber
string
required
The CustomerNumber of the account to delete.
Deletion is permanent and cannot be undone. The customer’s order history and associated records remain on file for reporting purposes, but the account itself cannot be recovered. If you may need to re-activate the customer in the future, deactivate the account instead using active: false on an update request.

Example

curl -X DELETE "https://api.achievemomentum.com/api/customers/ACME-001" \
  -H "Authorization: Bearer {token}"
Returns 204 No Content on success.

Address object

Each address in the addresses array contains the following fields:
externalId
string
Your system’s unique identifier for this address. Use this for idempotent upserts when syncing from an ERP.
line1
string
Street address line 1.
line2
string
Street address line 2 (suite, unit, floor, etc.).
city
string
City.
state
string
State or province code.
postalCode
string
ZIP or postal code.
country
string
ISO 3166-1 alpha-2 country code, e.g. US, CA.
addressType
string
Either Billing or Shipping.
phone
string
Phone number for this location.
isPrimary
boolean
Whether this is the customer’s primary address for its type.

Contact object

Each contact in the contacts array contains the following fields:
externalId
string
Your system’s unique identifier for this contact.
title
string
Salutation or title, e.g. Mr., Ms., Dr..
firstName
string
Contact’s first name.
lastName
string
Contact’s last name.
email
string
Contact’s email address.
phone
string
Contact’s phone number.
fax
string
Contact’s fax number.
isPrimary
boolean
Whether this is the primary contact for the customer account.
contactType
string
The role or category of this contact, e.g. Purchasing, Accounts Payable, Receiving.

The customer object

customerNumber
string
Your unique account number for this customer.
organizationId
string
The organization this customer belongs to.
companyName
string
Company or business name.
companyEmail
string
Primary business email.
companyPhone
string
Main business phone.
companyFax
string
Business fax number.
pricing
string
The price tier assigned to this customer.
active
boolean
Whether the account is currently active.
repNumber
string
The assigned sales rep’s number.
terms
string
Payment terms, e.g. NET30.
externalId
string
Your system’s identifier for this customer.
addresses
array
Array of address objects.
contacts
array
Array of contact objects.
customerAttributes
object
Custom key-value attribute dictionary.