Breaking change for Payment Request status
Date: 11th November 2025
Overview
To improve consistency across the Adfin API, the PaymentRequest resource has been aligned with the Invoice status model. This ensures terminology and predictable state transitions between invoices and payment requests.
Old status | New Status | Description |
|---|---|---|
REQUESTED | UNPAID | REQUESTED has been replaced by a new status: UNPAID |
CANCELLED | VOID | CANCELLED has been replaced with a new status: VOID |
Endpoints affected
GET /payment_requests The status field in each listed object will now return one of the new values (UNPAID, VOID).
GET /payment_requests/[id] The status property in the response body has been updated with the same mappings.
Webhooks
Webhook payloads referencing a PaymentRequest object will also include the new status values.
Example
Before
{
"id": "pr_123",
"status": "REQUESTED",
"amount": 1250,
"due_date": "2025-11-01",
}
Ater
{
"id": "pr_123",
"status": "UNPAID",
"amount": 1250,
"due_date": "2025-11-01",
}
Impact for integrations
Impact for Integrators
- Response Parsing: Update client applications to handle new status values.
- Filtering & Queries: Replace deprecated status filters with the new values (UNPAID, VOID).
- Webhooks: Downstream systems consuming webhook events should be updated accordingly.
- UI / Reporting: Adjust labels and state mappings to reflect the new terminology.
- Backward Compatibility: Integrations using hardcoded enums (REQUESTED, CANCELLED) will break if not updated.
Migration Guidance
- Update enum definitions or constants to include the new statuses.
- Refactor logic and filters using REQUESTED → UNPAID and CANCELLED → VOID.
- Re-sync cached or stored PaymentRequest records to normalize status values.
- Test workflows dependent on payment state transitions to ensure correct behavior.
