NAV
shell ruby python csharp php

FinancialTransaction

The FinancialTransaction object

The FinancialTransaction object looks like this in JSON:

{
    "object": "financial_transaction",
    "id": 9,
    "type": "sales_invoice",
    "status": "posted",
    "number": 1234,
    "posted_on": "2015-03-10",
    "actor_type": "person",
    "actor_id": 1,
    "voided_at": null,
    "voided_by_id": null,
    "link_type": null,
    "link_id": null,
    "amount": 1234.56,
    "reverses": null,
    "reversed_by_id": null,
    "reposts": null,
    "reposted_by_id": null,
    "repostable": true,
    "added_at": "2015-03-10T19:33:11+00:00",
    "added_by_id": null,
    "sandbox": true
}
Attribute Required Data Type
id Yes int
type Yes enum (journal, sales_invoice, sales_credit, customer_payment, customer_repayment, aid_payment, aid_repayment, sales_receipt, library_fine, donation, purchase, inventory_adjustment, gateway_processing_fee, reversal, aid_drawdown, gateway_deposit, donation_refund, gateway_withdrawal)
status Yes enum (construction, posted, void)
number Yes int
posted_on Yes date
actor_type Yes enum (none, person, contact_org, loan, asset)
actor_id Yes int
voided_at Yes datetime
voided_by_id No int
link_type No enum (uncollectible_invoice, recollectible_invoice, application, bookstore_order, financial_aid, donation, inventory_batch, transcript_request, transaction, form_response, gateway_deposit, gateway_withdrawal)
link_id Yes int
amount Yes decimal
reverses No int
reversed_by_id No int
reposts No int
reposted_by_id No int
repostable Yes bool
added_at Yes datetime
added_by_id No int
sandbox No bool

index

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/transactions" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
-d '{
    "posted_date_start": "2022-01-05",
    "posted_date_end": "2023-02-06",
    "filter": {"0":{"logic":"ALL","fields":[{"name":"posted_date","value":{"type":"RANGE","start":"2021-01-01","end":"2022-03-17"},"positive":1}]}}
}' \ 
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/transactions',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
 body: {
  :posted_date_start => '2022-01-05',
  :posted_date_end => '2023-02-06'
 }.to_json
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/transactions',
 headers={
  'Authorization': 'Bearer YOUR_POPULI_API_KEY'
 },
 json={
  'posted_date_start': '2022-01-05',
  'posted_date_end': '2023-02-06'
 }
)
print(response.json())
using Newtonsoft.Json;
using RestSharp;
var client = new RestClient();
var request = new RestRequest(new Uri("https://yourschool.populiweb.com/api2/transactions"), Method.Get);
request.AddHeader("Authorization", "Bearer YOUR_POPULI_API_KEY");
request.AddJsonBody(new {
  posted_date_start = "2022-01-05",
  posted_date_end = "2023-02-06"
});
var response = client.Execute(request);
var response_object = JsonConvert.DeserializeObject(response.Content);
Console.Write(response_object);
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, 'https://yourschool.populiweb.com/api2/transactions');
curl_setopt($curl, CURLOPT_HTTPHEADER, ['Authorization: Bearer YOUR_POPULI_API_KEY']);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'GET');
curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode([
  'posted_date_start' => '2022-01-05',
  'posted_date_end' => '2023-02-06'
]));
$response = curl_exec($curl);
$response_decoded = json_decode($response);
var_dump($response_decoded);

Example response:

{
    "object": "list",
    "count": 1,
    "results": 1,
    "results_per_page": 200,
    "pages": 1,
    "page": 1,
    "offset": 0,
    "has_more": false,
    "data": [
        {
            "object": "financial_transaction",
            "id": 101,
            "type": "customer_payment",
            "status": "posted",
            "number": 1,
            "posted_on": "2022-10-24",
            "actor_type": "person",
            "actor_id": 12,
            "voided_at": null,
            "voided_by_id": null,
            "link_type": null,
            "link_id": null,
            "amount": 600,
            "reverses": null,
            "reversed_by_id": null,
            "reposts": null,
            "reposted_by_id": null,
            "repostable": true,
            "added_at": "2026-07-25T09:24:06+00:00",
            "added_by_id": 22,
            "report_data": {
                "student_dummyid": "20220xx002",
                "primary_actor": "Alice Admin",
                "term_name": null,
                "invoiceid": null,
                "invoice_number": null,
                "paymentid": 100,
                "reference_number": "",
                "payment_number": 1,
                "payment_source_type": "CHECK",
                "donation_id": null,
                "donation_number": null,
                "added_by_name": "API Dude",
                "voided_by_name": null,
                "linked_transaction_id": null,
                "linked_transaction_number": null,
                "payment_gateway_processing_fee": "0.00",
                "online_charge_method": "",
                "check_number": null,
                "check_batch_number": null,
                "inventory_batch_item_variation_name": null,
                "inventory_batch_item_id": null,
                "inventory_batch_item_variation_id": null,
                "row_id": 101
            }
        }
    ],
    "sandbox": true
}

