Skip to content

Failed Payments — Proposed Guide

Planned API — Reference Only

Failed 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.

JSON fixture
Fictional concept fixture
{
  "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

Illustrative field dictionary
NameTypeDescription
attempt_idstringStable fictional attempt reference; not a secret and not evidence that a resource exists.
failure_codestringHypothetical failure classification requiring review rather than a blind payment retry.
statusstringProposed lifecycle value. Its meaning depends on the resource and must not be inferred from HTTP success.
occurred_atstring (date-time)Synthetic UTC timestamp. Business occurrence time may differ from delivery or processing time.