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

# Payout

A **Payout** is a disbursement of funds from a **Financial Account** to a designated destination such as a **Bank Account** or **Mobile Money Wallet**.\
It represents outbound money flows and is commonly used for **salary disbursements**, **vendor payments**, and **refunds** in automated workflows.

Each payout records the **amount**, the **source account**, the **destination details**, and optional **metadata**.\
It also tracks **status changes** throughout its lifecycle and may include **provider-specific references** for reconciliation.

<ResponseExample>
  ```json JSON Model theme={null}
  {
      "id": null,
      "status": "pending",
      "amount": {
          "currency": null,
          "value": null
      },
      "source": {
          "financialAccountId": null,
          "transactionReference": null
      },
      "destination": {
          "type": "bank"
      },
      "fees": [],
      "failureDetail": {
          "code": "unknown",
          "message": null
      },
      "createTime": null,
      "updateTime": null,
      "ownershipGraph": {
          "owner": {
              "id": null,
              "type": null,
              "metadata": null,
              "": null
          }
      },
      "metadata": null
  }
  ```
</ResponseExample>

<ResponseField name="📋" type="Properties">
  <ResponseField name="id" type="string">
    Unique identifier for the payout object.
  </ResponseField>

  <ResponseField name="status" type="enum<string>">
    Current status of the payout:

    * 'pending': Created but not yet scheduled.- 'processing': Currently being processed.
    * 'completed': Successfully completed.
    * 'failed': Processing failed or rejected.

    Available options: <code>pending</code> <code>processing</code> <code>completed</code> <code>failed</code>
  </ResponseField>

  <ResponseField name="amount" type="object">
    Amount to be paid to the destination provider account.

    <Expandable title="properties">
      <ResponseField name="currency" type="string">
        The [3-letter](https://en.wikipedia.org/wiki/ISO_4217) ISO currency code. Currently supported: 'SLE'
      </ResponseField>

      <ResponseField name="value" type="integer">
        The value representation in the currency's minor unit. E.g. For 1 Leone (SLE 1), the value should be 100, denoting cents, the minor unit.
      </ResponseField>
    </Expandable>
  </ResponseField>

  <ResponseField name="source" type="object">
    SourceAccount of funds, including debit account and transaction details. Can be null if the default account is used.

    <Expandable title="properties">
      <ResponseField name="financialAccountId" type="string">
        ID of the financial account where the funds is disbursed from.
      </ResponseField>

      <ResponseField name="transactionReference" type="string">
        Internal Monime reference for the debit transaction from the source account. This is null until the payout is processed.
      </ResponseField>
    </Expandable>
  </ResponseField>

  <ResponseField name="destination" type="object">
    Destination account details that will receive the payout.

    <Expandable title="properties">
      <ResponseField name="type" type="enum<string>">
        Specifies the type of destination account. Must be either 'bank', 'momo', or 'wallet'.

        Available options: <code>bank</code> <code>momo</code> <code>wallet</code>
      </ResponseField>
    </Expandable>
  </ResponseField>

  <ResponseField name="fees" type="array">
    List of fees applied during payout processing. Empty if not yet processed.
  </ResponseField>

  <ResponseField name="failureDetail" type="object">
    Detailed information about the failure, if the payout status is 'failed'.

    <Expandable title="properties">
      <ResponseField name="code" type="enum<string>">
        **Error code** indicating why the payout failed. Possible values include:

        * unknown: General or unclassified failure.
        * fund\_insufficient: Source account lacks sufficient funds.
        * authorization\_failed: Authorization failed or was denied.
        * provider\_unknown: Unexpected error from the external provider.
        * provider\_account\_blocked: The destination provider account is blocked.
        * provider\_account\_missing: The destination provider account does not exist.
        * provider\_account\_quota\_exhausted: Daily or per-transaction quota has been exceeded.

        Available options: <code>unknown</code> <code>fund\_insufficient</code> <code>authorization\_failed</code> <code>provider\_unknown</code> <code>provider\_account\_blocked</code> <code>provider\_account\_missing</code> <code>provider\_account\_quota\_exhausted</code>
      </ResponseField>

      <ResponseField name="message" type="string">
        **Human-readable message** providing more context about the failure. Useful for logs, dashboards, or client-facing error messages.
      </ResponseField>
    </Expandable>
  </ResponseField>

  <ResponseField name="createTime" type="string">
    Timestamp indicating when the payout object was created.
  </ResponseField>

  <ResponseField name="updateTime" type="string">
    Timestamp indicating when the payout object was last updated.
  </ResponseField>

  <ResponseField name="ownershipGraph" type="object">
    Full ownership graph tracing the origin of this payout objects across multiple objects.

    <Expandable title="properties">
      <ResponseField name="owner" type="object">
        **Immediate object** that owns this entity. This is the direct originator or source object.

        <Expandable title="properties">
          <ResponseField name="id" type="string">
            **Unique ID** of the object instance that owns this entity.
          </ResponseField>

          <ResponseField name="type" type="string">
            **Type of the object** that owns this entity. Examples include: 'internal\_transfer', 'checkout\_session', 'payment\_code'.
          </ResponseField>

          <ResponseField name="metadata" type="object">
            **Arbitrary metadata** describing the owning object.
          </ResponseField>

          <ResponseField name="" type="" />
        </Expandable>
      </ResponseField>
    </Expandable>
  </ResponseField>

  <ResponseField name="metadata" type="object">
    Optional metadata attached to the payout for additional context.
  </ResponseField>
</ResponseField>
