NAV
shell ruby python csharp php

PendingCharge

The PendingCharge object

The PendingCharge object looks like this in JSON:

{
    "object": "pending_charge",
    "id": 7753,
    "pending_charge_batch_id": null,
    "academic_term_id": 130,
    "person_id": 1038,
    "status": "active",
    "item_type": "fee",
    "item_id": 9,
    "amount": 1000,
    "source": "automatic",
    "source_type": null,
    "source_id": null,
    "description": null,
    "added_because_description": null,
    "added_at": "2020-06-08T20:14:45+00:00",
    "added_by_id": null,
    "sandbox": true
}
Attribute Required Data Type
id Yes int
pending_charge_batch_id No int
academic_term_id No int
person_id Yes int
status Yes enum (active, replaced, deleted, invoiced)
item_type Yes enum (tuition, fee, room_plan, meal_plan, bookstore)
item_id Yes int
amount Yes decimal
source Yes enum (manual, automatic, edit)
source_type No enum (payment_plan_student)
source_id No int
description No text (1000)
added_because_description No text (1000)
added_at No datetime
added_by_id No int
sandbox No bool

index

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/pendingcharges" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
-d '{
    "filter": {"0":{"logic":"ALL","fields":[{"name":"description","value":{"type":"CONTAINS","text":"blah"},"positive":1}]}}
}' \ 
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/pendingcharges',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/pendingcharges',
 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/pendingcharges"), 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/pendingcharges');
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": "list",
    "count": 2,
    "results": 2,
    "results_per_page": 200,
    "pages": 1,
    "page": 1,
    "offset": 0,
    "has_more": false,
    "data": [
        {
            "object": "pending_charge",
            "id": 8000,
            "pending_charge_batch_id": null,
            "academic_term_id": null,
            "person_id": 16,
            "status": "active",
            "item_type": "fee",
            "item_id": 9,
            "amount": 1000,
            "source": "automatic",
            "source_type": null,
            "source_id": null,
            "description": null,
            "added_because_description": null,
            "added_at": "2020-06-08T20:14:45+00:00",
            "added_by_id": null,
            "report_data": {
                "firstname": "Abby",
                "lastname": "Admin",
                "middlename": "",
                "academic_term_name": null,
                "dummyid": "20220xx001",
                "added_by_name": null,
                "item_name": "Parking Tickets!",
                "row_id": 8000
            }
        }
    ],
    "sandbox": true
}

Retrieves all PendingCharge objects that match given filter conditions.

HTTP Request

GET /pendingcharges

Parameters

Name Required Data Type Description
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
student object_id
student_campus object id
tag tag
academic_term object_id
academic_term_type academic_term_type
type enum
charge charge
description text
amount decimal
custom_field custom

Permissions

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

index (person)

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/people/(person)/pendingcharges" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/people/(person)/pendingcharges',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/people/(person)/pendingcharges',
 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/people/(person)/pendingcharges"), 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/people/(person)/pendingcharges');
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": "list",
    "count": 1,
    "results": 1,
    "results_per_page": null,
    "pages": 1,
    "page": 1,
    "offset": 0,
    "has_more": false,
    "data": [
        {
            "object": "pending_charge",
            "id": 8001,
            "pending_charge_batch_id": null,
            "academic_term_id": null,
            "person_id": 12,
            "status": "active",
            "item_type": "fee",
            "item_id": 9,
            "amount": 1000,
            "source": "automatic",
            "source_type": null,
            "source_id": null,
            "description": null,
            "added_because_description": null,
            "added_at": "2020-06-08T20:14:45+00:00",
            "added_by_id": null
        }
    ],
    "sandbox": true
}

Retrieves all PendingCharge objects tied to a specific Person.

HTTP Request

GET /people/(person)/pendingcharges

Parameters

None

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/pendingcharges/(pendingcharge)" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/pendingcharges/(pendingcharge)',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/pendingcharges/(pendingcharge)',
 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/pendingcharges/(pendingcharge)"), 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/pendingcharges/(pendingcharge)');
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": "pending_charge",
    "id": 8001,
    "pending_charge_batch_id": null,
    "academic_term_id": null,
    "person_id": 12,
    "status": "active",
    "item_type": "fee",
    "item_id": 9,
    "amount": 1000,
    "source": "automatic",
    "source_type": null,
    "source_id": null,
    "description": null,
    "added_because_description": null,
    "added_at": "2020-06-08T20:14:45+00:00",
    "added_by_id": null,
    "sandbox": true
}

