AP Payment Records: Third Party → Tai
Push bill payments cut in your ERP or bank portal into Tai to close the corresponding pending bills. Supports multi-bill payments with per-bill line-item amounts.
What this is for
Your AP team runs a payment batch — checks printed from your ERP, an ACH batch initiated in your bank portal, credit-card payments applied to a carrier — and the vendor balances in your GL close first. Tai still thinks those bills are outstanding. This flow pushes the payment into Tai so the corresponding Bill(s) reduce their outstanding balance and the shipment view stops showing "Pending Payment."
Handles single-bill payments and multi-bill payments (one ACH batch closing five bills to the same carrier, one check with three line items) with the same endpoint — lineItems carries the split.
Create Bill Payment record
POST /PublicApi/Accounting/v2/BillPayments
Request payload
{
"vendorId": 903421,
"vendorType": "Carrier",
"generalLedgerAccountId": 210,
"checkDate": "2026-09-04T00:00:00Z",
"checkRef": "CHK-104882",
"checkMemo": "BOL 8809-2026 & 8810-2026",
"checkType": "ACH",
"lineItems": [
{ "billId": 18042026, "amountApplied": 1847.50 },
{ "billId": 18042027, "amountApplied": 982.10 }
]
}| Field | Required | Notes |
|---|---|---|
vendorId + vendorType | Yes | vendorType is one of Carrier, Organization, Staff. The pair identifies who is being paid. |
generalLedgerAccountId | No | Tai's ID for the bank/GL account the payment draws from. Map from your ERP's chart of accounts. |
checkDate | Yes | The date the payment was cut/sent. |
checkRef | No | Your check number, ACH reference, or wire ID. |
checkMemo | No | Free-text memo — often used to list the BOL numbers being paid. |
checkType | Yes | Cash, Check, CreditCard, ACH, Other, EFS, HaulPay, Convoy. |
lineItems[].billId + amountApplied | Yes | One entry per Tai billId being paid down. Amounts should sum to the total payment. |
Response (200) — an empty body on success. The created billPaymentId is not returned inline; if you need it for subsequent calls, retrieve it via GET /BillPayments/{billId} or the batch endpoint.
Integration notes
- Field casing: requests are case-insensitive on parse but responses are camelCase.
- Multi-bill payments: if your ERP represents one check paying five bills as five separate records, aggregate them into one
POSTwith fivelineItems— Tai models this as a single payment with multiple applications. Keep your ERP's five IDs in a mapping table so future queries can join. amountApplieddoesn't have to equal the bill total. Partial payments are supported — Tai will reflect the remaining balance and the bill will stay open until fully paid.checkTypesemantics:EFS,HaulPay,Convoyrepresent third-party payment platforms. If your integration flows through one of these, use the matching value so Tai's reporting can distinguish.- Vendor matching: ensure the
vendorIdyou send is Tai's ID for that vendor, not your ERP's. If your vendors don't share IDs across systems, maintain a mapping table.
When something goes wrong
Vendor missing in Tai, bill IDs unknown, amount over-applied — post the error on the shipment via Shipment Activity Logs so a Tai user can reconcile.
Close the loop
Close the loop so Tai carries your target system's payment ID on the Tai record for future cross-referencing.
PUT /PublicApi/Accounting/v2/BillPayments/Sync
Full details: Sync Status Updates.
Updated 23 days ago