Retrieves all FinancialTransaction objects that match given filter conditions. This report requires a start and end posted date range.

HTTP Request

GET /transactions

Parameters

Name Required Data Type Description
posted_date_start Yes date
posted_date_end Yes date
filter No mixed See available filter conditions
page No int The page of results to return if more than 200 records are found.

Expandable Properties

Filter Condition Parameters

These conditions can be used to narrow the results returned.

Name Type
transaction_number integer
posted_date date
type choice
primary_actor object_id
status choice
added_at datetime
added_by object_id
voided_at datetime
voided_by object_id
amount decimal
academic_term object_id
academic_term_type academic_term_type
student_campus object id

Permissions

One of the following roles is required to call this method:

apply

curl "https://yourschool.populiweb.com/api2/people/(person)/deposits/apply" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
-d '{
    "liability_account_id": 6,
    "amount": 200
}' \ 
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/people/(person)/deposits/apply',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
 body: {
  :liability_account_id => 6,
  :amount => 200
 }.to_json
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/people/(person)/deposits/apply',
 headers={
  'Authorization': 'Bearer YOUR_POPULI_API_KEY'
 },
 json={
  'liability_account_id': 6,
  'amount': 200
 }
)
print(response.json())
using Newtonsoft.Json;
using RestSharp;
var client = new RestClient();
var request = new RestRequest(new Uri("https://yourschool.populiweb.com/api2/people/(person)/deposits/apply"), Method.Get);
request.AddHeader("Authorization", "Bearer YOUR_POPULI_API_KEY");
request.AddJsonBody(new {
  liability_account_id = 6,
  amount = 200
});
var response = client.Execute(request);
var response_object = JsonConvert.DeserializeObject(response.Content);
Console.Write(response_object);
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, 'https://yourschool.populiweb.com/api2/people/(person)/deposits/apply');
curl_setopt($curl, CURLOPT_HTTPHEADER, ['Authorization: Bearer YOUR_POPULI_API_KEY']);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'GET');
curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode([
  'liability_account_id' => 6,
  'amount' => 200
]));
$response = curl_exec($curl);
$response_decoded = json_decode($response);
var_dump($response_decoded);

Example response:

{}

HTTP Request

GET /people/(person)/deposits/apply

Parameters

Name Required Data Type Description
liability_account_id Yes int
amount Yes decimal
posted_date No date

Permissions

One of the following roles is required to call this method:

show

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/transactions/(financialtransaction)" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/transactions/(financialtransaction)',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/transactions/(financialtransaction)',
 headers={
  'Authorization': 'Bearer YOUR_POPULI_API_KEY'
 },
)
print(response.json())
using Newtonsoft.Json;
using RestSharp;
var client = new RestClient();
var request = new RestRequest(new Uri("https://yourschool.populiweb.com/api2/transactions/(financialtransaction)"), Method.Get);
request.AddHeader("Authorization", "Bearer YOUR_POPULI_API_KEY");
var response = client.Execute(request);
var response_object = JsonConvert.DeserializeObject(response.Content);
Console.Write(response_object);
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, 'https://yourschool.populiweb.com/api2/transactions/(financialtransaction)');
curl_setopt($curl, CURLOPT_HTTPHEADER, ['Authorization: Bearer YOUR_POPULI_API_KEY']);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'GET');
$response = curl_exec($curl);
$response_decoded = json_decode($response);
var_dump($response_decoded);

Example response:

{
    "object": "financial_transaction",
    "id": 101,
    "type": "customer_payment",
    "status": "posted",
    "number": 1,
    "posted_on": "2022-10-24",
    "actor_type": "person",
    "actor_id": 12,
    "voided_at": null,
    "voided_by_id": null,
    "link_type": null,
    "link_id": null,
    "amount": 600,
    "reverses": null,
    "reversed_by_id": null,
    "reposts": null,
    "reposted_by_id": null,
    "repostable": true,
    "added_at": "2026-07-25T16:24:06+00:00",
    "added_by_id": 22,
    "sandbox": true
}

Retrieves a specific FinancialTransaction object.

HTTP Request

GET /transactions/(financialtransaction)

Parameters

No additional parameters are needed beyond the ID of the object being requested that appears in the URL.

Expandable Properties

Permissions

One of the following roles is required to call this method:

repost

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/transactions/(financialtransaction)/repost" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
-d '{
    "new_post_date": "2025-08-01"
}' \ 
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/transactions/(financialtransaction)/repost',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
 body: {
  :new_post_date => '2025-08-01'
 }.to_json
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/transactions/(financialtransaction)/repost',
 headers={
  'Authorization': 'Bearer YOUR_POPULI_API_KEY'
 },
 json={
  'new_post_date': '2025-08-01'
 }
)
print(response.json())
using Newtonsoft.Json;
using RestSharp;
var client = new RestClient();
var request = new RestRequest(new Uri("https://yourschool.populiweb.com/api2/transactions/(financialtransaction)/repost"), Method.Get);
request.AddHeader("Authorization", "Bearer YOUR_POPULI_API_KEY");
request.AddJsonBody(new {
  new_post_date = "2025-08-01"
});
var response = client.Execute(request);
var response_object = JsonConvert.DeserializeObject(response.Content);
Console.Write(response_object);
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, 'https://yourschool.populiweb.com/api2/transactions/(financialtransaction)/repost');
curl_setopt($curl, CURLOPT_HTTPHEADER, ['Authorization: Bearer YOUR_POPULI_API_KEY']);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'GET');
curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode([
  'new_post_date' => '2025-08-01'
]));
$response = curl_exec($curl);
$response_decoded = json_decode($response);
var_dump($response_decoded);

