> ## 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": "pmc-TJh76H8hj778hftdtu66gjio",
      "name": "Home EDSA Meter Top-up",
      "mode": "oneTime",
      "isActive": true,
      "status": "pending",
      "ussdCode": "*715*1*0123456789#",
      "amount": {
          "currency": null,
          "value": null
      },
      "customerTarget": {
          "name": "Musa Kamara",
          "reference": "0123456789",
          "payingPhoneNumber": "078000000"
      },
      "financialTarget": {
          "expectedPaymentCount": null,
          "expectedPaymentSum": {
              "currency": null,
              "value": null
          }
      },
      "allowedProviders": [
          [
              "m17",
              "m18"
          ]
      ],
      "progress": {
          "isCompleted": null,
          "totalPaymentCount": null,
          "totalPaymentSum": {
              "currency": null,
              "value": null
          }
      },
      "financialAccountId": null,
      "expireTime": null,
      "createTime": null,
      "metadata": null
  }
  ```
</ResponseExample>

<ResponseField name="📋" type="Properties">
  <ResponseField name="id" type="string">
    A unique identifier for the payment code object.

    Example: <code>pmc-TJh76H8hj778hftdtu66gjio</code>
  </ResponseField>

  <ResponseField name="name" type="string">
    The name or intent indicating the purpose or use of the payment code.

    MaxLength: <code>100</code>

    Example: <code>Home EDSA Meter Top-up</code>
  </ResponseField>

  <ResponseField name="mode" type="enum<string>">
    Specifies whether the payment code can be used only once or multiple times.

    Available options: <code>oneTime</code> <code>recurrent</code>

    Default: <code>oneTime</code>
  </ResponseField>

  <ResponseField name="isActive" type="boolean">
    Indicates whether the payment code is currently active and available for use.

    Default: <code>true</code>
  </ResponseField>

  <ResponseField name="status" type="enum<string>">
    The current status of the payment code, indicating its state in the payment process

    Available options: <code>pending</code> <code>processing</code> <code>expired</code> <code>cancelled</code> <code>completed</code>

    Default: <code>pending</code>
  </ResponseField>

  <ResponseField name="ussdCode" type="string">
    The USSD code that users can dial on their mobile money device to make a payment using this payment code.

    Example: <code>\*715\*1\*0123456789#</code>
  </ResponseField>

  <ResponseField name="amount" type="object">
    The monetary amount assigned to the payment code. If mode is recurrent, and financial target sum is also set, this represents the amount to be paid for every instance of payment for this code.

    <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="customerTarget" type="object">
    Information about the specific customer that this payment code is targeting/

    <Expandable title="properties">
      <ResponseField name="name" type="string">
        Name of the customer to pay for this code.

        MaxLength: <code>100</code>

        Example: <code>Musa Kamara</code>
      </ResponseField>

      <ResponseField name="reference" type="string">
        Reference that may identify this customer in some external system.

        MaxLength: <code>100</code>

        Example: <code>0123456789</code>
      </ResponseField>

      <ResponseField name="payingPhoneNumber" type="string">
        The phone number that should dial to pay for this code.

        MaxLength: <code>30</code>

        Example: <code>078000000</code>
      </ResponseField>
    </Expandable>
  </ResponseField>

  <ResponseField name="financialTarget" type="object">
    The financial target for this payment code.

    <Expandable title="properties">
      <ResponseField name="expectedPaymentCount" type="integer">
        The number of payments expected after which the code gets completed.
      </ResponseField>

      <ResponseField name="expectedPaymentSum" type="object">
        The sum of payment amounts expected after which the code gets completed.

        <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>
    </Expandable>
  </ResponseField>

  <ResponseField name="allowedProviders" type="array">
    The list of MoMo provider IDs for which the payment code is allowed to be used.

    Example: <code>\[m17 m18]</code>
  </ResponseField>

  <ResponseField name="progress" type="object">
    The progress of the payment code.

    <Expandable title="properties">
      <ResponseField name="isCompleted" type="boolean">
        Indicate whether the payment code is completed or not.
      </ResponseField>

      <ResponseField name="totalPaymentCount" type="integer">
        Represents the total number of payments made using this code.
      </ResponseField>

      <ResponseField name="totalPaymentSum" type="object">
        Represents the total sum of payment amounts made using this code.

        <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>
    </Expandable>
  </ResponseField>

  <ResponseField name="financialAccountId" type="string">
    The ID of the financial account where the amount is settled to. This default to the owner's *Main* financial account.'
  </ResponseField>

  <ResponseField name="expireTime" type="string">
    The expiration time of the payment code.
  </ResponseField>

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

  <ResponseField name="metadata" type="object">
    The metadata for the payment code.
  </ResponseField>
</ResponseField>