Retrieves a specific PendingCharge object.

HTTP Request

GET /pendingcharges/(pendingcharge)

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:

create

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/people/(person)/pendingcharges" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X POST
-d '{
    "amount": 450.25,
    "item_type": "fee",
    "item_id": 9
}' \ 
require 'httparty'
response = HTTParty.post(
 'https://yourschool.populiweb.com/api2/people/(person)/pendingcharges',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
 body: {
  :amount => 450.25,
  :item_type => 'fee',
  :item_id => 9
 }.to_json
)
puts response.body
import requests
response = requests.post(
 'https://yourschool.populiweb.com/api2/people/(person)/pendingcharges',
 headers={
  'Authorization': 'Bearer YOUR_POPULI_API_KEY'
 },
 json={
  'amount': 450.25,
  'item_type': 'fee',
  'item_id': 9
 }
)
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)/pendingcharges"), Method.Post);
request.AddHeader("Authorization", "Bearer YOUR_POPULI_API_KEY");
request.AddJsonBody(new {
  amount = 450.25,
  item_type = "fee",
  item_id = 9
});
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)/pendingcharges');
curl_setopt($curl, CURLOPT_HTTPHEADER, ['Authorization: Bearer YOUR_POPULI_API_KEY']);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode([
  'amount' => 450.25,
  'item_type' => 'fee',
  'item_id' => 9
]));
$response = curl_exec($curl);
$response_decoded = json_decode($response);
var_dump($response_decoded);

Example response:

{
    "object": "pending_charge",
    "id": 8002,
    "pending_charge_batch_id": null,
    "academic_term_id": null,
    "person_id": 12,
    "status": "active",
    "item_type": "fee",
    "item_id": 9,
    "amount": 450.25,
    "source": "manual",
    "source_type": null,
    "source_id": null,
    "description": null,
    "added_because_description": null,
    "added_at": "2026-07-25T16:24:06+00:00",
    "added_by_id": 22,
    "sandbox": true
}

Creates a new PendingCharge object.

HTTP Request

POST /people/(person)/pendingcharges

Parameters

Name Required Data Type Description
amount Yes decimal
item_type Yes enum (tuition, fee, room_plan, meal_plan, bookstore)
item_id Yes int
academic_term_id No int
description No text (1000)

Permissions

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

invoice

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/people/(person)/pendingcharges/invoice" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X POST
-d '{
    "posted_date": "2023-12-30",
    "due_date": "2024-02-05"
}' \ 
require 'httparty'
response = HTTParty.post(
 'https://yourschool.populiweb.com/api2/people/(person)/pendingcharges/invoice',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.post(
 'https://yourschool.populiweb.com/api2/people/(person)/pendingcharges/invoice',
 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/people/(person)/pendingcharges/invoice"), Method.Post);
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/people/(person)/pendingcharges/invoice');
curl_setopt($curl, CURLOPT_HTTPHEADER, ['Authorization: Bearer YOUR_POPULI_API_KEY']);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'POST');
$response = curl_exec($curl);
$response_decoded = json_decode($response);
var_dump($response_decoded);

Example response:

{
    "object": "invoice",
    "id": 101,
    "actor_type": "person",
    "actor_id": 12,
    "number": 9,
    "description": null,
    "transaction_id": 103,
    "amount": 1450.25,
    "due_on": "2024-02-05",
    "status": "paid",
    "marked_uncollectible_on": null,
    "posted_on": "2023-12-30",
    "academic_term_id": null,
    "items": [
        {
            "object": "invoice_item",
            "id": 7,
            "invoice_id": 101,
            "item_type": "fee",
            "item_id": 9,
            "name": "Parking Tickets!",
            "amount": 1000,
            "description": null
        },
        {
            "object": "invoice_item",
            "id": 8,
            "invoice_id": 101,
            "item_type": "fee",
            "item_id": 9,
            "name": "Parking Tickets!",
            "amount": 450.25,
            "description": null
        }
    ],
    "sandbox": true
}

HTTP Request

POST /people/(person)/pendingcharges/invoice

Parameters

Name Required Data Type Description
academic_term_id No int
posted_date No date Default is today
due_date No date
fee_id No int
pending_charge_ids No array of PendingCharge ids

Permissions

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