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

# The subscriptions endpoint

export const get_common_parameters = (resource_name = 'resource') => {
  return {
    id: {
      name: 'id',
      type: "string",
      required: false,
      description: `Unique identifier for the ${resource_name}.`
    },
    entity_id: {
      name: 'entity_id',
      type: 'string',
      required: false,
      description: 'The ID of the associated Entity.'
    },
    account_id: {
      name: 'account_id',
      type: 'string',
      required: false,
      description: 'The ID of the associated Account.'
    },
    error: {
      name: 'error',
      type: 'object | null',
      required: false,
      description: <>
          An object representing an error that occurred while processing
          this {resource_name}. See <a href={`/reference/errors/${resource_name.replace(/^([A-Z])/, function (match) {
        return match.toLowerCase();
      }).replace(/([A-Z])/g, function (match) {
        return "-" + match.toLowerCase();
      })}-errors`}>{resource_name} errors</a>.
        </>
    },
    status_error: {
      name: 'status_error',
      type: 'object | null',
      required: false,
      description: <>
          An object representing an error that occurred while processing
          this {resource_name}. See <a href="/reference/errors/product-errors#status-errors">{resource_name} errors</a>.
        </>
    },
    metadata: {
      name: 'metadata',
      type: 'object | null',
      required: false,
      description: <>
          Additional data provided during creation.
          See <a href="/reference/metadata">metadata</a>
        </>
    },
    created_at: {
      name: 'created_at',
      type: 'string',
      required: false,
      description: `Timestamp of when the ${resource_name} was created.`
    },
    updated_at: {
      name: 'updated_at',
      type: 'string',
      required: false,
      description: `Timestamp of when the ${resource_name} was last updated.`
    },
    status: (enums = []) => ({
      name: 'status',
      type: 'enum',
      required: false,
      description: `Status of the ${resource_name}.`,
      enums
    }),
    type: (enums = []) => ({
      name: 'type',
      type: 'enum',
      required: false,
      description: `The type of ${resource_name}.`,
      enums
    })
  };
};

export const ParamList = ({items = [], is_child = false}) => {
  return items.map(item => {
    const field_props = {
      id: Math.random().toString(),
      body: item.name,
      name: item.name,
      type: item.type,
      required: item.required
    };
    const enums = item.enums || [];
    const items = item.items || [];
    const has_items = items?.length > 0;
    const has_enums = enums?.length > 0;
    const should_default_open = item.defaultOpen || false;
    const render_child_item = () => {
      const child_props = {
        title: has_enums ? "Possible enum values" : "properties"
      };
      if (should_default_open) child_props.defaultOpen = true;
      const has_inline_enums = has_enums && enums.every(enum_item => typeof enum_item === 'string') && enums.map((enum_item, idx) => {
        const is_last = idx === enums.length - 1;
        const is_2nd_to_last = idx === enums.length - 2;
        return <>
            <code>{enum_item}</code>
            {is_last && ''}
            {is_2nd_to_last && ' or '}
            {!is_last && !is_2nd_to_last && ', '}
          </>;
      });
      const enum_list = has_enums && !has_inline_enums && <Accordion {...child_props}>
          {enums.map((enum_item, index) => <div key={`enum-${index}`}>
              <code>{enum_item.name}</code>
              <br />
              <p>{enum_item.description}</p>
            </div>)}
        </Accordion>;
      const item_list = has_items && <Expandable {...child_props}>
          <ParamList items={items || []} is_child />
        </Expandable>;
      return <>
          <p>
            {item.description}
            {has_inline_enums && [has_inline_enums.length > 1 ? ' One of ' : ' Must be ', ...has_inline_enums]}
          </p>

          {enum_list}
          {item_list}
        </>;
    };
    return is_child ? <ResponseField {...field_props}>{render_child_item()}</ResponseField> : <ParamField {...field_props}>{render_child_item()}</ParamField>;
  });
};

The Entity Subscriptions endpoint controls the state of all Subscriptions for an Entity.

Subscriptions are Products that can provide continuous updates via Webhooks. (e.g. Credit Score Subscription provides updates on an Entity's credit score)

<Info>Most subscriptions are accessible by default. However, some subscriptions have restricted access requiring team-by-team enablement and elevated account verification.</Info>

### Subscription Names

Subscriptions that an Entity can be enrolled in:

| Name           | Use-Case                                                                                                            | Resource Doc                                                           |
| -------------- | ------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------- |
| `connect`      | Comprehensive view of an Entity’s outstanding liabilities and continuous near real-time updates on new liabilities. | [Connect](/2026-03-30/reference/entities/connect/overview)             |
| `credit_score` | Continuous near real-time updates on an Entity’s credit score.                                                      | [Credit Scores](/2026-03-30/reference/entities/credit-scores/overview) |
| `attribute`    | Continuous near real-time updates on an Entity’s attributes.                                                        | [Attributes](/2026-03-30/reference/entities/attributes/overview)       |

## Subscriptions Objects

<ParamList
  items={[
get_common_parameters('Subscription').id,
{
name: 'name',
type: 'string',
required: false,
description: (
  <>
    The name of the Subscription. See <a href="/2026-03-30/reference/entities/subscriptions/overview#subscription-names">Subscription Names.</a>
  </>
),
},
get_common_parameters('Subscription').status([
{
  name: 'active',
  description: 'The associated Entity is currently enrolled in this Subscription.',
},
{
  name: 'inactive',
  description: 'The associated Entity is unenrolled from this Subscription.',
},
]),
{
name: 'payload',
type: 'object | null',
required: false,
description: 'Payload used to create the Subscription.',
},
{
name: 'latest_request_id',
type: 'string | null',
required: false,
description: 'ID of the most recently created Product resource under this Subscription.',
},
(get_common_parameters('Subscription').created_at),
(get_common_parameters('Subscription').updated_at),
]}
/>

## Webhook Payload

The [Webhook](/2026-03-30/reference/webhooks/overview) payload will contain the following information:

```json theme={null}
{
  "id": "string",
  "type": "subscription.create" | "subscription.update",
  "path": "/entities/<ent_id>/subscriptions/<sub_id>",
}
```

<RequestExample>
  ```json THE SUBSCRIPTION OBJECT theme={null}
  {
    "credit_score": {
      "id": "sub_6f7XtMLymQx3f",
      "name": "credit_score",
      "status": "active",
      "payload": null,
      "latest_request_id": "crs_pn4ca33GXFaCE",
      "created_at": "2026-04-09T17:02:47.910Z",
      "updated_at": "2026-04-09T17:02:47.910Z"
    }
  }
  ```
</RequestExample>
