Failed Payments — Proposed Guide
Planned API — Reference OnlyFailed Payments: A failed attempt may arise from invalid instrument details, a policy restriction or a provider rejection. The reimbursement record and…
Overview
A failed attempt may arise from invalid instrument details, a policy restriction or a provider rejection. The reimbursement record and its individual failed attempt should remain distinct.
Key concepts
Use a structured failure code with an appropriate visibility level. Separate retryable technical failures from failures requiring human correction.
Implementation considerations
A retry must not occur until duplicate-payment risk is resolved. Avoid displaying confidential provider diagnostics to unauthorized users.
Illustrative data model
This local fixture shows a possible representation for the concepts above. It is not an endpoint response, production configuration or a claim that the described capability is implemented.
{
"reference_only": true,
"topic": "Failed Payments",
"attempt_id": "attempt_example_123",
"failure_code": "instrument_review_required",
"status": "draft",
"occurred_at": "2026-01-15T12:00:00Z"
}Design review checklist
- Document which organization owns the failed payments representation and which actor may view or change it.
- Test the boundaries of attempt id, failure code, status, occurred at using synthetic values, including missing or inconsistent references.
- Before future implementation, obtain an approved contract and review failure behavior. This documentation does not authorize production activation.
Proposed data types
| Name | Type | Description |
|---|---|---|
| attempt_id | string | Stable fictional attempt reference; not a secret and not evidence that a resource exists. |
| failure_code | string | Hypothetical failure classification requiring review rather than a blind payment retry. |
| status | string | Proposed lifecycle value. Its meaning depends on the resource and must not be inferred from HTTP success. |
| occurred_at | string (date-time) | Synthetic UTC timestamp. Business occurrence time may differ from delivery or processing time. |