How It Works
Status Reference
Receivable status values
Status Fields
Every receivable has two status fields:
| Field | Purpose |
|---|---|
status | Normalized status for filtering and business logic |
portal_status | Original status from the debtor portal for display and audit |
Normalized Status Values
| Status | Description |
|---|---|
PENDING | Not yet ready for processing. In draft, under review, or awaiting approval. |
APPROVED | Approved and ready for payment or factoring. |
PAID | Paid in full. |
SOLD | Sold or factored to a third party. |
DISPUTED | Under dispute, rejected, canceled, or on hold. |
ACKNOWLEDGED | Received but does not map to standard categories. |
Portal Status Mapping
| Normalized Status | Typical Portal Statuses |
|---|---|
PENDING | DRAFT, SUBMITTED, IN PROCESS, PENDING APPROVAL, OPEN, UNPAID, OVERDUE |
APPROVED | APPROVED, READY FOR PAYMENT, PAYMENT IN PROCESS, SCHEDULED FOR PAYMENT |
PAID | PAID, PAID IN FULL, SETTLED, CLOSED, COMPLETED |
SOLD | SOLD, FACTORED, ASSIGNED |
DISPUTED | REJECTED, CANCELED, VOIDED, ON HOLD, DISPUTED |
ACKNOWLEDGED | Various portal-specific statuses |
Portal-Specific Examples
| Portal | portal_status | Normalized status |
|---|---|---|
| Coupa | "APPROVED FOR PAYMENT" | APPROVED |
| Tradeshift | "MARKED PAID" | PAID |
| Ariba | "RECONCILED" | PAID |
| Ariba | "SUBMITTED" | PENDING |
| Generic | "OVERDUE" | PENDING |
| Generic | "VOIDED" | DISPUTED |
Usage
Use status for filtering and programmatic logic (consistent across all portals). Use portal_status for display and audit trails (shows the exact original value).
Example Response
{
"id": "rec_abc123",
"status": "APPROVED",
"portal_status": "APPROVED FOR PAYMENT - BATCH 2024-Q4"
}Filtering
# All approved receivables
GET /v1/receivables?status=APPROVED
# Pending receivables for a vendor
GET /v1/receivables?vendor_id=X&status=PENDING
# Disputed receivables
GET /v1/receivables?status=DISPUTED