Transfer rejected

Fired when a wallet action fails before any onchain effects (e.g. policy rejection, simulation failure). Safe to retry.

postWebhookwallet_action.transfer.rejected

Payload

type'wallet_action.transfer.rejected' required

The type of webhook event.

reference_idstring nullable

Developer-provided reference ID, if one was included in the request.

wallet_action_idstring required

The ID of the wallet action.

wallet_idstring required

The ID of the wallet involved in the action.

action_type'swap' | 'transfer' | 'earn_deposit' | 'earn_withdraw' | 'earn_incentive_claim' | 'earn_fee_collect' | 'payout' required

Type of wallet action

created_atstring required

ISO 8601 timestamp of when the wallet action was created.

source_assetstring

Asset identifier (e.g. "usdc", "eth"). Present when the transfer was initiated with a named asset; omitted for custom-token transfers.

source_asset_addressstring

Token contract address (EVM) or mint address (Solana). Present when the transfer was initiated with asset_address.

source_asset_decimalsinteger

Number of decimals for the transferred token. Present when the transfer was initiated with asset_address and the decimals were resolved onchain.

source_amountstring

Decimal amount sent on the source chain (e.g. "1.5"). Omitted for exact_output cross-chain transfers until the source amount is determined.

source_chainstring required

Chain name (e.g. "tempo", "base").

destination_addressstring required

Recipient address.

status'rejected' required

The status of the wallet action.

rejected_atstring required

ISO 8601 timestamp of when the wallet action was rejected.

Example payload

{
  "steps": [
    {
      "gas_credits_charged": {
        "value": "100.00",
        "currency": "usd"
      }
    }
  ]
}

Response

Return a 200 status to indicate that the webhook was received successfully.

Changes

Webhooks have no change history: a webhook is keyed by its event name rather than a path and method, so no recorded change can name it.