Core
  1. Quick Start
Core
  • Introduction
    • What is Core
    • HTTP Statuses
    • Request
    • Responses
    • Meta
    • Limit & Pagination
    • Query Parameters
  • Quick Start
    • Letters
  • Auth
    • Sign In with Email and Password
      POST
    • Get the Current Session
      GET
    • Sign Out the Current User
      POST
  • Users
    • Get All Users
      GET
    • Create a User
      POST
    • Retrieve an Existing User
      GET
    • Delete an Existing User
      DELETE
    • Update an Existing User
      PATCH
    • Get Current User
      GET
    • Update Current User
      PATCH
    • Get Current User Devices
      GET
    • Retrieve User Devices by User ID
      GET
    • Update Own Profile Image
      POST
    • Update User Image
      POST
    • Reset User Password
      PATCH
    • Get User Login History
      GET
  • Staff
    • Get All Staff
      GET
    • Retrieve an Existing Staff
      GET
    • Create a Staff
      POST
    • Delete an Existing Staff
      DELETE
    • Update an Existing Staff
      PATCH
  • Teachers
    • Get All Teachers
    • Retrieve an Existing Teacher
    • Create a Teacher
    • Delete an Existing Teacher
    • Update an Existing Teacher
  • Students
    • Get All Students
    • Retrieve an Existing Student
    • Create a Student
    • Delete an Existing Student
    • Update an Existing Student
    • Import Bulk Students
  • Roles
    • Get All Roles
    • Create a Role
    • Retrieve an Existing Role
    • Update an Existing Role
    • Delete an Existing Role
    • Get All Eligible Users for Role
    • Get All Members of Role
    • Add Bulk Member to Role
    • Remove Bulk Members from Role
  • Classes
    • Get All Classes
    • Create a Class
    • Delete an Existing Student Copy
    • Create a Class Copy
  • Statistics
    • Teachers
      • Get Teacher Gender Stats
      • Get Teacher Religion Distribution
      • Get Teacher Employment Stats
      • Get Teacher Age Stats
    • Students
      • Get Student Gender Stats
      • Get Student Religion Distribution
      • Get Student Weight Stats
      • Get Student Height Stats
      • Get Student Age Stats
      • Get Student Transportation Stats
      • Get Student Class Stats
    • Staffs
      • Get Staffs Gender Stats
      • Get Staffs Religion Distribution
      • Get Staffs Age Stats
      • Get Staffs Employment Stats
    • Users
      • Retrieve User Summary
    • Get All Stats
  • Letters
    • Get All Letters
    • Retrieve an Existing Letter
    • Create a Letter
    • List User Letter
    • List Current User Letter
    • List Recipients
  • Letter Actions
    • Initiate a Letter Action
  • Files
    • Create a Presigned URL
  • Schemas
    • Schemas
      • Letter
        • LetterHistory
        • LetterStatus
        • LetterType
      • User
        • UserProfile
      • Address
      • Meta
      • Base
      • bloodType
      • Religion
      • Gender
      • ParentInfo
      • Error
      • GenderStats
      • ReligionDistribution
      • WeightStats
      • HeightStats
      • AgeStats
      • TransportationStats
      • ClassStats
      • EducationHistoryObject
      • EmploymentStats
      • Location
      • EconomyStats
      • Actor
    • Model
      • User
      • Teacher
      • Staff
      • Student
      • Letter
      • Class
      • Roles
    • LoginHistory
  1. Quick Start

Letters

A school correspondence system designed to simplify letter creation for students and teachers. This documentation explains the Letter object structure, key features, and how to integrate with the system.

Overview#

The Letter system manages the lifecycle of school-related letters, including creation, review, approval, and tracking. Letters contain metadata, content, and status information to streamline communication workflows.

Key Features#

Applicant & Reviewer Tracking: Link letters to student/teacher applicants and reviewers.
Status Flow: Track progress via DRAFT, PENDING, UNDER_REVIEW, REVISIONS_NEEDED, APPROVED, REJECTED.
Attachments: Support for file attachments (e.g., PDF, PNG, JPEG).
Letter Numbering: Auto-generated unique IDs upon approval or manual by reviewer.
CC Management: Carbon-copy external parties via app or email.

Letter Object Structure#

Key Fields#

KeyData TypeDescriptionRequiredExample/Values
applicantObjectCreator of the letter. Contains name and email.No (Auto){ "name": "Fauzan", "email": "12345@school.edu" }
reviewerObjectReviewer assigned to approve/reject the letter. Same structure as applicant.No (Auto){ "name": "Rifan", "email": "rifan@school.edu" }
letterTypeString (Enum)Type of letter. Predefined values.YesLEAVE_PERMISSION, RECOMMENDATION, DISPENSATION
statusString (Enum)Current state of the letter.No (Auto)DRAFT, PENDING, UNDER_REVIEW, REVISIONS_NEEDED, APPROVED, REJECTED
beginDateISO DateStart date of the letter's validity period.Depends*2023-10-01T00:00:00Z
endDateISO DateEnd date of the letter's validity period.Depends*2023-10-05T00:00:00Z
attachmentString (URL)Link to uploaded attachment file (e.g., PDF).Depends**https://s3.school.edu/attachments/123.pdf
reasonStringPurpose/description of the letter.Yes"Lomba short movie cfd"
ccArray<String>List of email addresses to carbon-copy.No["student1@school.edu", "student2@school.edu"]
isPrintedBooleanWhether the letter has been physically printed.Yesfalse
letterNumberStringAuto-generated unique ID after approval (e.g., "SCH/2023/001").NoSCH/2023/001
letterDateISO DateOfficial date assigned when the letter is approved.No2023-09-25T14:30:00Z
letterContentStringBody/content of the letter (HTML or plain text).Nohttps://s3.school.edu/attachments/123.pdf
createdAtISO DateTimestamp of letter creation (auto-generated).No (Auto)2023-09-25T09:15:00Z
updatedAtISO DateTimestamp of last update (auto-generated).No (Auto)2023-09-25T10:30:00Z
* Required for letters with validity periods (e.g., leave requests, assignment).
** Required if the letter type allows attachments (e.g., dispensation, sick).
Modified at 2025-10-28 17:26:10
Previous
Query Parameters
Next
Sign In with Email and Password
Built with