মূল বিষয়বস্তুতে যান
সব পৃষ্ঠা

ফি ও পেমেন্ট

মাসিক ফি ও ইনভয়েস

একটি ব্যাচে একবারের বদলে মাসিক ফি নিন, চলতি মাসের ইনভয়েস তৈরি করুন, ইনভয়েসের বিপরীতে পেমেন্ট নিন, আর ভুল ইনভয়েস কিছু মুছে না ফেলেই সংশোধন করুন।

সর্বশেষ হালনাগাদ ১৫ আগস্ট, ২০২৬

যা করবেন

একটি ব্যাচকে একবারের কোর্স ফি থেকে মাসিক ফিতে বদলাবেন, ক্যাম্পাসকিউ প্রতি মাসে ভর্তি থাকা প্রতিটি শিক্ষার্থীর জন্য ইনভয়েস তুলবে, সেই ইনভয়েসের বিপরীতে টাকা আদায় করবেন, এবং যেগুলো ভুল সেগুলো সংশোধন করবেন।

শুরুর আগে

  • আগে ভর্তি, ফি ও পেমেন্ট পড়ুন। মাসিক বিলিং জমাট ভর্তি-মোটের পাশাপাশি চলে, তার উপরে নয় — এবং দুটোর আচরণ ইচ্ছাকৃতভাবেই আলাদা।
  • ব্যাচের Monthly fee এবং, আপনি নিলে, Admission fee কত হবে সেই সিদ্ধান্ত।
  • স্ক্রিন দেখতে Fee Invoices read; ইনভয়েস তুলতে বা তৈরি করতে create; সংশোধন, মওকুফ, বাতিল বা পুনর্বহাল করতে update। টাকা নিতে লাগে Payments create — ইচ্ছাকৃতভাবেই আলাদা একটি অনুমতি।
  • আপনার সেন্টারের due-day সেটিং, যদি ঠিক করে থাকেন। কোথায় আছে এবং তার উপর ভর করে কোন তাগিদগুলো যায়, দেখুন SMS ও নোটিফিকেশন

মূল সিদ্ধান্ত: একবারে না মাসিক

প্রতিটি ব্যাচে একটি Billing cycle আছে, যার দুটি মান ব্যাচ ফর্মে ঠিক করা হয় (দেখুন কোর্স, ব্যাচ ও সময়সূচি):

Billing cycleকী ঘটে
One-time (course fee)Students are charged the course fee once. Payments are credited against the enrollment total, exactly as before. এটিই ভর্তি পৃষ্ঠায় বর্ণিত আচরণ, অপরিবর্তিত।
MonthlyA fee invoice is raised for every enrolled student each month. The admission fee, if set, is invoiced once when the student joins.

এর ফল স্পষ্ট করে বলা দরকার, কারণ এটিই ঠিক করে দেয় শিক্ষার্থীর বাকি কোথায় খুঁজবেন:

  • One-time ব্যাচে শিক্ষার্থীর বাকি = Enrollment Total − Amount Paid, যা Enrollments স্ক্রিনে দেখা যায়।
  • Monthly ব্যাচে ভর্তি-মোট 0-তে জমাট থাকে এবং শিক্ষার্থীর প্রতিটি টাকা এই স্ক্রিনের ইনভয়েসে থাকে।

দুটি ইচ্ছাকৃতভাবেই আলাদা — কোনো টাকা হয় ভর্তির ব্যালান্স, নয়তো ইনভয়েস, কখনও দুটোই নয়। তাই আপনার ড্যাশবোর্ডে বা Outstanding Dues রিপোর্টে কোনো কিছু দুবার গোনা হয় না।

মাসিক ব্যাচে মাসিক ফি লাগবেই: A monthly batch needs a monthly fee greater than zero.

চালু ব্যাচকে Monthly-তে বদলালে

বিলিং সাইকেল বদলালে আগে থেকে জমাট হয়ে থাকা মোট নতুন করে লেখা হয় না। যে ব্যাচের পঞ্চাশজন শিক্ষার্থীর প্রত্যেকের ৳১ ২০০ বাকি, ব্যাচটি Monthly করার পরেও তাঁদের সেই ৳১ ২০০ বাকিই থাকে; সেই সঙ্গে তাঁরা মাসিক ইনভয়েসও পেতে শুরু করেন।

