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

# PrimerPaymentMethodTokenData

```kotlin KOTLIN theme={"dark"}
data class PrimerPaymentMethodTokenData(
  val token: String,
  val analyticsId: String,
  val tokenType: TokenType,
  val paymentInstrumentType: String,
  val paymentInstrumentData: PaymentInstrumentData?,
  val vaultData: VaultData?,
  val threeDSecureAuthentication: AuthenticationDetails? = null,
  val isVaulted: Boolean
) {

  data class VaultData(
    val customerId: String,
  )

  data class AuthenticationDetails(
    val responseCode: ResponseCode,
    val reasonCode: String?,
    val reasonText: String?,
    val protocolVersion: String?,
    val challengeIssued: Boolean?,
  )
}
```

## Properties

<Expandable defaultOpen>
  <ResponseField name="token" type="String" required>
    {}
  </ResponseField>

  <ResponseField name="tokenType" type="TokenType" required>
    <Expandable title="Cases" defaultOpen>
      <ResponseField name="MULTI_USE">
        {}
      </ResponseField>

      <ResponseField name="SINGLE_USE">
        {}
      </ResponseField>
    </Expandable>
  </ResponseField>

  <ResponseField name="analyticsId" type="String" required>
    {}
  </ResponseField>

  <ResponseField name="paymentInstrumentType" type="String" required>
    {}
  </ResponseField>

  <ResponseField name="paymentInstrumentData" type="PaymentInstrumentData?">
    <Expandable title="Properties">
      <ResponseField name="network" type="String?">
        The human readable representation of card network (e.g., Visa, Mastercard).
      </ResponseField>

      <ResponseField name="cardholderName" type="String?">
        The name of the cardholder.
      </ResponseField>

      <ResponseField name="first6Digits" type="Int?">
        The first 6 digits of the card number.
      </ResponseField>

      <ResponseField name="last4Digits" type="Int?">
        The last 4 digits of the card number.
      </ResponseField>

      <ResponseField name="accountNumberLast4Digits" type="Int?">
        The last 4 digits of the account number.
      </ResponseField>

      <ResponseField name="expirationMonth" type="Int?">
        The expiration month of the card, in 2-digit format.
      </ResponseField>

      <ResponseField name="expirationYear" type="Int?">
        The expiration year of the card, in 4-digit format.
      </ResponseField>

      <ResponseField name="externalPayerInfo" type="ExternalPayerInfo?">
        External information about the payer associated with the transaction.

        <Expandable title="Properties" defaultOpen>
          <ResponseField name="email" type="String">
            The payer's email address.
          </ResponseField>

          <ResponseField name="externalPayerId" type="String?">
            The payer's unique ID.
          </ResponseField>

          <ResponseField name="firstName" type="String?">
            The payer's given name.
          </ResponseField>

          <ResponseField name="lastName" type="String?">
            The payer's given surname.
          </ResponseField>
        </Expandable>
      </ResponseField>

      <ResponseField name="klarnaCustomerToken" type="String?" />

      <ResponseField name="sessionData" type="SessionData?" />

      <ResponseField name="paymentMethodType" type="String?">
        A unique string identifier for the payment method. (e.g. `PAYPAL`,
        `GOOGLE_PAY`)
      </ResponseField>

      <ResponseField name="binData" type="BinData?">
        Additional BIN data.

        <Expandable title="Properties" defaultOpen>
          <ResponseField name="network" type="String?">
            The card network (e.g., VISA, MASTERCARD, AMEX).
          </ResponseField>
        </Expandable>
      </ResponseField>

      <ResponseField name="bankName" type="String?">
        The name of the bank.
      </ResponseField>
    </Expandable>
  </ResponseField>

  <ResponseField name="vaultData" type="VaultData?">
    {}
  </ResponseField>

  <ResponseField name="threeDSecureAuthentication" type="AuthenticationDetails?">
    {}
  </ResponseField>
</Expandable>
