Last Updated: 22 January 2024 | Change Log

CVC validation

Validate your customer's CVC before processing it.

Get started

To integrate the validation feature you must create an implementation of an AccessCheckoutCardValidationListener. Initialize the validation using the AccessCheckoutValidationInitialiser by passing in the android UI element in a CvcValidationConfig.

Full sample integration

You can see an example of the CVC validation integration here.

Implementing AccessCheckoutCvcValidationListener

To receive validation results of your customer's CVC you must create your own implementation of the AccessCheckoutCvcValidationListener.

  1. Kotlin
  2. Java
package com.worldpay.access.checkout.sample.code

import com.worldpay.access.checkout.client.validation.listener.AccessCheckoutCvcValidationListener

class CvcValidationListener : AccessCheckoutCvcValidationListener {

    override fun onCvcValidated(isValid: Boolean) {
        //TODO: handle the cvc validation result
    }

    override fun onValidationSuccess() {
        //TODO: handle the form when the validation is complete i.e. all fields are valid
    }

}

Function and parameter descriptions

MethodDescription
onCvcValidatedThis method is called with the validity of the CVC field. isValid indicates whether the field is in a valid or invalid state.
onValidationSuccessThis method is called when all fields are in a valid state. You would typically used this to enable the submit button.

Initializing CVC validation

After implementing the AccessCheckoutCvcValidationListener, you must initialize the validation for your view. To do this, create a CvcValidationConfig using the builder as shown below. Then use this to initialize the validation.

  1. Kotlin
  2. Java
package com.worldpay.access.checkout.sample.code

// android library imports omitted

import com.worldpay.access.checkout.client.validation.AccessCheckoutValidationInitialiser
import com.worldpay.access.checkout.client.validation.config.CvcValidationConfig

class MainActivity : AppCompatActivity() {

    // fields omitted

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)

        val cvcAccessCheckoutView: AccessCheckoutEditText = findViewById<AccessCheckoutEditText>(R.id.card_flow_text_cvc);

        // other view references omitted

        val cvcValidationListener = CvcValidationListener()

        val cvcValidationConfig = CvcValidationConfig.Builder()
                .cvc(cvcAccessCheckoutView)
                .validationListener(cvcValidationListener)
                .lifecycleOwner(this)
                .build()

        AccessCheckoutValidationInitialiser.initialise(cvcValidationConfig)

        //TODO: generate session here
    }

}

Next steps


Create a CVC session