এটি ইচ্ছাকৃত। একটি ড্রপডাউন বদলানোর কারণে পঞ্চাশটি বাস্তব বাকি নিঃশব্দে শূন্য করে দেওয়া অনেক বেশি খারাপ হতো। তবে এর মানে হলো, কোর্স চলাকালে বদলালে ওই শিক্ষার্থীদের কাছ থেকে দুই জায়গা থেকে আদায় করতে হবে। হয় স্বাভাবিক সীমানায় বদলান — নতুন ব্যাচে, বা যে ব্যাচে এখনও কারও বিল হয়নি — নয়তো জমাট ব্যালান্সগুলো হাতে মিটিয়ে দেওয়ার পরিকল্পনা রাখুন।

এতে তাঁদের বাকির তাগিদও দ্বিগুণ হয়। তাগিদের সুরক্ষা প্রতি বাকিতে প্রতিদিন একবার, প্রতি শিক্ষার্থীতে প্রতিদিন একবার নয়। তাই যে শিক্ষার্থীর জমাট ভর্তির ব্যালান্স আর একটি অপরিশোধিত মাসিক ইনভয়েস দুটোই আছে, তিনি একই রাতে দুটি তাগিদ SMS পান, প্রতিটিতে আলাদা অঙ্ক লেখা, আর প্রতিটির জন্য একটি করে ক্রেডিট খরচ হয়। আচরণটি ইচ্ছাকৃত — দুটি বকেয়ার একটির কথা জানিয়ে অন্যটি চেপে যাওয়া আরও খারাপ — তবে যে ব্যাচে ইতিমধ্যে বিল হয়ে গেছে সেখানে এই ড্রপডাউন বদলানোর সরাসরি ও তাৎক্ষণিক ফল এটাই। প্রতি শিক্ষার্থীতে একটি বার্তা চাইলে জমাট ব্যালান্সগুলো মিটিয়ে ফেলুন। দেখুন SMS ও নোটিফিকেশন

চলতি মাসের ইনভয়েস তৈরি করুন

ইনভয়েস প্রতি রাতে আপনাআপনি তৈরি হয়, তাই স্বাভাবিক অবস্থায় আপনাকে কিছুই করতে হয় না। হাতে চালানোর ব্যবস্থাটি আছে প্রথম মাসের জন্য, সদ্য কনফিগার করা ব্যাচের জন্য, আর যেদিন ইনভয়েসগুলো এখনই চোখের সামনে চান সেই দিনের জন্য।

Fee Invoices-এ যান — Monthly and admission fees raised against enrollments. — এবং Generate invoices চাপুন। বাটনের টুলটিপেই নিয়মটি আছে: Raise this month's invoices now instead of waiting for the nightly run.

ডায়ালগটি Generate fee invoices, আর এটি এমন একটি আশ্বাস দিয়ে শুরু হয় যা বিশ্বাস করা যায়: This is the same routine that runs every night. Running it again is safe: invoices that already exist are skipped, not duplicated.

ফিল্ডনোট
Business dateডিফল্ট আজ। এই তারিখ যে মাসে পড়ে, সেই মাসের বিল হয়।
Due day offset০–২৭, এবং ইচ্ছাকৃতভাবে ফাঁকা: Leave empty to use your centre's configured due day. Set a value only to override it for this run. সত্যিই এক রানের জন্য নিজের সেটিং অগ্রাহ্য করতে না চাইলে হাত দেবেন না।

Run now চাপুন। Result for ব্লকটি পাবেন:

