> ## Documentation Index
> Fetch the complete documentation index at: https://docs.atum.xyz/llms.txt
> Use this file to discover all available pages before exploring further.

# Decline reasons

> Why a settlement provider did not quote on a payment, what each reason means, and what would change it. A decline is not a payment failure.

## What a decline is

A decline is one settlement provider saying it will not submit a price quote
for a payment. It is not an error and it does not arrive as one: declines are
counted in the `decline_summary` that the payment status and quote request status
responses carry on a 200. An entry carries a `docs_url` pointing at its reason on
this page, which is absent rather than empty when no page is published.

The two say different things. The payment status endpoint counts the providers
that declined that payment. The quote request status endpoint counts the ones
that declined the batch it was priced in.

<Note>
  A decline is not a failed payment. Several providers can decline while another
  settles the payment normally. A payment that failed carries its own error code,
  and that code's entry on [Error codes](/errors) is the instruction to act on. The
  classification here describes one provider's answer, not the payment's outcome.
</Note>

The reason set grows whenever a provider gains a cause worth naming, so treat an
unrecognised reason as `OTHER` rather than rejecting the response.

This list is generated from the decline catalog the providers report against, and
is regenerated whenever that catalog changes, so it cannot fall behind the reasons
you actually receive.

## Reference

What would change it is what would have to change for that provider to quote. It
describes the decline only, never the payment:

* `CONTACT_SUPPORT`: the reason is opaque from outside, so raising it with support is the only route.
* `NOT_RETRYABLE_FIX_REQUEST`: something in the request has to change before this provider will quote.
* `RETRY_AFTER_DELAY`: something other than the request has to change, so the same request may quote later.

| Reason                                                            | What would change it         |
| ----------------------------------------------------------------- | ---------------------------- |
| [`AGENT_NOT_READY`](#agent-not-ready)                             | RETRY\_AFTER\_DELAY          |
| [`AUCTION_CLOSED`](#auction-closed)                               | RETRY\_AFTER\_DELAY          |
| [`AWARD_WINDOW_TOO_SHORT`](#award-window-too-short)               | NOT\_RETRYABLE\_FIX\_REQUEST |
| [`DEADLINE_TOO_SHORT`](#deadline-too-short)                       | NOT\_RETRYABLE\_FIX\_REQUEST |
| [`DRAINING`](#draining)                                           | RETRY\_AFTER\_DELAY          |
| [`INSUFFICIENT_LIQUIDITY`](#insufficient-liquidity)               | RETRY\_AFTER\_DELAY          |
| [`INTERNAL`](#internal)                                           | RETRY\_AFTER\_DELAY          |
| [`NO_SETTLEMENT_HORIZON`](#no-settlement-horizon)                 | NOT\_RETRYABLE\_FIX\_REQUEST |
| [`OTHER`](#other)                                                 | CONTACT\_SUPPORT             |
| [`QUOTE_GENERATION_FAILED`](#quote-generation-failed)             | RETRY\_AFTER\_DELAY          |
| [`QUOTE_INVALID`](#quote-invalid)                                 | NOT\_RETRYABLE\_FIX\_REQUEST |
| [`UNSUPPORTED_DESTINATION_ASSET`](#unsupported-destination-asset) | NOT\_RETRYABLE\_FIX\_REQUEST |
| [`UNTRUSTED_VERIFIER`](#untrusted-verifier)                       | NOT\_RETRYABLE\_FIX\_REQUEST |

<div id="agent-not-ready" />

### AGENT\_NOT\_READY

Retry classification `RETRY_AFTER_DELAY`.

> The settler had not finished registering when the request arrived.

<div id="auction-closed" />

### AUCTION\_CLOSED

Retry classification `RETRY_AFTER_DELAY`.

> The quote collection or award window had already closed when the settler evaluated the request.

<div id="award-window-too-short" />

### AWARD\_WINDOW\_TOO\_SHORT

Retry classification `NOT_RETRYABLE_FIX_REQUEST`.

> The window left to produce a quote was below the settler's minimum.

<div id="deadline-too-short" />

### DEADLINE\_TOO\_SHORT

Retry classification `NOT_RETRYABLE_FIX_REQUEST`.

> The time left to fulfill this payment was below the settler's minimum for this corridor.

<div id="draining" />

### DRAINING

Retry classification `RETRY_AFTER_DELAY`.

> The settler is draining in-flight work and is not accepting new payments.

<div id="insufficient-liquidity" />

### INSUFFICIENT\_LIQUIDITY

Retry classification `RETRY_AFTER_DELAY`.

> The settler could not fund the payout on the destination chain.

<div id="internal" />

### INTERNAL

Retry classification `RETRY_AFTER_DELAY`.

> The settler hit an unexpected error while evaluating the request.

<div id="no-settlement-horizon" />

### NO\_SETTLEMENT\_HORIZON

Retry classification `NOT_RETRYABLE_FIX_REQUEST`.

> The request carried no usable fulfillment deadline, so the settler had no refund path.

<div id="other" />

### OTHER

Retry classification `CONTACT_SUPPORT`.

This reason covers more than one condition, so the message differs between
responses. Branch on the reason, never on the text.

> A settler declined for a reason of its own.

> A settler declined for a reason this gateway does not recognise.

> A settler declined without naming a reason.

<div id="quote-generation-failed" />

### QUOTE\_GENERATION\_FAILED

Retry classification `RETRY_AFTER_DELAY`.

> The settler could not produce a valid quote for this request.

<div id="quote-invalid" />

### QUOTE\_INVALID

Retry classification `NOT_RETRYABLE_FIX_REQUEST`.

> The request the settler was asked to quote on failed validation.

<div id="unsupported-destination-asset" />

### UNSUPPORTED\_DESTINATION\_ASSET

Retry classification `NOT_RETRYABLE_FIX_REQUEST`.

> The settler does not serve the requested destination asset.

<div id="untrusted-verifier" />

### UNTRUSTED\_VERIFIER

Retry classification `NOT_RETRYABLE_FIX_REQUEST`.

> The request named a fulfillment verifier the settler does not trust, or named none at all.
