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
- ledger_entries
- description
- notes
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:
- Student Billing
- Financial Aid
- Financial Auditor
- Financial Admin
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:
- Financial Admin
- Student Billing
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
- ledger_entries
- description
- notes
Permissions
One of the following roles is required to call this method:
- Student Billing
- Financial Aid
- Financial Auditor
- Financial Admin
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:
- Financial Admin
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:
- Financial Admin
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:
- Financial Admin