লাইনমানে
Admission invoices createdএই মাসে যোগ দেওয়া শিক্ষার্থী, যাঁদের ব্যাচে ভর্তি ফি আছে।
Monthly invoices createdমাসিক ব্যাচের প্রতিটি বিলযোগ্য ভর্তির জন্য একটি করে।
Total createdউপরের দুটির যোগফল।
Enrollments consideredসিদ্ধান্ত নেওয়ার আগে রানটি কতগুলো সারি দেখেছে।
Skipped — invoice already existedস্বাভাবিক। রাতের রান, বা এই বাটনে আগের কোনো চাপ, আগেই কাজটি করে ফেলেছে।
Skipped — no fee configuredব্যাচটি মাসিক বিলিং-এ আছে কিন্তু তাতে মাসিক বা ভর্তি ফি বসানো নেই।

স্ক্রিন স্পষ্ট করেই বলে যে বাদ পড়া মানে ব্যর্থতা নয়: Skipped rows are not failures. "Already existed" means the nightly run got there first; "no fee configured" means the batch has no monthly or admission fee set. আর যখন রানে কিছুই তৈরি হয় না: Nothing was created. Every enrollment considered was either already invoiced for this period or has no fee configured on its batch.

কোন শিক্ষার্থীদের ইনভয়েস হয়

চারটি নিয়ম ঠিক করে দেয়, এবং প্রতিটি কাউকে না কাউকে বিভ্রান্ত করেছে:

  1. বিলযোগ্য ভর্তি কেবল Pending ও Active। Pending ইচ্ছাকৃতভাবেই ধরা হয় — এটি অনবোর্ডিং প্রবাহের অনুমোদন-পূর্ব অবস্থা, আর সেন্টারগুলো বাস্তবে ক্লাস করা শিক্ষার্থীদের এখানেই ফেলে রাখে। Completed মানে কোর্স শেষ; Suspended একটি সচেতন সিদ্ধান্ত, যাতে বিলিং থামা উচিত।
  2. ড্রপ করা ভর্তির কখনও ইনভয়েস হয় না। যিনি ছেড়ে গিয়ে আবার ভর্তি হয়েছেন, তাঁর বিল একবারই হয়, দুবার নয়।
  3. ভর্তি ফি যে মাসে শিক্ষার্থী যোগ দেন সেই মাসেই বসে, কখনও পিছিয়ে নয়। দুইশ শিক্ষার্থী আছে এমন ব্যাচে ভর্তি ফি বসালে দুইশ জনের পুরনো তারিখে ইনভয়েস হয়ে সবাই সঙ্গে সঙ্গে ওভারডিউ হয়ে যায় না
  4. কোনো প্রোরেশন নেই। ২৮ তারিখে যোগ দেওয়া শিক্ষার্থীর পুরো মাসের ইনভয়েস হয়, ঠিক ১ তারিখে যোগ দেওয়া কারও মতোই।

শেষেরটি একটি সচেতন সিদ্ধান্ত এবং শিক্ষকের বেতনের ঠিক উল্টো (দেখুন বেতন ও পে-রোল)। যুক্তিটি হলো: ফি হলো সেন্টারের ঠিক করা দাম, আর নতুন পরিবার যে বিলটি সবচেয়ে মনোযোগ দিয়ে পড়ে সেটিতেই আংশিক মাসের হিসাব ডেস্কে তর্ক ডেকে আনে। অন্যদিকে বেতন হলো এক মাসের পারিশ্রমিক, যা ওই মাসে কার্যকর থাকা কাঠামোগুলোর মধ্যে ভাগ হয়।

আপনার সেন্টার প্রোরেশন চাইলে জানান — এটি কনফিগারেশনের প্রশ্ন, নতুন করে বানানোর নয়।

হাতে একটি ইনভয়েস তোলা

টুলবারের Raise invoice, এমন যেকোনো কিছুর জন্য যা মাসিক রান তৈরি করবে না: এককালীন পরীক্ষার ফি, বইয়ের দাম, বা আবার বসানো ভর্তি ফি।

