Students and customersCustomers

Customers

Students and customers · 7 operations

GET

List customers of a student

/api/student/customer

Customers (parents or other payers) linked to a student; pass studentId.

list_student_customers

Query parameters · 1

studentIdnumberrequired—

Response · 200

application/json

statusCodenumberrequiredexample 200
messagestringrequired—
dataanyThe fields of data are not described yet.
Errors400401403429500
curl "https://your-school.rist.pro/api/student/customer?studentId=1" \
  -H "Authorization: Bearer $RIST_API_KEY"
Response example · 200
{
  "statusCode": 200,
  "message": "Operation completed successfully",
  "data": …
}
GET

List customers

/api/customer

Customers (parents and other payers) with search and filters. Paginated.

list_customers

Query parameters · 16

pagenumbermin 1 · default 1
pageSizenumber1–250 · default 20
sortBystringOne of: name manager emails phones messengers links
sortOrderstringOne of: ASC DESC
customerIdnumberrequired—
searchstringrequired—
firstNamestringrequired—
lastNamestringrequired—
Show 8 more
middleNamestringrequired—
genderstringrequiredOne of: MALE FEMALE
notestringrequired—
managerIdsnumber[]—
relationsToStudentstring[]One of: MOTHER FATHER GRANDMOTHER GRANDFATHER
typesOfMessengerstring[]Messenger channels the customer has a connected chat in; several values are OR-ed.One of: TELEGRAM_BOT INSTAGRAM FACEBOOK IMESSAGE
isArchivalobjectrequireddefault false
cfstring[]—

Response · 200

application/json

statusCodenumberrequiredexample 200
messagestringrequired—
dataobject4 fields
totalnumberrequired—
totalPagesnumberrequired—
currentPagenumberrequired—
customersobject[]required16 fields
customerIdnumberrequired—
firstNamestringrequired—
lastNamestringrequirednullable—
middleNamestringrequirednullable—
contactsobject[]required3 fields
typestringrequired—
valuestringrequired—
labelstringrequirednullable—
dateOfBirthstringrequirednullableformat YYYY-MM-DDTHH:mm:ss
genderstringrequiredOne of: MALE FEMALE
relationToStudentstringrequirednullableOne of: MOTHER FATHER GRANDMOTHER GRANDFATHER
notestringrequirednullable—
managerobjectnullable4 fields
idnumberrequired—
firstNamestringrequired—
lastNamestringrequirednullable—
isArchivalbooleanrequired—
avatarUrlstringrequirednullable—
isArchivalbooleanrequired—
updatedAtstringrequiredformat YYYY-MM-DDTHH:mm:ss
createdAtstringrequiredformat YYYY-MM-DDTHH:mm:ss
chatsobject[]requiredConnected chats, shown as channel icons in the table row.4 fields
chatParticipantIdnumberrequired—
chatIdnumberrequired—
createdAtstringrequiredformat YYYY-MM-DDTHH:mm:ss
chatobjectAlways present at runtime; optional because card selects are built dynamically and TS cannot prove the nested object exists.5 fields
chatIdnumberrequired—
contactNamestringrequirednullable—
avatarstringrequirednullable—
lastMessageAtstringrequirednullableformat YYYY-MM-DDTHH:mm:ss
messengerobjectrequired4 fields
messengerIdnumberrequired—
nameOfMessengerstringrequired—
typeOfMessengerstringrequiredOne of: TELEGRAM_BOT INSTAGRAM FACEBOOK IMESSAGE
capabilitiesobjectrequirednullableWhat the channel supports; null when its adapter is not registered, so the chat is read-only.
customFieldsobjectCustom field values for the columns chosen in the table preset.any keys
Errors400401403429500
curl "https://your-school.rist.pro/api/customer" \
  -H "Authorization: Bearer $RIST_API_KEY"
Response example · 200
{
  "statusCode": 200,
  "message": "Operation completed successfully",
  "data": {
    "total": 0,
    "totalPages": 0,
    "currentPage": 0,
    "customers": [
      {
        "customerId": 1,
        "firstName": "string",
        "lastName": "string",
        "middleName": "string",
        "contacts": [
          {
            "type": "string",
            "value": "string",
            "label": "string"
          }
        ],
        "dateOfBirth": "2026-11-09T14:30:00",
        "gender": "MALE",
        "relationToStudent": "MOTHER",
        "note": "string",
        "manager": {
          "id": 1,
          "firstName": "string",
          "lastName": "string",
          "isArchival": false
        },
        "avatarUrl": "string",
        "isArchival": false,
        "updatedAt": "2026-11-09T14:30:00",
        "createdAt": "2026-11-09T14:30:00",
        "chats": [
          {
            "chatParticipantId": 1,
            "chatId": 1,
            "createdAt": "2026-11-09T14:30:00",
            "chat": {
              "chatId": 1,
              "contactName": "string",
              "avatar": "string",
              "lastMessageAt": "2026-11-09T14:30:00",
              "messenger": {
                "messengerId": 1,
                "nameOfMessenger": "string",
                "typeOfMessenger": "TELEGRAM_BOT",
                "capabilities": {}
              }
            }
          }
        ],
        "customFields": {}
      }
    ]
  }
}
GET

