Skip to main content

Request Lifecycle Overview

Every HTTPayer request progresses through a defined lifecycle, especially when payments or refunds are involved. The lifecycle is divided into five phases:
  1. Discovery
  2. Payment Processing
  3. Upstream Execution
  4. Completion
  5. Refund Handling (if applicable)

Status Reference

Discovery Phase

StatusDescription
payment_requiredClient must submit a valid x402 payment (HTTP 402)

Payment Processing

StatusDescription
payment_receivedPayment detected but not yet validated
payment_validatingOn-chain confirmation in progress
processingUpstream API call in progress
async_processingLong-running request (HTTP 202)

Success Outcomes

StatusDescription
successRequest completed successfully
success_refundedRequest succeeded but user was refunded (target did not charge)

Failure Outcomes

StatusDescription
payment_failedPayment settlement failed
upstream_errorTarget API returned an error
internal_errorHTTPayer internal failure
rate_limitedDaily spending limit exceeded
validation_failedInvalid request parameters

Refund Lifecycle

StatusDescription
refund_issuedRefund transaction sent
refund_confirmedRefund confirmed on-chain
refund_failedRefund failed (manual intervention required)
no_refund_neededNo refund required (e.g., the target API ultimately charged during async processing)

Where Statuses Appear

HTTPayer statuses may appear in:
  • JSON response bodies
  • Webhook payloads
  • Simulation endpoints (/proxy/sim, /relay/sim)
  • Async job responses
Not all endpoints return all statuses.
For async flows and refunds, see the Webhooks documentation.