ফিল্ডনোট
Enrollmentআবশ্যক। Search by student or enrollment number
Fee typeAdmission, Monthly বা Other। ডিফল্ট Monthly।
Periodএকটি মাস, ডিফল্ট চলতি মাস।
Amount dueLeave blank to use the batch's configured fee.
Due dateকবে ওভারডিউ হবে, অর্থাৎ কবে থেকে তাগিদ যেতে পারে।
Notesঐচ্ছিক, আর ৫০০ অক্ষরের নিচে রাখুন — ইনভয়েস রেকর্ড এতটুকুই রাখে। ফর্ম ১ ০০০ অক্ষর পর্যন্ত লিখতে দেবে, কিন্তু ৫০০-র বেশি হলে সেভ করার সময় ব্যর্থ হবে।

Raise invoice চাপুন। পাবেন Invoice raised — An invoice was raised for .

Admission ও Monthly প্রতি ভর্তি ও প্রতি সময়কালে একবারই হয়। দ্বিতীয়টি বাতিল হয়: An invoice of this type already exists for this enrollment and period. Change the period, or open the existing invoice instead. Other ধরনটি ইচ্ছাকৃতভাবে পুনরাবৃত্তিযোগ্য, যাতে একই মাসে দুটি আলাদা এককালীন চার্জ তোলা যায়।

তালিকাটি পড়া

কলামগুলো Student, Batch, Fee type, Period, Due, Paid, Remaining, Due date, StatusActions। ওভারডিউ সারিতে 12d overdue ধরনের ব্যাজ থাকে।

পাঁচটি স্ট্যাটাস:

স্ট্যাটাসমানে
Pendingতোলা হয়েছে, কিছু আদায় হয়নি।
Partially paidকিছু আদায় হয়েছে, কিছু বাকি।
Paidপুরো মিটে গেছে।
Waivedআপনি বাকিটা মাফ করেছেন। ইনভয়েসটি রেকর্ডে থেকে যায়।
Cancelledভুল করে তোলা হয়েছিল, বাতিল করা হয়েছে। ইনভয়েসটি রেকর্ডে থেকে যায়।

ফিল্টার: Course, Batch (কোর্স না বাছা পর্যন্ত Select a course first), Fee type, Status, Period, আর একটি Outstanding only সুইচ। তারপর Apply, বা Clear filters

অ্যাপের অন্য কোথাও থেকে কোনো শিক্ষার্থী বা ভর্তির সূত্রে এলে স্ক্রিনটি সংকুচিত হয় এবং তা জানিয়েও দেয়: Showing invoices for one enrollment or student only.

পেমেন্ট নেওয়া

সারিতে Take payment, যতক্ষণ ইনভয়েসটি Pending বা Partially paid এবং কিছু বাকি আছে। এতে Payments create অনুমতি লাগে, Fee Invoices update নয় — যিনি বিল সংশোধন করতে পারেন, তিনি আপনাআপনি নগদ হাতে নেওয়ার লোক নন।

ডায়ালগ শুরু হয় outstanding on this invoice. দিয়ে।

  1. Amount — পুরো বাকি আগে থেকেই বসানো। Cannot exceed the outstanding balance.
  2. MethodCash, Bank transfer, Credit card, Debit card, Online payment, Cheque, Other, bKash, Nagad, Rocket। ডিফল্ট Cash।
  3. Payment date — ডিফল্ট আজ।
  4. Transaction ID — নগদ ছাড়া অন্য সব ক্ষেত্রে লিখুন। কোনো লেনদেন নিয়ে প্রশ্ন উঠলে এটি ধরেই খুঁজবেন।
  5. পেমেন্টে কিছু ব্যাখ্যার দরকার হলে Notes
  6. Record payment

পাবেন Payment recorded — A receipt was written and the income posted to the cash book. বাক্যটির দুই অংশই গুরুত্বপূর্ণ: পরিবারের জন্য একটি রসিদ নম্বর তৈরি হলো, আর টাকাটি সঠিক খাতে আপনার ক্যাশ বইয়ে বসল। দেখুন হিসাব ও খরচ

বেশি টাকা নেওয়া বাতিল হয়: That is more than the outstanding balance on this invoice.

ইনভয়েস সংশোধন: চারটি কাজ, কোনো ডিলিট নেই

