Local - Fees Transactions
            There may be a requirement to get fees transactions for students.  The easiest way to do this is to create a report.
Sample code from Local - SIMS 7 Fees Example Code | ESS Portal (sims-partners.com) shows how this can be achieved.
Using command reporter to run it, see Local API - Hello World (Read Only) | ESS Portal (sims-partners.com) for instructions on how to code the solution. This will look something like this when you've re-used the sample code.
        public static TransactionsSuperStarReport GetTransations(DateTime Start, DateTime End, string _File, string Server, string Database, string User, string Password)
        {
            if (SIMSReportingEngine.ReportingEngine.Load(_File, Server, Database, User, Password))
            {
                XmlDocument d = SIMSReportingEngine.ReportingEngine.Run("Fees Data Export Transactions v1", Server, Database, User, Password);
                XmlSerializer serializer = new XmlSerializer(typeof(TransactionsSuperStarReport));
                TransactionsSuperStarReport tssr = null;
                using (StringReader reader = new StringReader(d.InnerXml))
                {
                    tssr = (TransactionsSuperStarReport)serializer.Deserialize(reader);
                }
                return tssr;
            }
            return null;  
        }
The report generates a document
<SuperStarReport>
  <Record>
    <multiple_id>12337,12260</multiple_id>
    <StudentID>12337</StudentID>
    <PupilReference>PARKSP</PupilReference>
    <ExternalId>6fca7a6a-7597-4ef5-ad5b-fd9ab2273688</ExternalId>
    <Payer_Outstanding_Balance>10900.00</Payer_Outstanding_Balance>
    <Pupil_Payer_Outstanding_Balance>10900.00</Pupil_Payer_Outstanding_Balance>
    <PayerReference>PARK4854</PayerReference>
  </Record>
  <Record>
    <multiple_id>11827,11795</multiple_id>
    <StudentID>11827</StudentID>
    <PupilReference>Pottsi</PupilReference>
    <ExternalId>23314cd4-f20b-46ff-b83d-d1389f94a68d</ExternalId>
    <Payer_Outstanding_Balance>10900.00</Payer_Outstanding_Balance>
    <Pupil_Payer_Outstanding_Balance>10900.00</Pupil_Payer_Outstanding_Balance>
    <PayerReference>POTT3383</PayerReference>
  </Record>
</SuperStarReport>
 
This can be deserialized in to:
 
	[XmlRoot(ElementName = "Record")]
	public class TransactionRecord
	{
		/// <summary>
		/// The Fees reference for a student
		/// </summary>
		[XmlElement(ElementName = "PupilReference")]
		public string PupilReference { get; set; }
		/// <summary>
		/// Internal ID of a Student
		/// </summary>
		[XmlElement(ElementName = "ID")]
		public int ID { get; set; }
		/// <summary>
		/// External ID of a student
		/// </summary>
		[XmlElement(ElementName = "ExternalId")]
		public string ExternalId { get; set; }
		/// <summary>
		/// Transaction type for this transaction
		/// </summary>
		[XmlElement(ElementName = "TransactionType")]
		public string TransactionType { get; set; }
		/// <summary>
		/// Description
		/// </summary>
		[XmlElement(ElementName = "TransactionDescription")]
		public string TransactionDescription { get; set; }
		/// <summary>
		/// Amount of the transaction
		/// </summary>
		[XmlElement(ElementName = "Amount")]
		public double? Amount { get; set; }
		/// <summary>
		/// VAT amount of the transaction
		/// </summary>
		[XmlElement(ElementName = "VATAmount")]
		public double? VATAmount { get; set; }
		/// <summary>
		/// Amount + VAT
		/// </summary>
		[XmlElement(ElementName = "GrossAmount")]
		public double? GrossAmount { get; set; }
		/// <summary>
		/// Transaction Date
		/// </summary>
		[XmlElement(ElementName = "Date")]
		public DateTime? Date { get; set; }
		/// <summary>
		/// Transaction batch number
		/// </summary>
		[XmlElement(ElementName = "BatchNumber")]
		public string BatchNumber { get; set; }
		/// <summary>
		/// Sequence number in the batch
		/// </summary>
		[XmlElement(ElementName = "BatchSequence")]
		public string BatchSequence { get; set; }
		/// <summary>
		/// Reference of Payer
		/// </summary>
		[XmlElement(ElementName = "PayerReference")]
		public string PayerReference { get; set; }
		/// <summary>
		/// Amount allocated
		/// </summary>
		[XmlElement(ElementName = "AmountAllocated")]
		public double? AmountAllocated { get; set; }
		/// <summary>
		/// Amount available to allocate
		/// </summary>
		[XmlElement(ElementName = "AmountUnallocated")]
		public double? AmountUnallocated { get; set; }
		/// <summary>
		/// Transaction Type
		/// </summary>
		[XmlElement(ElementName = "Type")]
		public string Type { get; set; }
		/// <summary>
		/// Disputed flag
		/// </summary>
		[XmlElement(ElementName = "DisputedBill")]
		public string DisputedBill { get; set; }
	}
 
Alternative reports can match internal / external ids to Payer Reference.