Skip to main content
Primer Checkout Android SDK is currently in beta (v3.0.0-beta.2). The API is subject to change before the stable release.
Field-level validation errors reported through PrimerCardFormController.State.fieldErrors.

SyncValidationError

class SyncValidationError {
    val inputElementType: PrimerInputElementType
    val errorId: String
}
PropertyTypeDescription
inputElementTypePrimerInputElementTypeField that triggered the error
errorIdStringError identifier or message describing the validation failure

PrimerInputElementType

enum class PrimerInputElementType {
    CARD_NUMBER, EXPIRY_DATE, CVV, CARDHOLDER_NAME,
    COUNTRY_CODE, FIRST_NAME, LAST_NAME,
    ADDRESS_LINE_1, ADDRESS_LINE_2, CITY, STATE, POSTAL_CODE,
}
ValueValidation
CARD_NUMBERLuhn check + card network detection
EXPIRY_DATEMM/YY format, future date
CVVCorrect length for card network (3 or 4 digits)
CARDHOLDER_NAMENon-empty when required
COUNTRY_CODEISO 3166-1 alpha-2
FIRST_NAMENon-empty
LAST_NAMENon-empty
ADDRESS_LINE_1Non-empty
ADDRESS_LINE_2Optional
CITYNon-empty
STATENon-empty
POSTAL_CODEFormat varies by country

Validation timing

Fields validate on blur (when the user leaves a field), not while typing.
isFormValid updates in real-time as the user types. fieldErrors only updates on blur. Use isFormValid for submit button state and fieldErrors for error messages.