---
title: "Get a fiat payout"
method: GET
path: "/v2/payouts/{payout_id}"
tags: ["Payouts"]
---

# Get a fiat payout

`GET /v2/payouts/{payout_id}`

Returns the latest payout state for the authenticated organization. Requires `payout.read` permission.

`processing` means execution is still in progress. `completed` means SGB reported successful completion at the latest known state. A receiving bank can still reject and return a previously completed transfer; the state then changes to `returned`. `failed` means the payout failed before successful bank completion.

Payout Webhooks are not part of this release. This endpoint is the authoritative public status and reconciliation interface.

## Path parameters

- `payout_id` string, required

## Headers

- `Date` string
- `Authorization` string

## Response `200`

Current payout state

- PayoutEnvelope
  - `code` 0, required — Business code. `0` means success.
  - `message` string, required — Response message.
  - `data` Payout, required
    - `payout_id` string, required — Infini fiat payout ID.
    - `client_reference_id` string, required — Merchant-provided payout reconciliation reference.
    - `quote_id` string, required — Quote used to create the payout.
    - `provider` 'sgb', required — Execution provider selected by Infini.
    - `status` 'processing' | 'completed' | 'failed' | 'returned', required — Current payout lifecycle state. `completed` can later change to `returned` if the receiving bank returns the transfer. API payouts have no approval-pending state.
    - `payout_type` 'swift', required — Payout rail bound by the quote.
    - `source_currency` 'USD', required — Organization balance currency.
    - `destination_currency` 'USD', required — Currency delivered to the recipient.
    - `destination_country` string, required — Destination country as an ISO 3166-1 alpha-2 code.
    - `amount_mode` 'send' | 'receive', required — Side fixed by the accepted quote.
    - `fee_paid_by` 'PAYER' | 'BENEFICIARY', required — Party responsible for payout fees. `PAYER` means external deduction; `BENEFICIARY` means internal deduction. Persisted for statement reconciliation.
    - `sending_amount` string, required — Actual total source-balance debit. This is also the authoritative outgoing statement amount.
    - `receiving_amount` string, required — Amount delivered to the recipient.
    - `transfer_fee_amount` string, required — Infini service fee frozen by the quote. It excludes any bank or rail fee.
    - `bank_fee_amount` string, required — Banking fee for the selected bank and payout rail frozen by the quote. Rail examples include SWIFT, ACH, and wire.
    - `fee_rate_decimal` string, required — Decimal transfer-fee rate frozen by the quote.
    - `rate` string, required — Exchange rate frozen by the quote.
    - `billing` BillingBreakdown, required
      - `currency` 'USD', required — Currency used by all billing amounts.
      - `transfer_fee` string, required — Infini service fee for processing the payout. It does not include any bank or rail fee.
      - `fx_fee` string, required — Foreign-exchange fee. It is `0.00` for the first-release USD-to-USD SGB route.
      - `rail_fee` string, required — Banking fee associated with the selected bank and payout rail.
      - `total_fee` string, required — Sum of all fee components in the billing breakdown.
      - `fee_lines` FeeLine[], required — Itemized fee components used for reconciliation.
        - `type` 'transfer_fee' | 'fx_fee' | 'rail_fee', required — Fee component type.
        - `amount` string, required — Fee component amount in `currency`.
        - `currency` 'USD', required — Fee component currency.
        - `rate` string, required — Decimal rate used for this fee line, or `1` for a fixed rail fee.
    - `destination` BankDestinationView, required
      - `type` 'bank_account', required — Destination type.
      - `account_holder_type` 'individual' | 'business', required — Legal type of the bank-account holder.
      - `account_holder_name` string, required — Full legal name registered on the bank account.
      - `bank_country` string, required — Bank country as an ISO 3166-1 alpha-2 code.
      - `bank_name` string, required — Receiving bank's legal name.
      - `account_number_masked` string, required — Masked account number. Raw account details are never returned.
      - `swift_code` string, required — Receiving bank SWIFT/BIC code.
    - `purpose_code` string, required — Business purpose supplied at creation.
    - `statement_reference` string, nullable, required — Recipient-facing reference when supported.
    - `bank_reference` string, nullable, required — SGB or bank transfer reference when available.
    - `failure` Failure, nullable, required — Failure or return details when applicable; otherwise null.
      - `code` string, required — Stable machine-readable failure or return code.
      - `message` string, required — Human-readable failure or return details.
    - `is_duplicate` boolean, required — Whether this response was produced by an idempotent create retry.
    - `created_at` integer, required — Payout creation time as Unix seconds.
    - `updated_at` integer, required — Payout last-update time as Unix seconds.
    - `completed_at` integer, nullable, required — Time SGB reported payout completion, as Unix seconds.
    - `returned_at` integer, nullable, required — Time a receiving-bank return was confirmed, as Unix seconds.

## Other responses

- `401` — HMAC gateway validation or application authentication failed
- `403` — API key permission, IP whitelist, or organization eligibility rejected the request
- `404` — Resource was not found for the authenticated organization

---

[API](https://skmtc.net/infini/apis/infini-fiat-payout-api.md) · [All operations](https://skmtc.net/infini/apis/infini-fiat-payout-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/infini/infini-fiat-payout-api/revisions/89d9b2a144b8/schema)
