payout.quote_confirmed

Triggered when the recipient confirmed the FX exchange on a cross-currency quote. Fires only when an FX exchange actually occurred — same-currency quotes do not produce this event.

Envelope

Carries the standard event envelope. Payout identifiers: payout_order_uuid, recipient_email, external_send_id (see Payout events → Identifiers).

Event-specific fields

FieldTypeValue
dataHashFull send-request snapshot as returned by the confirm, passed through verbatim. Same shape as Payout events → data shape. Because confirm only fires on cross-currency sends, input_to_sending_rate is not "1.0" and fees.conversion_fee is present.

Example

{
  "event": "payout.quote_confirmed",
  "status": "in_progress",
  "occurred_at": "2026-05-25T10:00:30Z",
  "recipient_email": "[email protected]",
  "external_send_id": "123456",
  "payout_order_uuid": "11111111-2222-3333-4444-555555555555",
  "data": {
    "id": 123456,
    "status": "in_progress",
    "purpose": "Gifq payout to [email protected]",
    "created_at": "2026-05-25T10:00:00.000Z",
    "input_amount": "100.00",
    "input_currency": {
      "id": 1,
      "kind": "fiat",
      "title": "Euro",
      "symbol": "EUR",
      "enabled": true,
      "disabled_message": null
    },
    "sending_amount": "108.50",
    "sending_currency": {
      "id": 33,
      "kind": "crypto",
      "title": "USDC",
      "symbol": "USDC",
      "enabled": true,
      "disabled_message": null
    },
    "input_to_sending_rate": "1.085",
    "balance_debit_amount": "0.051847",
    "balance_debit_currency": {
      "id": 5,
      "kind": "crypto",
      "title": "Ethereum",
      "symbol": "ETH",
      "enabled": true,
      "disabled_message": null
    },
    "sending_to_balance_debit_rate": "2092.89",
    "fees": {
      "service_fee": {
        "amount": "0.00056141",
        "currency": {
          "id": 5,
          "kind": "crypto",
          "title": "Ethereum",
          "symbol": "ETH",
          "enabled": true,
          "disabled_message": null
        }
      },
      "conversion_fee": {
        "amount": "0.000478",
        "currency": {
          "id": 5,
          "kind": "crypto",
          "title": "Ethereum",
          "symbol": "ETH",
          "enabled": true,
          "disabled_message": null
        }
      }
    },
    "ledger_account": {
      "id": "01EXAMPLELEDGER0000000000000",
      "title": "Ethereum main account",
      "status": "active",
      "balance": "10.000000000000000000",
      "account_type": "main",
      "currency": {
        "id": 5,
        "kind": "crypto",
        "title": "Ethereum",
        "symbol": "ETH",
        "enabled": true,
        "disabled_message": null
      }
    },
    "beneficiary_payout_setting": {
      "id": 999,
      "beneficiary_id": 888,
      "created_at": "2026-05-25T09:59:59.000Z",
      "currency": {
        "id": 33,
        "kind": "crypto",
        "title": "USDC",
        "symbol": "USDC",
        "enabled": true,
        "disabled_message": null
      },
      "platform": {
        "id": 21,
        "title": "Solana",
        "id_name": "solana"
      },
      "crypto_address": "ExampleSolanaWalletAddress00000000000000000",
      "crypto_address_metadata": null
    },
    "blockchain_transactions": [],
    "requires_2fa_confirmation": false
  }
}

What to do on receipt

  • The FX exchange for this external_send_id has settled and the quote is locked in.
  • Same-currency sends will never produce this event — do not wait for it on those.
  • Expect a payout.status_changed and ultimately a payout.terminal_state next.