Get customer card

/api/customer/{id}

Full customer card: contacts, linked students, custom fields.

get_customer

Path parameters · 1

idnumberrequired—

Response · 200

application/json

statusCodenumberrequiredexample 200
messagestringrequired—
dataobject17 fields
customerIdnumberrequired—
firstNamestringrequired—
lastNamestringrequirednullable—
middleNamestringrequirednullable—
contactsobject[]required3 fields
typestringrequired—
valuestringrequired—
labelstringrequirednullable—
dateOfBirthstringrequirednullableformat YYYY-MM-DDTHH:mm:ss
genderstringrequiredOne of: MALE FEMALE
relationToStudentstringrequirednullableOne of: MOTHER FATHER GRANDMOTHER GRANDFATHER
notestringrequirednullable—
avatarUrlstringrequirednullable—
isArchivalbooleanrequired—
updatedAtstringrequiredformat YYYY-MM-DDTHH:mm:ss
createdAtstringrequiredformat YYYY-MM-DDTHH:mm:ss
userobjectrequirednullable5 fields
idnumberrequired—
firstNamestringrequired—
lastNamestringrequirednullable—
emailstringrequired—
isArchivalbooleanrequired—
managerobjectnullable4 fields
idnumberrequired—
firstNamestringrequired—
lastNamestringrequirednullable—
isArchivalbooleanrequired—
chatsobject[]required4 fields
chatParticipantIdnumberrequired—
chatIdnumberrequired—
createdAtstringrequiredformat YYYY-MM-DDTHH:mm:ss
chatobjectAlways present at runtime; optional because card selects are built dynamically and TS cannot prove the nested object exists.5 fields
chatIdnumberrequired—
contactNamestringrequirednullable—
avatarstringrequirednullable—
lastMessageAtstringrequirednullableformat YYYY-MM-DDTHH:mm:ss
messengerobjectrequired4 fields
messengerIdnumberrequired—
nameOfMessengerstringrequired—
typeOfMessengerstringrequiredOne of: TELEGRAM_BOT INSTAGRAM FACEBOOK IMESSAGE
capabilitiesobjectrequirednullableWhat the channel supports; null when its adapter is not registered, so the chat is read-only.
customFieldsobjectany keys
Errors400401403429500
curl "https://your-school.rist.pro/api/customer/1" \
  -H "Authorization: Bearer $RIST_API_KEY"
Response example · 200
{
  "statusCode": 200,
  "message": "Operation completed successfully",
  "data": {
    "customerId": 1,
    "firstName": "string",
    "lastName": "string",
    "middleName": "string",
    "contacts": [
      {
        "type": "string",
        "value": "string",
        "label": "string"
      }
    ],
    "dateOfBirth": "2026-11-09T14:30:00",
    "gender": "MALE",
    "relationToStudent": "MOTHER",
    "note": "string",
    "avatarUrl": "string",
    "isArchival": false,
    "updatedAt": "2026-11-09T14:30:00",
    "createdAt": "2026-11-09T14:30:00",
    "user": {
      "id": 1,
      "firstName": "string",
      "lastName": "string",
      "email": "string",
      "isArchival": false
    },
    "manager": {
      "id": 1,
      "firstName": "string",
      "lastName": "string",
      "isArchival": false
    },
    "chats": [
      {
        "chatParticipantId": 1,
        "chatId": 1,
        "createdAt": "2026-11-09T14:30:00",
        "chat": {
          "chatId": 1,
          "contactName": "string",
          "avatar": "string",
          "lastMessageAt": "2026-11-09T14:30:00",
          "messenger": {
            "messengerId": 1,
            "nameOfMessenger": "string",
            "typeOfMessenger": "TELEGRAM_BOT",
            "capabilities": {}
          }
        }
      }
    ],
    "customFields": {}
  }
}
GET

List students of a customer

/api/customer/{id}/students

Students linked to one customer.

list_customer_students

Path parameters · 1

idnumberrequired—

Response · 200

application/json

statusCodenumberrequiredexample 200
messagestringrequired—
dataanyThe fields of data are not described yet.
Errors400401403429500
curl "https://your-school.rist.pro/api/customer/1/students" \
  -H "Authorization: Bearer $RIST_API_KEY"
Response example · 200
{
  "statusCode": 200,
  "message": "Operation completed successfully",
  "data": …
}
POST