ডিলিট বলে কিছু নেই। ইনভয়েস একটি আর্থিক রেকর্ড, তাই প্রতিটি সংশোধন সম্পাদনা নয়, বরং কারণসহ নতুন এন্ট্রি। চারটি কাজ একই ডায়ালগ ব্যবহার করে, এবং চারটিতেই কারণ লাগে:

কাজকখনডায়ালগ যা বলে
Adjust amountঅঙ্কটাই ভুল।Correct the amount due on this invoice. The old and new amounts are both kept.
Waive invoiceআদায় না করার সিদ্ধান্ত নিয়েছেন।Forgive the outstanding balance. The invoice stays on record as waived.
Cancel invoiceএটির অস্তিত্বই থাকা উচিত ছিল না।Void an invoice raised in error. Nothing is deleted — the invoice stays on record as cancelled.
Reinstate invoiceভুল করে মওকুফ বা বাতিল করে ফেলেছেন।Undo a waiver or cancellation and make this invoice live again.

Adjust একটি New amount due চায়, সঙ্গে সীমাটিও বলে দেয়: has already been collected — the new amount cannot be lower than that.

চারটিতেই Reason লাগে — Why is this change being made?, ৫০০ অক্ষর পর্যন্ত — এই নোটের নিচে: The reason is written to the invoice's audit trail along with your name and the time. তারপর Confirm চাপুন।

কারণটি অচেনা কারও জন্য লিখুন। "Waived — বন্যায় পরিবারের বাড়ি ক্ষতিগ্রস্ত, পরিচালকের সম্মতিতে ২০২৬-০৮-১১" একটি অডিট রেকর্ড। "ভুল" নয়।

অডিট ট্রেইল

প্রতিটি সারিতে সবসময় Audit trail থাকে। ভর্তির ফি সমন্বয়ের বিপরীতে, ইনভয়েসের ইতিহাস অ্যাপের ভেতরেই দেখা যায় — সাপোর্টকে জিজ্ঞেস করতে হয় না।

ডায়ালগ নিজেই বলে দেয়: Every waiver, cancellation and amount change on this invoice, with who made it and why. কলাম When, Change, Amount, StatusReason, যেখানে অঙ্ক ও স্ট্যাটাস old → new আকারে দেখায়। পরিবর্তনের ধরনগুলো Amount adjusted, Waived, CancelledReinstated। অস্পর্শিত ইনভয়েসে লেখা থাকে Nothing has changed yet — This invoice has not been adjusted, waived or cancelled.

"কে এই অঙ্ক বদলাল, কখন, কেন" — ISO 9001 ও ISO 27001-এর এই প্রশ্নের উত্তর এটিই। এটিকেই রেকর্ড ধরুন; ইনভয়েসের Notes ফিল্ড নয়।

নোট

  • ইনভয়েস তোলা মানে টাকা নড়া নয়। অপরিশোধিত ইনভয়েস হলো দেনা, নগদ নয়। তোলা, সমন্বয়, মওকুফ, বাতিল ও পুনর্বহাল ক্যাশ বইয়ে কিছুই পোস্ট করে না। কেবল পেমেন্টই করে। দেখুন হিসাব ও খরচ
  • কাজটা রাতের রানই করে। হাতে তৈরি করার ব্যবস্থাটি প্রথম মাস আর অধৈর্যের জন্য; দুবার চাপলেও ক্ষতি নেই।
  • ডিউ ডেট থেকেই তাগিদ চলে। স্বয়ংক্রিয় তাগিদ ডিউ ডেটের পরে আপনার ঠিক করা দিনগুলোতে যায়, আর হাতে চালানো তাগিদের সঙ্গে দুবার পাঠায় না। দেখুন SMS ও নোটিফিকেশন
  • শিক্ষার্থীর ফিতে কখনও প্রোরেশন নেই — আর শিক্ষকের বেতনে পুরোপুরি আছে। এগুলো আলাদা ধরনের সংখ্যা; দেখুন বেতন ও পে-রোল
  • Outstanding Dues দুই উৎসই দেখাতে পারে। রিপোর্টের Include monthly fee invoices টগলটি ঠিক করে দেয় — দেখুন রিপোর্ট
  • অডিট ও ডকুমেন্ট নিয়ন্ত্রণ। ইনভয়েস আর্থিক রেকর্ড: ডিলিট নেই, সরাসরি সম্পাদনা নেই, প্রতিটি সংশোধন কর্তা, সময় ও আবশ্যক কারণসহ যুক্ত হয়।
  • সব উদাহরণ কল্পিত। এখানে Demo Student 1, ৳1,20012d overdue বানানো।

