def METHOD_NAME(cls, root, info, id, channel, data=None):
    user = info.context.user
    channel = validate_channel(
        channel, PaymentGatewayInitializeTokenizationErrorCode
    )
    manager = get_plugin_manager_promise(info.context).get()
    is_active = manager.is_event_active_for_any_plugin(
        "payment_gateway_initialize_tokenization"
    )
    if not is_active:
        raise ValidationError(
            (
                "No active payment app that could initialize payment gateway for "
                "tokenization."
            ),
            code=PaymentGatewayInitializeTokenizationErrorCode.NOT_FOUND.value,
        )
    response = manager.payment_gateway_initialize_tokenization(
        request_data=PaymentGatewayInitializeTokenizationRequestData(
            app_identifier=id, user=user, channel=channel, data=data
        )
    )
    errors = []
    result_enum = PaymentGatewayInitializeTokenizationResultEnum
    if response.result != result_enum.SUCCESSFULLY_INITIALIZED.value:
        error_code = (
            PaymentGatewayInitializeTokenizationErrorCode.GATEWAY_ERROR.value
        )
        errors.append(
            {
                "message": response.error,
                "code": error_code,
            }
        )
    return cls(result=response.result, data=response.data, errors=errors)