Create customer

/api/customer

Create a customer card, optionally linked to students (studentIds). Look the customer up with search first to avoid duplicates.

create_customer

Request body

application/json · object

firstNamestringrequiredlength 1–30
lastNamestringnullablelength max 30
middleNamestringrequirednullablelength max 30
contactsobject[]required3 fields
typestringrequiredOne of: PHONE EMAIL MESSENGER URL
valuestringrequiredlength 1–255
labelstringrequirednullablelength max 50
dateOfBirthstringrequirednullableformat YYYY-MM-DDTHH:mm:ss
genderstringrequiredOne of: MALE FEMALE
relationToStudentstringrequirednullableOne of: MOTHER FATHER GRANDMOTHER GRANDFATHER
notestringrequirednullablelength max 1500
managerIdnumbernullablemin 1
studentIdsnumber[]—
customFieldsobjectany keys

Response · 201

application/json

statusCodenumberrequiredexample 201
messagestringrequired—
dataobject16 fields
customerIdnumberrequired—
firstNamestringrequired—
lastNamestringrequirednullable—
middleNamestringrequirednullable—
contactsobject[]required3 fields
typestringrequired—
valuestringrequired—
labelstringrequirednullable—
dateOfBirthstringrequirednullableformat YYYY-MM-DDTHH:mm:ss
genderstringrequiredOne of: MALE FEMALE
relationToStudentstringrequirednullableOne of: MOTHER FATHER GRANDMOTHER GRANDFATHER
notestringrequirednullable—
managerobjectnullable4 fields
idnumberrequired—
firstNamestringrequired—
lastNamestringrequirednullable—
isArchivalbooleanrequired—
avatarUrlstringrequirednullable—
isArchivalbooleanrequired—
updatedAtstringrequiredformat YYYY-MM-DDTHH:mm:ss
createdAtstringrequiredformat YYYY-MM-DDTHH:mm:ss
chatsobject[]requiredConnected chats, shown as channel icons in the table row.4 fields
chatParticipantIdnumberrequired—
chatIdnumberrequired—
createdAtstringrequiredformat YYYY-MM-DDTHH:mm:ss
chatobjectAlways present at runtime; optional because card selects are built dynamically and TS cannot prove the nested object exists.5 fields
chatIdnumberrequired—
contactNamestringrequirednullable—
avatarstringrequirednullable—
lastMessageAtstringrequirednullableformat YYYY-MM-DDTHH:mm:ss
messengerobjectrequired4 fields
messengerIdnumberrequired—
nameOfMessengerstringrequired—
typeOfMessengerstringrequiredOne of: TELEGRAM_BOT INSTAGRAM FACEBOOK IMESSAGE
capabilitiesobjectrequirednullableWhat the channel supports; null when its adapter is not registered, so the chat is read-only.
customFieldsobjectCustom field values for the columns chosen in the table preset.any keys
Errors400401403429500
curl -X POST "https://your-school.rist.pro/api/customer" \
  -H "Authorization: Bearer $RIST_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "firstName": "string",
    "lastName": "string",
    "middleName": "string",
    "contacts": [
      {
        "type": "PHONE",
        "value": "string",
        "label": "string"
      }
    ],
    "dateOfBirth": "2026-11-09T14:30:00",
    "gender": "MALE",
    "relationToStudent": "MOTHER",
    "note": "string",
    "managerId": 1,
    "studentIds": [
      1
    ],
    "customFields": {}
  }'
Response example · 201
{
  "statusCode": 201,
  "message": "Operation completed successfully",
  "data": {
    "customerId": 1,
    "firstName": "string",
    "lastName": "string",
    "middleName": "string",
    "contacts": [
      {
        "type": "string",
        "value": "string",
        "label": "string"
      }
    ],
    "dateOfBirth": "2026-11-09T14:30:00",
    "gender": "MALE",
    "relationToStudent": "MOTHER",
    "note": "string",
    "manager": {
      "id": 1,
      "firstName": "string",
      "lastName": "string",
      "isArchival": false
    },
    "avatarUrl": "string",
    "isArchival": false,
    "updatedAt": "2026-11-09T14:30:00",
    "createdAt": "2026-11-09T14:30:00",
    "chats": [
      {
        "chatParticipantId": 1,
        "chatId": 1,
        "createdAt": "2026-11-09T14:30:00",
        "chat": {
          "chatId": 1,
          "contactName": "string",
          "avatar": "string",
          "lastMessageAt": "2026-11-09T14:30:00",
          "messenger": {
            "messengerId": 1,
            "nameOfMessenger": "string",
            "typeOfMessenger": "TELEGRAM_BOT",
            "capabilities": {}
          }
        }
      }
    ],
    "customFields": {}
  }
}
PATCH

