> ## 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.

# Object Model

<ResponseExample>
  ```json JSON Model theme={null}
  {
      "id": null,
      "status": "pending",
      "amount": {
          "currency": null,
          "value": null
      },
      "source": {
          "financialAccountId": null,
          "transactionReference": null
      },
      "destination": {
          "providerCode": null,
          "accountId": null,
          "transactionReference": null
      },
      "charges": [],
      "delayedReason": null,
      "failureDetail": {
          "code": "unknown",
          "explanation": null
      },
      "createTime": null,
      "metadata": null
  }
  ```
</ResponseExample>

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

  <ResponseField name="status" type="enum<string>">
    The status of the payout object.

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

  <ResponseField name="amount" type="object">
    The monetary amount to payout to the destination

    <Expandable title="properties">
      <ResponseField name="currency" type="string">
        The [3-letter](https://en.wikipedia.org/wiki/ISO_4217) ISO currency code.
      </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">
    The source of fund for the payout object.

    <Expandable title="properties">
      <ResponseField name="financialAccountId" type="string">
        The ID of the financial account where the amount was disbursed from.'
      </ResponseField>

      <ResponseField name="transactionReference" type="string">
        The Monime transaction reference for describing the debiting of the amount and charges from the financial account.
      </ResponseField>
    </Expandable>
  </ResponseField>

  <ResponseField name="destination" type="object">
    The destination for the fund of the payout object.

    <Expandable title="properties">
      <ResponseField name="providerCode" type="string">
        The code for the provider as identified by Monime.
      </ResponseField>

      <ResponseField name="accountId" type="string">
        The account ID of the account in the provider's ecosystem that the payout amount was disbursed to.
      </ResponseField>

      <ResponseField name="transactionReference" type="string">
        The transaction reference from the provider's ecosystem after the amount was disbursed.
      </ResponseField>
    </Expandable>
  </ResponseField>

  <ResponseField name="charges" type="array">
    The charges that applied to the payout.
  </ResponseField>

  <ResponseField name="delayedReason" type="string">
    The reason when the payout is being delayed.
  </ResponseField>

  <ResponseField name="failureDetail" type="object">
    The detail for the failed status.

    <Expandable title="properties">
      <ResponseField name="code" type="enum<string>">
        The failure code.

        Available options: <code>unknown</code> <code>expired</code> <code>providerUnknown</code> <code>fundInsufficient</code> <code>authorizationFailed</code> <code>providerAccountBlocked</code> <code>providerAccountMissing</code> <code>providerAccountQuotaExhausted</code>
      </ResponseField>

      <ResponseField name="explanation" type="string">
        An explanation of the failure code.
      </ResponseField>
    </Expandable>
  </ResponseField>

  <ResponseField name="createTime" type="string">
    The creation time of the payout object.
  </ResponseField>

  <ResponseField name="metadata" type="object">
    This holds key-value pairs, where both the keys and values are strings not exceeding 64 and 100 characters respectively. This allows for flexible and descriptive tagging or additional information to be associated with the object.
  </ResponseField>
</ResponseField>
