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

# Assigning Unique Identifiers for Objects

Most top-level objects must have unique identifiers. You can directly manipulate objects, such as `AutoBill` or `Account` objects. You can load the object, usually with a `fetchBy` method; and save it, usually with an `update` method. Most objects of this kind have two unique identifiers: one assigned by you and the other by Vindicia. The naming convention for the IDs that you assign is in the form of `merchant`*Class*`Id`, for example, `merchantAccountId` correspond to the unique identifiers for the objects in your database, such as database IDs, email addresses, or invoice numbers, with which you track the items in question.

When you create an object in the Subscribe database, Vindicia assigns the object a globally unique Vindicia identifier, called a VID, which you can access through the object’s `VID` attribute. If you do not specify a VID when you call the `update()` method for an object, Vindicia generates a new VID or loads the existing one and returns it.

**CAUTION:**

Do not specify your own VID values when creating objects.

Vindicia best practices recommend that, when creating objects with `update()` calls, clients generate their own set of object identifiers to populate the corresponding `merchant`*Class*`Id` values. Note that the use of the forward slash character (/) is not allowed in merchant-defined identifiers. See [Merchant Identifiers](Merchant_Identifiers) for more information.

**Parent topic:**[Support for Development](../topics/Support_for_Development)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.