Update customer

/api/customer/{id}

Change fields of a customer card. Send only the fields to change: contacts, when sent, replace the whole contact list.

update_customer

Path parameters · 1

idnumberrequired—

Request body

application/json · object

firstNamestringlength 1–30
lastNamestringnullablelength max 30
middleNamestringnullablelength max 30
contactsobject[]3 fields
typestringrequiredOne of: PHONE EMAIL MESSENGER URL
valuestringrequiredlength 1–255
labelstringrequirednullablelength max 50
dateOfBirthstringnullableformat YYYY-MM-DDTHH:mm:ss
genderstringOne of: MALE FEMALE
relationToStudentstringnullableOne of: MOTHER FATHER GRANDMOTHER GRANDFATHER
notestringnullablelength max 1500
managerIdnumbernullablemin 1
studentIdsnumber[]—
customFieldsobjectany keys

Response · 200

application/json

statusCodenumberrequiredexample 200
messagestringrequired—
dataobject16 fields
customerIdnumberrequired—
firstNamestringrequired—
lastNamestringrequirednullable—
middleNamestringrequirednullable—
contactsobject[]required3 fields
typestringrequired—
valuestringrequired—
labelstringrequirednullable—
dateOfBirthstringrequirednullableformat YYYY-MM-DDTHH:mm:ss
genderstringrequiredOne of: MALE FEMALE
relationToStudentstringrequirednullableOne of: MOTHER FATHER GRANDMOTHER GRANDFATHER
notestringrequirednullable—
managerobjectnullable4 fields
idnumberrequired—
firstNamestringrequired—
lastNamestringrequirednullable—
isArchivalbooleanrequired—
avatarUrlstringrequirednullable—
isArchivalbooleanrequired—
updatedAtstringrequiredformat YYYY-MM-DDTHH:mm:ss
createdAtstringrequiredformat YYYY-MM-DDTHH:mm:ss
chatsobject[]requiredConnected chats, shown as channel icons in the table row.4 fields
chatParticipantIdnumberrequired—
chatIdnumberrequired—
createdAtstringrequiredformat YYYY-MM-DDTHH:mm:ss
chatobjectAlways present at runtime; optional because card selects are built dynamically and TS cannot prove the nested object exists.5 fields
chatIdnumberrequired—
contactNamestringrequirednullable—
avatarstringrequirednullable—
lastMessageAtstringrequirednullableformat YYYY-MM-DDTHH:mm:ss
messengerobjectrequired4 fields
messengerIdnumberrequired—
nameOfMessengerstringrequired—
typeOfMessengerstringrequiredOne of: TELEGRAM_BOT INSTAGRAM FACEBOOK IMESSAGE
capabilitiesobjectrequirednullableWhat the channel supports; null when its adapter is not registered, so the chat is read-only.
customFieldsobjectCustom field values for the columns chosen in the table preset.any keys
Errors400401403429500
curl -X PATCH "https://your-school.rist.pro/api/customer/1" \
  -H "Authorization: Bearer $RIST_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "firstName": "string",
    "lastName": "string",
    "middleName": "string",
    "contacts": [
      {
        "type": "PHONE",
        "value": "string",
        "label": "string"
      }
    ],
    "dateOfBirth": "2026-11-09T14:30:00",
    "gender": "MALE",
    "relationToStudent": "MOTHER",
    "note": "string",
    "managerId": 1,
    "studentIds": [
      1
    ],
    "customFields": {}
  }'
Response example · 200
{
  "statusCode": 200,
  "message": "Operation completed successfully",
  "data": {
    "customerId": 1,
    "firstName": "string",
    "lastName": "string",
    "middleName": "string",
    "contacts": [
      {
        "type": "string",
        "value": "string",
        "label": "string"
      }
    ],
    "dateOfBirth": "2026-11-09T14:30:00",
    "gender": "MALE",
    "relationToStudent": "MOTHER",
    "note": "string",
    "manager": {
      "id": 1,
      "firstName": "string",
      "lastName": "string",
      "isArchival": false
    },
    "avatarUrl": "string",
    "isArchival": false,
    "updatedAt": "2026-11-09T14:30:00",
    "createdAt": "2026-11-09T14:30:00",
    "chats": [
      {
        "chatParticipantId": 1,
        "chatId": 1,
        "createdAt": "2026-11-09T14:30:00",
        "chat": {
          "chatId": 1,
          "contactName": "string",
          "avatar": "string",
          "lastMessageAt": "2026-11-09T14:30:00",
          "messenger": {
            "messengerId": 1,
            "nameOfMessenger": "string",
            "typeOfMessenger": "TELEGRAM_BOT",
            "capabilities": {}
          }
        }
      }
    ],
    "customFields": {}
  }
}