সমস্যা সমাধান

ব্যাচটি Monthly করলাম, কিন্তু পুরনো বাকিগুলো রয়েই গেছে। ঠিক আছে এবং এটাই উদ্দেশ্য। বিলিং সাইকেল বদলালে জমাট ভর্তি-মোট নতুন করে লেখা হয় না। Enrollments স্ক্রিনে সেগুলো মিটিয়ে দিন, নয়তো মেনে নিন যে ওই শিক্ষার্থীদের কাছ থেকে দুই জায়গা থেকে আদায় করতে হবে যতক্ষণ না তাঁরা পরিষ্কার হন — আর দুটি বাকির প্রতিটির জন্য তাঁরা আলাদা তাগিদ SMS পাবেন।

ইনভয়েস তৈরি করতে গিয়ে ডেটাবেস এরর এল, কোনো কাজের বার্তা ছাড়াই। প্রায় সবসময়ই Notes ঘরটি বেশি লম্বা হওয়ার কারণে। ফর্ম ১ ০০০ অক্ষর পর্যন্ত নেয়, কিন্তু ইনভয়েস রেকর্ড রাখে ৫০০ — তাই এর চেয়ে লম্বা নোট সেভ করার সময় ফিল্ড-পর্যায়ের সতর্কতা ছাড়াই কাঁচা এরর দিয়ে ফিরিয়ে দেওয়া হয়। নোটটি ৫০০ অক্ষরের নিচে ছোট করে আবার সেভ করুন।

Generate কিছুই তৈরি করল না। রেজাল্ট ব্লকটি পড়ুন। হয় প্রতিটি ভর্তির এই সময়কালের ইনভয়েস আগেই হয়ে গেছে, নয়তো ব্যাচে মাসিক বা ভর্তি ফি বসানো নেই। দুটোই আলাদা করে বলা থাকে।

যে শিক্ষার্থী স্পষ্টতই ক্লাস করছেন, তাঁর ইনভয়েস হয়নি। তাঁর ভর্তির স্ট্যাটাস দেখুন। কেবল PendingActive বিলযোগ্য — Completed, Suspended ও ড্রপ করা নয়।

২৭ তারিখে যোগ দেওয়া শিক্ষার্থীর পুরো মাসের বিল হয়েছে। নিয়মটাই তাই: কোনো প্রোরেশন নেই, যোগ দেওয়ার দিন যা-ই হোক পুরো মাস।

"An invoice of this type already exists for this enrollment and period." Admission ও Monthly প্রতি ভর্তি ও প্রতি সময়কালে একটিই। বিদ্যমান ইনভয়েসটি খুলুন, বা সত্যিই আলাদা চার্জ হলে Other ধরনটি ব্যবহার করুন।

"Money has already been collected against this invoice." আপনি এমন ইনভয়েস বাতিল করতে চাইছেন যার বিপরীতে রসিদ আছে। আগে রসিদটি ফেরত দিন বা মুছুন — নাহলে বাতিল করা নথির বিপরীতে পোস্ট করা আয় পড়ে থাকত।

"The new amount is lower than what has already been collected." আগে রসিদটি ফেরত দিন, তারপর ইনভয়েসের অঙ্ক কমান।

"This enrollment is completed or suspended, so it cannot be invoiced." শিক্ষার্থী এখনও পড়লে ভর্তিটি আবার সক্রিয় করুন, তারপর ইনভয়েস তুলুন।

সারিতে Take payment নেই। হয় ইনভয়েসটি ইতিমধ্যেই Paid, Waived বা Cancelled, নয়তো আপনার Payments create অনুমতি নেই। Fee Invoices update যথেষ্ট নয়।