Accounting
Get Payment Status from ERP for Reconciliation
Automate Payment Reconciliation Between Expense Reports and Accounting Records
Implementation: Query and Match Payment Records to Expense Approvals
Step 1: Query Payment Records from Accounting Systems
Start by retrieving payment records from your customer's accounting platform for the time period requiring reconciliation. Knit's payments API provides standardized access to payment transactions across 10+ accounting platforms.
API Endpoint: GET https://api.getknit.dev/v1.0/accounting.payments.list
Supported Platforms: 10 accounting systems including Xero, QuickBooks Online, NetSuite, Sage Intacct, Microsoft Dynamics 365 Business Central, Zoho Books, FreshBooks, FreeAgent, Odoo, Clear Books
Request Example:
GET /v1.0/accounting.payments.list?startDate=2025-01-01&endDate=2025-01-31&vendorType=EMPLOYEE
Query parameters:
startDate: Beginning of reconciliation period (YYYY-MM-DD format)endDate: End of reconciliation periodvendorType: Filter to EMPLOYEE vendors only (excludes supplier payments)status: Filter by PAID, PENDING, VOIDED status
Response structure:
{
"payments": [
{
"id": "pmt_12345",
"paymentDate": "2025-01-15",
"amount": 2847.50,
"currency": "USD",
"vendor": {
"id": "vendor_emp_789",
"name": "Smith, John",
"email": "john.smith@company.com"
},
"invoiceReference": "EXP-INV-2025-001",
"paymentMethod": "ACH",
"status": "PAID",
"accountCode": "2100",
"description": "Expense Reimbursement - January Travel"
}
]
}
Critical fields for reconciliation:
amount: Payment amount to match against approved expense totalvendor.email: Employee identifier for matching to expense submitterinvoiceReference: Reference to source invoice/expense report for direct matchingpaymentDate: When payment was processedstatus: Verify payment was actually completed (PAID status)
Step 2: Match Payments to Approved Expense Reports Using Invoice References
With payment data retrieved, match payment records to approved expense reports from your travel management platform. The most reliable matching method uses invoice references that link payments to specific expense report invoices.
Matching strategies (in order of reliability):
| Matching Method | Reliability | When to Use |
|---|---|---|
| Invoice Reference Match | Highest | When your expense platform creates invoices in accounting system with unique references (e.g., "EXP-INV-2025-001") |
| Amount + Employee + Date Range | High | When invoice references aren't available but payment amounts are unique per employee within date range |
| Employee + Approximate Amount | Medium | When payment dates don't align perfectly with approval dates, allow ±5% amount variance |
| Journal Entry Cross-Reference | Medium | When payments processed via journal entries rather than invoices, query journal entries by reference |
Example matching logic using invoice references:
// Step 1: Query payments for reconciliation period
payments = queryPayments(startDate="2025-01-01", endDate="2025-01-31")
// Step 2: For each payment, find corresponding expense report
for payment in payments:
// Extract invoice reference from payment record
invoiceRef = payment.invoiceReference // "EXP-INV-2025-001"
// Query expense platform for expense report with matching invoice reference
expenseReport = queryExpenseByInvoiceRef(invoiceRef)
// Compare amounts
if expenseReport.approvedAmount == payment.amount:
// Perfect match - mark as reconciled
markAsReconciled(expenseReport.id, payment.id)
else:
// Amount mismatch - flag for investigation
flagDiscrepancy(
expenseReport.id,
expenseReport.approvedAmount,
payment.id,
payment.amount,
variance = payment.amount - expenseReport.approvedAmount
)
Step 3: Generate Reconciliation Reports and Exception Handling
With payment matching complete, generate reconciliation reports showing matched transactions and highlighting exceptions that require investigation. Different exception types indicate different root causes.
Reconciliation status categories:
| Status | Description | Action Required |
|---|---|---|
| MATCHED | Payment amount matches approved expense exactly, invoice reference confirms link | None - reconciled successfully |
| AMOUNT_VARIANCE | Invoice reference matches but payment amount differs from approved expense | Investigate: Data entry error during invoice creation? Currency conversion issue? Partial payment? |
| PAYMENT_NOT_FOUND | Approved expense exists but no matching payment found in accounting system | Investigate: Payment pending? Invoice not yet paid? Payment processed in different period? |
| ORPHAN_PAYMENT | Payment exists in accounting system but no corresponding approved expense found | Investigate: Duplicate payment? Manual payment not linked to expense report? Data sync issue? |
| VOIDED_PAYMENT | Payment was processed then voided in accounting system | Investigate: Why voided? Was replacement payment issued? Update expense report status |
Advanced Reconciliation: Query Journal Entries for Non-Invoice Payment Methods
Some organizations process reimbursements through journal entries rather than invoices (particularly when using payroll integration). In these cases, query journal entry records instead of payments.
API Endpoint: GET https://api.getknit.dev/v1.0/accounting.journalEntries.list
Filter journal entries by date range and search line item descriptions for expense report references. Match journal entry debit amounts (expense accounts) and credit amounts (AP accounts) to approved expense totals.
Key APIs and Data Models for Payment Reconciliation
| API Endpoint | Purpose | Key Response Fields |
|---|---|---|
GET /v1.0/accounting.payments.list |
Query payment records from accounting systems | id, paymentDate, amount, vendor (employee), invoiceReference, status, paymentMethod |
GET /v1.0/accounting.invoices.list |
Retrieve invoice records to verify invoice references exist | id, invoiceNumber, vendor, totalAmount, status, dueDate |
GET /v1.0/accounting.journalEntries.list |
Query journal entries when reimbursements processed via JE instead of invoices | journalEntryDate, reference, lineItems (accountCode, debitAmount, creditAmount, description) |
GET /v1.0/accounting.vendors.list |
Retrieve employee vendor records to match payment vendors to employees | id, name, email, type (filter to EMPLOYEE type) |
Typical reconciliation workflow:
- Query approved expenses: Retrieve all approved expense reports from your T&E platform for reconciliation period
- Query payments: Retrieve all payment records from accounting system for same period (use List Payments API)
- Match by invoice reference: For each payment, find corresponding expense report using invoiceReference field
- Compare amounts: Verify payment amount matches approved expense total (allow small rounding differences)
- Flag exceptions: Generate reports showing amount variances, orphan payments, and missing payments
- Update status: Mark expense reports as "PAID" when matching payment found, "PENDING_PAYMENT" when not found
Reconciliation frequency recommendations:
- Daily reconciliation: For organizations processing high volumes of expense reimbursements (100+ per week), detect payment errors immediately
- Weekly reconciliation: Balanced approach for mid-size organizations, allows time for payment processing while maintaining visibility
- Monthly reconciliation: Minimum recommended frequency, aligns with month-end close but delays error detection
- Real-time status updates: Query payment status on-demand when employees request payment confirmation via expense platform
Wrapping Up: Eliminate Manual Reconciliation and Ensure Payment Accuracy
Automated payment reconciliation transforms expense payment verification from a manual, spreadsheet-based process into a systematic, audit-ready workflow. By programmatically querying payment records from accounting systems and matching them to approved expense reports using invoice references, you eliminate manual data exports, reduce reconciliation time from days to hours, and instantly detect payment discrepancies before they impact financial statements.
Key capabilities unlocked:
- Unified payment data access: Query payment records from 10+ accounting platforms (Xero, QuickBooks, NetSuite, Sage Intacct, Dynamics 365, Zoho Books, etc.) through single API
- Invoice reference matching: Automatically match payments to expense reports using invoice reference identifiers, eliminating manual matching and reducing errors
- Exception-based reconciliation: Focus accounting team effort on discrepancies rather than confirming successful matches—system handles routine verification automatically
- Payment status visibility: Display payment confirmation directly in expense management platform, giving employees visibility into reimbursement status without contacting finance
- Multi-entity support: Reconcile payments across multiple legal entities and accounting systems, consolidating payment tracking for complex organizational structures
- Audit trail documentation: Generate timestamped reconciliation reports demonstrating systematic payment verification, satisfying SOC2 and financial audit requirements
- Early error detection: Flag payment discrepancies immediately when payments post rather than waiting for monthly reconciliation, enabling quick correction before month-end close