KapworkKapwork Partner API
How It Works

Status Reference

Receivable status values

Status Fields

Every receivable has two status fields:

FieldPurpose
statusNormalized status for filtering and business logic
portal_statusOriginal status from the debtor portal for display and audit

Normalized Status Values

StatusDescription
PENDINGNot yet ready for processing. In draft, under review, or awaiting approval.
APPROVEDApproved and ready for payment or factoring.
PAIDPaid in full.
SOLDSold or factored to a third party.
DISPUTEDUnder dispute, rejected, canceled, or on hold.
ACKNOWLEDGEDReceived but does not map to standard categories.

Portal Status Mapping

Normalized StatusTypical Portal Statuses
PENDINGDRAFT, SUBMITTED, IN PROCESS, PENDING APPROVAL, OPEN, UNPAID, OVERDUE
APPROVEDAPPROVED, READY FOR PAYMENT, PAYMENT IN PROCESS, SCHEDULED FOR PAYMENT
PAIDPAID, PAID IN FULL, SETTLED, CLOSED, COMPLETED
SOLDSOLD, FACTORED, ASSIGNED
DISPUTEDREJECTED, CANCELED, VOIDED, ON HOLD, DISPUTED
ACKNOWLEDGEDVarious portal-specific statuses

Portal-Specific Examples

Portalportal_statusNormalized 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

Next

On this page