This form is to be used for reimbursement of expenses or authorized disbursements related to standing/ad hoc committee work,
Needy Church Fund, Seminarian Support, or the Church Planting Coordinator. Payment is subject to review by the Classical Treasurer and, where required,
approval by Classis or the Convening Consistory under the Rules of Procedure (Arts. III.D, IV.B.1; Appendices 01 & 07).
Church Planting Fund grants and internship grants (Appendices 03 & 04) are handled separately and must not use this form.
1. Requestor Information
Requestor Full Name
Requestor Church / Consistory
— Select church —
Ascension Reformed Church
Christ Reformed Church of Florence
Christ Reformed Church of Washington D.C.
Covenant Reformed Church of Carbondale
Covenant United Reformed Church of Pantego
Grace Reformed Bible Church
Grace Reformed Church of Jersey City
Hudson Valley United Reformed Church
Indy Reformed Church
Madison Reformed Church
Messiah’s Reformed Fellowship
New Haven United Reformed Church
Pocono Reformed Bible Church
Pompton Plains Reformed Bible Church
Preakness Valley United Reformed Church
Trinity Reformed Church of Cape Coral
West Sayville Reformed Bible Church
Zeltenreich Reformed Church of New Holland
Email
Format: email@example.com
Phone
Format: 123-456-7890
Request Date
Format: MM/DD/YYYY
2. Description of Work / Purpose of Disbursement
Describe the work performed or purpose of the requested disbursement
3. Expense / Disbursement Breakdown
Please email receipts for out-of-pocket purchases over $25 separately to the Treasurer if needed.
Mileage is at the current IRS rate unless Classis has adopted a different rate.
For Church Planting Coordinator hourly pay: document hours (overnight trips = 8 hrs/night) and note Committee Chair approval of hours.
Category
— Select —
Mileage
Airfare / Rail
Lodging
Meals
Per Diem / Stipend / Salary
Out-of-Pocket Purchases
Church Assistance / Seminarian Grant
Other
Details / Description
Amount ($)
TOTAL REQUESTED
4. Preferred Form of Payment
Payment Method
— Select payment method —
Check
Electronic Transfer (ACH / Direct Deposit)
Zelle
Check Details
Payable to
Mailing Address
Electronic Transfer (ACH / Direct Deposit) Details
Bank Name
Account Type
— Select —
Checking
Savings
Routing Number (ABA)
Exactly 9 digits
Account Number
Zelle Details
Zelle Email
Format: email@example.com
Zelle Phone
Format: 123-456-7890
Name on Zelle Account
5. Approvals and Signatures
Approval Type
— Select approval basis —
Approved by Classis action
Authorized by Convening Consistory (≤ $1,000 between meetings)
Approved by Committee action / budget line
Church Assistance / Seminarian letter on Spring Classis agenda (App. 01 / 07)
Other
Person Approving (Name & Office)
Approver Signature / Initials
Requestor Signature (type full name)
Date
Format: MM/DD/YYYY
function todayMDY() {
const n = new Date();
const m = String(n.getMonth() + 1).padStart(2, ‘0’);
const d = String(n.getDate()).padStart(2, ‘0’);
return m + ‘/’ + d + ‘/’ + n.getFullYear();
}
const rd = document.getElementById(‘request_date’);
const sd = document.getElementById(‘sig_date’);
if (rd && !rd.value) rd.value = todayMDY();
if (sd && !sd.value) sd.value = todayMDY();
function formatPhone(input) {
if (!input) return;
input.addEventListener(‘input’, function() {
let v = input.value.replace(/\D/g, ”).slice(0, 10);
if (v.length >= 6) input.value = v.slice(0,3) + ‘-‘ + v.slice(3,6) + ‘-‘ + v.slice(6);
else if (v.length >= 3) input.value = v.slice(0,3) + ‘-‘ + v.slice(3);
else input.value = v;
});
}
formatPhone(document.getElementById(‘requestor_phone’));
formatPhone(document.getElementById(‘zelle_phone’));
const routing = document.getElementById(‘routing’);
if (routing) {
routing.addEventListener(‘input’, function() {
routing.value = routing.value.replace(/\D/g, ”).slice(0, 9);
});
}
const expenseList = document.getElementById(‘expense-list’);
const addExpenseBtn = document.getElementById(‘add_expense_btn’);
function recalcTotal() {
let sum = 0;
document.querySelectorAll(‘.exp-amount’).forEach(function(el) {
if (el.value) sum += parseFloat(el.value) || 0;
});
document.getElementById(‘total_amount’).value = sum ? sum.toFixed(2) : ”;
}
function updateRemoveButtons() {
const rows = expenseList.querySelectorAll(‘.expense-row’);
rows.forEach(function(row) {
const btn = row.querySelector(‘.remove-expense’);
if (btn) btn.style.display = rows.length > 1 ? ‘inline-block’ : ‘none’;
});
}
function attachAmountListener(row) {
const amt = row.querySelector(‘.exp-amount’);
if (amt) amt.addEventListener(‘input’, recalcTotal);
}
attachAmountListener(expenseList.querySelector(‘.expense-row’));
updateRemoveButtons();
addExpenseBtn.addEventListener(‘click’, function() {
const newRow = document.createElement(‘div’);
newRow.className = ‘expense-row’;
newRow.innerHTML = `
Category
— Select —
Mileage
Airfare / Rail
Lodging
Meals
Per Diem / Stipend / Salary
Out-of-Pocket Purchases
Church Assistance / Seminarian Grant
Other
Details / Description
Amount ($)
`;
expenseList.appendChild(newRow);
attachAmountListener(newRow);
updateRemoveButtons();
});
expenseList.addEventListener(‘click’, function(e) {
if (e.target.classList.contains(‘remove-expense’)) {
e.target.closest(‘.expense-row’).remove();
recalcTotal();
updateRemoveButtons();
}
});
const paymentSelect = document.getElementById(‘payment_method’);
const payCheck = document.getElementById(‘pay_check’);
const payAch = document.getElementById(‘pay_ach’);
const payZelle = document.getElementById(‘pay_zelle’);
function updatePaymentFields() {
payCheck.classList.remove(‘visible’);
payAch.classList.remove(‘visible’);
payZelle.classList.remove(‘visible’);
const val = paymentSelect.value;
if (val === ‘Check’) payCheck.classList.add(‘visible’);
else if (val === ‘Electronic Transfer (ACH / Direct Deposit)’) payAch.classList.add(‘visible’);
else if (val === ‘Zelle’) payZelle.classList.add(‘visible’);
}
paymentSelect.addEventListener(‘change’, updatePaymentFields);
document.getElementById(‘reimbForm’).addEventListener(‘reset’, function() {
setTimeout(function() {
const rows = expenseList.querySelectorAll(‘.expense-row’);
rows.forEach(function(row, i) { if (i > 0) row.remove(); });
updateRemoveButtons();
recalcTotal();
updatePaymentFields();
if (rd) rd.value = todayMDY();
if (sd) sd.value = todayMDY();
}, 0);
});