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

# Payment Method Data Members

The `PaymentMethod` object encapsulates information on a Retain payment method.

The following table lists and describes the data members of the `PaymentMethod` object.

| Data Members | Data Type | Description |
| - | - | - |
| `accountVID` | string | **Required unless**`customerId`or `externalId` provided. The merchant's unique identifier for the customer with whom this PaymentMethod is associated. |
| `accountHolderName` | string | Name of the account holder as appears on the credit card. A free-form string of 255 or fewer characters. |
| `billingAddressLine1` | string | **Recommended.** Address line 1. A free-form string of 255 or fewer characters. AVS validation (if enabled with the payment processor) cannot be performed without this field. |
| `billingAddressLine2` | string | Address line 2. A free-form string of 255 or fewer characters. |
| `billingAddressLine3` | string | Address line 3. A free-form string of 255 or fewer characters. |
| `billingAddressCity` | string | The city input for address.A free-form string of 64 or fewer characters. |
| `billingAddressCounty` | string | The county input for address.A free-form string of 64 or fewer characters. |
| `billingAddressDistrict` | string | The district input for address such as a **state** or **province**. A free-form string of 255 or fewer characters. |
| `billingAddressPostalCode` | string | **Recommended**. Postal code or ZIP code. A free-form string of 255 or fewer characters. |
| `billingAddressCountry` | string | **Required**. The [ISO 3166-1 alpha-2 code](https://en.wikipedia.org/wiki/List_of_ISO_3166_country_codes) for the country. |
| `customerId` | string | **Required unless `accountVID` or `externalId` provided.** The Merchant's unique identifier for the customer with whom this PaymentMethod is associated. |
| `externalId` | string | \*\*Required unless `accountVID` or `customerId` provided.\*\*An additional merchant-specified unique identifier for when you have two external (non-Subscribe) systems using two different identification schemes for the same customer. It can be used in place of **vid** or **id** A free-form string of 255 or fewer characters. |
| `paymentMethodId` | string | **Required**. The Merchant's unique identifier for the PaymentMethod that is linked to the customer's account in Retain. **Note:** - If tokenization is to be used with the Merchant's payment processor this field should be the token (profile id value if using Chase Paymentech Orbital) - When this value is a token, the length (number of characters) must be within a range acceptable by your payment provider. Worldpay, for example, limits this value to 25 characters. |
| `paymentMethodIsTokenized` | boolean | **Required**. If you use tokenization with your payment provider and have provided a token in the `paymentMethodId` field, then enter **1**. Otherwise enter **0**. |
| `paymentMethodType` | enum | **Required**. Use the string **CreditCard**. |
| `creditCardAccount` | string | **Required**. The credit card account used when billing the Transaction. When submitting transactions for billing the full account number is required. The billing results will return a masked account number For example an entry of **4111111111111111** will be returned as **411111xxxxxx1111**. If you use tokenization with your payment provider, this field should contain the bank BIN number. |
| `creditCardAccountHash` | string | Vindicia accepts a SHA1 hash of the full account number. Any non-numeric characters should be removed prior to hashing. If the account number is provided, this may be left blank. The hash will be calculated by Vindicia and stored as SHA512. |
| `creditCardExpirationDate` | string | Expiration date of the credit card. Enter as YYYYMM format For example, July, 2008 should be sent as 200807. **Note:** No validation is performed to check that this date is in the future. |
| `sortOrder` | integer | The `sortOrder` establishes a precedence of PaymentMethod usage (starting at lowest value first) for which Retain can retry failed billings using multiple credit card accounts for a single Customer |
| **Parent topic:**[The PaymentMethod Object](../topics/payment_method_object) | | |


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