Example response:

{
    "object": "financial_transaction",
    "id": 105,
    "type": "customer_payment",
    "status": "posted",
    "number": 5,
    "posted_on": "2025-08-01",
    "actor_type": "person",
    "actor_id": 12,
    "voided_at": null,
    "voided_by_id": null,
    "link_type": null,
    "link_id": null,
    "amount": 500,
    "reverses": null,
    "reversed_by_id": null,
    "reposts": 17,
    "reposted_by_id": null,
    "repostable": true,
    "added_at": "2026-07-25T16:24:14+00:00",
    "added_by_id": 22,
    "sandbox": true
}

HTTP Request

GET /transactions/(financialtransaction)/repost

Parameters

Name Required Data Type Description
new_post_date Yes date
note No text

Permissions

One of the following roles is required to call this method:

reverse

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/transactions/(financialtransaction)/reverse" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/transactions/(financialtransaction)/reverse',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/transactions/(financialtransaction)/reverse',
 headers={
  'Authorization': 'Bearer YOUR_POPULI_API_KEY'
 },
)
print(response.json())
using Newtonsoft.Json;
using RestSharp;
var client = new RestClient();
var request = new RestRequest(new Uri("https://yourschool.populiweb.com/api2/transactions/(financialtransaction)/reverse"), Method.Get);
request.AddHeader("Authorization", "Bearer YOUR_POPULI_API_KEY");
var response = client.Execute(request);
var response_object = JsonConvert.DeserializeObject(response.Content);
Console.Write(response_object);
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, 'https://yourschool.populiweb.com/api2/transactions/(financialtransaction)/reverse');
curl_setopt($curl, CURLOPT_HTTPHEADER, ['Authorization: Bearer YOUR_POPULI_API_KEY']);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'GET');
$response = curl_exec($curl);
$response_decoded = json_decode($response);
var_dump($response_decoded);

Example response:

{
    "object": "financial_transaction",
    "id": 17,
    "type": "customer_payment",
    "status": "posted",
    "number": 1242,
    "posted_on": "2015-03-12",
    "actor_type": "person",
    "actor_id": 12,
    "voided_at": null,
    "voided_by_id": null,
    "link_type": null,
    "link_id": null,
    "amount": 500,
    "reverses": null,
    "reversed_by_id": 104,
    "reposts": null,
    "reposted_by_id": null,
    "repostable": true,
    "added_at": "2015-03-12T19:33:11+00:00",
    "added_by_id": null,
    "sandbox": true
}

HTTP Request

GET /transactions/(financialtransaction)/reverse

Parameters

None

Permissions

One of the following roles is required to call this method:

void

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/transactions/(financialtransaction)/void" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/transactions/(financialtransaction)/void',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/transactions/(financialtransaction)/void',
 headers={
  'Authorization': 'Bearer YOUR_POPULI_API_KEY'
 },
)
print(response.json())
using Newtonsoft.Json;
using RestSharp;
var client = new RestClient();
var request = new RestRequest(new Uri("https://yourschool.populiweb.com/api2/transactions/(financialtransaction)/void"), Method.Get);
request.AddHeader("Authorization", "Bearer YOUR_POPULI_API_KEY");
var response = client.Execute(request);
var response_object = JsonConvert.DeserializeObject(response.Content);
Console.Write(response_object);
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, 'https://yourschool.populiweb.com/api2/transactions/(financialtransaction)/void');
curl_setopt($curl, CURLOPT_HTTPHEADER, ['Authorization: Bearer YOUR_POPULI_API_KEY']);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'GET');
$response = curl_exec($curl);
$response_decoded = json_decode($response);
var_dump($response_decoded);

Example response:

{
    "object": "financial_transaction",
    "id": 16,
    "type": "customer_payment",
    "status": "void",
    "number": 1241,
    "posted_on": "2015-03-11",
    "actor_type": "person",
    "actor_id": 12,
    "voided_at": "2026-07-25T16:24:14+00:00",
    "voided_by_id": 22,
    "link_type": null,
    "link_id": null,
    "amount": 500,
    "reverses": null,
    "reversed_by_id": null,
    "reposts": null,
    "reposted_by_id": null,
    "repostable": true,
    "added_at": "2015-03-11T19:33:11+00:00",
    "added_by_id": null,
    "sandbox": true
}

HTTP Request

GET /transactions/(financialtransaction)/void

Parameters

None

Permissions

One of the following roles is required to call this method: